Dopo quasi due anni di sviluppo ha avuto luogo rilascio del gestore pacchetti RPM 4.15.0. Il progetto RPM4 è sviluppato da Red Hat ed è utilizzato in distribuzioni come RHEL (inclusi progetti derivati CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen e molti altri. Team di sviluppo precedentemente indipendente sviluppato progetto RPM5, che non è direttamente correlato a RPM4 ed è attualmente abbandonato (non aggiornato dal 2010).
Aggiunto supporto sperimentale per l'assemblaggio non privilegiato in un ambiente chroot;
Implementato supporto per la parallelizzazione dell'assemblaggio di pacchetti su sistemi multi-core. Il limite al numero di thread viene impostato tramite la macro “%_smp_build_ncpus” e la variabile $RPM_BUILD_NCPUS. Per determinare il numero di CPU viene proposta la macro “%getncpus”;
I file specifiche ora supportano l'operatore condizionale “%elif” (else if), così come le opzioni “%elifos” e “%elifarch” per il collegamento alla distribuzione e all'architettura;
Aggiunto nuove sezioni "%patchlist" e "%sourcelist", che possono essere utilizzate per aggiungere patch e sorgenti semplicemente elencando i nomi senza specificare i numeri di voce (ad esempio, invece di
“Patch0: popt-1.16-pkgconfig.patch” nella sezione %patchlist è possibile specificare “popt-1.16-pkgconfig.patch”);
Nell'rpmbuild aggiunto supporto per l'assemblaggio dinamico delle dipendenze con la loro inclusione in src.rpm. Nel file spec è stato aggiunto il supporto per la sezione “%generate_buildrequires”, il cui contenuto viene elaborato come un elenco di dipendenze (BuildRequires), richiedendo la verifica (se manca la dipendenza verrà visualizzato un errore).
Implementato L'operatore "^" viene utilizzato per verificare la presenza di versioni precedenti a una determinata data, facendo l'opposto dell'operatore "~". Per esempio,
"1.1^20160101" coprirà la versione 1.1 e le patch aggiunte dopo il 1 gennaio 2016;
Aggiunta l'opzione "--scm" per abilitare la modalità "%autosetup SCM";
Aggiunta la macro incorporata "%{expr:...}" per la valutazione di espressioni arbitrarie (pochi giorni fa c'era anche proposto formato "%[ espressione ]");
Garantisce che la codifica predefinita sia UTF-8 per i dati stringa nelle intestazioni;
Aggiunte macro globali %build_cflags, %build_cxxflags, %build_fflags e %build_ldflags con flag per il compilatore e il linker;
Aggiunta macro “%dnl” (Scarta alla riga successiva) per l'inserimento di commenti;
I collegamenti per Python 3 assicurano che le stringhe vengano restituite come sequenze UTF-8 con escape anziché come dati byte;
Aggiunto backend database fittizio per migliorare il supporto per i sistemi senza rpmdb (ad esempio Debian);
Rilevamento dell'architettura ARM migliorato e supporto aggiunto per armv8;
Fornisce supporto continuo per Lua 5.2-5.3, che non richiede definizioni di compatibilità nel codice.