Մեկ տարի զարգացումից հետո տեղի ունեցավ փաթեթի մենեջերի թողարկում 4.16.0 պտույտ. RPM4 նախագիծը մշակվել է Red Hat-ի կողմից և օգտագործվում է այնպիսի բաշխումներում, ինչպիսիք են RHEL-ը (ներառյալ CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Թիզենը և շատ ուրիշներ: Նախկինում անկախ զարգացման թիմ զարգացած նախագիծ RPM 5, որն ուղղակիորեն կապված չէ RPM4-ի հետ և ներկայումս լքված է (չի թարմացվել 2010 թվականից): Ծրագրի կոդը տարածվում է լիցենզավորված GPLv2 և LGPLv2 համաձայն:
SQLite DBMS-ում տվյալների բազաները պահելու համար ներդրվել է նոր backend: Այս backend կօգտագործվի Fedora Linux 33-ում BerkeleyDB-ի վրա հիմնված backend-ի փոխարեն:
Գործարկվել է BDB (Oracle Berkeley DB) տվյալների բազաները պահելու նոր փորձարարական backend, որն աշխատում է միայն կարդալու ռեժիմում: Իրականացումը գրված է զրոյից և չի օգտագործում կոդ հին BerkeleyDB backend-ից, որը հնացած է, բայց դեռ ներառված է լռելյայն:
Փորձնական LMDB-ի վրա հիմնված տվյալների բազան հեռացվել է:
NDB պահեստի վրա հիմնված backend տվյալների բազան հայտարարվել է կայուն:
Ավելացվեց «%if» մակրոների և արտահայտությունների աջակցություն thenar օպերատոր (%{expr:1==0?"yes":"no"}) և առաջարկում է ներկառուցված տարբերակների համեմատման հնարավորություն ('%[v"3:1.2-1" > v"2.0"]'):
Գործարկվել է դրանց բովանդակության MIME տեսակների հիման վրա ֆայլերի դասակարգման աջակցություն:
Ավելացրել է կախվածություն ստեղծելու հնարավորությունը՝ օգտագործելով պարամետրային մակրոներ.
Առաջարկվել է C-ի և Python-ի վերլուծության և համեմատման API-ի նոր տարբերակը:
Ապահովված է brp-strip-ի և փորձնական փաթեթի բաղադրիչների կատարման զուգահեռացումը: Իրականացվել է փաթեթների ստեղծման գործընթացի զուգահեռացման օպտիմիզացում:
Դեպի rpmdb կոմունալ ավելացրել է «—salvagedb» տարբերակ՝ վնասված տվյալների բազան վերականգնելու համար (աշխատում է միայն NDB backend-ի հետ):
Ավելացվեցին նոր մակրո %arm32, %arm64 և %riscv՝ ճարտարապետության հայտնաբերման համար: Նաև ավելացրել է ներկառուցված մակրո %{macrobody:...}՝ մակրոների բովանդակությունը ստանալու համար։
Արգելվում է արտահայտությունների մեջ չակերտներով չբաժանված բառեր օգտագործել, այսինքն. «a == b»-ի փոխարեն այժմ պետք է գրել «a» == «b»»:
Արտահայտության վերլուծիչն իրականացնում է «%[...]» շարահյուսությունը՝ մակրո ընդլայնմամբ արտահայտությունը կատարելու համար (այն տարբերվում է «%{expr:...}»-ից նրանով, որ մակրոները առաջինը կատարվում են):
Ավելացվել է արտահայտությունների մեջ տրամաբանական և thenar օպերատորների կարճ ընդլայնման աջակցություն («%[0 && 1 / 0]»-ը վերաբերվում է որպես 0, այլ ոչ թե զրոյի բաժանման փորձի պատճառով սխալ առաջացնելու համար):
Ավելացվեց NOT տրամաբանական օպերատորը կամայական համատեքստերում (!"%?foo") օգտագործելու համար:
«||» օպերատորների վարքագիծը և «&&»-ը համապատասխանեցվում է Perl/Python/Ruby-ին, այսինքն. Բուլյան արժեք վերադարձնելու փոխարեն այն այժմ վերադարձնում է վերջին հաշվարկված արժեքը (օրինակ՝ «%[2 || 3]»-ը կվերադարձնի 2):
Ավելացվեց թվային ստորագրությունների և հեշերի այլընտրանքային ձևաչափերը ստուգելու հնարավորություն:
Ավելացվել է մետա-կախվածությունների աջակցություն (Պահանջում է (meta): somepkg), որոնք չեն ազդում տեղադրման և հեռացման կարգի վրա:
Rpmsign-ին ավելացվել է «--rpmv3» տարբերակը՝ թվային ստորագրությունների օգտագործումը RPM3 ձևաչափով ստիպելու համար:
Ավելացվեց տեղադրման «--excludeartifacts» տարբերակը՝ փաստաթղթերի, օրինակ կազմաձևման ֆայլերի և այլ հարակից տվյալների տեղադրումը բաց թողնելու համար:
Հնացած աջակցություն RPMv3-ի և beecrypt-ի և NSS-ի կրիպտո backend-ների համար: