All of the below is fully automated within the package using Obsoletes/Provides/Requires
or postinst/posttrans
scriptlets.
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.
/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
.echo '%_db_backend bdb' >> /etc/rpm/macros
) before updating rpm package._db_backend
and running ''rpm --rebuilddb''.While rpm5 provided only Python 2 bindings, rpm.org rpm provides only Python 3 bindings.
rpm.org rpm does not support hrmib integration.
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).
>=
1.0)%if “%{_lib}” != “lib”
)%attr()
for symlink is reported as warningRequires(triggerpostun)
is not supported, replace with Requires(postun)
.rpmlib(ShortCircuited)
dependencies when package is build using --short-circuit
option. To disable that add %disable_short_circuited_deps 1
to ~/.rpmmacros–fuzz=0
option, add %_default_patch_fuzz 2
to ~/.rpmmacros
to keep previous behavior. %_source_filedigest_algorithm 1
and %_binary_filedigest_algorithm 1
into ~/.rpmmacros