Efter næsten to års udvikling udgivelsen af pakkehåndtereren . RPM4-projektet udvikles af Red Hat og anvendes i distributioner som RHEL (herunder afledte projekter som CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen og mange flere. Tidligere blev udviklingen af et uafhængigt udviklerteam projekt , som ikke er direkte relateret til RPM4 og i øjeblikket er forladt (ikke blevet opdateret siden 2010).
De mest bemærkelsesværdige ændringer i RPM 4.15:
- Tilføjet eksperimentel support for ujordet byggeri i chroot-miljøer;
- support for parallel bygning af pakker på multicore systemer. Antallet af tråde kan defineres via makroen «%_smp_build_ncpus» og variablen $RPM_BUILD_NCPUS. Makroen «%getncpus» er foreslået til at bestemme antal CPU'er;
- I spec-filer er der tilføjet support for den betingede operator «%elif» (else if), samt varianter «%elifos» og «%elifarch» til binding til distribution og arkitektur;
- nye sektioner «%patchlist» og «%sourcelist», som kan anvendes til at tilføje patches og kildekoder ved simpel opregning af navne uden angivelse af postnumre (for eksempel, i stedet for
«Patch0: popt-1.16-pkgconfig.patch» i sektionen %patchlist kan man angive «popt-1.16-pkgconfig.patch»); - I rpmbuild support for dynamisk opbygning af afhængigheder med deres inkludering i src.rpm. Spec-filen er udvidet med support for sektionen «%generate_buildrequires», hvis indhold behandles som en liste af afhængigheder (BuildRequires), der kræver kontrol (hvis en afhængighed mangler, vil der blive vist en fejl).
- operatoren «^» til kontrol af versioner, der er ældre end den angivne dato, udfører handlingen modsat operatoren «~». For eksempel,
«1.1^20160101» vil omfatte version 1.1 og patches tilføjet efter 1. januar 2016; - Tilføjet option «—scm» for at aktivere tilstanden «%autosetup SCM»;
- Tilføjet indbygget makro «%{expr:…}» til beregning af vilkårlige udtryk (for nogle dage siden blev også formatet «%[ expr ]» introduceret);
- Sikret som standard brug af UTF-8 kodning til strenge i overskrifter;
- Tilføjet globale makroer %build_cflags, %build_cxxflags, %build_fflags og %build_ldflags med flag til compiler og linker;
- Tilføjet makro «%dnl» (Discard to Next Line) til indsættelse af kommentarer;
- I bindingerne til Python 3 er der sikret, at strenge returneres som UTF-8 escape-sekvenser i stedet for byte-data;
- Tilføjet en fiktiv backend-database for bedre support af systemer uden rpmdb (for eksempel Debian);
- Forbedret identifikation af ARM-arkitektur og tilføjet støtte til armv8;
- Sikret sømløs support for Lua 5.2-5.3, uden behov for compat-definitioner i koden.
Kilde: opennet.ru
