Rilis RPM 4.16

Setelah satu tahun pembangunan terjadi rilis manajer paket Rpm 4.16.0. Proyek RPM4 dikembangkan oleh Red Hat dan digunakan dalam distribusi seperti RHEL (termasuk proyek turunan CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen dan banyak lainnya. Tim pengembangan yang sebelumnya independen dikembangkan proyek RPM 5, yang tidak berhubungan langsung dengan RPM4 dan saat ini ditinggalkan (tidak diperbarui sejak 2010). Kode proyek didistribusikan oleh berlisensi di bawah GPLv2 dan LGPLv2.

Paling menonjol perbaikan di RPM 4.16:

  • Backend baru telah diterapkan untuk menyimpan database di DBMS SQLite. ujung belakang ini akan digunakan di Fedora Linux 33, bukan backend berbasis BerkeleyDB.
  • Backend eksperimental baru untuk menyimpan database di BDB (Oracle Berkeley DB), yang beroperasi dalam mode read-only, telah diterapkan. Implementasinya ditulis dari awal dan tidak menggunakan kode dari backend BerkeleyDB lama, yang sudah tidak digunakan lagi tetapi masih disertakan secara default.
  • Backend database eksperimental berbasis LMDB telah dihapus.
  • Basis data backend berdasarkan penyimpanan NDB telah dinyatakan stabil.
  • Menambahkan dukungan untuk makro dan ekspresi "%if". operator lalu (%{expr:1==0?"yes":"no"}) dan menawarkan fitur perbandingan versi bawaan ('%[v"3:1.2-1″ > v"2.0″]').
  • Dukungan untuk mengklasifikasikan file berdasarkan tipe MIME kontennya telah diterapkan.
  • Menambahkan kemampuan untuk menghasilkan dependensi menggunakan makro parametrik.
  • Versi baru dari API penguraian dan perbandingan untuk C dan Python telah diusulkan.
  • Paralelisasi eksekusi komponen brp-strip dan test suite dipastikan. Optimalisasi paralelisasi proses pembangkitan paket telah dilakukan.
  • Ke utilitas rpmdb ditambahkan opsi “—salvagedb” untuk memulihkan database yang rusak (hanya berfungsi dengan backend NDB).
  • Menambahkan makro baru %arm32, %arm64 dan %riscv untuk deteksi arsitektur. Juga menambahkan makro bawaan %{macrobody:...} untuk mendapatkan konten makro.
  • Dilarang menggunakan kata-kata yang tidak dipisahkan tanda kutip dalam ungkapan, yaitu. alih-alih 'a == b' Anda sekarang perlu menulis '"a" == "b"'.
  • Pengurai ekspresi mengimplementasikan sintaks “%[...]” untuk mengeksekusi ekspresi dengan ekspansi makro (berbeda dari “%{expr:...}” karena makro dieksekusi terlebih dahulu).
  • Menambahkan dukungan untuk perluasan singkat operator logika dan tenar dalam ekspresi ("%[0 && 1 / 0]" diperlakukan sebagai 0 daripada menyebabkan kesalahan karena upaya pembagian dengan nol).
  • Menambahkan dukungan untuk menggunakan operator logika NOT dalam konteks arbitrer (!"%?foo").
  • Perilaku operator "||". dan "&&" diselaraskan dengan Perl/Python/Ruby, yaitu. Alih-alih mengembalikan nilai boolean, ia kini mengembalikan nilai terhitung terakhir (misalnya, "%[2 || 3]" akan mengembalikan 2).
  • Menambahkan kemampuan untuk memverifikasi format alternatif tanda tangan digital dan hash.
  • Menambahkan dukungan untuk meta-dependensi (Memerlukan(meta): somepkg), yang tidak mempengaruhi urutan instalasi dan penghapusan.
  • Menambahkan opsi "--rpmv3" ke rpmsign untuk memaksa penggunaan tanda tangan digital dalam format RPM3.
  • Menambahkan opsi instalasi "--excludeartifacts" untuk melewati instalasi dokumentasi, contoh file konfigurasi, dan data terkait lainnya.
  • Dukungan yang tidak berlaku lagi untuk RPMv3 dan backend kripto beecrypt dan NSS.
  • Menambahkan dukungan untuk DSA2 (gcrypt) dan EdDSA.

Sumber: opennet.ru

Tambah komentar