rpmbuild-order alternatives and similar packages
Based on the "Distribution" category
Do you think we are missing an alternative of rpmbuild-order or a related project?
This package originally based on code from cabal-sort, sorts rpm package spec files by build order.
$ rpmbuild-order --help $ rpmbuild-order sort mycore mylib myapp mylib mycore myapp
The arguments passed can either be directories containing the package, or spec files.
If the dependency graph has cycles then an error will be output with a list of cycles and any subcycles.
Using the rpmbuild-order
rdeps commands the ordered
dependencies and reverse dependencies of a package can be obtained
from the current set of checked out package sources.
As of version 0.4, a library is also provided.
There are two modules:
Distribution.RPM.Build.Graphprovides lower level functions for generating RPM dependency graphs
Distribution.RPM.Build.Orderprovides higher level functions for sorting packages in build dependency orders and output.
Please see the documentation for more details.
Notes and known problems
Given packages A, B, C, where C depends on B, and B depends on A, and you call
rpmbuild-order sort C.spec A.spec
then the output may be wrong if C does not have a direct dependency on A. Even if the order is correct, B is missing in the output and thus in this case the list of packages cannot be reliably used for a sequence of builds.
rdeps commands take
other neighbouring package directories into account.
repoquery is not used to resolve meta-dependencies or files to packages. So if a package BuildRequires a file, it will not be resolved to a package. This may get addressed some day, but file dependencies seem less common for BuildRequires than Requires.
rpmspec is used to parse spec files (for macro expansion etc): so missing macros packages can lead to erroneous results in some cases.
*Note that all licence references and agreements mentioned in the rpmbuild-order README section above are relevant to that project's source code only.