Po prawie dwóch latach prac rozwojowych wydanie menedżera pakietów . Projekt RPM4 jest rozwijany przez firmę Red Hat i jest używany w takich dystrybucjach jak RHEL (w tym pochodne projekty CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen i wielu innych. Wcześniej niezależny zespół deweloperów projekt , który nie jest bezpośrednio związany z RPM4 i obecnie jest porzucony (nie był aktualizowany od 2010 roku).
Najbardziej zauważalne w RPM 4.15:
- Dodano eksperymentalne wsparcie dla nieprivileged builds w chroot;
- wsparcie dla równoległego budowania pakietów na systemach wielordzeniowych. Ograniczenie liczby wątków definiuje makro „%_smp_build_ncpus” i zmienna $RPM_BUILD_NCPUS. Aby określić liczbę CPU, zaproponowane makro to „%getncpus”;
- W plikach spec pojawiło się wsparcie dla warunkowych operatorów „%elif” (else if), jak również dla opcji „%elifos” i „%elifarch” do powiązania z dystrybucją i architekturą;
- nowe sekcje „%patchlist” i „%sourcelist”, które mogą służyć do dodawania poprawek i kodów źródłowych poprzez proste wymienianie nazw bez podawania numerów rekordów (na przykład, zamiast
„Patch0: popt-1.16-pkgconfig.patch” w sekcji %patchlist można podać „popt-1.16-pkgconfig.patch”); - W rpmbuild wsparcie dla dynamicznego budowania zależności z ich włączeniem do src.rpm. W pliku spec dodano wsparcie dla sekcji „%generate_buildrequires”, której zawartość przetwarzana jest jako lista zależności (BuildRequires), wymagająca weryfikacji (jeśli zależność jest nieobecna, wyświetli błąd).
- operator „^” do sprawdzania wersji starszych niż podana data, wykonujący działanie przeciwnie do operatora „~”. Na przykład,
„1.1^20160101” obejmie wersję 1.1 oraz poprawki dodane po 1 stycznia 2016 roku; - Dodano opcję „—scm” do włączenia trybu „%autosetup SCM”;
- Dodano wbudowane makro „%{expr:…}” do obliczania dowolnych wyrażeń (kilka dni temu również wprowadzono format „%[ expr ]” );
- Zapewnia się domyślne użycie kodowania UTF-8 dla danych tekstowych w nagłówkach;
- Dodano globalne makra %build_cflags, %build_cxxflags, %build_fflags i %build_ldflags z flagami do kompilatora i linkera;
- Dodano makro „%dnl” (Discard to Next Line) do wstawiania komentarzy;
- W wiązaniach dla Pythona 3 zapewniono zwracanie łańcuchów jako zeskalowanych sekwencji UTF-8 zamiast danych bajtowych;
- Dodano fikcyjny backend bazy danych dla lepszego wsparcia systemów bez rpmdb (na przykład Debian);
- Udoskonalono określenie architektury ARM i dodano wsparcie dla armv8;
- Zapewniono bezszwowe wsparcie dla Lua 5.2-5.3, nie wymagające definicji compat w kodzie.
Źródło: opennet.ru
