rpmbuild-order: Order RPM packages by dependencies

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

The rpmbuild-order tool orders RPM packages by dependencies, so that they can be built in the correct order. It does this by reading RPM package spec files and then topologically sorts them according to their dependencies. The code originates from cabal-sort by Henning Thielemann. It can also output the ordered dependencies or reverse depends for one or more packages, provided all the packages are checked out in neighboring directories. This is also useful to see what packages are affected when a low-level package changes.


[Skip to Readme]

Properties

Versions 0.1, 0.2, 0.2.1, 0.3, 0.3, 0.3.1, 0.4.0, 0.4.1, 0.4.2, 0.4.2.1, 0.4.3, 0.4.3.1, 0.4.3.2, 0.4.4, 0.4.4.1, 0.4.5, 0.4.6, 0.4.6.1, 0.4.7, 0.4.8, 0.4.9, 0.4.10, 0.4.11, 0.4.12
Change log ChangeLog.md
Dependencies base (<5), bytestring, Cabal, containers, directory, fgl, filepath, optparse-applicative, process, simple-cmd-args [details]
License BSD-3-Clause
Copyright 2010-2018 Henning Thielemann, 2018 Jens Petersen <petersen@redhat.com>
Author Henning Thielemann <haskell@henning-thielemann.de>
Maintainer Jens Petersen <petersen@redhat.com>
Category Distribution
Home page https://github.com/juhp/rpmbuild-order
Bug tracker https://github.com/juhp/rpmbuild-order/issues
Source repo head: git clone https://github.com/juhp/rpmbuild-order
Uploaded by JensPetersen at 2019-10-10T08:14:06Z

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for rpmbuild-order-0.3

[back to package description]

Build Status Hackage license

rpmbuild-order

This package 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 named after the package, or spec files.

By default it outputs the package names, but it can also output the spec filenames or directory paths for easier scripting.

Using the rpmbuild-order deps and rdeps commands the ordered dependencies and reverse dependencies of a package can be obtained from the current set of checked out package sources.

Known problems

  1. 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.

However rpmbuild-order deps and rpmbuild-order rdeps take other neighbouring package directories into account.

  1. repoquery is not used to resolve Requires or filelists for Provides. So if a package BuildRequires: /usr/bin/sometool it will not be resolved. This may get addressed in a future version.