Lansarea managerului de pachete RPM 4.15

După aproape doi ani de dezvoltare a avut loc lansarea managerului de pachete RPM 4.15.0. Proiectul RPM4 este dezvoltat de compania Red Hat și este utilizat în distribuții precum RHEL (inclusiv proiectele derivate CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen și multe altele. În trecut, a fost realizat de o echipă independentă de dezvoltatori s-a dezvoltat proiect RPM5, care nu este direct legat de RPM4 și este în prezent abandonat (nu a fost actualizat din 2010).

Cele mai notabile îmbunătățiri în RPM 4.15:

  • A fost adăugat suport experimental pentru compilare neprivilegiată în medii chroot;
  • Implementată suport pentru paralelizarea compilării pachetelor pe sisteme multicore. Numărul de fire de execuție este setat prin macro-ul „%_smp_build_ncpus” și variabila $RPM_BUILD_NCPUS. Pentru a determina numărul de CPU a fost propus macro-ul „%getncpus”;
  • În fișierele spec a fost adăugat suport pentru operatorii condiționali „%elif” (else if), precum și variantele „%elifos” și „%elifarch” pentru legarea la distribuție și arhitectură;
  • Adăugate secțiuni noi „%patchlist” și „%sourcelist”, care pot fi utilizate pentru a adăuga patch-uri și cod sursă prin enumerarea simplă a numelui fără a specifica numerele de înregistrare (de exemplu, în loc de
    „Patch0: popt-1.16-pkgconfig.patch” în secțiunea %patchlist se poate specifica „popt-1.16-pkgconfig.patch”);
  • În rpmbuild a fost adăugată a fost adăugat suport pentru construirea dinamică a dependențelor cu includerea acestora în src.rpm. În fișierul spec a fost adăugat suport pentru secțiunea „%generate_buildrequires”, a cărei conținut este procesat ca o listă de dependențe (BuildRequires), care necesită verificare (dacă o dependență lipsește, va fi generată o eroare).
  • Implementat operatorul „^” pentru verificarea versiunilor mai mari decât o dată stabilită, care execută o acțiune opusă operatorului „~”. De exemplu,
    „1.1^20160101” va acoperi versiunea 1.1 și patch-urile adăugate după 1 ianuarie 2016;
  • A fost adăugată opțiunea „—scm” pentru a activa modul „%autosetup SCM”;
  • A fost adăugat macro-ul încorporat „%{expr:…}” pentru a calcula expresii arbitrare (cu câteva zile în urmă a fost de asemenea sub licența MIT. Instrumentul utilizează metode de învățare automată, împreună cu analiza statică și dinamică a codului JavaScript. Se afirmă că utilizarea învățării automate a permis îmbunătățirea semnificativă a preciziei în identificarea codului pentru identificarea ascunsă și a identificat cu 26% mai multe scripturi problematice formatul „%[ expr ]”);
  • S-a asigurat utilizarea implicită a codificării UTF-8 pentru datele string în antete;
  • Au fost adăugate macro-uri globale %build_cflags, %build_cxxflags, %build_fflags și %build_ldflags cu flag-uri pentru compilator și linker;
  • A fost adăugat macro-ul „%dnl” (Discard to Next Line) pentru a insera comentarii;
  • În bindings pentru Python 3, s-a asigurat returnarea string-urilor ca secvențe UTF-8 escape în loc de date binare;
  • A fost adăugat un backend fals pentru DB pentru a îmbunătăți suportul pentru sistemele fără rpmdb (de exemplu, Debian);
  • S-a îmbunătățit definiția arhitecturii ARM și s-a adăugat suport pentru armv8;
  • S-a asigurat suport fără întreruperi pentru Lua 5.2-5.3, fără a necesita definiții compatibile în cod.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster