Vydání balíčkového manažeru RPM 4.20 a zahájení vývoje RPM 6

Po roce vývoje byl vydán balíčkový manažer RPM 4.20.0. Projekt RPM4 vyvíjí společnost Red Hat a používá se v distribucích jako RHEL, Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS a Tizen. Kód projektu je distribuován pod licencemi GPLv2 a LGPLv2.

V příštím roce se očekává vydání významného vydání RPM 6, které využije nový formát archivu, umožňující oproti aktuálně používanému formátu cpio vytvářet balíčky větší než 4 GB (překonání této hranice je důležité, protože SRC-balení s Chromium je blízko tohoto limitu a má velikost 3,7 GB). V nové větvi se také plánuje povolit používání jazyka C++ pro vývoj RPM. Nové významné vydání bude spojeno s výročím projektu — 27. listopadu 2025 uplyne 30 let od prvního commitu v RPM. Verze RPM 5.x budou přeskočeny, aby se vyloučila překrytí s projektem RPM5, který není přímo spojen s RPM od Red Hat, byl vyvíjen nezávislým týmem vývojářů a nebyl aktualizován od roku 2016.

Nejvýznamnější vylepšení v RPM 4.20:

  • Byl přidán nový nástroj rpm2archive, který nahradil nástroj rpm2cpio a usnadní přechod na nový formát balíčků, který nepoužívá cpio. Na rozdíl od rpm2cpio nový nástroj převádí RPM-soubor nikoli na archiv cpio, ale na archiv ve formátu tar, komprimovaný pomocí gzip. Starý nástroj rpm2cpio byl nahrazen symbolickým odkazem na rpm2archive.
  • Byl navržen deklarativní systém sestavení, založený na použití nové direktivy "BuildSystem", pomocí které může být určena stavební systém použitý při vytváření balíčku. Zdrojový kód je automaticky připraven, zkompilován a nainstalován s ohledem na zvolený systém sestavení, bez potřeby samostatného určení v SPEC-souboru skriptů pro přípravu, sestavení a instalaci v blocích "%prep", "%build" a "%install". V RPM jsou podporované systémy sestavení určovány ve formě kolekcí maker.

    Hlavní myšlenkou je, že deklarativní formát konfigurace umožní vývojářům distribucí vytvářet samostatné makra pro standardní procesy sestavení, aby se předešlo opakovanému definování scénářů v každém balíčku. Například místo definování sekvencí příkazů configure a make pro programy využívající Autotools, nyní stačí uvést „BuildSystem: autotools“ a obejít se bez sekcí „%prep“, „%build“ a „%install“. V současné době jsou taková makra připravena pro Autotools a CMake. V případě potřeby realizace nestandardního chování mají správci balíčků možnost připojit svá makra pro přepsání různých fází tvorby balíčku.

  • Byla přidána podpora pro připojení dalších sekcí k příkazům přípravy, sestavení, instalace, konfigurace, vyčištění a kontroly, které doplňují základní sekce %prep, %conf, %build, %install, %check a %clean. Pro spuštění dalšího skriptu před provedením kódu ze základní sekce byla navržena možnost „-p“, a po základní sekci - možnost „-a“. Tyto substituce mohou být užitečné pro přesné úpravy chování při používání výše popsaného deklarativního režimu sestavení.
  • Do dynamicky vytvářených částí SPEC souborů bylo povoleno zahrnout direktivy a sekce, které nemají vliv na proces sestavení.
  • Bylo přidáno makro %builddir a byla implementována spravovaná možnost pomocí RPM pro vázání vlastních stavebních adresářů k jednotlivým balíčkům.
  • Byl navržen nový protokol „multi-file“, který výrazně zrychluje generaci závislostí.
  • Do příkazu rpm byla přidána možnost „—json“ pro výstup výsledků dotazů ve formátu JSON.
  • Byl přidán plugin rpm-plugin-unshare, který zajišťuje izolaci skriptů prováděných v stavebních sekcích, využívající jmenné prostory v Linuxu. Například plugin umožňuje zakázat přístup k síti a omezit přístup k souborovému systému, a také používat samostatné soukromé adresáře /tmp a /home pro ochranu v případě nebezpečné práce s dočasnými soubory při sestavování balíčků.
  • Bylo navrženo veřejné API pro vývoj pluginů, které zachová kompatibilitu mezi verzemi. Dříve bylo API pro pluginy určeno pouze pro interní použití a mohlo se měnit s každou verzí.
  • Do příkazu rpmkeys byly přidány možnosti „—list“ a „—delete“.
  • Do týmu rpmsign byla přidána podpora pro vytváření digitálních podpisů balíčků pomocí klíčů ECDSA.
  • Byla vylepšena podpora opakovaných sestavení. Přidán makro "%build_mtime_policy", které umožňuje spravovat obsah přidávaných časových štítků při sestavení (pomocí hodnoty clamp_to_source_date_epoch lze použít pevný štítek, a pomocí clamp_to_buildtime lze uvést skutečný čas sestavení).
  • Ve файlech sysusers.d je nyní povoleno přidávat řádky pro definici členů skupiny.
  • Byla zajištěna správná a distribucím nezávislá podpora souborů debuginfo.
  • Byla vyhlášena zastaralost syntaktických makrů %patchN (bez mezery před N), jejichž použití nyní povede k chybě (je třeba použít syntaxi "%patch N" nebo "%patch -P N", kde N je číslo patch).
  • Byl odstraněn zastaralý parser OpenPGP.
  • Generátory závislostí pro Perl a Python ABI byly vyčleněny do samostatných repozitářů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster