The RPM is a family of package managers used by various GNU/Linux distributions, including the Sisyphus project and the ALT Linux distributions. Every major Linux distribution which used RPM actually has its own version of the package manager that is different from the another.
The major differences between members of the RPM family:
- a set of macros used in .spec files,
- different RPM behavior when building "by default", in case of absence of any instructions in the .spec files,
- format of dependency lines,
- minor differences in the semantics of operations (for example, in operations for comparing package versions),
- minor differences in file format.
For the ordinary user, the most common differences are the inability to install a "non-native" package due to dependency issues or package format.
RPM in the Sisyphus project is no exception. The main features of RPM in ALT Linux and Sisyphus that differ from RPM in other large projects are as follows:
- extensive set of macros for building of various types of packages
- different "default" behavior to reduce the amount of template code in .spec files,
- availability of mechanisms for automatic search for inter-package dependencies,
- a very ancient version of the "base" RPM that started the development of the RPM branch in Sisyphus (in distributions based on branches up to and including p8; Sisyphus has a partial transition to rpm 4.13),
- the presence of so-called set-version dependencies (starting from 4.0.4-alt98.46), which provide additional control over the ABI changes of the libraries.
At the moment, the list of spec macros files and their meaning is exhaustively documented only in the files with macro definitions (/usr/lib/rpm and /etc/rpm/macros.d).