Փաթեթի կառավարչի թողարկում RPM 4.16

Մեկ տարի զարգացումից հետո տեղի ունեցավ փաթեթի մենեջերի թողարկում 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 համաձայն:

Առավել նշանավոր բարելավումներ RPM-ում 4.16:

  • 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-ների համար:
  • Ավելացվել է DSA2 (gcrypt) և EdDSA աջակցություն:

Source: opennet.ru

Добавить комментарий