Na bijna twee jaar ontwikkeling release van de pakketbeheerder . Project RPM4 wordt ontwikkeld door Red Hat en wordt gebruikt in distributies zoals RHEL (inclusief afgeleide projecten zoals CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen en vele anderen. Voorheen ontwikkeld door een onafhankelijk team van ontwikkelaars project , dat niet direct gerelateerd is aan RPM4 en momenteel in de vergetelheid is geraakt (is niet bijgewerkt sinds 2010).
De meest opvallende in RPM 4.15:
- Experimentele ondersteuning voor niet-priviliged building in chroot-omgevingen toegevoegd;
- ondersteuning voor het parallel bouwen van pakketten op multicore-systemen. Het aantal threads kan worden ingesteld via de macro '%_smp_build_ncpus' en variabele $RPM_BUILD_NCPUS. Voor het bepalen van het aantal CPU's is de macro '%getncpus' voorgesteld;
- In spec-bestanden is ondersteuning geïntroduceerd voor voorwaardelijke operatoren '%elif' (else if), evenals varianten '%elifos' en '%elifarch' voor koppelingen aan distributie en architectuur;
- nieuwe secties '%patchlist' en '%sourcelist', die kunnen worden gebruikt om patches en bronbestanden eenvoudig op te sommen zonder de opnummmering van records (bijvoorbeeld, in plaats van
'Patch0: popt-1.16-pkgconfig.patch' kan in de sectie %patchlist 'popt-1.16-pkgconfig.patch' worden opgegeven); - In rpmbuild ondersteuning voor dynamische afhankelijkheidsbouw met inclusief in src.rpm. In het spec-bestand is ondersteuning toegevoegd voor de sectie '%generate_buildrequires', waarvan de inhoud wordt behandeld als een lijst van afhankelijkheden (BuildRequires), die moet worden gecontroleerd (als een afhankelijkheid ontbreekt, wordt er een fout gerapporteerd).
- de operator '^' voor het controleren van versies ouder dan een bepaalde datum, die de tegenovergestelde actie van de operator '~' uitvoert. Bijvoorbeeld,
'1.1^20160101' omvat versie 1.1 en patches die na 1 januari 2016 zijn toegevoegd; - Toegevoegd de optie '—scm' voor het inschakelen van de modus '%autosetup SCM';
- Een ingebouwde macro '%{expr:…}' voor het uitvoeren van arbitraire expressies toegevoegd (enkele dagen geleden was ook de indeling '%[ expr ]' );
- Standaard gebruik van UTF-8-codering voor tekenreeksgegevens in headers verzekerd;
- Toegevoegd globale macro's %build_cflags, %build_cxxflags, %build_fflags en %build_ldflags met vlaggen voor de compiler en de linker;
- Toegevoegd de macro '%dnl' (Discard to Next Line) voor het invoegen van opmerkingen;
- In de bindings voor Python 3 is de terugkeer van reeksen in de vorm van geescaped UTF-8-sequenties in plaats van binaire gegevens verzekerd;
- Een dummy database backend toegevoegd voor verbeterde ondersteuning van systemen zonder rpmdb (bijvoorbeeld Debian);
- Verbeterde architectuurdetectie van ARM en ondersteuning voor armv8 toegevoegd;
- Naadloze ondersteuning voor Lua 5.2-5.3, zonder compat-definities in de code vereist.
Bron: opennet.ru
