Po roce vývoje vydání balíčkovacího systému . Projekt RPM4 vyvíjí společnost Red Hat a používá se v takových distribucích jako RHEL (včetně odvozených projektů CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen a mnoha dalších. Dříve byl vyvíjen nezávislým týmem vývojářů projekt , který není přímo spojen s RPM4 a v současnosti je opuštěný (nebyl aktualizován od roku 2010). Kód projektu je licencován pod GPLv2 a LGPLv2.
Nejvýraznější v RPM 4.16:
- Byl realizován nový backend pro ukládání databáze v SGBD SQLite. Tento backend ve Fedora Linux 33 místo backendu založeného na BerkeleyDB.
- Byl realizován nový experimentální backend pro ukládání databáze v BDB (Oracle Berkeley DB), který funguje v režimu pouze pro čtení. Implementace byla napsána znovu a nevyužívá kód minulého backendu BerkeleyDB, který byl označen za zastaralý, ale stále je zapnutý jako výchozí.
- Byl odstraněn experimentální backend databáze založený na LMDB.
- Byl oznámen stabilní backend databáze založený na úložišti NDB.
- Byla přidána podpora pro makra a výrazy „%if“ (%{expr:1==0?»yes»:»no»}) a navržena vestavěná funkce pro porovnávání verzí (‘%[v»3:1.2-1″ > v»2.0″]’).
- Byla zrealizována podpora klasifikace souborů na základě MIME typů jejich obsahu.
- Byla přidána možnost generace závislostí pomocí .
- Byla navržena nová verze API pro analýzu a porovnávání pro jazyky C a Python.
- Bylo zajištěno paralelní provádění brp-strip a komponent testovacího souboru. Byla provedena optimalizace paralelizace procesu generace balíčků.
- Do nástroje rpmdb byla přidána volba „—salvagedb“ pro obnovu poškozené databáze (funguje pouze s backendem NDB).
- Byla přidána nová makra %arm32, %arm64 a %riscv pro určení architektury. Také bylo přidáno vestavěné makro %{macrobody:…} pro získání obsahu maker.
- V expresích je zakázáno použití neuzavřených uvozovek, tj. místo 'a == b' nyní musíte psát '»a» == «b»'.
- V parseru výrazů byl realizován syntaktický význam „%[…]“ pro provádění výrazu s rozbalením maker (od „%{expr:…}“ se liší tím, že makra se provádějí jako první).
- Do výrazů byla přidána podpora pro zjednodušené rozbalení logických a ternárních operátorů („%[0 && 1 / 0]“ je považováno za 0, a nezpůsobuje chybu při pokusu o dělení nulou).
- Byla přidána podpora použití logického operátoru NOT v libovolných kontextech (!»%?foo»).
- Chování operátorů «||» a «&&» bylo přizpůsobeno Perl/Python/Ruby, tj. místo návratu boolean hodnoty nyní vrací poslední vyhodnocenou hodnotu (např. «%[2 || 3]» vrátí 2).
- Byla přidána možnost verifikace alternativních formátů digitálních podpisů a hashů.
- Byla přidána podpora meta-závislostí (Requires(meta): somepkg), které neovlivňují pořadí instalace a odinstalace.
- Do rpmsign byla přidána volba «—rpmv3» pro nucené použití digitálních podpisů ve formátu RPM3.
- Byla přidána instalační volba «—excludeartifacts» pro přeskočení instalace dokumentace, ukázkových konfiguračních souborů a dalších příslušných dat.
- Byla vyhlášena podpora RPMv3 a kryptografických backendů beecrypt a NSS jako zastaralá.
- Byla přidána podpora DSA2 (gcrypt) a EdDSA.
Zdroj: opennet.ru
