RPM Lead

The RPM lead is a (legacy) header to the RPM file. It’s content is superseded by the header dictionary later on in the file. However some tools still use the the RPM lead (e.g. YUM, DNF).

Therefore the lead information must be filled as good as possible. Two important fields are the “architecture” and the “operating system” flag. Both values get mapped from the OS and ARCH parameters in the extended header section. Where in the extended header those values are of “string” type, the RPM lead only has a 16bit integer and less choices. So what happens is a reduction from a more complex string type to a simpler int type.

Using the string type new architectures and operating systems can the taken into account easily, however the int field in the lead section doesn’t get extended anymore. The rpmbuild tool provides a mapping table in the macros which help automatically translating from the string to the int version.

However this plugin cannot make use of this file as the file would not be available on platforms where RPM isn’t installed. And the main purpose of this plugin is to support RPM creating on all platforms without rpmbuild being installed.

Lead overrides

Therefore the plugin will map architecture and operating system values as good as possible. However sometimes the mapping will fail and it will revert back to default values.

If you run into such a case it is possible to manually provide RPM lead values for architecture and operating system using the the properties leadOverrideArchitecture and leadOverrideOperatingSystem.