#
# TODO:
-# - check if glob() patch needs resurrecting/rewriting
-# - check if we want shell autodeps: Requires: executable(ln) executable(mv)
-# - %{_arch} = i686 not as used to be i386 (platform file thing?):
-# 5.0.2: rpm -E '%_target_base_arch %_arch'
-# i386 i686
-# 4.4.9: rpm -E '%_target_base_arch %_arch'
-# i386 i386
-# - python(abi) cap is not provided automatically because /usr/lib*/libpython2*.so.*
-# matches ELF first
+# - make key infrastructure code fallback from keyutils to plain mode in case keyctl
+# returns -ENOSYS
# - add macros for some ppc, mipsel, alpha and sparc
#
-# - headerGet() making poldek segfault http://rpm5.org/cvs/tktview?tn=38,1
-# - rpm doesn't exit when no sources/patches available http://rpm5.org/cvs/tktview?tn=40,1
-# - http://rpm5.org/cvs/tktview?tn=41&_submit=Show
# - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
#
# Conditional build:
%bcond_without python # don't build python bindings
%bcond_without selinux # build without selinux support
%bcond_without suggest_tags # build without Suggest tag (bootstrapping)
-%bcond_without neon # build with HTTP/WebDAV support (neon library)
+%bcond_with neon # build with HTTP/WebDAV support (neon library)
%bcond_without db # BerkeleyDB
%bcond_without sqlite # build with SQLite support
%bcond_with sqlite_dbapi # default database backend is sqlite
-%bcond_without system_lua # use system lua
+%bcond_with system_lua # use system lua
+%bcond_with keyutils # build with keyutils support
# force_cc - force using __cc other than "%{_target_cpu}-pld-linux-gcc"
# force_cxx - force using __cxx other than "%{_target_cpu}-pld-linux-g++"
# force_cpp - force using __cpp other than "%{_target_cpu}-pld-linux-gcc -E"
ERROR
%endif
+%if %{with sqlite}
+# Error: /lib64/librpmio-5.4.so: undefined symbol: sqlite3_enable_load_extension
+%define sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
+%endif
+
# versions of required libraries
+%define reqdb_pkg db5.3
%define reqdb_ver 5.3
%define reqpopt_ver 1.15
%define beecrypt_ver 2:4.1.2-4
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
Version: 5.4.10
-Release: 0.1
+Release: 23
License: LGPL
Group: Base
# http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.10-0.20120706.src.rpm
Source5: %{name}-hrmib-cache
Source6: %{name}-groups-po.awk
Source7: %{name}-compress-doc
-Source9: %{name}-php-provides
-Source10: %{name}-php-requires
-Source11: %{name}.sysinfo
-Source12: perl.prov
-Source13: %{name}-user_group.sh
-Source14: %{name}.sysconfig
-Source16: %{name}-java-requires
+Source8: %{name}-php-provides
+Source9: %{name}-php-requires
+Source10: %{name}.sysinfo
+Source11: perl.prov
+Source12: %{name}-user_group.sh
+Source13: %{name}.sysconfig
+Source14: %{name}-java-requires
# http://svn.pld-linux.org/banner.sh/
-Source17: banner.sh
-Source19: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
-# Source19-md5: 08b29584dd349aac9caa7610131a0a88
-Source20: %{name}-mimetypedeps
-Source21: macros.local
-Source22: rpm.noautocompressdoc
-Source23: rpm.noautoprov
-Source24: rpm.noautoprovfiles
-Source25: rpm.noautoreq
-Source26: rpm.noautoreqdep
-Source27: rpm.noautoreqfiles
-Source29: %{name}-php-requires.php
-
+Source15: banner.sh
+Source16: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
+# Source16-md5: 08b29584dd349aac9caa7610131a0a88
+Source17: %{name}-mimetypedeps
+Source18: macros.local
+Source19: rpm.noautocompressdoc
+Source20: rpm.noautoprov
+Source21: rpm.noautoprovfiles
+Source22: rpm.noautoreq
+Source23: rpm.noautoreqdep
+Source24: rpm.noautoreqfiles
+Source25: %{name}-php-requires.php
+Source26: rpmdb_checkversion.c
+Source27: macros.lang
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
-Patch7: %{name}-scripts-closefds.patch
-Patch8: %{name}-php-macros.patch
-Patch9: %{name}-gettext-in-header.patch
-Patch11: %{name}-lua.patch
-
-Patch14: %{name}-etc_dir.patch
-Patch16: %{name}-php-deps.patch
-Patch19: %{name}-glob.patch
-
-Patch26: %{name}-notsc.patch
-Patch27: %{name}-hack-norpmlibdep.patch
-
-Patch34: %{name}-epoch0.patch
-Patch35: %{name}-perl_req-INC_dirs.patch
-Patch36: %{name}-debuginfo.patch
-
-Patch41: vendor-pld.patch
-
-Patch42: %{name}-old-fileconflicts-behaviour.patch
-
-Patch47: %{name}-javadeps.patch
-
-Patch55: %{name}-truncate-cvslog.patch
-
-Patch59: %{name}-libtool-deps.patch
-Patch60: %{name}-mimetype.patch
-Patch61: %{name}-sparc64.patch
-Patch62: %{name}-gendiff.patch
-Patch72: openmp.patch
-Patch73: %{name}-URPM-build-fix.patch
-Patch74: %{name}-db5.3.patch
-Patch75: %{name}-helperEVR-noassert.patch
-Patch76: %{name}-unglobal.patch
-Patch77: %{name}-builddir-readlink.patch
-Patch78: %{name}-changelog_order_check_nonfatal.patch
-Patch79: %{name}-cleanbody.patch
-Patch80: %{name}-dirdeps-macro.patch
-Patch81: %{name}-installbeforeerase.patch
-Patch82: %{name}-libmagic-locale.patch
-Patch83: %{name}-namespace-probe.patch
-Patch84: %{name}-popt-coreutils.patch
-Patch85: %{name}-postun-nofail.patch
+Patch6: %{name}-scripts-closefds.patch
+Patch7: %{name}-php-macros.patch
+Patch8: %{name}-gettext-in-header.patch
+Patch9: %{name}-lua.patch
+Patch10: %{name}-php-deps.patch
+Patch11: %{name}-notsc.patch
+Patch12: %{name}-hack-norpmlibdep.patch
+Patch13: %{name}-epoch0.patch
+Patch14: %{name}-perl_req-INC_dirs.patch
+Patch15: %{name}-debuginfo.patch
+Patch16: vendor-pld.patch
+Patch17: %{name}-old-fileconflicts-behaviour.patch
+Patch18: %{name}-javadeps.patch
+Patch19: %{name}-truncate-cvslog.patch
+Patch20: %{name}-libtool-deps.patch
+Patch21: %{name}-mimetype.patch
+Patch22: %{name}-sparc64.patch
+Patch23: %{name}-gendiff.patch
+Patch24: openmp.patch
+Patch25: %{name}-URPM-build-fix.patch
+Patch26: %{name}-db5.3.patch
+Patch27: %{name}-helperEVR-noassert.patch
+Patch28: %{name}-unglobal.patch
+Patch29: %{name}-builddir-readlink.patch
+Patch30: %{name}-changelog_order_check_nonfatal.patch
+Patch31: %{name}-cleanbody.patch
+Patch32: %{name}-dirdeps-macro.patch
+Patch33: %{name}-installbeforeerase.patch
+Patch34: %{name}-libmagic-locale.patch
+Patch35: %{name}-namespace-compare.patch
+Patch36: %{name}-popt-coreutils.patch
+Patch37: %{name}-postun-nofail.patch
+Patch38: %{name}-silence-RPM_CHAR_TYPE.patch
+Patch39: %{name}-fix-missing-types-in-headers.patch
+Patch40: %{name}-fix--p-interpreter-and-empty-script.patch
+Patch41: %{name}-db_buffer_small.patch
+Patch42: %{name}-pattern_Release.patch
+Patch43: %{name}-fix-___build_pre-macro.patch
+Patch44: %{name}-missing-patch-file-fails-build.patch
+Patch45: %{name}-remove-misleading-missing-patch-message.patch
+Patch46: %{name}-file-magic-can-be-mixed-case.patch
+Patch47: %{name}-query-file-always-noisy.patch
+Patch48: %{name}-verify-ghosts-broken-logic.patch
+Patch49: %{name}-python-enable-compat-RPMSENSE.patch
+Patch50: %{name}-dont-treat-gstreamer-modules-as-font.patch
+Patch51: %{name}-gst-inspect-typo.patch
+Patch52: %{name}-null-term-ascii-digest.patch
+Patch53: %{name}-lua-enable-extra-libs.patch
+Patch54: %{name}-fix-filedigests-verify.patch
# Patches imported from Mandriva
# --ignorearch & --ignoreos to set these.
# status: needs to be discussed upstream before thinking about merging
Patch1038: rpm-5.4.10-support-ignore-arch-and-os-again.patch
+# status: ready for merge
+Patch1039: rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch
+# we want that patch too, a bit of builder infrastructure relies on NOSIGNATURES
+Patch1040: rpm-5.4.9-support-signatures-and-digest-disablers.patch
URL: http://rpm5.org/
BuildRequires: autoconf >= 2.60
BuildRequires: elfutils-devel >= 0.108
#BuildRequires: gettext-autopoint >= 0.11.4-2
BuildRequires: gettext-devel >= 0.11.4-2
-BuildRequires: keyutils-devel
+%{?with_keyutils:BuildRequires: keyutils-devel}
BuildRequires: libmagic-devel
-%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
+%if %{with selinux}
+BuildRequires: libselinux-devel >= 2.1.0
+BuildRequires: libsepol-devel >= 2.1.0
+BuildRequires: libsemanage-devel >= 2.1.0
+%endif
# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
BuildRequires: libstdc++-devel
BuildRequires: libtool >= 1:1.4.2-9
BuildRequires: libxml2-devel
BuildRequires: neon-devel >= 0.25.5
%endif
+BuildRequires: ossp-uuid-devel
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
%{?with_system_lua:BuildRequires: lua51-devel >= 5.1.2}
# Require static library only for static build
BuildRequires: beecrypt-static >= %{beecrypt_ver}
BuildRequires: bzip2-static >= 1.0.2-17
-%{?with_db:BuildRequires: db-static >= %{reqdb_ver}}
+%{?with_db:BuildRequires: %{reqdb_pkg}-static >= %{reqdb_ver}}
BuildRequires: elfutils-static
BuildRequires: glibc-static >= 2.2.94
BuildRequires: libmagic-static
-%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
+%if %{with selinux}
+BuildRequires: libselinux-static >= 2.1.0
+BuildRequires: libsepol-static >= 2.1.0
+BuildRequires: libsemanage-static >= 2.1.0
+%endif
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _binary_payload w9.gzdio
-%define _noPayloadPrefix 1
# don't require very fresh rpm.macros to build
%define __gettextize gettextize --copy --force --intl ; cp -f po/Makevars{.template,}
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
Requires: beecrypt >= %{beecrypt_ver}
-%{?with_db:Requires: db >= %{reqdb_ver}}
+%{?with_db:Requires: %{reqdb_pkg} >= %{reqdb_ver}}
Requires: libmagic >= 1.15-2
-%{?with_selinux:Requires: libselinux >= 1.18}
+%{?with_selinux:Requires: libselinux >= 2.1.0}
Requires: popt >= %{reqpopt_ver}
+%{?with_sqlite:Requires: sqlite3 >= %{sqlite_build_version}}
Obsoletes: rpm-libs
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
Requires: %{name}-lib = %{version}-%{release}
Requires: beecrypt-devel >= %{beecrypt_ver}
Requires: bzip2-devel
-%{?with_db:Requires: db-devel >= %{reqdb_ver}}
+%{?with_db:Requires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
Requires: elfutils-devel
-Requires: keyutils-devel
+%{?with_keyutils:Requires: keyutils-devel}
Requires: libmagic-devel
%{?with_selinux:Requires: libselinux-devel}
Requires: popt-devel >= %{reqpopt_ver}
Requires: %{name}-devel = %{version}-%{release}
Requires: beecrypt-static >= %{beecrypt_ver}
Requires: bzip2-static
-%{?with_db:Requires: db-static >= %{reqdb_ver}}
+%{?with_db:Requires: %{reqdb_pkg}-static >= %{reqdb_ver}}
Requires: elfutils-static
-Requires: keyutils-static
+%{?with_keyutils:Requires: keyutils-static}
Requires: libmagic-static
Requires: popt-static >= %{reqpopt_ver}
Requires: zlib-static
Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
Group: Applications/File
Requires(pre): findutils
-Requires: %{name}-build-macros >= 1.433-2
+Requires: %{name}-build-macros >= 1.653
Requires: %{name}-utils = %{version}-%{release}
Requires: /bin/id
Requires: awk
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
-%{?with_system_lua:%patch11 -p1}
-# CHECK ME - macrofiles: ~/etc could be used
-#%%patch14 -p1
-%patch16 -p1
+%{?with_system_lua:%patch9 -p1}
+%patch10 -p1
%ifnarch i386 i486
# enable TSC for capable archs
-%patch26 -p1
+%patch11 -p1
+%endif
+%patch12 -p1
+%patch13 -p1
+%patch14 -p0
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%ifarch sparc64
+%patch22 -p1
%endif
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
%patch34 -p1
-%patch35 -p0
+%patch35 -p1
%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
%patch41 -p1
%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
%patch47 -p1
-%patch55 -p1
-%patch59 -p1
-# Maybe, at last we can remove this?
-#patch19 -p1
-%patch60 -p1
-%ifarch sparc64
-%patch61 -p1
-%endif
-%patch62 -p1
-%patch72 -p1 -b .wiget
-%patch73 -p1
-%patch74 -p1
-%patch75 -p1
-%patch76 -p1
-%patch77 -p1
-%patch78 -p1
-%patch79 -p1
-%patch80 -p1
-%patch81 -p1
-%patch82 -p1
-%patch83 -p1
-%patch84 -p1
-%patch85 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p0
+%patch53 -p1
+%patch54 -p1
%patch1000 -p1
%patch1001 -p1
%patch1036 -p1
%patch1037 -p1
%patch1038 -p1
+%patch1039 -p1
+%patch1040 -p1
install %{SOURCE2} macros/pld.in
-install %{SOURCE9} scripts/php.prov.in
-install %{SOURCE10} scripts/php.req.in
-install %{SOURCE12} scripts/perl.prov.in
+install %{SOURCE8} scripts/php.prov.in
+install %{SOURCE9} scripts/php.req.in
+install %{SOURCE11} scripts/perl.prov.in
%{__mv} -f scripts/perl.req{,.in}
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
+install %{SOURCE26} tools/rpmdb_checkversion.c
+
%build
%{__libtoolize}
#%{__autopoint}
%{__autoconf}
%{__automake}
+# rpm checks for CPU type at runtime, but it looks better
+sed -i \
+ -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
+ -e 's|@host_cpu@|%{_target_cpu}|' \
+ -e 's|@host_os@|%{_target_os}|' \
+ macros/macros.in
+
%{?with_system_lua:CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}"}
# pass CC and CXX too in case of building with some older configure macro
%configure \
CXX="%{__newcxx}" \
CPP="%{__newcpp}" \
WITH_PERL_VERSION=no \
+ __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
--enable-shared \
--enable-static \
%{!?with_apidocs:--without-apidocs} \
%{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \
%{!?with_python:--without-python} \
- --with%{!?with_selinux:out}-selinux \
+ --with-selinux=%{!?with_selinux:no}%{?with_selinux:external} \
+ --with-sepol=%{!?with_selinux:not}%{?with_selinux:external} \
+ --with-semanage=%{!?with_selinux:no}%{?with_selinux:external} \
--with-libelf \
--with-zlib=external \
--with-bzip2=external \
--with-dbapi=%{!?with_sqlite_dbapi:db}%{?with_sqlite_dbapi:sqlite} \
--with-lua=%{!?with_system_lua:internal}%{?with_system_lua:external} \
--with-pcre=external \
- --with-keyutils=none \
+ --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.build:%{_rpmlibdir}/macros.d/pld:~/etc/rpmmacros:~/etc/.rpmmacros:~/.rpmmacros' \
+ --with-extra-path-macros='%{_sysconfdir}/rpm/macros.d/*.macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:~/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
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner,/var/cache/hrmib,/etc/pki/rpm-gpg}
+install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm} \
+ $RPM_BUILD_ROOT{/var/lib/banner,/var/cache/hrmib,/etc/pki/rpm-gpg}
-install %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
+install %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
%{__make} install \
pkgconfigdir=%{_pkgconfigdir} \
install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
install %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond
install %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc
-install %{SOURCE13} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
-install %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
+install %{SOURCE12} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
+install %{SOURCE14} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir}
install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir}
-cp -p %{SOURCE29} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php
-install %{SOURCE20} $RPM_BUILD_ROOT%{_rpmlibdir}/mimetypedeps.sh
+cp -p %{SOURCE25} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php
+install %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/mimetypedeps.sh
install %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
-install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/rpm
+install %{SOURCE13} $RPM_BUILD_ROOT/etc/sysconfig/rpm
-install %{SOURCE17} $RPM_BUILD_ROOT%{_bindir}/banner.sh
+install %{SOURCE15} $RPM_BUILD_ROOT%{_bindir}/banner.sh
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
-install %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
-install %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc
-install %{SOURCE23} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
-install %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
-install %{SOURCE25} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
-install %{SOURCE26} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep
-install %{SOURCE27} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
+install %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
+install %{SOURCE27} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
+install %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc
+install %{SOURCE20} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
+install %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
+install %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
+install %{SOURCE23} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep
+install %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Dirnames
-install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Filelinktos
+install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Filelinktos
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Obsoletename
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Providename
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
+install tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/bin
+
+# create macro loading wrappers for backward compatibility
+for m in gstreamer java mono perl php python; do
+ echo "%%{load:%{_rpmlibdir}/macros.d/$m}" >$RPM_BUILD_ROOT%{_rpmlibdir}/macros.$m
+done
+
# for rpm -e|-U --repackage
install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm}
touch $RPM_BUILD_ROOT/var/lock/rpm/transaction
%clean
rm -rf $RPM_BUILD_ROOT
-%triggerpostun lib -- %{name}-lib < %{version}
-rm -f /var/lib/rpm/__db*
-
%pretrans
# this needs to be a dir
if [ -f %{_sysconfdir}/rpm/sysinfo ]; then
mkdir %{_sysconfdir}/rpm/sysinfo
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.rpmbackup-%{version}-%{release} ] && \
+ /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
+fi
+
%triggerpostun -- %{name} < 4.4.9-44
%{_rpmlibdir}/hrmib-cache
%attr(755,root,root) /bin/rpm
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
%dir %{_sysconfdir}/rpm/sysinfo
# these are ok to be replaced
%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/sysinfo/*
%dir %{_rpmlibdir}/bin
%attr(755,root,root) %{_rpmlibdir}/bin/dbconvert
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_checkversion
%files base
%defattr(644,root,root,755)
%attr(755,root,root) %{_rpmlibdir}/bin/rpmcmp
%attr(755,root,root) %{_rpmlibdir}/bin/rpmdeps
%attr(755,root,root) %{_rpmlibdir}/bin/rpmdigest
-%attr(755,root,root) %{_rpmlibdir}/bin/rpmkey
+%if %{with selinux}
+%attr(755,root,root) %{_rpmlibdir}/bin/semodule
+%attr(755,root,root) %{_rpmlibdir}/bin/spooktool
+%endif
+%if %{without system_lua}
+%attr(755,root,root) %{_rpmlibdir}/bin/lua
+%attr(755,root,root) %{_rpmlibdir}/bin/luac
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmlua
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmluac
+%endif
+%{?with_keyutils:%attr(755,root,root) %{_rpmlibdir}/bin/rpmkey}
%attr(755,root,root) %{_rpmlibdir}/bin/rpmrepo
%{_mandir}/man8/rpm2cpio.8*
%{_mandir}/man8/rpmcache.8*
%endif
# not used yet ... these six depend on perl
%attr(755,root,root) %{_rpmlibdir}/http.req
-%attr(755,root,root) %{_rpmlibdir}/mono*
+# we always used scripts provided by mono-devel, maybe move them here
+#%attr(755,root,root) %{_rpmlibdir}/mono-find-provides
+#%attr(755,root,root) %{_rpmlibdir}/mono-find-requires
%attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
# must be here for "Requires: rpm-*prov" to work
%{_rpmlibdir}/macros.d/selinux
%{_rpmlibdir}/macros.d/tcl
%{_rpmlibdir}/macros.rpmbuild
+# compat wrappers
+%{_rpmlibdir}/macros.gstreamer
+%{_rpmlibdir}/macros.java
+%{_rpmlibdir}/macros.mono
+%{_rpmlibdir}/macros.perl
+%{_rpmlibdir}/macros.php
+%{_rpmlibdir}/macros.python
%attr(755,root,root) %{_rpmlibdir}/check-multiarch-files
%attr(755,root,root) %{_rpmlibdir}/gem_helper.rb