%define db_ver 5.3.28.0
%define popt_ver 1.15
-%define sover 9.1.0
+%define sover 9.1.2
%if "%{_rpmversion}" >= "4.12" && "%{_rpmversion}" < "5"
%define with_recommends_tags 1
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 4.16.0
-Release: 0.7
+Version: 4.16.1.2
+Release: 0.2
Epoch: 1
License: GPL v2 / LGPL v2.1
Group: Base
Source0: http://ftp.rpm.org/releases/rpm-4.16.x/%{name}-%{version}.tar.bz2
-# Source0-md5: 434e166a812e35ef181f6dd176326920
+# Source0-md5: 0d10f63a0a4c9517cf3808a601378399
Source1: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
# Source1-md5: 23914bb49fafe7153cee87126d966461
Source2: macros.local
Source5: %{name}.groups
Source6: %{name}-groups-po.awk
Source7: %{name}-install-tree
-Source8: %{name}-hrmib-cache
Source9: %{name}-user_group.sh
# http://svn.pld-linux.org/banner.sh/
Source10: banner.sh
Source13: %{name}.noautoreq
Source14: %{name}.noautoreqfiles
Source15: perl.prov
-Source16: %{name}db_checkversion.c
-Source17: %{name}db_reset.c
-Source18: dbupgrade.sh
Patch0: %{name}-man_pl.patch
Patch1: %{name}-popt-aliases.patch
Patch2: %{name}-perl-macros.patch
Patch15: x32.patch
Patch16: rpm5-db-compat.patch
Patch17: python-internal-build.patch
-Patch18: rpmversion.patch
+Patch18: missing-macros.patch
Patch19: pkgconfig.patch
Patch20: uname-deps.patch
Patch21: aarch64.patch
Patch23: shortcircuited-deps.patch
Patch24: cpuinfo-deps.patch
Patch25: rpmio-read-proc-files.patch
+Patch26: allow-at-in-ver-rel.patch
+Patch27: no-exeonly-for-elf-reqprov.patch
+Patch28: default-patch-flags.patch
+Patch29: %{name}-noarch_py_prov.patch
+Patch30: missing-ghost-terminate-build.patch
+Patch31: missing-doc-terminate-build.patch
+Patch32: noexpand.patch
+Patch33: sqlite-db-backend.patch
URL: https://rpm.org/
BuildRequires: acl-devel
BuildRequires: db-devel >= %{db_ver}
# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
BuildRequires: libstdc++-devel
BuildRequires: libtool >= 1:1.4.2-9
-BuildRequires: ossp-uuid-devel
BuildRequires: patch >= 2.2
BuildRequires: pkgconfig(lua) >= 5.1
BuildRequires: popt-devel >= %{popt_ver}
%patch23 -p1
%patch24 -p1
%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
install %{SOURCE15} scripts/perl.prov.in
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE5}
-install %{SOURCE16} tools/rpmdb_checkversion.c
-install %{SOURCE17} tools/rpmdb_reset.c
-
%{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
%build
%{__make}
-%{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb
-%{__cc} %{rpmcflags} tools/rpmdb_reset.c -o tools/rpmdb_reset -ldb
-
-if tools/rpmdb_checkversion -V 2>&1 | grep "t match library version"; then
- echo "Error linking rpmdb tools!"
- exit 1
-fi
-if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
- echo "Error linking rpmdb tools!"
- exit 1
-fi
-
%if %{with python3}
cd python
%py3_build
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
- $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/var/cache/hrmib}
+ $RPM_BUILD_ROOT/var/lib/{banner,rpm}
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
%endif
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
+%ifnarch %{arm}
rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
+%endif
+
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
-cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
-cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/
-cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/
-cp -p %{SOURCE18} $RPM_BUILD_ROOT%{_rpmlibdir}/dbupgrade.sh
-
# move rpm to /bin
%{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
done
-#./rpmdb --macros=macros --rcfile=rpmrc --dbpath=/home/users/baggins/devel/PLD/rpm/BUILD/rpm-4.15.1/x/ --initdb
-
-# Make sure we have bdb set a default backend
-grep -qE "db_backend[[:blank:]]+bdb" $RPM_BUILD_ROOT%{_rpmlibdir}/macros
+# init an empty database for %ghost'ing for all supported backends
+for be in sqlite bdb ndb; do
+ ./rpmdb \
+ --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
+ --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
+ --dbpath=${PWD}/${be} \
+ --define "_db_backend ${be}" \
+ --initdb
+ cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
+done
%if %{with python3}
# Remove anything that rpm make install might put there
rm -rf $RPM_BUILD_ROOT
%posttrans
-if [ -e /var/lib/rpm/Packages ] && \
- ! %{_rpmlibdir}/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
+if [ -e /var/lib/rpm/Packages ]; then
if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
/bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
echo
echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
echo 'you should ignore it and restart poldek'
echo
- %{_rpmlibdir}/dbupgrade.sh
+ %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
+ %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
+ if ! /usr/bin/rpmdb --rebuilddb; then
+ echo
+ echo "rpm database conversion failed!"
+ echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
+ echo
+ exit 1
+ fi
fi
-%triggerpostun -- %{name} < 4.4.9-44
-%{_rpmlibdir}/hrmib-cache
-
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
%lang(sk) %{_mandir}/sk/man8/rpm.8*
%dir /var/lib/rpm
-
-# exported package NVRA (stamped with install tid)
-# net-snmp hrSWInstalledName queries, bash-completions
-%dir /var/cache/hrmib
+%ghost %config(missingok,noreplace) /var/lib/rpm/*
+%ghost /var/lib/rpm/.*.lock
%{_rpmlibdir}/rpmpopt*
%{_rpmlibdir}/rpmrc
%ifarch aarch64
%{_rpmlibdir}/platform/aarch64*
%endif
+%ifarch %{arm}
+%{_rpmlibdir}/platform/arm*
+%endif
%ifarch ia64
%{_rpmlibdir}/platform/ia64*
%endif
%dir %{_rpmlibdir}/pld
-%attr(755,root,root) %{_rpmlibdir}/hrmib-cache
-
-%attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh
-%attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion
-%attr(755,root,root) %{_rpmlibdir}/rpmdb_reset
%attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
%attr(755,root,root) %{_rpmlibdir}/rpmdb_load