Pas njĂ« vit zhvillimi, u lĂ«shua menaxheri i paketave RPM 4.20.0. Projekti RPM4 zhvillohet nga kompanĂa Red Hat dhe pĂ«rdoret nĂ« distribucionet si RHEL, Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS dhe Tizen. Kodi i projektit shpĂ«rndahet nĂ«n licencat GPLv2 dhe LGPLv2.
Në vitin e ardhshëm pritet të publikohet një degë e rëndësishme e RPM 6, në të cilën do të përdoret një format i ri arkivi, që në ndryshim nga formati aktual cpio, lejon krijimin e paketimeve më të mëdha se 4 GB (kapërcimi i këtij kufizimi është i rëndësishëm pasi paketa SRC me Chromium është afër këtij kufiri dhe ka një madhësi prej 3.7 GB). Në degën e re gjithashtu planifikohet leja e përdorimit të gjuhës C++ për zhvillimin e RPM. Kjo degë e rëndësishme do të përkojë me përvjetorin e projektit - më 27 nëntor 2025 do të kalojnë 30 vjet nga komiti i parë në RPM. Versionet RPM 5.x do të lihet mënjanë për të shmangur ndërprerjet me projektin RPM5, i cili nuk lidhet drejtpërdrejt me RPM nga Red Hat, është zhvilluar nga një ekip zhvilluesish të pavarur dhe nuk është përditësuar që nga viti 2016.
Përmirësimet më të dukshme në RPM 4.20:
- Në paketë është përfshirë një utilitar i ri rpm2archive, i cili zëvendëson utilitarin rpm2cpio dhe në të ardhmen do ta thjeshtojë kalimin në formatin e ri të paketave, i cili nuk përdor cpio. Ndryshe nga rpm2cpio, utilitari i ri nxit RPM-në në një arkiv në formatin tar, të kompresuar me gzip. Utilitari i vjetër rpm2cpio është zëvendësuar nga një lidhje simbolike me rpm2archive.
- ĂshtĂ« propozuar njĂ« sistem deklarativ ndĂ«rtimi, i bazuar nĂ« pĂ«rdorimin e drejtoreshĂ«s sĂ« re "BuildSystem", pĂ«rmes sĂ« cilĂ«s mund tĂ« pĂ«rcaktohet sistemi i ndĂ«rtimit qĂ« pĂ«rdoret gjatĂ« krijimit tĂ« paketĂ«s. Kodi burimor pĂ«rgatitet automatikisht, kompilohen dhe instalohet duke marrĂ« parasysh sistemin e ndĂ«rtimit tĂ« caktuar, pa pasur nevojĂ« pĂ«r pĂ«rcaktimin e veçantĂ« nĂ« skedarin SPEC pĂ«r skenaret e pĂ«rgatitjes, ndĂ«rtimit dhe instalimit nĂ« blloqet "%prep", "%build" dhe "%install". NĂ« RPM, sistemet e ndĂ«rtimit tĂ« mbĂ«shtetura pĂ«rcaktohen nĂ« formĂ«n e koleksioneve tĂ« makros.
Ideja kryesore është se formati deklarativ i konfigurimit do të lejojë zhvilluesit e distribuimeve të krijojnë makro të veçanta për proceset tipike të ndërtimit, në mënyrë që të mos përcaktojnë skenarë të përsëritur në çdo paketë. Për shembull, në vend që të përcaktojnë sekuenca të komandave configure dhe make për programet që përdorin Autotools, tani mjafton të tregoni "BuildSystem: autotools" dhe të shmangni seksionet "%prep", "%build" dhe "%install". Aktualisht, makro të ngjashme janë përgatitur për Autotools dhe CMake. Nëse është e nevojshme të realizohet sjellje jo standart, ata që mbështesin paketat kanë mundësinë të lidhen me makrot e tyre për të ri-përcaktuar faza të ndryshme të formimit të paketës.
- Shtuar mbĂ«shtetje pĂ«r lidhjen e seksioneve shtesĂ« me komandat e pĂ«rgatitjes, ndĂ«rtimit, instalimit, konfigurimit, pastrimit dhe verifikimit, duke plotĂ«suar seksionet bazĂ« %prep, %conf, %build, %install, %check dhe %clean. PĂ«r tĂ« ekzekutuar njĂ« skript shtesĂ« para ekzekutimit tĂ« kodit nga seksioni bazĂ«, Ă«shtĂ« propozuar opsioni "-p", dhe pas seksionit bazĂ« â opsioni "-a". ZĂ«vendĂ«sime tĂ« tilla mund tĂ« jenĂ« tĂ« dobishme pĂ«r rregullimin e sjelljes kur pĂ«rdoret lartpĂ«rmenduri formati deklarativ i ndĂ«rtimit.
- Në pjesët e formuara dinamikisht të skedave SPEC është lejuar përfshirja e drejtimeve dhe seksioneve që nuk ndikojnë në procesin e ndërtimit.
- Shtuar makron %builddir dhe realizuar mundësinë e menaxhuar përmes RPM për të lidhur katalogë ndërtimi të veçantë me paketat e veçanta.
- Propozuar një protokoll të ri "multi-file", që ndjeshëm shpejton gjenerimin e varësive.
- NĂ« komandĂ«n rpm Ă«shtĂ« shtuar opsioni "âjson" pĂ«r tĂ« nxjerrĂ« rezultatet e pyetjeve nĂ« formatin JSON.
- Shtuar pluginin rpm-plugin-unshare, që ofron izolimin e skripteve të ekzekutuara në seksionet e ndërtimit, duke përdorur hapësirat e emrave në Linux. Për shembull, plugini lejon të ndalohet qasja në rrjet dhe të kufizohet qasja në sistemin e skedarëve, si dhe të përdoren katalogë privatë të veçantë /tmp dhe /home për të siguruar në rast se puna me skedarët e përkohshëm është e pasigurt gjatë ndërtimit të paketimeve.
- Propozuar një API publik për zhvillimin e pluginave, i cili do të ruajë kompaktibilitetin midis versioneve. Më parë, API për plugina ishte projektuar vetëm për përdorim të brendshëm dhe mund të ndryshonte nga versioni në version.
- NĂ« komandĂ«n rpmkeys janĂ« shtuar opsionet "âlist" dhe "âdelete".
- Grupi rpmsign tani mbështet krijimin e nënshkrimeve digjitale për paketat, duke përdorur çelësa ECDSA.
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r ndĂ«rtimet e pĂ«rsĂ«ritura. ĂshtĂ« shtuar makrosi "%build_mtime_policy", tĂ« cilin mund ta pĂ«rdorni pĂ«r tĂ« menaxhuar pĂ«rmbajtjen e etiketimeve tĂ« shtuar gjatĂ« ndĂ«rtimit me kohĂ« (me vlerĂ«n clamp_to_source_date_epoch mund tĂ« pĂ«rdorni njĂ« etiketĂ« fikse, ndĂ«rsa me clamp_to_buildtime mund tĂ« specifikoni kohĂ«n e saktĂ« tĂ« ndĂ«rtimit).
- Në skedarët sysusers.d lejohet shtimi i rreshtave për të përcaktuar anëtarët e grupit.
- Kjo siguron një mbështetje korrekte dhe të pavarur nga shpërndarjet për skedarët debuginfo.
- Sintaksa e makrosit %patchN (pa hapësirë para N) është shpallur e vjetruar, përdorimi i saj tani do të çojë në një gabim (duhet të përdoret sintaksa "%patch N" ose "%patch -P N", ku N është numri i patch-it).
- Kjo ka hequr parser-in e vjetruar OpenPGP.
- Gjeneratorët e varësive për Perl dhe Python ABI janë transferuar në repozitore të veçanta.
Burimi: opennet.ru
