Մոտ երկու տարվա զարգացումից հետո փաթեթի մենեջերի թողարկում . RPM4 նախագիծը մշակվել է Red Hat-ի կողմից և օգտագործվում է այնպիսի բաշխումներում, ինչպիսիք են RHEL-ը (ներառյալ CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Թիզենը և շատ ուրիշներ: Նախկինում անկախ զարգացման թիմ նախագիծ , որն ուղղակիորեն կապված չէ RPM4-ի հետ և ներկայումս լքված է (չի թարմացվել 2010 թվականից):
Առավել նշանավոր RPM-ում 4.15:
- Ավելացվեց փորձնական աջակցություն chroot միջավայրում անարտոնյալ հավաքման համար;
- բազմաբնույթ համակարգերի վրա փաթեթի հավաքման զուգահեռացման աջակցություն: Թելերի քանակի սահմանափակումը սահմանվում է «%_smp_build_ncpus» մակրոյի և $RPM_BUILD_NCPUS փոփոխականի միջոցով: Պրոցեսորների քանակը որոշելու համար առաջարկվում է «%getncpus» մակրո;
- Spec ֆայլերն այժմ աջակցում են «%elif» պայմանական օպերատորին (else if), ինչպես նաև «%elifos» և «%elifarch» տարբերակները՝ բաշխման և ճարտարապետության հետ կապվելու համար;
- նոր բաժիններ «%patchlist» և «%sourcelist», որոնք կարող են օգտագործվել պատչեր և աղբյուրներ ավելացնելու համար՝ պարզապես անուններ թվարկելով, առանց մուտքի համարներ նշելու (օրինակ՝ փոխարենը.
«Patch0: popt-1.16-pkgconfig.patch» %patchlist բաժնում կարող եք նշել «popt-1.16-pkgconfig.patch»); - rpmbuild-ում Կախվածությունների դինամիկ հավաքման աջակցություն՝ դրանց ներառմամբ src.rpm-ում: Հատուկ ֆայլում ավելացվել է «%generate_buildrequires» բաժնի աջակցությունը, որի բովանդակությունը մշակվում է որպես կախվածությունների ցանկ (BuildRequires), որը պահանջում է ստուգում (եթե կախվածությունը բացակայում է, կցուցադրվի սխալ):
- «^» օպերատորն օգտագործվում է տվյալ ամսաթվից ավելի հին տարբերակները ստուգելու համար՝ կատարելով «~» օպերատորի հակառակը։ Օրինակ,
«1.1^20160101»-ը կներառի 1.1 տարբերակը և 1 թվականի հունվարի 2016-ից հետո ավելացված patches; - Ավելացվեց «--scm» տարբերակը՝ «%autosetup SCM» ռեժիմը միացնելու համար;
- Ավելացվեց ներկառուցված «%{expr:...}» մակրո կամայական արտահայտությունների գնահատման համար (մի քանի օր առաջ կար նաև ձևաչափ «%[ expr ]»);
- Ապահովում է, որ լռելյայն կոդավորումը UTF-8 է վերնագրերում լարային տվյալների համար.
- Ավելացվել են գլոբալ մակրոներ %build_cflags, %build_cxxflags, %build_fflags և %build_ldflags՝ դրոշներով կազմողի և կապողի համար;
- Մեկնաբանություններ տեղադրելու համար ավելացվել է «%dnl» մակրո (Հեռացնել հաջորդ տողին);
- Python 3-ի կապակցումները ապահովում են, որ տողերը վերադարձվում են որպես UTF-8 փախած հաջորդականություններ՝ բայթ տվյալների փոխարեն;
- Ավելացվեց կեղծ տվյալների բազայի հիմք՝ առանց rpmdb համակարգերի աջակցությունը բարելավելու համար (օրինակ՝ Debian);
- Բարելավված ARM ճարտարապետության հայտնաբերում և ավելացված աջակցություն armv8-ի համար;
- Ապահովում է անխափան աջակցություն Lua 5.2-5.3-ին, որը չի պահանջում կոդում համապատասխան սահմանումներ:
Source: opennet.ru
