User Tools

Site Tools


packages:rpm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
packages:rpm [2020-11-01 08:18]
glen [rpm 4.16 porting status]
packages:rpm [2021-05-02 21:28] (current)
baggins [Spec development]
Line 1: Line 1:
 ====== RPM Package ====== ====== RPM Package ======
  
-===== rpm 4.16 porting status =====+===== rpm5 to rpm.org rpm porting status =====
  
   * [[http://​lists.pld-linux.org/​mailman/​pipermail/​pld-devel-en/​2020-October/​025986.html | Sat Oct 24 17:15:09 CEST 2020 rpm.org'​s rpm 4.16.0 ready for testing ]]   * [[http://​lists.pld-linux.org/​mailman/​pipermail/​pld-devel-en/​2020-October/​025986.html | Sat Oct 24 17:15:09 CEST 2020 rpm.org'​s rpm 4.16.0 ready for testing ]]
   * [[http://​lists.pld-linux.org/​mailman/​pipermail/​pld-devel-en/​2020-October/​026002.html | Tue Oct 27 23:21:17 CET 2020 rpm4 on carme ]]   * [[http://​lists.pld-linux.org/​mailman/​pipermail/​pld-devel-en/​2020-October/​026002.html | Tue Oct 27 23:21:17 CET 2020 rpm4 on carme ]]
 +  * [[http://​lists.pld-linux.org/​mailman/​pipermail/​pld-devel-en/​2020-December/​026050.html | Wed Dec 2 16:08:18 CET 2020 rpm.org, the story so far (summary) ]]
 +
 +===== rpm5 to rpm.org rpm package update =====
 +
 +All of the below is fully automated within the package using ''​Obsoletes/​Provides/​Requires''​ or ''​postinst/​posttrans''​ scriptlets.
 +
 +==== RPM database format change ====
 +
 +Quoting [[https://​fedoraproject.org/​wiki/​Changes/​Sqlite_Rpmdb]]
 +
 +> //The current rpm database implementation is based on Berkeley DB 5.x, a version which is unmaintained upstream for several years now. Berkeley DB 6.x is license incompatible so moving to that is not an option. In addition, the existing rpmdb implementation is notoriously unreliable as it's not transactional and has no other means to detect inconsistencies either.
 +
 +Changing to a more sustainable database implementation is long overdue. We propose to change the default rpmdb format to the new sqlite based implementation.//​
 +
 +  * The rpm database format changes from Berkeley DB to SQLite, conversion is automatic after rpm package set update. Backup of the old database is saved as ''/​var/​lib/​rpm.rpmbackup-VERSION-RELEASE'',​ using version and release of the package that is installed (not the old one). Ex. if the old package was rpm-5.4.15-58 and the new one is rpm-4.16.1.2-1,​ the backup of the database will be in ''/​var/​lib/​rpm.rpmbackup-4.16.1.2-1''​.
 +  * Users who have a particular need to stay on Berkeley DB backend can still do so by overriding the configuration manually (eg. ''​%%echo '​%_db_backend bdb' >> /​etc/​rpm/​macros%%''​) before updating rpm package.
 +  * It is also possible to convert back bu overriding ''​_db_backend''​ and running %%''​rpm --rebuilddb''​%%.
 +
 +<note warning>​Staying with or converting back to Berkeley DB backend is discouraged as rpm upstream plans to reduce Berkeley DB support to read-only.
 +</​note>​
 +
 +==== Repackage support ====
 +
 +<note warning>​Repackage is not supported by rpm.org rpm, so do not rely on it.</​note>​
 +
 +==== Python bindings ====
 +
 +While rpm5 provided only Python 2 bindings, rpm.org rpm provides only Python 3 bindings.
 +
 +==== SNMP support ====
 +
 +rpm.org rpm does not support hrmib integration.
 +
 +===== Porting packages from rpm5 to rpm.org rpm =====
 +
 +  * Suggests are now [[http://​rpm.org/​user_doc/​dependencies.html|Recommends]],​
 +  * ''​Obsoletes''/''​Provides''​ must follow the package naming rules, they cannot contain characters like ''​()''​ or ''/'',​ what means packages cannot depend on path/files or same virtual dependency names (ex. ''​perl::​Foo''​ is not accepted).
 +  * Minor spec syntax changes
 +    * Spaces around operators in dependencies are required (ex. BuildRequires:​ foo-devel''​ ''>​=''​ ''​1.0)
 +    * Bare words are no longer supported, please use "​..."​ (ex. ''​%if "​%{_lib}"​ != "​lib"''​)
 +    * Symlinks are always packaged with 777 mode and using ''​%attr()''​ for symlink is reported as warning
 +    * ''​Requires(triggerpostun)''​ is not supported, replace with ''​Requires(postun)''​.
 +
 +===== Spec development =====
 +
 +  * rpm.org rpm generates ''​rpmlib(ShortCircuited)''​ dependencies when package is build using ''​%%--short-circuit%%''​ option. To disable that add ''​%disable_short_circuited_deps 1''​ to ~/​.rpmmacros
 +  * Patch is now run with ''​--fuzz=0''​ option, add ''​%_default_patch_fuzz 2''​ to ''​~/​.rpmmacros''​ to keep previous behavior. ​
 +  * Package file checksum digests are now SHA256 based, if you need to keep previous behaviour, define ''​%_source_filedigest_algorithm 1''​ and ''​%_binary_filedigest_algorithm 1''​ into ''​~/​.rpmmacros''​
packages/rpm.1604215114.txt.gz ยท Last modified: 2020-11-01 08:18 by glen