%endif
# versions of required libraries
-%define reqdb_pkg db5.3
-%define reqdb_ver 5.3
+%define reqdb_pkg db5.2
+%define reqdb_ver 5.2
%define reqpopt_ver 1.15
%define beecrypt_ver 2:4.1.2-4
%define sover 5.4
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
Version: 5.4.10
-Release: 31
+Release: 40
License: LGPL
Group: Base
# http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.10-0.20120706.src.rpm
Source25: %{name}-php-requires.php
Source26: rpmdb_checkversion.c
Source27: macros.lang
+Source28: rpmdb_reset.c
+Source29: dbupgrade.sh
Patch0: %{name}-branch.patch
Patch1: %{name}-man_pl.patch
Patch2: %{name}-popt-aliases.patch
-Patch3: %{name}-rpmpopt.patch
Patch4: %{name}-perl-macros.patch
Patch5: %{name}-perl-req-perlfile.patch
Patch6: %{name}-scripts-closefds.patch
Patch10: %{name}-php-deps.patch
Patch11: %{name}-notsc.patch
Patch12: %{name}-hack-norpmlibdep.patch
-Patch13: %{name}-epoch0.patch
+Patch13: %{name}-dont-copy-descriptive-tags.patch
Patch14: %{name}-perl_req-INC_dirs.patch
Patch15: %{name}-debuginfo.patch
Patch16: vendor-pld.patch
Patch53: %{name}-lua-enable-extra-libs.patch
Patch54: %{name}-fix-filedigests-verify.patch
Patch55: %{name}-disable-hmac-verify.patch
+Patch56: rpm-macros.patch
+Patch57: %{name}-db5.2.patch
+Patch58: %{name}-preserve-iterator.patch
+Patch59: %{name}-triggerin-compat.patch
+Patch60: %{name}-python-sitescriptdir.patch
+Patch61: %{name}-clean-docdir.patch
+Patch62: %{name}-DB_CONFIG.patch
+Patch63: %{name}-pythoneggs.patch
# Patches imported from Mandriva
Patch1041: rpm-5.4.9-disable-l10ndir.patch
# status: ready for merge
Patch1042: rpm-5.4.9-fix-rpm_qa-pattern.patch
-# status: i18n strings is getting dropped, so this one might be of less relevance,
-# but feel free to discuss it on rpm-devel
-Patch1043: rpm-5.4.9-fix-mdvbz62979.patch
URL: http://rpm5.org/
BuildRequires: autoconf >= 2.60
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
%endif
+Requires(posttrans): coreutils
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-lib = %{version}-%{release}
Requires: beecrypt >= %{beecrypt_ver}
Conflicts: poldek < 0.21-0.20070703.00.3
# segfaults with lzma 0.42.2
Conflicts: lzma-libs < 4.999.3
+Conflicts: util-vserver < 0.30.216-1.pre3034.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _binary_payload w9.gzdio
%define _rpmlibdir /usr/lib/rpm
%define _noautocompressdoc RPM-GPG-KEY
-%define specflags -fno-strict-aliasing
-
%description
RPM is a powerful package manager, which can be used to build,
install, query, verify, update, and uninstall individual software
Requires: gzip
Requires: make
Requires: patch
-Requires: sed
+Requires: sed >= 4.0
Requires: sh-utils
-Requires: tar
+Requires: tar >= 1:1.22
Requires: textutils
+Requires: xz
Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
%ifarch %{x8664}
#patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
-%patch26 -p1
+####%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
-%patch41 -p1
+####%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch53 -p1
%patch54 -p1
%patch55 -p1
+%patch56 -p1
+%patch57 -p1
+%patch58 -p1
+%patch59 -p1
+%patch60 -p1
+%patch61 -p1
+%patch62 -p1
+%patch63 -p1
%patch1000 -p1
%patch1001 -p1
%patch1040 -p1
%patch1041 -p1
%patch1042 -p1
-#patch1043 -p1
install %{SOURCE2} macros/pld.in
install %{SOURCE8} scripts/php.prov.in
awk -f %{SOURCE6} %{SOURCE1}
install %{SOURCE26} tools/rpmdb_checkversion.c
+install %{SOURCE28} tools/rpmdb_reset.c
%build
%{__libtoolize}
--with-keyutils=%{?with_keyutils:external}%{!?with_keyutils:no} \
--with-uuid=%{_libdir}:%{_includedir}/ossp-uuid \
--without-path-versioned \
- --with-extra-path-macros='%{_sysconfdir}/rpm/macros.d/*.macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:~/etc/.rpmmacros:~/.rpmmacros' \
+ --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/%{_target}/macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%{_target}/macros:%{_sysconfdir}/rpm/macros.d/*.macros:~/etc/.rpmmacros:~/.rpmmacros' \
--with-bugreport="http://bugs.pld-linux.org/" \
--with-vendor=pld
%{?with_apidocs:%{__make} apidocs}
-%{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb-%{reqdb_ver}
+%{__cc} %{rpmcflags} -I/usr/include/db%{reqdb_ver} tools/rpmdb_checkversion.c \
+ -o tools/rpmdb_checkversion -ldb-%{reqdb_ver}
+%{__cc} %{rpmcflags} -I/usr/include/db%{reqdb_ver} tools/rpmdb_reset.c \
+ -o tools/rpmdb_reset -ldb-%{reqdb_ver}
+
+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
%install
rm -rf $RPM_BUILD_ROOT
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
install tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/bin
+install tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/bin
+install %{SOURCE29} $RPM_BUILD_ROOT%{_rpmlibdir}/bin/dbupgrade.sh
# create macro loading wrappers for backward compatibility
for m in gstreamer java mono perl php python; do
# Bourne shell script vs ELF executable linked with rpm,rpmdb,rpmio
mv $RPM_BUILD_ROOT{%{_rpmlibdir},%{_bindir}}/rpm2cpio
+%if %{with python}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+%endif
# wrong location, not used anyway
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
fi
%posttrans
-if [ -x %{_rpmlibdir}/bin/rpmdb_checkversion ] && \
- ! %{_rpmlibdir}/bin/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm ; then
+if [ -e /var/lib/rpm/Packages ] && \
+ ! %{_rpmlibdir}/bin/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
- /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release} ; then
+ /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
echo
echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
echo
fi
- if [ -x %{_rpmlibdir}/bin/dbconvert ]; then
- if ! %{_rpmlibdir}/bin/dbconvert --rebuilddb ; then
- echo
- echo "rpm database conversion failed!"
- echo "You have to run %{_rpmlibdir}/bin/dbconvert manually"
- echo
- fi
- fi
+ echo
+ echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
+ echo 'you should ignore it and restart poldek'
+ echo
+ %{_rpmlibdir}/bin/dbupgrade.sh
fi
%triggerpostun -- %{name} < 4.4.9-44
%dir %{_rpmlibdir}/bin
%attr(755,root,root) %{_rpmlibdir}/bin/dbconvert
+%attr(755,root,root) %{_rpmlibdir}/bin/dbupgrade.sh
%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_checkversion
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_reset
%files base
%defattr(644,root,root,755)