Nach einem Jahr Entwicklung wurde der Paketmanager . Das RPM4-Projekt wird von Red Hat vorangetrieben und findet Verwendung in Distributionen wie RHEL (einschließlich der Derivate CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen und vielen anderen. Zuvor wurde es von einem unabhängigen Entwicklerteam Projekt , der nicht direkt mit RPM4 verbunden ist und derzeit eingestellt ist (seit 2010 nicht mehr aktualisiert). Der Code des Projekts unter den Lizenzen GPLv2 und LGPLv2.
Die bemerkenswertesten In RPM 4.16:
- Ein neuer Backend zur Speicherung von Datenbanken in SQLite wurde implementiert. Dieser Backend in Fedora Linux 33 anstelle des BerkeleyDB-basierten Backends.
- Ein neuer experimenteller Backend zur Speicherung von Datenbanken in BDB (Oracle Berkeley DB) wurde implementiert, der im Nur-Lese-Modus arbeitet. Diese Implementierung wurde von Grund auf neu geschrieben und verwendet keinen Code des veralteten BerkeleyDB-Backends, das als obsolet erklärt wurde, aber weiterhin standardmäßig eingeschlossen wird.
- Der experimentelle LMDB-Datenbank-Backend wurde entfernt.
- Der NDB-Speicher-Backend wurde als stabil bekannt gegeben.
- Unterstützung für die Makros und Ausdrücke „%if“ wurde hinzugefügt (%{expr:1==0?»yes»:»no»}) sowie eine eingebaute Möglichkeit zum Versionsvergleich (‘%[v»3:1.2-1″ > v»2.0″]’).
- Unterstützung für die Klassifizierung von Dateien basierend auf deren MIME-Typen wurde implementiert.
- Die Möglichkeit zur Generierung von Abhängigkeiten mittels .
- Eine neue Version der API für das Parsen und den Vergleich für die Programmiersprachen C und Python wurde vorgeschlagen.
- Die Parallelverarbeitung von brp-strip und den Komponenten des Testsets wurde sichergestellt. Der Parallelisierungsprozess zur Paketgenerierung wurde optimiert.
- In das Tool rpmdb die Option «—salvagedb» wurde hinzugefügt, um eine beschädigte Datenbank wiederherzustellen (funktioniert nur mit dem NDB-Backend).
- Neue Makros %arm32, %arm64 und %riscv wurden hinzugefügt, um die Architektur zu bestimmen. Außerdem wurde das integrierte Makro %{macrobody:…} hinzugefügt, um den Inhalt von Makros zu erhalten.
- In Ausdrücken ist die Verwendung von nicht in Anführungszeichen gesetzten Wörtern verboten, d.h. anstelle von 'a == b' muss jetzt '»a» == «b»' geschrieben werden.
- Im Ausdrucksparser wurde die Syntax «%[…]» implementiert, um Ausdrücke mit der Auswertung von Makros auszuführen (unterscheidet sich von ‘%{expr:…}’, da die Makros zuerst ausgeführt werden).
- In Ausdrücken wurde die Unterstützung für die kurze Auswertung logischer und ternärer Operatoren hinzugefügt («%[0 && 1 / 0]» wird als 0 angesehen und führt nicht zu einem Fehler durch Dividieren durch null).
- Die Unterstützung für die Anwendung des logischen Operators NOT in beliebigen Kontexten wurde hinzugefügt (!»%?foo»).
- Das Verhalten der Operatoren „||“ und „&&“ wurde an Perl/Python/Ruby angepasst, d.h. anstelle eines booleschen Wertes wird jetzt der zuletzt berechnete Wert zurückgegeben (zum Beispiel gibt „%[2 || 3]“ 2 zurück).
- Die Möglichkeit zur Verifizierung alternativer Formate von digitalen Signaturen und Hashes wurde hinzugefügt.
- Unterstützung für Meta-Abhängigkeiten (Requires(meta): somepkg) wurde hinzugefügt, die die Installations- und Deinstallationsreihenfolge nicht beeinflussen.
- In rpmsign wurde die Option „—rpmv3“ hinzugefügt, um die Verwendung von digitalen Signaturen im RPM3-Format zu erzwingen.
- Eine Installationsoption „—excludeartifacts“ wurde hinzugefügt, um die Installation von Dokumentationen, Beispieldateien und anderen Begleitdaten zu überspringen.
- Die Unterstützung für RPMv3 und die Krypto-Backends beecrypt und NSS wurde als veraltet erklärt.
- Unterstützung für DSA2 (gcrypt) und EdDSA wurde hinzugefügt.
Quelle: opennet.ru
