RPM 4.16 release

After a year of development took place package manager release RPM 4.16.0. The RPM4 project is developed by Red Hat and is used in distributions such as RHEL (including derivative projects of CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen, and many others. Formerly an independent development team developed project RPM5, which is not directly related to RPM4 and is currently abandoned (hasn't been updated since 2010). Project code spreads licensed under GPLv2 and LGPLv2.

Most notable improvements in RPM 4.16:

  • Implemented a new backend for storing databases in the SQLite DBMS. This backend will be used in Fedora Linux 33 instead of a BerkeleyDB based backend.
  • Implemented a new experimental backend for storing a database in BDB (Oracle Berkeley DB), working in read-only mode. The implementation is written from scratch and does not use the legacy BerkeleyDB backend code, which has been deprecated but is still enabled by default.
  • Removed experimental database backend based on LMDB.
  • Declared stable database backend based on NDB storage.
  • Support added to macros and "%if" expressions tenary operator (%{expr:1==0?"yes":"no"}) and a built-in ability to compare versions ('%[v"3:1.2-1" > v"2.0"]').
  • Implemented support for classifying files based on the MIME types of their content.
  • Added the ability to generate dependencies using parametric macros.
  • A new version of the Parsing and Comparison API for C and Python has been proposed.
  • Parallelization of execution of brp-strip and test suite components is provided. Optimization of parallelization of the packet generation process has been carried out.
  • To the rpmdb utility added "--salvagedb" option to recover a corrupted database (only works with the NDB backend).
  • Added new macros %arm32, %arm64 and %riscv to define the architecture. Also added built-in macro %{macrobody:…} to get the contents of macros.
  • In expressions, it is forbidden to use words not separated by quotes, i.e. instead of 'a == b' now you need to write '"a" == "b"'.
  • The expression parser implements the "%[...]" syntax for executing an expression with macro expansion (it differs from "%{expr:...}" in that macros are executed first).
  • Added support for short expansion of logical and tenary operators 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").
  • Behavior of "||" Operators and "&&" is aligned with Perl/Python/Ruby, i.e. instead of returning a boolean value, it now returns the last value evaluated (for example, "%[2 || 3]" will return 2).
  • Added the ability to verify alternative formats of digital signatures and hashes.
  • Added support for meta dependencies (Requires(meta): somepkg) that do not affect the order of installation and removal.
  • Added "--rpmv3" option to rpmsign to force RPM3 digital signatures.
  • Added installation option "--excludeartifacts" to skip installation of documentation, sample configuration files, and other related data.
  • RPMv3 support and beecrypt and NSS crypto backends have been deprecated.
  • Added support for DSA2 (gcrypt) and EdDSA.

Source: opennet.ru

Add a comment