From 4f3b62c4df66ec3db5a0e68e1d3123e688ba5bd5f6df1fd34cb8fe86a39d1707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Fri, 17 Jan 2020 14:07:00 +0000 Subject: [PATCH] Disable BerkeleyDB and switch over to ndb OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=529 --- rpm.spec | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/rpm.spec b/rpm.spec index 105fae3..84245cc 100644 --- a/rpm.spec +++ b/rpm.spec @@ -20,6 +20,7 @@ %{?!_fillupdir:%define _fillupdir /var/adm/fillup-templates} %global librpmsover 9 +%global without_bdb 1 Name: rpm BuildRequires: binutils @@ -215,6 +216,7 @@ and requires some packages that are usually required. %prep %setup -q -n rpm-%{version} rm -rf sqlite +%if 0%{?!without_bdb:1} tar xjf %{SOURCE11} ln -s db-4.8.30 db cd db @@ -222,6 +224,8 @@ cd db cd .. chmod -R u+w db/* rm -f rpmdb/db.h +cp config.guess config.sub db/dist/ +%endif %patch3 -p1 %patch5 -p1 %patch -P 11 -P 12 -P 13 -P 15 -P 16 -P 18 @@ -241,7 +245,6 @@ rm -f rpmdb/db.h %patch6464 %endif -cp config.guess config.sub db/dist/ tar -xjvf %{SOURCE1} rm -f m4/libtool.m4 rm -f m4/lt*.m4 @@ -270,10 +273,13 @@ autoreconf -fi --with-crypto=libgcrypt \ --with-acl \ --with-cap \ +--enable-shared \ --enable-ndb \ --enable-bdb-ro \ --enable-zstd \ ---enable-shared %{?with_python: --enable-python} $BUILDTARGET +%{?without_bdb: --enable-bdb=no} \ +%{?with_python: --enable-python} \ +$BUILDTARGET rm po/de.gmo make %{?_smp_mflags} @@ -285,7 +291,9 @@ ln -s ../share/locale %{buildroot}/usr/lib/locale %make_install mkdir -p %{buildroot}/bin ln -s /usr/bin/rpm %{buildroot}/bin/rpm +%if 0%{?!without_bdb:1} install -m 644 db3/db.h %{buildroot}/usr/include/rpm +%endif # remove .la file and the static variant of libpopt # have to remove the dependency from other .la files as well for f in %{buildroot}/%{_libdir}/*.la; do @@ -355,17 +363,24 @@ sh %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm # so we need to enforce the platform here. echo -n "%{_target_cpu}-suse-linux-gnueabi" > %{buildroot}/etc/rpm/platform %endif +%if 0%{?without_bdb:1} +# make ndb the default database backend +echo "setting the default database backend to 'ndb'" +sed -i -e '/_db_backend/s/bdb/ndb/' %{buildroot}/usr/lib/rpm/macros +%endif %post %{fillup_only -an services} # var/lib/rpm migration: set forwards compatible symlink for /usr/lib/sysimage/rpm so scriptlets in same transaction will still work -if test ! -L var/lib/rpm -a -f var/lib/rpm/Packages -a ! -f usr/lib/sysimage/rpm/Packages ; then - rmdir usr/lib/sysimage/rpm - ln -s ../../../var/lib/rpm usr/lib/sysimage/rpm +if test ! -L var/lib/rpm -a ! -f usr/lib/sysimage/rpm/Packages -a ! -f usr/lib/sysimage/rpm/Packages.db ; then + if test -f var/lib/rpm/Packages -o -f var/lib/rpm/Packages.db ; then + rmdir usr/lib/sysimage/rpm + ln -s ../../../var/lib/rpm usr/lib/sysimage/rpm + fi fi -test -f usr/lib/sysimage/rpm/Packages || rpmdb --initdb +test -f usr/lib/sysimage/rpm/Packages -o -f usr/lib/sysimage/rpm/Packages.db || rpmdb --initdb test -e var/lib/rpm || ln -s ../../usr/lib/sysimage/rpm var/lib/rpm %posttrans @@ -374,7 +389,7 @@ if test ! -L var/lib/rpm ; then # delete no longer maintained databases rm -f var/lib/rpm/Filemd5s var/lib/rpm/Filedigests var/lib/rpm/Requireversion var/lib/rpm/Provideversion - if test -f var/lib/rpm/Packages ; then + if test -f var/lib/rpm/Packages -o -f var/lib/rpm/Packages.db ; then echo "migrating rpmdb from /var/lib/rpm to /usr/lib/sysimage/rpm..." # remove forwards compatible symlink