Випуск пакетного менеджера RPM 4.15

Після майже двох років розробки відбувся реліз пакетного менеджера Об / хв 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

Додати коментар або відгук