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 сыяктуу дистрибуцияларда колдонулат, Тизен жана башкалар. Мурда көз карандысыз өнүктүрүү командасы иштелип чыккан долбоору RPM5RPM4 менен түздөн-түз байланышы жок жана учурда таштап кеткен (2010-жылдан бери жаңыртылган эмес).

Эң көрүнүктүү жакшыртуулар RPM 4.15да:

  • Chroot чөйрөсүндө артыкчылыксыз чогулуш үчүн эксперименталдык колдоо кошулду;
  • Аткарылган көп ядролуу системаларда топтомду чогултууну параллелизациялоону колдоо. Жиптердин санына чектөө “%_smp_build_ncpus” макросу жана $RPM_BUILD_NCPUS өзгөрмө аркылуу коюлат. CPU санын аныктоо үчүн “%getncpus” макросу сунушталат;
  • Spec файлдары эми шарттуу “%elif” операторун (башка болсо), ошондой эле бөлүштүрүү жана архитектура менен байланыштыруу үчүн “%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-январынан кийин кошулган тактарды камтыйт;

  • "%autosetup SCM" режимин иштетүү үчүн "--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

Комментарий кошуу