RPM 4.16 comes with improvements in DBs, operators, macros and more

After a year of development, finally the launch of the stable version of the package manager "RPM 4.16"In which some improvements were made about the operators, new backends and other changes.

The RPM4 project is developed by Red Hat and is used in distributions such as RHEL (including those derived from CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen, and many others.

Previously, an independent development team developed the RPM5 project, which is not directly related to RPM4 and is currently abandoned (not updated since 2010). The project code is distributed under the GPLv2 licenses

Main new features of RPM 4.16

In this new released version of the RPM 4.16 package manager a new backend was implemented to store databases in SQLite DBMS, with this backend it is planned that the Fedora 33 version will make use of this instead of the BerkeleyDB based backend.

Another change that was implemented is the new experimental read-only backend for database storage at BDB (Oracle Berkeley DB). The implementation is written from scratch and does not use the BerkeleyDB legacy backend code, which is deprecated but still included by default.

On the part of macros and expressions "% If" support for the tenary operator has been added (% {expr: 1 == 0? »yes»: »no»}) and offer a built-in version comparison ('% [v »3: 1.2-1 ″> v» 2.0 ″]') and new ones were added macros% arm32,% arm64 and% riscv to define the architecture and also together with them the built-in macro% {macrobody:…} to obtain macro content.

In addition to that, a new version of the parsing and comparison API has been proposed for C and Python languages.

Brp-strip execution parallelization provided and the components of the test suite. The optimization of the parallelization of the package generation process has been carried out.

Also added "–salvagedb" option to rpmdb utility to restore corrupted database (only works with NDB backend).

It is forbidden to use words that are not separated by quotation marks in expressions, eg. Eg instead of 'a == b' now you need to write '»a» == »b»'.

The expression parser implements the syntax "% […]" to execute an expression with macro expansion (differs from "% {expr: ...}" in that macros are executed first).

Has been added support for short expansion of logical operators and tenaries in expressions ("% [0 && 1/0]" is treated as 0 and does not result in an error due to an attempt to divide by zero).

Added support for using the logical NOT operator in arbitrary contexts (! "%? Foo").

The behavior of the "||" operators and "&&" is Perl / Python / Ruby aligned, ie instead of returning a Boolean value, it now returns the last calculated value (for example, "% [2 || 3]" will return 2).

Of the other changes that stand out of this new version of RPM 4.16:

  • Added the ability to verify alternative formats for digital signatures and hashes.
  • Added support for meta-dependencies (Requires (meta): somepkg), which do not affect the order of installation and removal.
  • Added "–rpmv3" option to rpmsign to enforce RPM3 digital signatures.
  • Added an install option "–excludeartifacts" to skip the installation of documentation, sample configuration files, and other related data.
  • Obsolete support for RPMv3 and beecrypt cryptographic backends and NSS.
  • Added support for DSA2 (gcrypt) and EdDSA.
  • LMDB-based experimental backend database removed.
  • Stable backend database declared based on NDB storage.
  • Support has been implemented for classifying files according to their MIME content types.
  • Added the ability to generate dependencies using parametric macros.

Finally if you want to know more about it, you can check the complete changelog In the following link.

As for the implementation of the new version, you have to wait for it to be placed within the official channels of your distribution or if you are an enthusiast you can compile the package. The link of download is this.

The content of the article adheres to our principles of editorial ethics. To report an error click here.

Be the first to comment

Leave a Comment

Your email address will not be published. Required fields are marked with *



  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.