Newly created databases will be sqlite unless overridden in configuration.
If BDB database is detected at %posttrans of rpm itself, it's flagged
for rebuild in the next reboot. This will serve two purposes: the primary
objective is obviously to convert to configured (ie sqlite) format,
but as a secondary side-effect, any remaining BDB databases will get
a much needed maintenance rebuild from time to time.
Discussed in https://pagure.io/fesco/issue/2382, deemed to not require
any exceptions although this is a bit of an unusual path.
%triggerun as opposed to seemingly more obvious %triggerin is used to
ensure preset files have already been updated without adding new
ordering constraints.
%{name} and %{version} refer to the name and version strings of the
package that will be built and shouldn't be used for things that
do not honor those macros. Such as pre-existing or predetermined
filenames.
De-facto packaging practises over multiple decade liberally (ab)use
these and various other macros in places they don't belong - if rpm itself
doesn't follow its own rules then how can we expect anybody else to do so...
This doesn't change anything as is, but enables both Name: and Version:
to be changed arbitrarily without breaking the package build, which is
how it should optimally be. If this was strictly followed then scl-utils
would've been a walk in the park. Relatively speaking.
This can be activated with 'touch /var/lib/rpm/.rebuilddb' to perform
rpmdb rebuild on next reboot. The immediate motivation is having a place
to perform automatic database format conversion in a reasonably safe
manner, but could also serve recovery purposes.
Commit a5c4573419 caused a literal
/var/lib/rpm/.*.* file to be packaged as a ghost instead of the db lock
files it was supposed to catch. Ensure any hidden db locks get copied
too after initializing. Thanks to Thierry Vignaud for spotting.
- Add bconds for and enable sqlite, ndb and bdb_ro database backends
- Add bcond for disabling bdb backend
- Drop lmdb bcond, the backend was removed upstream
- Ensure all database backend files are owned
- Fix external environment causing test-suite failures in spec build
- Re-enable hard test-suite failures again
We have enabled SOURCE_DATE_EPOCH, but it changed behavior of
RPMTAG_BUILDTIME. We need to restore it…
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
- New rpm-plugin-audit sub-package
- Rebase patches as necessary
- Drop the evil python3 string monkey-patching
- Drop no longer needed LUA_COMPAT defines and friends and use
%set_build_flags instead.
- python and perl macros and helper scripts are gone
- Drop support for sanitizer build, it never really worked anyway
- Drop leftover build-dependency on binutils-devel
- Truncate changelog to rpm 4.14.x (last two years)
Use pre-determined buildhost in test-suite to avoid DNS usage, sometimes
the builder DNS config is whacked which causes crazy slowdown of our builds.
Drop obsolete specspo and gpg2 related patches, specspo is gone for
seven years and gpg2 preferral is upstream in a different form (thanks
to Igor Gnatenko for pointing these out)
All string data from rpm is now returned as surrogate-escaped utf-8
string objects. 99.999% of that data IS utf-8 encoded to begin with,
returning bytes is plain broken.
As a temporary crutch, monkey-patch a .decode() method to returned strings
to give users time to migrate from the long-standing broken behavior.
From the original PR (https://src.fedoraproject.org/rpms/rpm/pull-request/15):
The way that a Flatpak works is that the runtime is mounted at /usr
and the application and included libraries are mounted at /app. So
the application and included libraries need to be rebuilt with
a prefix of /app.
This patch makes brp-compress find man pages and info pages under current
prefix, avoiding the name for spec file changes for the rebuild.
- Drop duplicate BDB buildrequire
- Drop nowadays unnecessary BDB macro foo
- Drop nowadays unnecessary manual libcap dependency
Relevant and necessary in their day, but not anymore.
Additionally...
- Patching test-suite for python2 too painful, just sed it instead
- Fix premature version increment from previous changelog entries, oops
- Ehm, need to patch the autogenerated rpmtests script too for python2
- Ehm, it's ldconfig_scriptlets not scripts
- Drop the non-working python envvar magic from obsoleted change