Pas një vit zhvillimi, është publikuar menaxheri i paketave RPM 4.20.0. Projekti RPM4 është në zhvillim nga kompanisë Red Hat dhe përdoret në distribucione të tilla 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 publikimi i një dege të rëndësishme RPM 6, e cila do të angazhojë një format të ri arkivi që, ndryshe nga formati aktual cpio, do të mundësojë krijimin e paketimeve me përmasa mbi 4 GB (kalimi i këtij kufiri është i rëndësishëm pasi paketi SRC me Chromium është afër kufirit dhe ka një përmasë prej 3.7 GB). Në degën e re gjithashtu planifikohet leja për përdorimin e gjuhës C++ për zhvillimin e RPM. Kjo degë e rëndësishme do të përshëndetet me përvjetorin e projektit - më 27 nëntor 2025 do të bëhen 30 vjet nga angazhimi i parë në RPM. Versionet RPM 5.x do të kalohen për të shmangur përplasje me projektin RPM5, i cili nuk është direkt i lidhur 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:
- Një utilitet i ri rpm2archive është përfshirë në paketë, i cili zëvendëson utilitetin rpm2cpio dhe do të lehtësojë kalimin në formatin e ri të paketave, pa përdorur cpio. Ndryshe nga rpm2cpio, ky utilitet i ri kthen një skedhë RPM jo në një arkiv cpio, por në një arkiv në format tar, të kompresuar me gzip. Utiliteti i vjetër rpm2cpio është zëvendësuar me një lidhje simbolike për rpm2archive.
- Një sistem deklarativ i ndërtimit është propozuar, i bazuar në përdorimin e drejtorisë së re "BuildSystem", përmes së cilës mund të përcaktohet sistemi i ndërtimit që do të përdoret gjatë krijimit të paketës. Kodi burimor përgatitet, kompozohet dhe instalohet automatikisht në përputhje me sistemin e ndërtimit të specifikuar, pa nevojën e përcaktimit të veçanta në skedarin SPEC për skriptet 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 distribucioneve të krijojnë makro të veçanta për procese standard të ndërtimit, për të mos përcaktuar skenarët e përsëritur në çdo paketë. Për shembull, në vend të përcaktimit të sekuencave të komandave configure dhe make për programet që përdorin Autotools, tani mjafton të përcaktohet "BuildSystem: autotools" dhe të hiqen sekcionet "%prep", "%build" dhe "%install". Aktualisht, makro të tilla janë përgatitur për Autotools dhe CMake. Nëse është e nevojshme të realizohet një sjellje jo standarde, ata që mbështesin paketat kanë mundësinë të lidhen me makro të veta për të tejkaluar faza të ndryshme të formimit të paketës.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r lidhjen e seksioneve tĂ« tjera me komandat e pĂ«rgatitjes, ndĂ«rtimit, instalimit, konfigurimit, pastrimit dhe kontrollit, duke plotĂ«suar seksionet bazĂ« %prep, %conf, %build, %install, %check dhe %clean. PĂ«r tĂ« ekzekutuar njĂ« skript shtesĂ« para se tĂ« kryhen kodet nga seksioni bazĂ«, Ă«shtĂ« propozuar opsioni "-p", dhe pasi nga seksi bazĂ« - opsioni "-a". TĂ« tilla zĂ«vendĂ«sime mund tĂ« jenĂ« tĂ« dobishme pĂ«r rregullimin e saktĂ« tĂ« sjelljes nĂ« pĂ«rdorimin e regjimit deklarativ tĂ« ndĂ«rtimit tĂ« pĂ«rmendur mĂ« sipĂ«r.
- Në pjesët që formohen dinamike të skedarëve SPEC, lejohet përfshirja e drejtorive dhe seksioneve të cilat nuk ndikojnë në procesin e ndërtimit.
- Makro %builddir është shtuar dhe është realizuar mundësia për të menaxhuar përmes RPM lidhjen e katalogëve të ndërtimit të vet për paketat e veçanta.
- Një protokoll i ri "multi-file" është propozuar, duke përshpejtuar ndjeshëm gjenerimin e varësive.
- NĂ« komandĂ«n rpm Ă«shtĂ« shtuar opsioni "âjson" pĂ«r tĂ« nxjerrĂ« rezultatet e pyetjeve nĂ« formatin JSON.
- Një plugin rpm-plugin-unshare është shtuar, i cili ofron izolimin e skripteve që ekzekutohen në seksionet e ndërtimit, duke përdorur hapësira emrash në Linux. Për shembull, plugin lejon ndalimin e aksesit në rrjet dhe kufizimin e aksesit në sistemin e skedarëve, si dhe përdorimin e katalogeve private /tmp dhe /home për mbrojtje në rast se ndodhin punë të pasigurta me skedarët përkohësorë gjatë ndërtimit të paketave.
- Një API publik për zhvillimin e pluginëve është propozuar, që do të ruajë përputhshmërinë midis lëshimeve. Më herët, API për pluginët ishte i përshtatur vetëm për përdorim të brendshëm dhe mund të ndryshonte nga një lëshim në tjetrin.
- NĂ« komandĂ«n rpmkeys janĂ« shtuar opsionet "âlist" dhe "âdelete".
- Në komandën rpmsign është shtuar mbështetje për 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 makro "%build_mtime_policy", e cila lejon menaxhimin e pĂ«rmbajtjes sĂ« etiketave qĂ« shtohen gjatĂ« ndĂ«rtimit (nĂ«pĂ«rmjet vlerĂ«s clamp_to_source_date_epoch mund tĂ« pĂ«rdoret njĂ« etiketĂ« fikse, dhe nĂ«pĂ«rmjet clamp_to_buildtime mund tĂ« pĂ«rcaktohet koha e vĂ«rtetĂ« e ndĂ«rtimit).
- Në skedarët sysusers.d lejohet të shtohen rreshta për të përcaktuar anëtarët e grupit.
- Ofron mbështetje të saktë dhe të pavarur nga shpërndarjet për skedarët debuginfo.
- Sintaksa e makrosëve %patchN (pa hapësirë para N) është shpallur e vjetruar, përdorimi i së cilës 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).
- Parseri i vjetruar OpenPGP është hequr.
- Krijuesit e varësive për Perl dhe Python ABI janë transferuar në depo të veçanta.
Burimi: opennet.ru
