Packaging Project
What is a problem?
Every Linux distribution consists of set of libraries, applications, drivers, documentations, etc. All these entities are packed into packages. Every distribution has its own set of packages. Certain application can be packed into different packages on different distributions. For example, 'libQtGui.so.6' library is contained in 'libqt4-x11' package on openSUSE, in 'libqtgui4' - on Debian and in 'qt-x11' - on Fedora. Some other applications can depend on this library and such dependency should be specified in meta-data of its package. But the names of dependencies on the different distributions are different (whatever name from 'libqt4-x11', 'libqtgui4', 'qt-x11' is chosen, corresponding package can be installed only on one distribution). So ISV (Independent Software Vendor) should create several packages for every distribution for a one application. Besides they should find the names of these dependencies in every distributions.
What is Dependency Searcher?
Dependency Searcher system is designed for determination the names of corresponding dependencies on the different distributions. It allows users to find the names of dependencies they are interested in for all distributions easily. That facilitates and accelerates the process of creation of packages for several platforms.
The system provides the following interfaces:
- API are used for integration of functionality of Dependency Searcher into some other systems.
- GUI is useful for users who wants to determine the names of dependencies manually.
Detailed information about using GUI for Dependency Searcher is available on the 'Manual for Dependency Searcher' page.
How does it work?
Searching of names of dependencies is based on analysis of information in database about distributions, packages, files and dependencies. The main idea of search relies on the following statement:
"If some application has a dependency then the application depends on files of package that provides the dependency".
Besides, it's taken into account that files of one application on different distributions have the same names (except paths which can change). So the determination of names of dependencies occurs by search of similar files on different distributions.
Where can it be useful?
- Graphical Interface is useful for developers who create packages for different distributions. They can easily determine the names of dependencies on corresponding distributions.
- API can be integrated into some systems for automatic packages creation (like openSUSE Build Service) and into tools for converting packages into different formats (like alien).
- The system can be used for developing a tools for creation universal packages. Such packages contain information about dependencies for all distributions and can be installed on any distributions. This facilitates search of packages for users and creation of packages for developers.