X-Git-Url: https://git.tld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=rpm.spec;h=659979f9b4739ab2652166607566278ee9ad8014;hp=16f360382494b6894363192ae3c7fd515283deba;hb=a4316b5afc30b9f3e8e667bcd44e4feccd020080;hpb=6fce50075952edfa510790ca6be81e6d3fb9e214 diff --git a/rpm.spec b/rpm.spec index 16f3603..659979f 100644 --- a/rpm.spec +++ b/rpm.spec @@ -6,12 +6,12 @@ %bcond_without apidocs # don't generate documentation with doxygen %bcond_without python3 # don't build python bindings %bcond_without plugins # build plugins -%bcond_with recommends_tags # build without Recommends tag (bootstrapping) +%bcond_without recommends_tags # build without Recommends tag (bootstrapping) %bcond_with imaevm # build with IMA/EVM support (requires libimaevm from ima-evm-utils) %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 @@ -25,20 +25,21 @@ Summary(pt_BR.UTF-8): Gerenciador de pacotes RPM Summary(ru.UTF-8): Менеджер пакетов от RPM Summary(uk.UTF-8): Менеджер пакетів від RPM Name: rpm -Version: 4.16.0 -Release: 0.4 +Version: 4.16.1.2 +Release: 0.3 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: https://ftp.tld-linux.org/TLD/TLD-Linux.asc +# Source1-md5: 5b5caff8c570489ad5bf950734546c24 Source2: macros.local Source3: macros.lang Source4: %{name}.sysconfig 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 @@ -47,9 +48,6 @@ Source12: %{name}.noautoprovfiles 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 @@ -67,11 +65,23 @@ Patch14: %{name}-ignore-missing-macro-files.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 Patch22: ix86-platforms.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 +Patch100: build-id-links.patch URL: https://rpm.org/ BuildRequires: acl-devel BuildRequires: db-devel >= %{db_ver} @@ -93,7 +103,6 @@ BuildRequires: libselinux-devel >= 2.1.0 # 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} @@ -121,12 +130,11 @@ Requires: rpm-tld-macros >= 1.744 Requires: FHS >= 3.0-2 Requires: libgcrypt Requires: popt >= %{popt_ver} -#%if %{with recommends_tags} -#Recommends: rpm-plugin-audit -#Recommends: rpm-plugin-prioreset -#Recommends: rpm-plugin-syslog -#Recommends: rpm-plugin-systemd-inhibit -#%endif +%if %{with recommends_tags} +Recommends: rpm-plugin-audit +Recommends: rpm-plugin-prioreset +Recommends: rpm-plugin-syslog +%endif Obsoletes: rpm-utils-perl Obsoletes: rpm-utils-static Conflicts: glibc < 2.2.92 @@ -309,10 +317,10 @@ Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami Group: Applications/File Requires: %{name} = %{epoch}:%{version}-%{release} Requires: popt >= %{popt_ver} -#%if %{with recommends_tags} -#Recommends: bzip2 -#Recommends: gzip -#%endif +%if %{with recommends_tags} +Recommends: bzip2 +Recommends: gzip +%endif Conflicts: filesystem-debuginfo < 3.0-16 %description utils @@ -477,15 +485,6 @@ Requires: %{name}-lib = %{epoch}:%{version}-%{release} %description plugin-syslog This plugin exports RPM actions to the system log. -%package plugin-systemd-inhibit -Summary: Plugin for systemd inhibit functionality -Group: Base -Requires: %{name}-lib = %{epoch}:%{version}-%{release} - -%description plugin-systemd-inhibit -This plugin blocks systemd from entering idle, sleep or shutdown while -an rpm transaction is running using the systemd-inhibit mechanism. - %package plugin-ima Summary: Plugin for IMA file signatures Group: Base @@ -502,8 +501,7 @@ Requires: %{name}-lib = %{epoch}:%{version}-%{release} %description plugin-prioreset This plugin is useful on legacy SysV init systems if you run rpm -transactions with nice/ionice priorities. Should not be used on -systemd systems. +transactions with nice/ionice priorities. %package plugin-selinux Summary: Plugin for SELinux functionality @@ -560,6 +558,18 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze %patch20 -p1 %patch21 -p1 %patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 +%patch33 -p1 +%patch100 -p1 install %{SOURCE15} scripts/perl.prov.in @@ -568,9 +578,6 @@ 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 @@ -595,9 +602,11 @@ sed -i \ PYTHON=python3 \ --enable-python \ %endif + --disable-inhibit-plugin \ --disable-silent-rules \ --enable-shared \ --enable-bdb \ + --enable-bdb-ro \ --enable-ndb \ --enable-sqlite \ --enable-zstd \ @@ -613,18 +622,6 @@ sed -i \ %{__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 @@ -633,7 +630,9 @@ cd python %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/TLD-Linux.asc %{__make} install \ pkgconfigdir=%{_pkgconfigdir} \ @@ -672,8 +671,11 @@ rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros 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 @@ -695,7 +697,6 @@ install -d $RPM_BUILD_ROOT%{_rpmlibdir}/tld 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 @@ -707,10 +708,6 @@ cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles 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 @@ -722,8 +719,16 @@ for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a} done -# 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 @@ -744,8 +749,7 @@ cd .. 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 @@ -756,12 +760,19 @@ if [ -e /var/lib/rpm/Packages ] && \ 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 || : + # Unlock database for rebuild, safe since this is posttrans + %{__rm} -f /var/lib/rpm/.rpm.lock >/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 @@ -772,6 +783,9 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %defattr(644,root,root,755) %doc ChangeLog CREDITS README +%dir /etc/pki/rpm-gpg +/etc/pki/rpm-gpg/TLD-Linux.asc + %attr(755,root,root) /bin/rpm %attr(755,root,root) %{_bindir}/rpmdb %attr(755,root,root) %{_bindir}/rpmkeys @@ -796,10 +810,8 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %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 @@ -825,6 +837,9 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %ifarch aarch64 %{_rpmlibdir}/platform/aarch64* %endif +%ifarch %{arm} +%{_rpmlibdir}/platform/arm* +%endif %ifarch ia64 %{_rpmlibdir}/platform/ia64* %endif @@ -840,11 +855,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %dir %{_rpmlibdir}/tld -%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 @@ -993,11 +1003,6 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so %{_mandir}/man8/rpm-plugin-syslog.8* -%files plugin-systemd-inhibit -%defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so -%{_mandir}/man8/rpm-plugin-systemd-inhibit.8* - %files plugin-ima %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so