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 [2021-01-30 17:19]
baggins rpm.org update info and spec porting notes
packages:rpm [2021-05-02 21:28] (current)
baggins [Spec development]
Line 15: Line 15:
 Quoting [[https://​fedoraproject.org/​wiki/​Changes/​Sqlite_Rpmdb]] 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.+//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.//​ 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''​.   * 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. +  * 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''​.+  * 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 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>​ </​note>​
 +
 +==== Repackage support ====
 +
 +<note warning>​Repackage is not supported by rpm.org rpm, so do not rely on it.</​note>​
  
 ==== Python bindings ==== ==== Python bindings ====
Line 37: Line 41:
  
   * Suggests are now [[http://​rpm.org/​user_doc/​dependencies.html|Recommends]],​   * Suggests are now [[http://​rpm.org/​user_doc/​dependencies.html|Recommends]],​
-  * ''​noautoreq*''​ and ''​noautoprov*''​ must be converted to [[https://​docs.fedoraproject.org/​en-US/​packaging-guidelines/​AutoProvidesAndRequiresFiltering/​|__requires_exclude* and __provides_exclude*]] respectively. 
-<​note>​The above is not yet integrated into [[packages:​rpm-pld-macros|rpm-pld-macros]]</​note>​ 
   * ''​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).   * ''​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   * Minor spec syntax changes
Line 44: Line 46:
     * Bare words are no longer supported, please use "​..."​ (ex. ''​%if "​%{_lib}"​ != "​lib"''​)     * 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     * Symlinks are always packaged with 777 mode and using ''​%attr()''​ for symlink is reported as warning
-    * ''​Requires(triggerpostun)''​ is not supported, replace with ''​postun''​.+    * ''​Requires(triggerpostun)''​ is not supported, replace with ''​Requires(postun)''​.
  
 ===== Spec development ===== ===== 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 ​0''​ to ~/.rpmrc +  * 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 +  * 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.1612023582.txt.gz · Last modified: 2021-01-30 17:19 by baggins