# - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
#
# Conditional build:
-%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_with imaevm # build with IMA/EVM support (requires libimaevm from ima-evm-utils)
+%bcond_with apidocs # Doxygen based API documentation
+%bcond_with python3 # Python (3) bindings
+%bcond_with plugins # plugins (all, including: audit, imaevm, selinux, systemd)
+%bcond_with recommends_tags # use of Recommends tag (disable for bootstrapping)
+%bcond_with imaevm # IMA/EVM signing support (requires libimaevm from ima-evm-utils)
+%bcond_with audit # audit plugin
+%bcond_with selinux # SELinux plugin
+%bcond_with systemd # systemd inhibit plugin
+%bcond_with fsverity # fsverity plugin
-%define db_ver 5.3.28.0
%define popt_ver 1.15
-%define sover 9.1.0
+%define sover 9.3.0
%if "%{_rpmversion}" >= "4.12" && "%{_rpmversion}" < "5"
%define with_recommends_tags 1
%endif
+%if %{without plugins}
+%undefine with_audit
+%undefine with_selinux
+%undefine with_systemd
+%endif
Summary: RPM Package Manager
Summary(de.UTF-8): RPM Packet-Manager
Summary(es.UTF-8): Gestor de paquetes RPM
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 4.16.0
-Release: 0.4
+Version: 4.17.1.1
+Release: 1
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: http://ftp.rpm.org/releases/rpm-4.17.x/%{name}-%{version}.tar.bz2
+# Source0-md5: 30e5806bdcb06a17cabf23d8f07b6b0f
+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
Source13: %{name}.noautoreq
Source14: %{name}.noautoreqfiles
Source15: perl.prov
-Source16: %{name}db_checkversion.c
-Source17: %{name}db_reset.c
-Source18: dbupgrade.sh
+Source16: libtooldeps.sh
+Source17: libtool.attr
Patch0: %{name}-man_pl.patch
Patch1: %{name}-popt-aliases.patch
Patch2: %{name}-perl-macros.patch
Patch3: %{name}-perl-req-perlfile.patch
Patch4: %{name}-scripts-closefds.patch
+Patch5: %{name}-dir-macros-relative.patch
Patch6: %{name}-perl_req-INC_dirs.patch
Patch7: %{name}-debuginfo.patch
-Patch8: %{name}-libtool-deps.patch
Patch9: %{name}-builddir-readlink.patch
Patch10: %{name}-changelog_order_check_nonfatal.patch
Patch11: %{name}-postun-nofail.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
+Patch21: arm_abi.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
+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
+Patch34: skip-symlinks.patch
+Patch35: pl-po.patch
+Patch36: build-locale.patch
+Patch37: no-exe-for-elf-req.patch
+Patch38: gem-in-package-builddir.patch
+Patch39: sqlite-log-crash.patch
URL: https://rpm.org/
BuildRequires: acl-devel
-BuildRequires: db-devel >= %{db_ver}
+%{?with_audit:BuildRequires: audit-libs-devel}
BuildRequires: autoconf >= 2.63
-BuildRequires: automake >= 1.4
+BuildRequires: automake >= 1:1.10
BuildRequires: bzip2-devel >= 1.0.2-17
-BuildRequires: elfutils-devel >= 0.108
+%{?with_plugins:BuildRequires: dbus-devel >= 1.3}
+BuildRequires: elfutils-devel >= 0.159
BuildRequires: gettext-tools >= 0.19.2
+%{?with_imaevm:BuildRequires: ima-evm-utils-devel >= 1.0}
BuildRequires: libarchive-devel
BuildRequires: libcap-devel
-BuildRequires: libmagic-devel
BuildRequires: libgcrypt-devel
-%if %{with plugins}
-BuildRequires: audit-libs-devel
-BuildRequires: dbus-devel
-%{?with_imaevm:BuildRequires: libimaevm-devel >= 1.0}
-BuildRequires: libselinux-devel >= 2.1.0
-%endif
+BuildRequires: libgomp-devel >= 6:4.5
+BuildRequires: libmagic-devel
+%{?with_selinux: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: lua-devel >= 5.3
BuildRequires: patch >= 2.2
-BuildRequires: pkgconfig(lua) >= 5.1
+BuildRequires: pkgconfig
BuildRequires: popt-devel >= %{popt_ver}
-BuildRequires: python3-modules
+BuildRequires: python3-modules >= 1:3.2
%if %{with python3}
-BuildRequires: python3-devel
+BuildRequires: python3-devel >= 1:3.2
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.750
%endif
+BuildRequires: rpm-build
BuildRequires: sqlite3-devel >= 3.22.0
BuildRequires: tcl
BuildRequires: xz-devel
-BuildRequires: zlib-devel
-BuildRequires: zstd-devel
+BuildRequires: zlib-devel >= 1.0.5
+BuildRequires: zstd-devel >= 1.3.8
%if %{with apidocs}
BuildRequires: doxygen
BuildRequires: ghostscript
Requires(posttrans): coreutils
Requires: %{name}-base = %{epoch}:%{version}-%{release}
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
-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
-Obsoletes: rpm-utils-perl
-Obsoletes: rpm-utils-static
+Requires: rpm-tld-macros >= 2.002
+Obsoletes: rpm-utils-perl < 1:4.15
+Obsoletes: rpm-utils-static < 1:4.15
Conflicts: glibc < 2.2.92
# db4.6 poldek needed
Conflicts: poldek < 0.21-0.20070703.00.3
Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
Group: Base
Requires: filesystem
-Obsoletes: rpm-scripts
-Obsoletes: vserver-rpm
+Obsoletes: rpm-scripts < 4.4
+Obsoletes: vserver-rpm < 1
%description base
The RPM base package contains scripts used by rpm packages themselves.
Summary: RPMs library
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
-Requires: db >= %{db_ver}
+Requires: elfutils >= 0.159
+Requires: elfutils-libelf >= 0.159
Requires: libmagic >= 1.15-2
Requires: popt >= %{popt_ver}
-Obsoletes: rpm-libs
+Requires: sqlite3-libs >= 3.22.0
+Requires: zlib >= 1.0.5
+Requires: zstd >= 1.3.8
+Obsoletes: rpm-libs < 4.0.2-4
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
Group: Development/Libraries
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+Requires: acl-devel
+%{?with_audit:Requires: audit-libs-devel}
Requires: bzip2-devel
-Requires: db-devel >= %{db_ver}
-Requires: elfutils-devel
-Requires: libmagic-devel
+Requires: elfutils-devel >= 0.159
+Requires: libcap-devel
Requires: libgcrypt-devel
+Requires: libgomp-devel >= 6:4.5
+Requires: libmagic-devel
%if %{with selinux}
Requires: libselinux-devel
Requires: libsemanage-devel
Requires: libsepol-devel
%endif
+Requires: lua-devel >= 5.3
Requires: popt-devel >= %{popt_ver}
-Requires: zlib-devel
+Requires: sqlite3-devel >= 3.22.0
+Requires: xz-devel
+Requires: zlib-devel >= 1.0.5
+Requires: zstd-devel >= 1.3.8
+Obsoletes: rpm-static < 1:4.15
%description devel
The RPM packaging system includes C libraries that make it easy to
Group: Applications/File
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: popt >= %{popt_ver}
-#%if %{with recommends_tags}
-#Recommends: bzip2
-#Recommends: gzip
-#%endif
Conflicts: filesystem-debuginfo < 3.0-16
%description utils
Requires(pretrans): coreutils
Requires(pretrans): findutils
Requires: %{name}-utils = %{epoch}:%{version}-%{release}
-Requires: rpm-tld-macros-build >= 1.744
Requires: /bin/id
Requires: awk
Requires: bzip2
Requires: chrpath >= 0.10-4
Requires: cpio
+Requires: debugedit
Requires: diffutils
Requires: elfutils
Requires: file >= 4.17
Requires: fileutils
Requires: findutils
+Requires: rpm-tld-macros-build >= 1.744
%ifarch athlon
Requires: gcc >= 3.0.3
%else
Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
pakietach RPM.
-%package pythonprov
-Summary: Python macros, which simplifies creation of RPM packages with Python software
-Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
-Group: Applications/File
-Requires: %{name} = %{epoch}:%{version}-%{release}
-Requires: python3
-Requires: python3-modules
-Requires: python3-setuptools
-
-%description pythonprov
-Python macros, which simplifies creation of RPM packages with Python
-software.
-
-%description pythonprov -l pl.UTF-8
-Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
-Pythonie.
-
%package -n python3-rpm
Summary: Python 3 interface to RPM library
Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: python3
Obsoletes: python-rpm < 1:4.16.0
-Obsoletes: rpm-python
+Obsoletes: rpm-python < 4.0.2-50
%description -n python3-rpm
The python3-rpm package contains a module which permits applications
%package plugin-audit
Summary: Plugin for logging audit events on package operations
+Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
%description plugin-audit
-Plugin for libaudit support
+Plugin for libaudit support.
+
+%description plugin-audit -l pl.UTF-8
+Wtyczka do obsługi libaudit.
%package plugin-syslog
Summary: Plugin for syslog functionality
+Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
%description plugin-syslog
This plugin exports RPM actions to the system log.
+%description plugin-syslog -l pl.UTF-8
+Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
+
%package plugin-systemd-inhibit
Summary: Plugin for systemd inhibit functionality
+Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+Requires: dbus >= 1.3
%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.
+%description plugin-systemd-inhibit -l pl.UTF-8
+Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
+uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
+RPM-a, korzystając z mechanizmu systemd-inhibit.
+
%package plugin-ima
Summary: Plugin for IMA file signatures
+Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
This plugin adds support for enforcing and verifying IMA file
signatures in an rpm.
+%description plugin-ima -l pl.UTF-8
+Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików IMA
+w RPM-ie.
+
%package plugin-prioreset
Summary: Plugin for resetting scriptlet priorities for SysV init
+Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
transactions with nice/ionice priorities. Should not be used on
systemd systems.
+%description plugin-prioreset -l pl.UTF-8
+Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
+SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
+nice/ionice. Nie powinna być używana w systemach z systemd.
+
%package plugin-selinux
Summary: Plugin for SELinux functionality
+Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
Requires: libselinux >= 2.1.0
%description plugin-selinux
Plugin for SELinux functionality.
+%description plugin-selinux -l pl.UTF-8
+Wtyczka do funkcjonalności SELinux.
+
+%package plugin-fsverity
+Summary: Plugin for fsverity file signatures
+Summary(pl.UTF-8): Wtyczka do sygnatur plików fsverity
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-fsverity
+Plugin for fsverity file signatures.
+
+%description plugin-fsverity -l pl.UTF-8
+Wtyczka do sygnatur plików fsverity.
+
+%package plugin-fapolicyd
+Summary: Plugin for fapolicyd support
+Summary(pl.UTF-8): Wtyczka do obsługi fapolicyd
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-fapolicyd
+Plugin for fapolicyd support.
+
+See https://people.redhat.com/sgrubb/fapolicyd/ for information about
+the fapolicyd daemon.
+
+%description plugin-fapolicyd -l pl.UTF-8
+Wtyczka do obsługi fapolicyd.
+
+Informacje na temat demona fapolicyd można znaleźć pod adresem
+<https://people.redhat.com/sgrubb/fapolicyd/>.
+
+%package plugin-dbus-announce
+Summary: Plugin for announcing transactions on the DBUS
+Summary(pl.UTF-8): Wtyczka ogłaszająca transakcje przez DBUS
+Group: Base
+Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+
+%description plugin-dbus-announce
+The plugin announces basic information about rpm transactions to the
+system DBUS - like packages installed or removed. Other programs can
+subscribe to the signals to get notified when packages on the system
+change.
+
+%description plugin-dbus-announce -l pl.UTF-8
+Ta wtyczka ogłasza przez podstawowe szynę systemową DBUS informacje o
+transakcjach RPM-a, takie jak pakiety, które są instalowane lub
+usuwane. Inne programy mogą zasubskrybować sygnały powiadamiające o
+zmianach w pakietach systemowych.
+
%package sign
Summary: Package signing support
+Summary(pl.UTF-8): Obsługa podpisywania pakietów
Group: Base
Requires: %{name}-lib = %{epoch}:%{version}-%{release}
%description sign
This package contains support for digitally signing RPM packages.
+%description sign -l pl.UTF-8
+Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
+
%package apidocs
Summary: RPM API documentation and guides
Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
%patch6 -p0
%patch7 -p1
-%patch8 -p1
-%patch9 -p1
+#%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch28 -p1
+#%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+
+%{__rm} po/*.gmo
install %{SOURCE15} scripts/perl.prov.in
-%{__mv} -f scripts/perl.req{,.in}
+%{__mv} scripts/perl.req{,.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
%{__libtoolize}
%{__aclocal}
%{__automake}
# rpm checks for CPU type at runtime, but it looks better
-sed -i \
+%{__sed} -i \
-e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
-e 's|@host_cpu@|%{_target_cpu}|' \
-e 's|@host_os@|%{_target_os}|' \
macros.in
%configure \
+ PYTHON=python3 \
WITH_PERL_VERSION=no \
__GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
__GPG=%{_bindir}/gpg \
-%if %{with python3}
- PYTHON=python3 \
- --enable-python \
-%endif
- --disable-silent-rules \
- --enable-shared \
- --enable-bdb \
+ --enable-bdb-ro \
--enable-ndb \
+ %{!?with_plugins:--disable-plugins} \
+ %{!?with_systemd:--disable-inhibit-plugin} \
+ --disable-silent-rules \
--enable-sqlite \
--enable-zstd \
- --with-lua \
- %{?with_imaevm:--with-imaevm} \
- --with-cap \
--with-acl \
- --with-audit \
--with-archive \
- --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
- %{!?with_plugins:--disable-plugins} \
+ --with-audit%{!?with_audit:=no} \
+ --with-cap \
+ --with-fapolicyd \
+ %{?with_imaevm:--with-imaevm} \
+ %{?with_python3:--enable-python} \
+ --with-selinux%{!?with_selinux:=no} \
--with-vendor=tld
%{__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
+%{__make} -C po update-gmo
%if %{with python3}
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},/usr/lib/.build-id}
+
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/TLD-Linux.asc
%{__make} install \
pkgconfigdir=%{_pkgconfigdir} \
# cleanup
%ifnarch %{ix86} %{x8664} x32
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
%endif
%ifnarch %{x8664} x32
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
%endif
%ifnarch %{ppc}
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
%endif
%ifnarch aarch64
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
+%endif
+
+%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/arm*-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
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
+%{__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
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
%ifarch x32
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
+cp -p %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/libtooldeps.sh
+cp -p %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/fileattrs/libtool.attr
# move rpm to /bin
%{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
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
cd ..
%endif
+%if %{with plugins}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
+%endif
# wrong location, not used anyway
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
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 || :
+ # 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
+if [ -d /var/cache/hrmib ]; then
+ %{__rm} -rf /var/cache/hrmib
+ echo "HR-MIB is not supported by this rpm version."
+ echo "/var/cache/hrmib has been removed."
+fi
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
%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
%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}/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
# valgrind suppression file for rpm
%{_rpmlibdir}/rpm.supp
+%dir /usr/lib/.build-id
+
%files base
%defattr(644,root,root,755)
%dir %{_sysconfdir}/rpm
%attr(755,root,root) %{_libdir}/librpmbuild.so
%attr(755,root,root) %{_libdir}/librpmio.so
%attr(755,root,root) %{_libdir}/librpmsign.so
-%{_libdir}/librpm*.la
+%{_libdir}/librpm.la
+%{_libdir}/librpmbuild.la
+%{_libdir}/librpmio.la
+%{_libdir}/librpmsign.la
%{_includedir}/rpm
-%{_pkgconfigdir}/*.pc
+%{_pkgconfigdir}/rpm.pc
%files utils
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/rpm2cpio
%attr(755,root,root) %{_bindir}/rpmgraph
%attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
-%attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
%attr(755,root,root) %{_rpmlibdir}/tgpg
-%attr(755,root,root) %{_rpmlibdir}/debugedit
%attr(755,root,root) %{_rpmlibdir}/rpmdeps
%{_mandir}/man8/rpm2archive.8*
%{_mandir}/man8/rpm2cpio.8*
# needs hacked pkg-config to return anything
%attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
-
%attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
-# must be here for "Requires: rpm-*prov" to work
-#%{_rpmlibdir}/macros.d/cmake
-#%{_rpmlibdir}/macros.d/gstreamer
-#%{_rpmlibdir}/macros.d/libtool
-#%{_rpmlibdir}/macros.d/perl
-#%{_rpmlibdir}/macros.d/pkgconfig
-#%{_rpmlibdir}/macros.d/python
-#%{_rpmlibdir}/macros.d/selinux
-#%{_rpmlibdir}/macros.d/tcl
-#%{_rpmlibdir}/macros.rpmbuild
-
%attr(755,root,root) %{_rpmlibdir}/check-buildroot
%attr(755,root,root) %{_rpmlibdir}/check-prereqs
%attr(755,root,root) %{_rpmlibdir}/check-rpaths
%attr(755,root,root) %{_rpmlibdir}/find-requires
%attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
%attr(755,root,root) %{_rpmlibdir}/script.req
-%attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
%dir %{_rpmlibdir}/fileattrs
%{_rpmlibdir}/fileattrs/debuginfo.attr
%{_rpmlibdir}/fileattrs/libtool.attr
%{_rpmlibdir}/fileattrs/metainfo.attr
%{_rpmlibdir}/fileattrs/ocaml.attr
-%{_rpmlibdir}/fileattrs/perl.attr
-%{_rpmlibdir}/fileattrs/perllib.attr
%{_rpmlibdir}/fileattrs/pkgconfig.attr
-%{_rpmlibdir}/fileattrs/python.attr
-%{_rpmlibdir}/fileattrs/pythondist.attr
%{_rpmlibdir}/fileattrs/script.attr
%attr(755,root,root) %{_bindir}/gendiff
%files perlprov
%defattr(644,root,root,755)
+%{_rpmlibdir}/fileattrs/perl.attr
+%{_rpmlibdir}/fileattrs/perllib.attr
%attr(755,root,root) %{_rpmlibdir}/perl.*
-%files pythonprov
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
-
%if %{with python3}
%files -n python3-rpm
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
%{_mandir}/man8/rpm-plugin-syslog.8*
+%if %{with systemd}
%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*
+%endif
%files plugin-ima
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
%{_mandir}/man8/rpm-plugin-selinux.8*
+
+%if %{with fsverity}
+%files plugin-fsverity
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/fsverity.so
+%endif
+
+%files plugin-fapolicyd
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/fapolicyd.so
+%{_mandir}/man8/rpm-plugin-fapolicyd.8*
+
+%if %{with systemd}
+%files plugin-dbus-announce
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/dbus_announce.so
+%{_mandir}/man8/rpm-plugin-dbus-announce.8*
+%{_sysconfdir}/dbus-1/system.d/org.rpm.conf
+%endif
%endif
%files sign
%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
-%doc doc/librpm/html/*
+%doc docs/librpm/html/*
%endif