Po takmer dvoch rokoch vývoja je vydanie balíčkového správcu . Projekt RPM4 sa vyvíja spoločnosťou Red Hat a používa sa v takých distribúciách ako RHEL (vrátane odvozených projektov CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen a mnohých ďalších. Predtým sa vyvíjal nezávislým tímom vývojárov projekt , ktorý nie je priamo spojený s RPM4 a v súčasnosti je zastaraný (nebol aktualizovaný od roku 2010).
Najvýraznejšie v RPM 4.15:
- Pridaná experimentálna podpora nepriviligovanej kompilácie v prostredí chroot;
- podpora paralelizovania kompilácie balíkov na viacerých jadrových systémoch. Obmedzenie počtu vláken sa nastavuje pomocou makra „%_smp_build_ncpus“ a premennej $RPM_BUILD_NCPUS. Pre určenie počtu CPU je navrhnuté makro „%getncpus“;
- V súboroch špecifikácií sa objavila podpora podmienkového operátora „%elif“ (else if), ako aj varianty „%elifos“ a „%elifarch“ na viazanie k distribúcii a architektúre;
- nové sekcie „%patchlist“ a „%sourcelist“, ktoré sa môžu používať na pridávanie patchov a zdrojových textov jednoduchým vymenovaním názvov bez určenia čísel záznamov (napríklad namiesto
„Patch0: popt-1.16-pkgconfig.patch“ v sekcii %patchlist je možné uviesť „popt-1.16-pkgconfig.patch“); - V rpmbuild podpora dynamickej kompilácie závislostí s ich zahrnutím do src.rpm. V súbore špecifikácií bola pridaná podpora sekcie „%generate_buildrequires“, ktorej obsah sa spracováva ako zoznam závislostí (BuildRequires), ktorý vyžaduje kontrolu (ak závislosť chýba, zobrazí sa chyba).
- operátor „^“ na kontrolu verzií starších než zadané dátum, vykonávajúci akciu opačnú voči operátoru „~“. Napríklad,
„1.1^20160101“ pokryje verziu 1.1 a patche pridané po 1. januári 2016; - Pridaná možnosť „—scm“ na aktiváciu režimu „%autosetup SCM“;
- Pridané vstavané makro „%{expr:…}“ na výpočet ľubovoľných výrazov (pred niekoľkými dňami bolo tiež vo formáte „%[ expr ]“ );
- Zabezpečené použitie ako predvolené kódovanie UTF-8 pre reťazcové dáta v hlavičkách;
- Pridané globálne makrá %build_cflags, %build_cxxflags, %build_fflags a %build_ldflags s flagmi pre kompilátor a linker;
- Pridané makro „%dnl“ (Discard to Next Line) na vkladanie komentárov;
- V bindingoch pre Python 3 je zabezpečené vrátenie reťazcov vo forme escape sekvencií UTF-8 namiesto bajtových údajov;
- Pridaný fiktívny backend DB na zlepšenie podpory systémov bez rpmdb (napríklad Debian);
- Vylepšené rozpoznávanie architektúry ARM a pridaná podpora armv8;
- Zabezpečená bezproblémová podpora Lua 5.2-5.3, ktorá nevyžaduje definície compat v kóde.
Zdroj: opennet.ru
