Выпуск ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° RPM 4.15

ПослС ΠΏΠΎΡ‡Ρ‚ΠΈ Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ состоялся Ρ€Π΅Π»ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° RPM 4.15.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 Π³ΠΎΠ΄Π°).

НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² RPM 4.15:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ сборки Π² chroot-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ;
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° распараллСливания сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° многоядСрных систСмах. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² задаётся Ρ‡Π΅Ρ€Π΅Π· макрос «%_smp_build_ncpus» ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $RPM_BUILD_NCPUS. Для опрСдСлСния числа CPU ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ макрос «%getncpus»;
  • Π’ spec-Ρ„Π°ΠΉΠ»Π°Ρ… появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «%elif» (else if), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² «%elifos» ΠΈ «%elifarch» для привязки ΠΊ дистрибутиву ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ сСкции «%patchlist» ΠΈ «%sourcelist», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для добавлСния ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΈ исходных тСкстов простым пСрСчислСниСм ΠΈΠΌΡ‘Π½ Π±Π΅Π· указания Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² записСй (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вмСсто
    «Patch0: popt-1.16-pkgconfig.patch» Π² сСкции %patchlist ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ «popt-1.16-pkgconfig.patch»);

  • Π’ rpmbuild Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° динамичСской сборки зависимостСй с ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π² src.rpm. Π’ spec-Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСкции «%generate_buildrequires», содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ обрабатываСтся ΠΊΠ°ΠΊ список зависимостСй (BuildRequires), Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (Ссли Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ отсутствуСт Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ошибка).
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «^» для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вСрсий ΡΡ‚Π°Ρ€ΡˆΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ «~». НапримСр,
    «1.1^20160101» ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ Π²Π΅Ρ€ΡΠΈΡŽ 1.1 ΠΈ ΠΏΠ°Ρ‚Ρ‡ΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ послС 1 января 2016 Π³ΠΎΠ΄Π°;

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—scm» для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° «%autosetup SCM»;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ встроСнный макрос «%{expr:…}» для вычислСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (нСсколько Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ «%[ expr ]» );
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ использованиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8 для строковых Π΄Π°Π½Π½Ρ‹Ρ… Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°Ρ…;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ макросы %build_cflags, %build_cxxflags, %build_fflags ΠΈ %build_ldflags с Ρ„Π»Π°Π³Π°ΠΌΠΈ для компилятора ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ макрос «%dnl» (Discard to Next Line) для вставки ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²;
  • Π’ Π±ΠΈΠ½Π΄ΠΈΠ½Π³Π°Ρ… для Python 3 обСспСчСн Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ строк Π² Π²ΠΈΠ΄Π΅ экранированных ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ UTF-8 вмСсто Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ бэкСнд Π‘Π” для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ систСм Π±Π΅Π· rpmdb (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Debian);
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡƒΡ‚Ρ€Ρ‹ ARM ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° armv8;
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° бСсшовная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Lua 5.2-5.3, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ compat Π² ΠΊΠΎΠ΄Π΅.

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