]> TLD Linux GIT Repositories - packages/rpm.git/blobdiff - rpm.spec
- release down to 2
[packages/rpm.git] / rpm.spec
index 6a36f275e12832fc2143044ab32cf7afcf8c92a6..60067090a2131a97f08ef187d32f79270b630526 100644 (file)
--- a/rpm.spec
+++ b/rpm.spec
@@ -1,38 +1,30 @@
+#
 # TODO:
-# pluto_> btw. /usr/lib/rpm/find-debuginfo.sh needs fix. it extract debuginfo also from kernel modules.
-# pluto_> there's a filelist=$(find $RPM_BUILD_ROOT ! -path "$RPM_BUILD_ROOT/usr/lib/debug/*.debug" -type f
-# pluto_> and we need to add ! -path /lib/modules/...
-# - python(abi) cap is not provided automatically because /usr/lib*/libpython2*.so.*
-#   matches ELF first
-# - repackaging when lzma is not installed (todo: fix digest signature of header)
-#   rpmbuild computes digest when writing package to temporary file, then adds a few
-#   tags (incl. digest) and writes whole package to destination file;
-#   repackaging uses unchanged "immutable header" image from original rpm, also
-#   preserving payload format and compressor from original rpm, _not_ current settings
-#   /usr/bin/install: cannot stat `./it.gmo': No such file or directory
-#   /usr/bin/install: cannot stat `./sr@Latn.gmo': No such file or directory
-# - maybe? http://rpm.org/gitweb?p=rpm.git;a=commitdiff;h=cfcd1f9bd98d5d0fc46a84931984efec3b9d47e2
-# - fix linking, rpm is beeing linked against installed rpmio
+# - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
 #
 # Conditional build:
-%bcond_with    static          # build static rpm+rpmi
-%bcond_with    apidocs         # don't generate documentation with doxygen
-%bcond_with    internal_db     # internal db (db 4.5.20)
-%bcond_with    autoreqdep      # autogenerate package name deps in addition to sonames/perl(X)
-%bcond_without nptl            # internal db: don't use process-shared POSIX mutexes (NPTL provides full interface)
-%bcond_without python          # don't build python bindings
-%bcond_without selinux         # build without selinux support
-%bcond_without system_libmagic # don't use system libmagic
-%bcond_without suggest_tags    # build without Suggest tag (bootstrapping)
-%bcond_with    neon            # build with HTTP/WebDAV support (neon library). NOTE: neon libs are in /usr!
-
-# versions of required libraries
-%define        reqdb_pkg       db4.7
-%define        reqdb_ver       4.7.25
-%define        reqpopt_ver     1.10.8
-%define        beecrypt_ver    2:4.1.2-4
-%define        sover           4.5
+%bcond_without apidocs         # Doxygen based API documentation
+%bcond_without python3         # Python (3) bindings
+%bcond_without plugins         # plugins (all, including: audit, imaevm, selinux, systemd)
+%bcond_without recommends_tags # use of Recommends tag (disable for bootstrapping)
+%bcond_with    imaevm          # IMA/EVM signing support (requires libimaevm from ima-evm-utils)
+%bcond_without audit           # audit plugin
+%bcond_without selinux         # SELinux plugin
+%bcond_with    systemd         # systemd inhibit plugin
+%bcond_without fsverity        # fsverity plugin
+
+%define                popt_ver        1.15
+%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
@@ -41,223 +33,142 @@ Summary(pt_BR.UTF-8):     Gerenciador de pacotes RPM
 Summary(ru.UTF-8):     Менеджер пакетов от RPM
 Summary(uk.UTF-8):     Менеджер пакетів від RPM
 Name:          rpm
-Version:       4.5
-Release:       89
-License:       LGPL
+Version:       4.17.1.1
+Release:       2
+Epoch:         1
+License:       GPL v2 / LGPL v2.1
 Group:         Base
-Source0:       %{name}-%{version}.tar.gz
-# Source0-md5: 4e69ab971f682c87625dc0f65d9e16bc
-Source1:       %{name}.groups
-Source2:       %{name}.platform
-Source3:       %{name}-install-tree
-Source4:       %{name}-find-spec-bcond
-Source5:       %{name}-hrmib-cache
+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}-compress-doc
-Source10:      %{name}-php-provides
-Source11:      %{name}-php-requires
-Source12:      %{name}.sysinfo
-Source13:      perl.prov
-Source14:      %{name}-user_group.sh
-Source15:      %{name}.sysconfig
-Source16:      %{name}-macros.java
-Source17:      %{name}-java-requires
+Source7:       %{name}-install-tree
+Source9:       %{name}-user_group.sh
 # http://svn.pld-linux.org/banner.sh/
-Source18:      banner.sh
-Source19:      %{name}-macros.gstreamer
-Source20:      macros.php
-Source21:      %{name}-php-requires.php
-Source22:      rubygems.rb
-Source23:      gem_helper.rb
-Patch1000:     %{name}-new-debuginfo.patch
-#Patch0:       %{name}-pl.po.patch
-Patch1:                %{name}-rpmrc.patch
-Patch2:                %{name}-arch.patch
-Patch3:                %{name}-rpmpopt.patch
-Patch4:                %{name}-perl-macros.patch
-Patch6:                %{name}-noexpand.patch
-Patch7:                %{name}-scripts-closefds.patch
-Patch8:                %{name}-db.patch
-Patch9:                %{name}-gettext-in-header.patch
-Patch10:       %{name}-compress-doc.patch
-Patch11:       %{name}-rpm5-patchset-8074.patch
-Patch12:       %{name}-system_libs.patch
-Patch13:       %{name}-unglobal.patch
-Patch14:       %{name}-etc_dir.patch
-Patch15:       %{name}-system_libs-more.patch
-Patch16:       %{name}-libmagic-locale.patch
-Patch17:       %{name}-ldconfig-always.patch
-Patch20:       %{name}-macros-ti.patch
-Patch21:       %{name}-perl_req-skip_multiline.patch
-Patch22:       %{name}-provides-dont-obsolete.patch
-Patch23:       %{name}-pkgconfigdeps.patch
-Patch24:       %{name}-po.patch
-Patch25:       %{name}-link.patch
-Patch26:       %{name}-notsc.patch
-Patch27:       %{name}-hack-norpmlibdep.patch
-Patch28:       %{name}-makefile-no_myLDADD_deps.patch
-Patch29:       %{name}-perl_req-use_base.patch
-Patch31:       %{name}-missing-prototypes.patch
-Patch32:       %{name}-pld-autodep.patch
-Patch33:       %{name}-arch-x86_64.patch
-Patch34:       %{name}-epoch0.patch
-Patch35:       %{name}-disable-features-ti.patch
-Patch36:       %{name}-debuginfo.patch
-Patch37:       %{name}-doxygen_hack.patch
-Patch39:       %{name}-popt-coreutils.patch
-Patch40:       %{name}-helperEVR-noassert.patch
-Patch42:       %{name}-old-fileconflicts-behaviour.patch
-Patch43:       %{name}-rpm5-patchset-8637.patch
-Patch44:       %{name}-no-neon.patch
-Patch45:       %{name}-no-sqlite.patch
-Patch48:       %{name}-nopie.patch
-Patch50:       %{name}-macros.patch
-Patch51:       %{name}-cleanlibdirs.patch
-Patch52:       %{name}-morearchs.patch
-Patch53:       %{name}-chroot-hack.patch
-Patch55:       %{name}-truncate-cvslog.patch
-Patch56:       %{name}-rpm5-patchset-8413.patch
-Patch57:       %{name}-as_needed-fix.patch
-Patch58:       %{name}-repackage-wo-lzma.patch
-Patch59:       %{name}-libtool-deps.patch
-Patch61:       %{name}-lzma-mem.patch
-Patch62:       %{name}-lzma-size_t.patch
-Patch63:       %{name}-tar_as_secondary_source.patch
-Patch64:       %{name}-man_pl.patch
-Patch65:       %{name}-lzma-tukaani.patch
-Patch66:       %{name}-v3-support.patch
-Patch67:       %{name}-cleanbody.patch
-Patch69:       %{name}-popt-aliases.patch
-# reverse arrows patch
-Patch70:       %{name}-rpm5-patchset-10061.patch
-Patch71:       %{name}-installbeforeerase.patch
-Patch72:       %{name}-postun-nofail.patch
-Patch73:       %{name}-namespace-probe.patch
-Patch74:       %{name}-noversiondir.patch
-Patch75:       %{name}-rpmte-segv.patch
-Patch76:       %{name}-pydebuginfo.patch
-Patch77:       %{name}-dirdeps-macro.patch
-Patch78:       %{name}-db3-configure.patch
-Patch79:       %{name}-macros-cpp.patch
-Patch80:       %{name}-link-selinux.patch
-Patch81:       %{name}-db-configure.patch
-Patch82:       %{name}-perl-makefile.patch
-Patch83:       %{name}-nosmpflags.patch
-Patch84:       %{name}-hirmib-ts.patch
-Patch85:       %{name}-perl_req-heredocs_pod.patch
-Patch86:       %{name}-rpmv3-support.patch
-Patch87:       %{name}-mono.patch
-Patch88:       %{name}-poptexecpath.patch
-Patch89:       %{name}-lzma-compress-level.patch
-Patch90:       %{name}-gstreamer.patch
-Patch91:       %{name}-gendiff.patch
-Patch92:       %{name}-set-failed-on-reopen.patch
-Patch93:       %{name}-debugedit-workaround.patch
-Patch94:       %{name}-shescape-memfault.patch
-Patch95:       %{name}-gid-uucp.patch
-Patch96:       %{name}-disable-hkp.patch
-Patch97:       %{name}-sigpad.patch
-Patch98:       %{name}-debugdir.patch
-Patch99:       %{name}-pkgconfig.patch
-Patch100:      %{name}-rpm5-debugedit.patch
-Patch101:      %{name}-builddir-readlink.patch
-Patch102:      pythondeps-speedup.patch
-Patch103:      %{name}-lua-exit-chroot-correctly.patch
-Patch104:      %{name}-glob.patch
-Patch105:      %{name}-am.patch
-Patch106:      %{name}-automake_1.12.patch
-Patch107:      %{name}-debugedit-dwarf4.patch
-Patch108:      %{name}-changelog_order_check_nonfatal.patch
-Patch109:      %{name}-installplatform.patch
-Patch110:      %{name}-xz.patch
-Patch111:      %{name}-shrink.patch
-Patch112:      notrans.patch
-Patch113:      %{name}-rubyprov.patch
-Patch114:      %{name}-ruby-gem-build.patch
-Patch115:      %{name}-glibc.patch
-Patch116:      %{name}-trigger-flags-int-type.patch
-Patch117:      %{name}-rpm2cpio-xz.patch
-Patch118:      %{name}-noarch-subpackages.patch
-Patch119:      %{name}-div0.patch
-Patch120:      %{name}-pythondeps.patch
-URL:           http://rpm5.org/
-BuildRequires: autoconf >= 2.57
-BuildRequires: automake >= 1.4
-BuildRequires: beecrypt-devel >= %{beecrypt_ver}
+Source10:      banner.sh
+Source11:      %{name}.noautoprov
+Source12:      %{name}.noautoprovfiles
+Source13:      %{name}.noautoreq
+Source14:      %{name}.noautoreqfiles
+Source15:      perl.prov
+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
+Patch9:                %{name}-builddir-readlink.patch
+Patch10:       %{name}-changelog_order_check_nonfatal.patch
+Patch11:       %{name}-postun-nofail.patch
+Patch12:       %{name}-clean-docdir.patch
+Patch13:       %{name}-perl-magic.patch
+Patch14:       %{name}-ignore-missing-macro-files.patch
+Patch15:       x32.patch
+Patch16:       rpm5-db-compat.patch
+Patch17:       python-internal-build.patch
+Patch18:       missing-macros.patch
+Patch19:       pkgconfig.patch
+Patch20:       uname-deps.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
+%{?with_audit:BuildRequires:   audit-libs-devel}
+BuildRequires: autoconf >= 2.63
+BuildRequires: automake >= 1:1.10
 BuildRequires: bzip2-devel >= 1.0.2-17
-%{!?with_internal_db:BuildRequires:    %{reqdb_pkg}-devel >= %{reqdb_ver}}
-BuildRequires: elfutils-devel >= 0.108
-BuildRequires: gettext-devel >= 0.11.4-2
-BuildRequires: keyutils-devel
-%{?with_system_libmagic:BuildRequires: libmagic-devel}
-%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
+%{?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: libgcrypt-devel
+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
-%if %{with neon}
-BuildRequires: libxml2-devel
-BuildRequires: neon-devel >= 0.25.5
-%endif
-BuildRequires: ossp-uuid-devel >= 1.6.2-8
+BuildRequires: lua-devel >= 5.3
 BuildRequires: patch >= 2.2
-BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires:  python-devel >= 1:2.3}
-BuildRequires: python-modules >= 1:2.3
-BuildRequires: rpm-perlprov
-%{?with_python:BuildRequires:  rpm-pythonprov}
-BuildRequires: rpmbuild(macros) >= 1.351
-BuildRequires: tar >= 1:1.15.1
-BuildRequires: zlib-devel >= 1.2.3.3
+BuildRequires: pkgconfig
+BuildRequires: popt-devel >= %{popt_ver}
+BuildRequires: python3-modules >= 1:3.2
+%if %{with python3}
+BuildRequires: python3-devel >= 1:3.2
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.750
+%endif
+BuildRequires: rpm-build >= 4.6
+BuildRequires: sqlite3-devel >= 3.22.0
+BuildRequires: tcl
+BuildRequires: xz-devel
+BuildRequires: zlib-devel >= 1.0.5
+BuildRequires: zstd-devel >= 1.3.8
 %if %{with apidocs}
 BuildRequires: doxygen
 BuildRequires: ghostscript
 BuildRequires: graphviz
 BuildRequires: tetex-pdftex
 %endif
-%if %{with static}
-# Require static library only for static build
-BuildRequires: beecrypt-static >= %{beecrypt_ver}
-BuildRequires: bzip2-static >= 1.0.2-17
-%{!?with_internal_db:BuildRequires:    %{reqdb_pkg}-static >= %{reqdb_ver}}
-BuildRequires: elfutils-static
-BuildRequires: glibc-static >= 2.2.94
-%{?with_system_libmagic:BuildRequires: libmagic-static}
-%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
-BuildRequires: ossp-uuid-static >= 1.6.2-8
-BuildRequires: popt-static >= %{reqpopt_ver}
-BuildRequires: zlib-static >= 1.2.3.3
+Requires(posttrans):   coreutils
+Requires:      %{name}-base = %{epoch}:%{version}-%{release}
+Requires:      %{name}-lib = %{epoch}:%{version}-%{release}
+Requires:      FHS >= 3.0-2
+Requires:      libgcrypt
+Requires:      popt >= %{popt_ver}
+Requires:      rpm-tld-macros >= 2.002
+%if %{with recommends_tags}
+Recommends:    rpm-plugin-audit
+Recommends:    rpm-plugin-prioreset
+Recommends:    rpm-plugin-syslog
+Recommends:    rpm-plugin-systemd-inhibit
 %endif
-Requires:      %{name}-base = %{version}-%{release}
-Requires:      %{name}-lib = %{version}-%{release}
-Requires:      beecrypt >= %{beecrypt_ver}
-Requires:      popt >= %{reqpopt_ver}
-Provides:      rpm-db-ver = %{reqdb_ver}
-Obsoletes:     rpm-getdeps
-%{!?with_static:Obsoletes:     rpm-utils-static}
-Obsoletes:     tmpwatch-rpmrepackage
+Obsoletes:     rpm-utils-perl < 1:4.15
+Obsoletes:     rpm-utils-static < 1:4.15
 Conflicts:     glibc < 2.2.92
-Conflicts:     poldek < 0.21-0.20070703.00.11
+# db4.6 poldek needed
+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                _noPayloadPrefix        1
 
 # don't require very fresh rpm.macros to build
-%define                __gettextize gettextize --copy --force --no-changelog; [ -f po/Makevars ] || cp -f po/Makevars{.template,}
 %define                find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
-%define                ix86    i386 i486 i586 i686 athlon pentium3 pentium4
+%define                ix86    i386 i486 i586 i686 athlon geode pentium3 pentium4
 %define                ppc     ppc ppc7400 ppc7450
 %define                x8664   amd64 ia32e x86_64
 
-# stabilize new build environment
-%define                __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-tld-linux-gcc}
-%define                __newcxx %{?force_cxx}%{!?force_cxx:%{_target_cpu}-tld-linux-g++}
-%define                __newcpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-tld-linux-gcc -E}
-
 %define                _rpmlibdir /usr/lib/rpm
 
-%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
@@ -312,8 +223,8 @@ Summary:    RPM base package - scripts used by rpm packages themselves
 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.
@@ -332,19 +243,14 @@ Zawiera on:
 Summary:       RPMs library
 Summary(pl.UTF-8):     Biblioteki RPM-a
 Group:         Libraries
-Requires:      beecrypt >= %{beecrypt_ver}
-%{!?with_internal_db:Requires: %{reqdb_pkg} >= %{reqdb_ver}}
-%{?with_system_libmagic:Requires:      libmagic >= 1.15-2}
-%{?with_selinux:Requires:      libselinux >= 1.18}
-Requires:      ossp-uuid >= 1.6.2-4
-Requires:      popt >= %{reqpopt_ver}
-%{?with_internal_db:%{?with_nptl:Requires:     uname(release) >= 2.6.0}}
-Requires:      zlib >= 1.2.3.3
-%{?with_suggest_tags:Suggests: xz}
-Obsoletes:     rpm-libs
-# avoid installing with incompatible (non-tukaani) lzma
-# avoid incompatible (-M0 not supported) lzma
-Conflicts:     lzma < 1:4.999.5-0.alpha.2
+Requires:      elfutils >= 0.159
+Requires:      elfutils-libelf >= 0.159
+Requires:      libmagic >= 1.15-2
+Requires:      popt >= %{popt_ver}
+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
 
@@ -363,17 +269,27 @@ Summary(pt_BR.UTF-8):     Arquivos de inclusão e bibliotecas para programas de mani
 Summary(ru.UTF-8):     Хедеры и библиотеки для программ, работающих с rpm-пакетами
 Summary(uk.UTF-8):     Хедери та бібліотеки для програм, що працюють з пакетами rpm
 Group:         Development/Libraries
-Requires:      %{name}-lib = %{version}-%{release}
-Requires:      beecrypt-devel >= %{beecrypt_ver}
+Requires:      %{name}-lib = %{epoch}:%{version}-%{release}
+Requires:      acl-devel
+%{?with_audit:Requires:        audit-libs-devel}
 Requires:      bzip2-devel
-%{!?with_internal_db:Requires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
-Requires:      elfutils-devel
-Requires:      keyutils-devel
-%{?with_system_libmagic:Requires:      libmagic-devel}
-%{?with_selinux:Requires:      libselinux-devel}
-Requires:      ossp-uuid-devel >= 1.6.2-6
-Requires:      popt-devel >= %{reqpopt_ver}
-Requires:      zlib-devel >= 1.2.3.3
+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:      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
@@ -420,53 +336,17 @@ ferramentas que precisem de conhecimento profundo de pacotes RPM.
 призначена для полегшення створення графічних пакетних менеджерів та
 інших утиліт, що працюють з пакетами RPM.
 
-%package static
-Summary:       RPM static libraries
-Summary(de.UTF-8):     RPMs statische Libraries
-Summary(pl.UTF-8):     Biblioteki statyczne RPM-a
-Summary(pt_BR.UTF-8):  Bibliotecas estáticas para o desenvolvimento de aplicações RPM
-Summary(ru.UTF-8):     Статическая библиотека для программ, работающих с rpm-пакетами
-Summary(uk.UTF-8):     Статична бібліотека для програм, що працюють з пакетами rpm
-Group:         Development/Libraries
-Requires:      %{name}-devel = %{version}-%{release}
-Requires:      beecrypt-static >= %{beecrypt_ver}
-Requires:      bzip2-static
-%{!?with_internal_db:Requires: %{reqdb_pkg}-static >= %{reqdb_ver}}
-Requires:      elfutils-static
-Requires:      keyutils-static
-%{?with_system_libmagic:Requires:      libmagic-static}
-Requires:      popt-static >= %{reqpopt_ver}
-Requires:      zlib-static >= 1.2.3.3
-
-%description static
-RPM static libraries.
-
-%description static -l de.UTF-8
-RPMs statische Libraries.
-
-%description static -l pl.UTF-8
-Biblioteki statyczne RPM-a.
-
-%description static -l pt_BR.UTF-8
-Bibliotecas estáticas para desenvolvimento.
-
-%description static -l ru.UTF-8
-Система управления пакетами RPM содержит библиотеку C, которая
-упрощает манипуляцию пакетами RPM и соответствующими базами данных.
-Это статическая библиотека RPM.
-
-%description static -l uk.UTF-8
-Система керування пакетами RPM містить бібліотеку C, котра спрощує
-роботу з пакетами RPM та відповідними базами даних. Це статична
-бібліотека RPM.
-
 %package utils
 Summary:       Additional utilities for managing RPM packages and database
 Summary(de.UTF-8):     Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
 Summary(pl.UTF-8):     Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
 Group:         Applications/File
-Requires:      %{name} = %{version}-%{release}
-Requires:      popt >= %{reqpopt_ver}
+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
@@ -478,42 +358,6 @@ Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
 %description utils -l pl.UTF-8
 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
 
-%package utils-perl
-Summary:       Additional utilities for managing RPM packages and database
-Summary(de.UTF-8):     Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
-Summary(pl.UTF-8):     Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
-Group:         Applications/File
-Requires:      %{name}-utils = %{version}-%{release}
-Requires:      popt >= %{reqpopt_ver}
-
-%description utils-perl
-Additional utilities for managing RPM packages and database.
-
-%description utils-perl -l de.UTF-8
-Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
-
-%description utils-perl -l pl.UTF-8
-Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
-
-%package utils-static
-Summary:       Static rpm utilities
-Summary(pl.UTF-8):     Statyczne narzędzia rpm
-Group:         Applications/System
-Requires:      %{name} = %{version}-%{release}
-
-%description utils-static
-Static rpm utilities for repairing system in case something with
-shared libraries used by rpm become broken. Currently it contains rpmi
-binary, which can be used to install/upgrade/remove packages without
-using shared libraries (well, in fact with exception of NSS modules).
-
-%description utils-static -l pl.UTF-8
-Statyczne narzędzia rpm do naprawy systemu w przypadku zepsucia czegoś
-związanego z bibliotekami współdzielonymi używanymi przez rpm-a.
-Aktualnie pakiet zawiera binarkę rpmi, którą można użyć do instalacji,
-uaktualniania lub usuwania pakietów bez udziału bibliotek statycznych
-(z wyjątkiem modułów NSS).
-
 %package build
 Summary:       Scripts for building binary RPM packages
 Summary(de.UTF-8):     Scripts fürs Bauen binärer RPM-Pakete
@@ -522,32 +366,37 @@ Summary(pt_BR.UTF-8):     Scripts e programas executáveis usados para construir pac
 Summary(ru.UTF-8):     Скрипты и утилиты, необходимые для сборки пакетов
 Summary(uk.UTF-8):     Скрипти та утиліти, необхідні для побудови пакетів
 Group:         Applications/File
+Requires(pretrans):    coreutils
 Requires(pretrans):    findutils
-Requires:      %{name}-build-macros >= 1.656
-Requires:      %{name}-utils = %{version}-%{release}
+Requires:      %{name}-utils = %{epoch}:%{version}-%{release}
 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
-# rpmrc patch adds flags specific to gcc >= 4.7
-Requires:      gcc >= 6:4.7.0
+Requires:      rpm-tld-macros-build >= 1.744
+%ifarch athlon
+Requires:      gcc >= 3.0.3
+%else
+Requires:      gcc
+%endif
 Requires:      glibc-devel
 Requires:      grep
 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:      which
 Requires:      xz
-Provides:      rpmbuild(monoautodeps)
 Provides:      rpmbuild(noauto) = 3
 %ifarch %{x8664}
 Conflicts:     automake < 1:1.7.9-2
@@ -575,30 +424,13 @@ construir pacotes usando o RPM.
 Різноманітні допоміжні скрипти та утиліти, які використовуються для
 побудови RPM'ів.
 
-%package javaprov
-Summary:       Additional utilities for checking Java provides/requires in RPM packages
-Summary(pl.UTF-8):     Dodatkowe narzędzia do sprawdzania zależności kodu w Javie w pakietach RPM
-Group:         Applications/File
-Requires:      %{name} = %{version}-%{release}
-Requires:      file
-Requires:      findutils >= 1:4.2.26
-Requires:      mktemp
-Requires:      unzip
-
-%description javaprov
-Additional utilities for checking Java provides/requires in RPM
-packages.
-
-%description javaprov -l pl.UTF-8
-Dodatkowe narzędzia do sprawdzania zależności kodu w Javie w pakietach
-RPM.
-
 %package perlprov
 Summary:       Additional utilities for checking Perl provides/requires in RPM packages
 Summary(de.UTF-8):     Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
 Summary(pl.UTF-8):     Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
 Group:         Applications/File
-Requires:      %{name} = %{version}-%{release}
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      perl-Encode
 Requires:      perl-devel
 Requires:      perl-modules
 
@@ -613,90 +445,188 @@ Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
 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} = %{version}-%{release}
-Requires:      python
-Requires:      python-modules
+%package -n python3-rpm
+Summary:       Python 3 interface to RPM library
+Summary(pl.UTF-8):     Interfejs Pythona 3 do biblioteki RPM-a
+Summary(pt_BR.UTF-8):  Módulo Python 3 para aplicativos que manipulam pacotes RPM
+Group:         Development/Languages/Python
+Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      python3
+Obsoletes:     python-rpm < 1:4.16.0
+Obsoletes:     rpm-python < 4.0.2-50
+
+%description -n python3-rpm
+The python3-rpm package contains a module which permits applications
+written in the Python 3 programming language to use the interface
+supplied by RPM (RPM Package Manager) libraries.
 
-%description pythonprov
-Python macros, which simplifies creation of RPM packages with Python
-software.
+This package should be installed if you want to develop Python 3
+programs that will manipulate RPM packages and databases.
 
-%description pythonprov -l pl.UTF-8
-Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
-Pythonie.
+%description -n python3-rpm -l pl.UTF-8
+Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
+Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
+RPM-a.
 
-%package php-pearprov
-Summary:       Additional utilities for checking PHP PEAR provides/requires in RPM packages
-Summary(pl.UTF-8):     Dodatkowe narzędzia do sprawdzania zależności skryptów php w RPM
-Group:         Applications/File
-Requires:      %{name} = %{version}-%{release}
-Requires:      sed >= 4.0
+Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
+Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
 
-%description php-pearprov
-Additional utilities for checking PHP PEAR provides/requires in RPM
-packages.
+%description -n python3-rpm -l pt_BR.UTF-8
+O pacote python3-rpm contém um módulo que permite que aplicações
+escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
+RPM (RPM Package Manager).
 
-%description php-pearprov -l pl.UTF-8
-Dodatkowe narzędzia do sprawdzenia zależności skryptów PHP PEAR w
-pakietach RPM.
+Esse pacote deve ser instalado se você quiser desenvolver programas em
+Python 3 para manipular pacotes e bancos de dados RPM.
 
-%package rubyprov
-Summary:       Ruby tools, which simplify creation of RPM packages with Ruby software
-Summary(pl.UTF-8):     Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Ruby
-Group:         Applications/File
-Requires:      %{name} = %{version}-%{release}
-Requires:      ruby
-Requires:      ruby-modules
-Requires:      ruby-rubygems
-
-%description rubyprov
-Ruby tools, which simplifies creation of RPM packages with Ruby
-software.
-
-%description rubyprov -l pl.UTF-8
-Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
-Ruby.
-
-%package -n python-rpm
-Summary:       Python interface to RPM library
-Summary(pl.UTF-8):     Pythonowy interfejs do biblioteki RPM-a
-Summary(pt_BR.UTF-8):  Módulo Python para aplicativos que manipulam pacotes RPM
-Group:         Development/Languages/Python
-Requires:      %{name} = %{version}-%{release}
-%pyrequires_eq python
-Obsoletes:     rpm-python
+%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 -n python-rpm
-The rpm-python package contains a module which permits applications
-written in the Python programming language to use the interface
-supplied by RPM (RPM Package Manager) libraries.
+%description plugin-audit
+Plugin for libaudit support.
 
-This package should be installed if you want to develop Python
-programs that will manipulate RPM packages and databases.
+%description plugin-audit -l pl.UTF-8
+Wtyczka do obsługi libaudit.
 
-%description -n python-rpm -l pl.UTF-8
-Pakiet rpm-python zawiera moduł, który pozwala aplikacjom napisanym w
-Pythonie na używanie interfejsu dostarczanego przez biblioteki RPM-a.
+%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}
 
-Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
-Pythonie programy manipulujące pakietami i bazami danych rpm.
+%description plugin-syslog
+This plugin exports RPM actions to the system log.
 
-%description -n python-rpm -l pt_BR.UTF-8
-O pacote rpm-python contém um módulo que permite que aplicações
-escritas em Python utilizem a interface fornecida pelas bibliotecas
-RPM (RPM Package Manager).
+%description plugin-syslog -l pl.UTF-8
+Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
 
-Esse pacote deve ser instalado se você quiser desenvolver programas em
-Python para manipular pacotes e bancos de dados RPM.
+%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}
+
+%description plugin-ima
+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}
+
+%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.
+
+%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
 Group:         Documentation
+BuildArch:     noarch
 
 %description apidocs
 Documentation for RPM API and guides in HTML format generated from rpm
@@ -707,547 +637,254 @@ Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
 źrodeł RPM-a przez doxygen.
 
 %prep
-%setup -q
-cp -p %{SOURCE15} .
-%patch1000 -p1
-#%patch0 -p1
-%patch2 -p1
+%setup -q -n %{name}-%{version}%{?subver}
+%patch0 -p1
 %patch1 -p1
+%patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch6 -p1
+%patch5 -p1
+%patch6 -p0
 %patch7 -p1
-%patch8 -p1
-%patch9 -p1
+#%patch9 -p1
 %patch10 -p1
-%patch11 -p1 -R
+%patch11 -p1
 %patch12 -p1
 %patch13 -p1
 %patch14 -p1
+%patch15 -p1
 %patch16 -p1
 %patch17 -p1
-sed -e 's/^/@tld@/' %{SOURCE2} >>platform.in
-echo '%%define __perl_provides %%{__perl} /usr/lib/rpm/perl.prov' > macros.perl
-echo '%%define __perl_requires %%{__perl} /usr/lib/rpm/perl.req' >> macros.perl
-echo '# obsoleted file' > macros.python
-cp -p %{SOURCE20} macros.php
-echo '%%define __mono_provides /usr/lib/rpm/mono-find-provides' > macros.mono
-echo '%%define __mono_requires /usr/lib/rpm/mono-find-requires' >> macros.mono
-install %{SOURCE10} scripts/php.prov
-install %{SOURCE11} scripts/php.req
-install %{SOURCE13} scripts/perl.prov
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
 %patch24 -p1
 %patch25 -p1
 %patch26 -p1
-%patch27 -p1
 %patch28 -p1
-%patch29 -p1
+#%patch29 -p1
+%patch30 -p1
 %patch31 -p1
 %patch32 -p1
-%patch33 -p1
 %patch34 -p1
+%patch35 -p1
 %patch36 -p1
 %patch37 -p1
+%patch38 -p1
 %patch39 -p1
-%patch40 -p1
-%patch42 -p1
-%patch43 -p1
-%patch82 -p1
-%{!?with_neon:%patch44 -p1}
-%patch45 -p1
-%patch48 -p1
-%patch50 -p1
-%patch20 -p1
-%patch35 -p1
-%patch51 -p1
-#%patch52 -p1
-%patch55 -p1
-%patch56 -p1
-%patch57 -p1
-%patch58 -p1
-%patch59 -p1
-%patch61 -p1
-%patch62 -p1
-%patch63 -p1
-%patch64 -p1
-%patch65 -p1
-%patch66 -p1
-%patch67 -p1
-%patch69 -p1
-%patch71 -p1
-%patch72 -p1
-%patch73 -p1
-%patch74 -p1
-%patch75 -p0
-# having .py sources in -debuginfo needs more testing
-#%patch76 -p1
-%patch77 -p0
-%patch79 -p1
-%patch80 -p1
-%patch83 -p1
-%patch84 -p1
-%patch85 -p1
-%patch86 -p1
-%patch70 -p0
-%patch87 -p1
-%patch88 -p1
-%patch89 -p1
-%patch90 -p1
-%patch91 -p1
-%patch92 -p1
-%patch93 -p1
-%patch94 -p1
-%patch95 -p1
-%patch96 -p1
-%patch97 -p1
-%patch98 -p1
-%patch99 -p1
-%patch53 -p1
-%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-%patch103 -p1
-%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-%patch107 -p1
-%patch108 -p1
-%patch109 -p1
-%patch110 -p1
-%patch111 -p1
-%patch112 -p1
-%patch113 -p1
-%patch114 -p1
-%patch115 -p1
-%patch116 -p1
-%patch117 -p1
-%patch118 -p1
-%patch119 -p1
-%patch120 -p1
-
-mv -f po/{sr,sr@Latn}.po
-rm -rf sqlite zlib popt
-
-%if %{with internal_db}
-%if %{without nptl}
-sed -i -e 's,AM_PTHREADS_SHARED("POSIX/.*,:,' db/dist/aclocal/mutex.ac
-%endif
-%patch78 -p1
-%patch81 -p1
-%else
-%patch15 -p1
-rm -rf db3 db rpmdb/db.h
-%endif
 
-cp -p %{SOURCE22} scripts/rubygems.rb
-cp -p %{SOURCE23} scripts/gem_helper.rb
+%{__rm} po/*.gmo
 
-# generate Group translations to *.po
-awk -f %{SOURCE6} %{SOURCE1}
+install %{SOURCE15} scripts/perl.prov.in
 
-# update macros paths
-for f in doc{,/ja,/pl}/rpm.8 doc{,/ja,/pl}/rpmbuild.8 ; do
-       sed -e 's@lib/rpm/redhat@lib/rpm/tld@g' $f > ${f}.tmp
-       mv -f ${f}.tmp $f
-done
+%{__mv} scripts/perl.req{,.in}
 
-%build
-%if %{with system_libmagic}
-rm -rf file
-%else
-cd file
-%{__libtoolize}
-%{__aclocal}
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-cd ..
-%endif
+# generate Group translations to *.po
+awk -f %{SOURCE6} %{SOURCE5}
 
+%build
 %{__libtoolize}
-%{__gettextize}
 %{__aclocal}
 %{__autoheader}
 %{__autoconf}
 %{__automake}
-%if %{with internal_db}
-cd db3
-echo -e 'AC_CONFIG_AUX_DIR(.)\nAC_PROG_LIBTOOL'> configure.ac
-%{__libtoolize}
-rm -f configure.ac
-cd ../db
-cp -f /usr/share/aclocal/libtool.m4 dist/aclocal/libtool.ac
-cp -f /usr/share/automake/config.sub dist
-if [ -f /usr/share/libtool/config/ltmain.sh ]; then
-       cp -f /usr/share/libtool/config/ltmain.sh dist
-else
-       cp -f /usr/share/libtool/ltmain.sh dist
-fi
-cd ..
-%endif
 
 # 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
 
-# pass CC and CXX too in case of building with some older configure macro
-# disable perl-RPM2 build, we have it in separate spec
-CPPFLAGS="%{rpmcppflags} -I/usr/include/ossp-uuid -I/usr/include/%{reqdb_pkg}"
 %configure \
-       CC="%{__newcc}" \
-       CXX="%{__newcxx}" \
-       CPP="%{__newcpp}" \
+       PYTHON=python3 \
        WITH_PERL_VERSION=no \
-       %{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
-       --enable-shared \
-       --enable-static \
-       %{!?with_apidocs:--without-apidocs} \
-       %{?with_python:--with-python=%{py_ver}} \
-       %{!?with_python:--without-python} \
-       %{!?with_selinux:--without-selinux} \
-       %{?with_internal_db:--%{?with_nptl:en}%{!?with_nptl:dis}able-posixmutexes} \
-       --without-db
-
-%{__make} \
-       CC="%{__cc}" \
-       CXX="%{__cxx}" \
-       CPP="%{__cpp}" \
-       libdb_la=%{_libdir}/libdb-%(echo %{reqdb_pkg} | sed -e 's/^db//').la \
-       pylibdir=%{py_libdir} \
-       myLDFLAGS="%{rpmldflags}" \
-       staticLDFLAGS=%{?with_static:-all-static}
+       __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
+       __GPG=%{_bindir}/gpg \
+       --enable-bdb-ro \
+       --enable-ndb \
+       %{!?with_plugins:--disable-plugins} \
+       %{!?with_systemd:--disable-inhibit-plugin} \
+       --disable-silent-rules \
+       --enable-sqlite \
+       --enable-zstd \
+       --with-acl \
+       --with-archive \
+       --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}
+
+%{__make} -C po update-gmo
+
+%if %{with python3}
+cd python
+%py3_build
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/%{_lib},/etc/{sysconfig,tmpwatch},%{_sysconfdir}/rpm,/var/lib/banner,/var/cache/hrmib}
+install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
+       $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
 
-%{__make} install \
-       DESTDIR=$RPM_BUILD_ROOT \
-       staticLDFLAGS=%{?with_static:-all-static} \
-       pylibdir=%{py_libdir}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/TLD-Linux.asc
 
-cat <<'EOF' > $RPM_BUILD_ROOT/etc/tmpwatch/rpm.conf
-# Cleanup 90-days old repackage files.
-/var/spool/repackage 2160
-EOF
-
-cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
-# first platform file entry can't contain regexps
-%{_target_cpu}-%{_target_vendor}-linux
-
-%ifarch x86_64
-# x86_64 things
-amd64-[^-]*-[Ll]inux(-gnu)?
-x86_64-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch amd64
-amd64-[^-]*-[Ll]inux(-gnu)?
-x86_64-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch ia32e
-ia32e-[^-]*-[Ll]inux(-gnu)?
-x86_64-[^-]*-[Ll]inux(-gnu)?
+%{__make} install \
+       pkgconfigdir=%{_pkgconfigdir} \
+       DESTDIR=$RPM_BUILD_ROOT
+
+# 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
 %endif
 
-%ifarch athlon %{x8664}
-# x86 things
-athlon-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch pentium4 athlon %{x8664}
-pentium4-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch pentium3 pentium4 athlon %{x8664}
-pentium3-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch i686 pentium3 pentium4 athlon %{x8664}
-i686-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch i586 i686 pentium3 pentium4 athlon %{x8664}
-i586-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664}
-i486-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch %{ix86} %{x8664}
-i386-[^-]*-[Ll]inux(-gnu)?
+%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
 %endif
 
-%ifarch alpha
-alpha-[^-]*-[Ll]inux(-gnu)?
+%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
 %endif
 
-%ifarch ia64
-ia64-[^-]*-[Ll]inux(-gnu)?
+%ifnarch aarch64
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
 %endif
 
-%ifarch ppc64
-powerpc64-[^-]*-[Ll]inux(-gnu)?
-ppc64-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch ppc ppc64
-powerpc-[^-]*-[Ll]inux(-gnu)?
-ppc-[^-]*-[Ll]inux(-gnu)?
+%ifnarch %{arm}
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
 %endif
 
-%ifarch s390x
-s390x-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch s390 s390x
-s390-[^-]*-[Ll]inux(-gnu)?
-%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
+%{__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
 
-%ifarch sparc64
-sparc64-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch sparcv9 sparc64
-sparcv9-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch sparc sparcv9 sparc64
-sparc-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch armv6l
-armv6l-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch armv5tel
-armv5tel-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch armv4t armv5tel
-armv4t-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch armv3t armv4t armv5tel
-armv3t-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch armv5teb
-armv5teb-[^-]*-[Ll]inux(-gnu)?
-%endif
-%ifarch armv4b armv5teb
-armv4b-[^-]*-[Ll]inux(-gnu)?
+cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%ifarch x32
+%{_target_cpu}-%{_target_vendor}-linux-gnux32
+%else
+%{_target_cpu}-%{_target_vendor}-linux
 %endif
-
-# noarch
-noarch-[^-]*-.*
 EOF
 
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/vpkg-provides*
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
-
-# not installed since 4.4.8 (-tools-perl subpackage)
-install -p scripts/rpmdiff scripts/rpmdiff.cgi $RPM_BUILD_ROOT%{_rpmlibdir}
-
-cp -a macros.perl      $RPM_BUILD_ROOT%{_rpmlibdir}/macros.perl
-cp -a macros.python    $RPM_BUILD_ROOT%{_rpmlibdir}/macros.python
-cp -a macros.php       $RPM_BUILD_ROOT%{_rpmlibdir}/macros.php
-cp -a macros.mono      $RPM_BUILD_ROOT%{_rpmlibdir}/macros.mono
-cp -a %{SOURCE16}      $RPM_BUILD_ROOT%{_rpmlibdir}/macros.java
-cp -a %{SOURCE19}      $RPM_BUILD_ROOT%{_rpmlibdir}/macros.gstreamer
-
-install -p %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
-install -p %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond
-install -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc
-install -p %{SOURCE14} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
-install -p %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
-install -p scripts/php.{prov,req}      $RPM_BUILD_ROOT%{_rpmlibdir}
-cp -p %{SOURCE21} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php
-install -p %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
-install -p %{SOURCE18} $RPM_BUILD_ROOT%{_bindir}/banner.sh
-cp -p %{name}.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/rpm
-
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
-touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Dirnames
-cp -a %{SOURCE12} $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
-
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros <<EOF
-# customized rpm macros - global for host
-#
-%%distribution TLD
-#
-# remove or replace with file_contexts path if you want to use custom
-# SELinux file contexts policy instead of one stored in packages payload
-%%_install_file_context_path   %%{nil}
-%%_verify_file_context_path    %%{nil}
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
 
-# If non-zero, all erasures will be automagically repackaged.
-#%%_repackage_all_erasures     0
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/tld
 
-# If non-zero, create debuginfo packages
-#%%_enable_debug_packages      0
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
+cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
 
-# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
-# marked as %doc should be installed.
-#%%_excludedocs   1
+cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
 
-# For static /dev not to update perms if upgraded and tmpfs mounted
-#%%_netsharedpath /dev/shm
-EOF
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
+cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
+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
 
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang <<EOF
-# Customized rpm macros - global for host
-#      A colon separated list of desired locales to be installed;
-#      "all" means install all locale specific files.
-#
-#%%_install_langs pl_PL:en_US
-EOF
-
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles <<EOF
-# global list of files (regexps) which don't generate Provides
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov <<EOF
-# global list of script capabilities (regexps) not to be used in Provides
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles <<EOF
-# global list of files (regexps) which don't generate Requires
-^%{_examplesdir}/
-^%{_docdir}/
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq <<EOF
-# global list of script capabilities (regexps) not to be used in Requires
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep <<EOF
-# global list of capabilities (SONAME, perl(module), php(module) regexps)
-# which don't generate dependencies on package NAMES
-# -- OpenGL implementation
-^libGL.so.1
-^libGLU.so.1
-^libOSMesa.so
-# -- Glide
-^libglide3.so.3
-# -- mozilla
-^libgtkmozembed.so
-^libgtksuperwin.so
-^libxpcom.so
-# -- X11 implementation
-^libFS.so
-^libI810XvMC.so
-^libICE.so
-^libSM.so
-^libX11.so
-^libXRes.so
-^libXTrap.so
-^libXaw.so
-^libXcomposite.so
-^libXcursor.so
-^libXdamage.so
-^libXdmcp.so
-^libXevie.so
-^libXext.so
-^libXfixes.so
-^libXfont.so
-^libXfontcache.so
-^libXft.so
-^libXi.so
-^libXinerama.so
-^libXmu.so
-^libXmuu.so
-^libXp.so
-^libXpm.so
-^libXrandr.so
-^libXrender.so
-^libXss.so
-^libXt.so
-^libXtst.so
-^libXv.so
-^libXvMC.so
-^libXxf86dga.so
-^libXxf86misc.so
-^libXxf86rush.so
-^libXxf86vm.so
-^libdps.so
-^libdpstk.so
-^libfontenc.so
-^libpsres.so
-^libxkbfile.so
-^libxkbui.so
-# -- fam / gamin
-^libfam.so.0
-# -- mdns-bonjour: mDNSResponder-libs / avahi-compat-libdns_sd
-^libdns_sd.so.1
-EOF
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <<EOF
-# global list of file masks not to be compressed in DOCDIR
-EOF
-
-# for rpm -e|-U --repackage
-install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm}
-touch $RPM_BUILD_ROOT/var/lock/rpm/transaction
+cp -p %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/libtooldeps.sh
+cp -p %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/fileattrs/libtool.attr
 
 # move rpm to /bin
-install -d $RPM_BUILD_ROOT/bin
-mv $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
+ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
+ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
+
 # move essential libs to /lib (libs that /bin/rpm links to)
-for a in librpm-%{sover}.so librpmdb-%{sover}.so librpmio-%{sover}.so ; do
-       mv -f $RPM_BUILD_ROOT%{_libdir}/$a $RPM_BUILD_ROOT/%{_lib}
-       ln -s /%{_lib}/$a $RPM_BUILD_ROOT%{_libdir}/$a
+for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
+       mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
+       ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
 done
 
-# remove arch dependant macros which have no use on noarch
-%{__sed} -i -e '
-/{__spec_install_post_strip}/d
-/{__spec_install_post_chrpath}/d
-/{__spec_install_post_compress_modules}/d
-' $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/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
 
-%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
-%py_comp $RPM_BUILD_ROOT%{py_sitedir}
+%if %{with python3}
+# Remove anything that rpm make install might put there
+%{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
+cd python
+%py3_install
+cd ..
+%endif
 
-rm -f $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
 
-# (currently) not used or supported in PLD
-%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/{http.req,perldeps.pl}
 # wrong location, not used anyway
-%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
-
-# unpackaged in 4.4.9, reasons unknown
-%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/symclash.{sh,py}
-%{__rm} $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/RPM.pm
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/.packlist
-%{__rm} -f $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.bs
-%{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RPM/RPM.so
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man3/RPM.3pm
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,ja,pl}/man8/rpm{cache,graph}.8
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
 
 %find_lang %{name}
 
-rm -rf manual
-cp -a doc/manual manual
-cp -a %{SOURCE1} manual/groups
-rm -f manual/Makefile*
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%triggerpostun lib -- %{name}-lib < %{version}
-echo >&2 "rpm-lib upgrade: Removing /var/lib/rpm/__db* from older rpmdb version"
-rm -f /var/lib/rpm/__db*
-if [ -d /vservers ]; then
-       echo >&2 "rpm-lib upgrade: Removing vservers apps/pkgmgmt/base/rpm/state/__* from older rpmdb version"
-       rm -f /etc/vservers/*/apps/pkgmgmt/base/rpm/state/__*
-fi
-echo >&2 "You should rebuild your rpmdb: rpm --rebuilddb to avoid random rpmdb errors"
-
-%triggerpostun lib -- db4.5 < %{reqdb_ver}
-echo >&2 "db4.5 upgrade: Removing /var/lib/rpm/__db* from older rpmdb version"
-rm -f /var/lib/rpm/__db*
-if [ -d /vservers ]; then
-       echo >&2 "db4.5 upgrade: Removing vservers apps/pkgmgmt/base/rpm/state/__* from older rpmdb version"
-       rm -f /etc/vservers/*/apps/pkgmgmt/base/rpm/state/__*
+%posttrans
+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 "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
+               echo
+       fi
+       echo
+       echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
+       echo 'you should ignore it and restart poldek'
+       echo
+       %{__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
-echo >&2 "You should rebuild your rpmdb: rpm --rebuilddb to avoid random rpmdb errors"
 
-%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
@@ -1257,20 +894,27 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 
 %files -f %{name}.lang
 %defattr(644,root,root,755)
-%doc CHANGES CREDITS README manual/*
+%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
+%attr(755,root,root) %{_bindir}/rpmquery
+%attr(755,root,root) %{_bindir}/rpmverify
 
-%config(noreplace) %verify(not md5 mtime size) /etc/tmpwatch/rpm.conf
 %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/*
+# this is ok to be replaced
 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
 
-
 %{_mandir}/man8/rpm.8*
+%{_mandir}/man8/rpmdb.8*
+%{_mandir}/man8/rpmkeys.8*
+%{_mandir}/man8/rpm-misc.8*
+%{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
 %lang(fr) %{_mandir}/fr/man8/rpm.8*
 %lang(ja) %{_mandir}/ja/man8/rpm.8*
 %lang(ko) %{_mandir}/ko/man8/rpm.8*
@@ -1279,23 +923,58 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 %lang(sk) %{_mandir}/sk/man8/rpm.8*
 
 %dir /var/lib/rpm
-%dir %attr(700,root,root) /var/spool/repackage
-%dir /var/lock/rpm
-/var/lock/rpm/transaction
-
-# exported package NVRA (stamped with install tid)
-# net-snmp hrSWInstalledName queries, bash-completions
-%dir /var/cache/hrmib
-
-#%attr(755,root,root) %{_rpmlibdir}/rpmd
-#%{!?with_static:%attr(755,root,root) %{_rpmlibdir}/rpm[eiu]}
-#%attr(755,root,root) %{_rpmlibdir}/rpmk
-#%attr(755,root,root) %{_rpmlibdir}/rpm[qv]
+%ghost %config(missingok,noreplace) /var/lib/rpm/*
+%ghost /var/lib/rpm/.*.lock
 
 %{_rpmlibdir}/rpmpopt*
+%{_rpmlibdir}/rpmrc
 %{_rpmlibdir}/macros
+%dir %{_rpmlibdir}/macros.d
+%dir %{_rpmlibdir}/platform
+%{_rpmlibdir}/platform/noarch-*
+%ifarch %{ix86} %{x8664} x32
+%{_rpmlibdir}/platform/athlon*
+%{_rpmlibdir}/platform/geode*
+%{_rpmlibdir}/platform/i?86*
+%{_rpmlibdir}/platform/pentium*
+%endif
+%ifarch %{x8664} x32
+%{_rpmlibdir}/platform/amd64*
+%{_rpmlibdir}/platform/ia32e*
+%{_rpmlibdir}/platform/x86_64*
+%{_rpmlibdir}/platform/x32*
+%endif
+%ifarch alpha
+%{_rpmlibdir}/platform/alpha*
+%endif
+%ifarch aarch64
+%{_rpmlibdir}/platform/aarch64*
+%endif
+%ifarch %{arm}
+%{_rpmlibdir}/platform/arm*
+%endif
+%ifarch ia64
+%{_rpmlibdir}/platform/ia64*
+%endif
+%ifarch mips mipsel mips64 mips64el
+%{_rpmlibdir}/platform/mips*
+%endif
+%ifarch %{ppc}
+%{_rpmlibdir}/platform/ppc*
+%endif
+%ifarch sparc sparc64
+%{_rpmlibdir}/platform/sparc*
+%endif
+
+%dir %{_rpmlibdir}/tld
 
-%attr(755,root,root) %{_rpmlibdir}/hrmib-cache
+%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)
@@ -1308,179 +987,168 @@ find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
 
 %files lib
 %defattr(644,root,root,755)
-%attr(755,root,root) /%{_lib}/librpm-%{sover}.so
-%attr(755,root,root) /%{_lib}/librpmdb-%{sover}.so
-%attr(755,root,root) /%{_lib}/librpmio-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmbuild-%{sover}.so
+%attr(755,root,root) /%{_lib}/librpm.so.9
+%attr(755,root,root) /%{_lib}/librpm.so.%{sover}
+%attr(755,root,root) /%{_lib}/librpmbuild.so.9
+%attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
+%attr(755,root,root) /%{_lib}/librpmio.so.9
+%attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
+%attr(755,root,root) /%{_lib}/librpmsign.so.9
+%attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
+%{?with_plugins:%dir %{_libdir}/rpm-plugins}
 
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_libdir}/librpm.so
-%attr(755,root,root) %{_libdir}/librpm-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmio.so
-%attr(755,root,root) %{_libdir}/librpmio-%{sover}.so
-%attr(755,root,root) %{_libdir}/librpmdb.so
-%attr(755,root,root) %{_libdir}/librpmdb-%{sover}.so
 %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}/librpmbuild.la
-%{_libdir}/librpmdb.la
 %{_libdir}/librpmio.la
+%{_libdir}/librpmsign.la
 %{_includedir}/rpm
 %{_pkgconfigdir}/rpm.pc
 
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/librpm.a
-%{_libdir}/librpmbuild.a
-%{_libdir}/librpmdb.a
-%{_libdir}/librpmio.a
-
 %files utils
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rpm2archive
 %attr(755,root,root) %{_bindir}/rpm2cpio
-%attr(755,root,root) %{_bindir}/rpmdigest
-%attr(755,root,root) %{_bindir}/rpmmtree
-%attr(755,root,root) %{_bindir}/rpmrepo
-%{!?with_system_libmagic:%attr(755,root,root) %{_bindir}/rpmfile}
-%attr(755,root,root) %{_rpmlibdir}/debugedit
-%attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
-%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
-%attr(755,root,root) %{_rpmlibdir}/rpmdeps
+%attr(755,root,root) %{_bindir}/rpmgraph
+%attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
 %attr(755,root,root) %{_rpmlibdir}/tgpg
+%attr(755,root,root) %{_rpmlibdir}/rpmdeps
+%{_mandir}/man8/rpm2archive.8*
 %{_mandir}/man8/rpm2cpio.8*
 %{_mandir}/man8/rpmdeps.8*
+%{_mandir}/man8/rpmgraph.8*
 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
-%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
-
-%files utils-perl
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/rpmdiff*
-
-%if %{with static}
-%files utils-static
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/rpm[ieu]
-%attr(755,root,root) %{_rpmlibdir}/rpm[ieu]
-%endif
+%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
+%lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
+%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
 
 %files build
 %defattr(644,root,root,755)
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
 %attr(755,root,root) %{_rpmlibdir}/brp-*
 %attr(755,root,root) %{_rpmlibdir}/check-files
-# %attr(755,root,root) %{_rpmlibdir}/check-prereqs
-%attr(755,root,root) %{_rpmlibdir}/compress-doc
-%attr(755,root,root) %{_rpmlibdir}/cross-build
-%attr(755,root,root) %{_rpmlibdir}/find-spec-bcond
-%attr(755,root,root) %{_rpmlibdir}/getpo.sh
 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
-#%attr(755,root,root) %{_rpmlibdir}/config.*
-#%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
-%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
-%attr(755,root,root) %{_rpmlibdir}/executabledeps.sh
+%attr(755,root,root) %{_rpmlibdir}/elfdeps
 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
-%attr(755,root,root) %{_rpmlibdir}/mimetypedeps.sh
 # needs hacked pkg-config to return anything
 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
-#%attr(755,root,root) %{_rpmlibdir}/rpmb
-#%attr(755,root,root) %{_rpmlibdir}/rpmt
-%{_rpmlibdir}/noarch-*
-%ifarch %{ix86}
-%{_rpmlibdir}/i?86*
-%{_rpmlibdir}/pentium*
-%{_rpmlibdir}/athlon*
-%endif
-%ifarch alpha
-%{_rpmlibdir}/alpha*
-%endif
-%ifarch ia64
-%{_rpmlibdir}/ia64*
-%endif
-%ifarch mips mipsel mips64 mips64el
-%{_rpmlibdir}/mips*
-%endif
-%ifarch %{ppc}
-%{_rpmlibdir}/ppc*
-%endif
-%ifarch sparc sparcv9 sparc64
-%{_rpmlibdir}/sparc*
-%endif
-%ifarch %{x8664}
-%{_rpmlibdir}/amd64*
-%{_rpmlibdir}/ia32e*
-%{_rpmlibdir}/x86_64*
-%endif
-%ifarch armv6l armv5tel armv4t armv3t armv5teb armv4b
-%{_rpmlibdir}/arm*
-%endif
-# must be here for "Requires: rpm-*prov" to work
-%{_rpmlibdir}/macros.gstreamer
-%{_rpmlibdir}/macros.java
-%{_rpmlibdir}/macros.mono
-%{_rpmlibdir}/macros.perl
-%{_rpmlibdir}/macros.php
-# not used yet ... these six depend on perl
-#%attr(755,root,root) %{_rpmlibdir}/http.req
-#%attr(755,root,root) %{_rpmlibdir}/magic.prov
-#%attr(755,root,root) %{_rpmlibdir}/magic.req
-#%{_rpmlibdir}/sql.prov
-#%{_rpmlibdir}/sql.req
-#%{_rpmlibdir}/tcl.req
+%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
+%attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
+%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}/check-rpaths-worker
+%attr(755,root,root) %{_rpmlibdir}/find-provides
+%attr(755,root,root) %{_rpmlibdir}/find-requires
+%attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
+%attr(755,root,root) %{_rpmlibdir}/script.req
+
+%dir %{_rpmlibdir}/fileattrs
+%{_rpmlibdir}/fileattrs/debuginfo.attr
+%{_rpmlibdir}/fileattrs/desktop.attr
+%{_rpmlibdir}/fileattrs/elf.attr
+%{_rpmlibdir}/fileattrs/font.attr
+%{_rpmlibdir}/fileattrs/libtool.attr
+%{_rpmlibdir}/fileattrs/metainfo.attr
+%{_rpmlibdir}/fileattrs/ocaml.attr
+%{_rpmlibdir}/fileattrs/pkgconfig.attr
+%{_rpmlibdir}/fileattrs/script.attr
 
 %attr(755,root,root) %{_bindir}/gendiff
 %attr(755,root,root) %{_bindir}/rpmbuild
+%attr(755,root,root) %{_bindir}/rpmspec
 
 %{_mandir}/man1/gendiff.1*
+%lang(pl) %{_mandir}/pl/man1/gendiff.1*
 %{_mandir}/man8/rpmbuild.8*
 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
-%lang(pl) %{_mandir}/pl/man1/gendiff.1*
 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
-
-%files javaprov
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/java-find-requires
-# needs jar (any jdk), jcf-dump (gcc-java) to work
-%attr(755,root,root) %{_rpmlibdir}/javadeps.sh
+%{_mandir}/man8/rpmspec.8*
 
 %files perlprov
 %defattr(644,root,root,755)
+%{_rpmlibdir}/fileattrs/perl.attr
+%{_rpmlibdir}/fileattrs/perllib.attr
 %attr(755,root,root) %{_rpmlibdir}/perl.*
-#%attr(755,root,root) %{_rpmlibdir}/perldeps.pl
-#%attr(755,root,root) %{_rpmlibdir}/find-perl-*
-#%attr(755,root,root) %{_rpmlibdir}/find-*.perl
-#%attr(755,root,root) %{_rpmlibdir}/find-prov.pl
-#%attr(755,root,root) %{_rpmlibdir}/find-req.pl
-#%attr(755,root,root) %{_rpmlibdir}/get_magic.pl
-
-%files pythonprov
+
+%if %{with python3}
+%files -n python3-rpm
 %defattr(644,root,root,755)
-%{_rpmlibdir}/macros.python
-%attr(755,root,root) %{_rpmlibdir}/pythondeps.sh
-%attr(755,root,root) %{_rpmlibdir}/pythoneggs.py
+%dir %{py3_sitedir}/rpm
+%attr(755,root,root) %{py3_sitedir}/rpm/*.so
+%{py3_sitedir}/rpm/*.py
+%{py3_sitedir}/rpm-%{version}-py*.egg-info
+%{py3_sitedir}/rpm/__pycache__
+%endif
 
-%files php-pearprov
+%if %{with plugins}
+%files plugin-audit
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/php*
+%attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
+%{_mandir}/man8/rpm-plugin-audit.8*
 
-%files rubyprov
+%files plugin-syslog
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/gem_helper.rb
-%attr(755,root,root) %{_rpmlibdir}/rubygems.rb
+%attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
+%{_mandir}/man8/rpm-plugin-syslog.8*
 
-%if %{with python}
-%files -n python-rpm
+%if %{with systemd}
+%files plugin-systemd-inhibit
 %defattr(644,root,root,755)
-%dir %{py_sitedir}/rpm
-%attr(755,root,root) %{py_sitedir}/rpm/*.so
-%{py_sitedir}/rpm/*.py[co]
+%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)
+%attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
+%{_mandir}/man8/rpm-plugin-ima.8*
+
+%files plugin-prioreset
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
+%{_mandir}/man8/rpm-plugin-prioreset.8*
+
+%files plugin-selinux
+%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
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/rpmsign
+%{_mandir}/man8/rpmsign.8*
+
 %if %{with apidocs}
 %files apidocs
 %defattr(644,root,root,755)
-%doc apidocs
+%doc docs/librpm/html/*
 %endif