ВСрсия 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, Tizen ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ. ΠŸΡ€Π΅Π΄ΠΈΡˆΠ΅Π½ нСзависим Π΅ΠΊΠΈΠΏ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ RPM5, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ пряко ΡΠ²ΡŠΡ€Π·Π°Π½ с RPM4 ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ изоставСн (Π½Π΅ Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΎΡ‚ 2010 Π³.). Код Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° разпространява сС ΠΎΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ GPLv2 ΠΈ LGPLv2.

Най-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ подобрСния ΠΏΡ€ΠΈ RPM 4.16:

  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ Π΅ Π½ΠΎΠ² Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² Π‘Π£Π‘Π” SQLite. Π’ΠΎΠ·ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ Ρ‰Π΅ бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ във Fedora Linux 33 вмСсто Π±Π΅ΠΊΠ΅Π½Π΄, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° BerkeleyDB.
  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ Π΅ Π½ΠΎΠ² СкспСримСнталСн Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² BDB (Oracle Berkeley DB), Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅. РСализацията Π΅ написана ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π° ΠΈ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠ΄ ΠΎΡ‚ наслСдСния Π±Π΅ΠΊΠ΅Π½Π΄ Π½Π° BerkeleyDB, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½, Π½ΠΎ всС ΠΎΡ‰Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.
  • ЕкспСримСнталната Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° LMDB, Π±Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π°.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° NDB, Π΅ обявСна Π·Π° стабилна.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° макроси ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ "%if". ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ thenar (%{expr:1==0?"yes":"no"}) ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π° функция Π·Π° сравнСниС Π½Π° вСрсии ('%[v"3:1.2-1β€³ > v"2.0β€³]').
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° класифициранС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ въз основа Π½Π° MIME Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π½Π° тяхното ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° зависимости с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½ΠΈ макроси.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° вСрсия Π½Π° API Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ сравнСниС Π·Π° C ΠΈ Python.
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Π΅ ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° brp-Π»Π΅Π½Ρ‚Π° ΠΈ тСстов ΠΏΠ°ΠΊΠ΅Ρ‚. Π˜Π·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π΅ оптимизация Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° процСса Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.
  • Към ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° rpmdb Π΄ΠΎΠ±Π°Π²ΠΈ опция β€žβ€”salvagedbβ€œ Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ (Ρ€Π°Π±ΠΎΡ‚ΠΈ само с Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° NDB).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ макроси %arm32, %arm64 ΠΈ %riscv Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ макрос %{macrobody:...} Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° макроситС.
  • Забранява сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΡƒΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ с ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ Π² ΠΈΠ·Ρ€Π°Π·ΠΈ, Ρ‚.Π΅. вмСсто 'a == b' сСга трябва Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ '"a" == "b"'.
  • ΠΠ½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° синтаксиса β€œ%[...]” Π·Π° изпълнСниС Π½Π° ΠΈΠ·Ρ€Π°Π· с Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° макроси (Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° сС ΠΎΡ‚ β€œ%{expr:...}” ΠΏΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ макроситС сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΡŠΡ€Π²ΠΈ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π° логичСски ΠΈ Ρ‚Π΅Π½Π°Ρ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π² ΠΈΠ·Ρ€Π°Π·ΠΈ ("%[0 && 1 / 0]" сС Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ 0, вмСсто Π΄Π° причинява Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° Π΄Π΅Π»Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π°).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° логичСския ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ NOT Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ контСкст (!"%?foo").
  • ПовСдСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ "||". ΠΈ "&&" Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с Perl/Python/Ruby, Ρ‚.Π΅. ВмСсто Π΄Π° Π²Ρ€ΡŠΡ‰Π° Π±ΡƒΠ»Π΅Π²Π° стойност, сСга Π²Ρ€ΡŠΡ‰Π° послСдната изчислСна стойност (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "%[2 || 3]" Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ 2).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи ΠΈ Ρ…Π΅ΡˆΠΎΠ²Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΌΠ΅Ρ‚Π°-зависимости (Requires(meta): somepkg), ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ влияят Π½Π° Ρ€Π΅Π΄Π° Π½Π° инсталиранС ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция β€ž--rpmv3β€œ към rpmsign Π·Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ RPM3.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Π·Π° инсталиранС β€ž--excludeartifactsβ€œ, Π·Π° Π΄Π° сС пропуснС инсталиранСто Π½Π° докумСнтация, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ.
  • ΠžΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° RPMv3 ΠΈ beecrypt ΠΈ NSS ΠΊΡ€ΠΈΠΏΡ‚ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° DSA2 (gcrypt) ΠΈ EdDSA.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€