Κυκλοφορία RPM 4.16

Μετά από ένα χρόνο ανάπτυξης πραγματοποιήθηκε έκδοση διαχειριστή πακέτων RPM 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:

  • Εφάρμοσε ένα νέο backend για την αποθήκευση βάσεων δεδομένων στο SQLite DBMS. Αυτό το backend θα χρησιμοποιηθεί στο Fedora Linux 33 αντί για ένα backend που βασίζεται στο BerkeleyDB.
  • Εφάρμοσε ένα νέο πειραματικό backend για την αποθήκευση μιας βάσης δεδομένων σε BDB (Oracle Berkeley DB), που λειτουργεί σε λειτουργία μόνο για ανάγνωση. Η υλοποίηση έχει γραφτεί από την αρχή και δεν χρησιμοποιεί τον παλιό κώδικα υποστήριξης BerkeleyDB, ο οποίος έχει καταργηθεί αλλά εξακολουθεί να είναι ενεργοποιημένος από προεπιλογή.
  • Καταργήθηκε το υπόστρωμα πειραματικής βάσης δεδομένων που βασίζεται σε LMDB.
  • Δηλώθηκε σταθερό backend βάσης δεδομένων με βάση την αποθήκευση NDB.
  • Προστέθηκε υποστήριξη σε μακροεντολές και εκφράσεις "%if". μισθωτός χειριστής (%{expr:1==0?"yes":"no"}) και μια ενσωματωμένη δυνατότητα σύγκρισης εκδόσεων ('%[v"3:1.2-1" > v"2.0"]').
  • Εφαρμόστηκε υποστήριξη για ταξινόμηση αρχείων με βάση τους τύπους MIME του περιεχομένου τους.
  • Προστέθηκε η δυνατότητα δημιουργίας εξαρτήσεων χρησιμοποιώντας παραμετρικές μακροεντολές.
  • Έχει προταθεί μια νέα έκδοση του Parsing and Comparison API για C και Python.
  • Παρέχεται παραλληλισμός της εκτέλεσης brp-strip και εξαρτημάτων δοκιμαστικής σουίτας. Έχει πραγματοποιηθεί βελτιστοποίηση της παραλληλοποίησης της διαδικασίας παραγωγής πακέτων.
  • Στο βοηθητικό πρόγραμμα rpmdb προστέθηκε Επιλογή "--salvagedb" για την ανάκτηση μιας κατεστραμμένης βάσης δεδομένων (λειτουργεί μόνο με το backend NDB).
  • Προστέθηκαν νέες μακροεντολές %arm32, %arm64 και %riscv για τον καθορισμό της αρχιτεκτονικής. Προστέθηκε επίσης ενσωματωμένη μακροεντολή %{macrobody:…} για να λάβετε τα περιεχόμενα των μακροεντολών.
  • Στις εκφράσεις απαγορεύεται η χρήση λέξεων που δεν χωρίζονται με εισαγωγικά, δηλ. αντί για 'a == b' τώρα πρέπει να γράψετε '"a" == "b"'.
  • Ο αναλυτής εκφράσεων υλοποιεί τη σύνταξη "%[...]" για την εκτέλεση μιας παράστασης με επέκταση μακροεντολών (διαφέρει από το "%{expr:...}" στο ότι οι μακροεντολές εκτελούνται πρώτα).
  • Προστέθηκε υποστήριξη για σύντομη επέκταση λογικών και σταθερών τελεστών σε εκφράσεις (το "%[0 && 1 / 0]" αντιμετωπίζεται ως 0 και δεν οδηγεί σε σφάλμα λόγω προσπάθειας διαίρεσης με το μηδέν).
  • Προστέθηκε υποστήριξη για τη χρήση του λογικού τελεστή NOT σε αυθαίρετα περιβάλλοντα (!"%?foo").
  • Συμπεριφορά χειριστών "||". και το "&&" είναι ευθυγραμμισμένο με Perl/Python/Ruby, δηλ. Αντί να επιστρέψει μια boolean τιμή, επιστρέφει τώρα την τελευταία τιμή που αξιολογήθηκε (για παράδειγμα, το "%[2 || 3]" θα επιστρέψει 2).
  • Προστέθηκε η δυνατότητα επαλήθευσης εναλλακτικών μορφών ψηφιακών υπογραφών και κατακερματισμών.
  • Προστέθηκε υποστήριξη για μετα-εξαρτήσεις (Requires(meta): somepkg) που δεν επηρεάζουν τη σειρά εγκατάστασης και αφαίρεσης.
  • Προστέθηκε η επιλογή "--rpmv3" στο rpmsign για την επιβολή ψηφιακών υπογραφών RPM3.
  • Προστέθηκε η επιλογή εγκατάστασης "--excludeartifacts" για παράλειψη εγκατάστασης τεκμηρίωσης, δειγμάτων αρχείων διαμόρφωσης και άλλων σχετικών δεδομένων.
  • Η υποστήριξη RPMv3 και τα backend κρυπτογράφησης beecrypt και NSS έχουν καταργηθεί.
  • Προστέθηκε υποστήριξη για DSA2 (gcrypt) και EdDSA.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο