# - 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_without apidocs # don't generate documentation with doxygen
%bcond_without python2 # don't build python bindings
%bcond_without python3 # don't build python bindings
-%bcond_without selinux # build without selinux support
+%bcond_without plugins # build plugins
%bcond_without recommends_tags # build without Recommends tag (bootstrapping)
%bcond_with db61 # use DB 6.1 instead of 5.3
BuildRequires: libarchive-devel
BuildRequires: libmagic-devel
BuildRequires: openssl-devel >= %{openssl_ver}
-%if %{with selinux}
+%if %{with plugins}
+BuildRequires: audit-libs-devel
+BuildRequires: dbus-devel
BuildRequires: libselinux-devel >= 2.1.0
-BuildRequires: libsemanage-devel >= 2.1.0
-BuildRequires: libsepol-devel >= 2.1.0
%endif
# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
BuildRequires: libstdc++-devel
BuildRequires: graphviz
BuildRequires: tetex-pdftex
%endif
-%if %{with static}
-# Require static library only for static build
-BuildRequires: %{reqdb_pkg}-static >= %{reqdb_pkgver}
-BuildRequires: bzip2-static >= 1.0.2-17
-BuildRequires: elfutils-static
-BuildRequires: glibc-static >= 2.2.94
-BuildRequires: libmagic-static
-BuildRequires: openssl-static >= %{openssl_ver}
-%if %{with selinux}
-BuildRequires: libselinux-static >= 2.1.0
-BuildRequires: libsemanage-static >= 2.1.0
-BuildRequires: libsepol-static >= 2.1.0
-%endif
-BuildRequires: popt-static >= %{reqpopt_ver}
-BuildRequires: zlib-static
-BuildRequires: zstd-static
-%endif
Requires(posttrans): coreutils
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-lib = %{version}-%{release}
Requires: FHS >= 3.0-2
Requires: openssl >= %{openssl_ver}
Requires: popt >= %{reqpopt_ver}
+%if %{with recommends_tags}
+Recommends: rpm-plugin-audit
+Recommends: rpm-plugin-prioreset
+Recommends: rpm-plugin-syslog
+Recommends: rpm-plugin-systemd-inhibit
+%endif
Provides: rpm-db-ver = %{reqdb_ver}
Obsoletes: rpm-getdeps
Obsoletes: rpm-utils-perl
-%{!?with_static:Obsoletes: rpm-utils-static}
+Obsoletes: rpm-utils-static
Conflicts: glibc < 2.2.92
# db4.6 poldek needed
Conflicts: poldek < 0.21-0.20070703.00.3
Requires: %{reqdb_pkg} >= %{reqdb_pkgver}
Requires: %{reqdb_pkg}-sql >= %{reqdb_pkgver}
Requires: libmagic >= 1.15-2
-%{?with_selinux:Requires: libselinux >= 2.1.0}
Requires: openssl >= %{openssl_ver}
Requires: popt >= %{reqpopt_ver}
Obsoletes: rpm-libs
призначена для полегшення створення графічних пакетних менеджерів та
інших утиліт, що працюють з пакетами 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: %{reqdb_pkg}-static >= %{reqdb_pkgver}
-Requires: bzip2-static
-Requires: elfutils-static
-Requires: libmagic-static
-Requires: openssl-static >= %{openssl_ver}
-%if %{with selinux}
-Requires: libselinux-static
-Requires: libsemanage-static
-Requires: libsepol-static
-%endif
-Requires: popt-static >= %{reqpopt_ver}
-Requires: zlib-static
-
-%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
%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
Esse pacote deve ser instalado se você quiser desenvolver programas em
Python 3 para manipular pacotes e bancos de dados RPM.
+%package plugin-audit
+Summary: Plugin for logging audit events on package operations
+Group: System/Base
+Requires: %{name}-lib = %{version}-%{release}
+
+%description plugin-audit
+Plugin for libaudit support
+
+%package plugin-syslog
+Summary: Plugin for syslog functionality
+Group: System/Base
+Requires: %{name}-lib = %{version}-%{release}
+
+%description plugin-syslog
+This plugin exports RPM actions to the system log.
+
+%package plugin-systemd-inhibit
+Summary: Plugin for systemd inhibit functionality
+Group: System/Base
+Requires: %{name}-lib = %{version}-%{release}
+
+%description plugin-systemd-inhibit
+This plugin blocks systemd from entering idle, sleep or shutdown while
+an rpm transaction is running using the systemd-inhibit mechanism.
+
+%package plugin-ima
+Summary: Plugin for IMA file signatures
+Group: Base
+Requires: %{name}-lib = %{version}-%{release}
+
+%description plugin-ima
+This plugin adds support for enforcing and verifying IMA file
+signatures in an rpm.
+
+%package plugin-prioreset
+Summary: Plugin for resetting scriptlet priorities for SysV init
+Group: Base
+Requires: %{name}-lib = %{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.
+
+%package plugin-selinux
+Summary: Plugin for SELinux functionality
+Requires: %{name}-lib = %{version}-%{release}
+Requires: libselinux >= 2.1.0
+
+%description plugin-selinux
+Plugin for SELinux functionality.
+
%package apidocs
Summary: RPM API documentation and guides
Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
%{!?with_python3:%{?with_python2:PYTHON=python2}} \
--disable-silent-rules \
--enable-shared \
- --enable-static \
--enable-bdb \
--enable-zstd \
--with-crypto=openssl \
%if %{with python2} || %{with python3}
--enable-python \
%endif
- --with-selinux=%{!?with_selinux:no}%{?with_selinux:yes} \
+ --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
+ %{!?with_plugins:--disable-plugins} \
--with-vendor=pld
# --enable-ndb (EXPERIMENTAL) enable the new rpm database format
%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)
%{_includedir}/rpm
%{_pkgconfigdir}/*.pc
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/librpm*.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}/rpmgraph
%attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
%attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
%attr(755,root,root) %{_rpmlibdir}/rpmdeps
%{_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(ru) %{_mandir}/ru/man8/rpm2cpio.8*
%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
-
-%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(ja) %{_mandir}/ja/man8/rpmgraph.8*
+%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
%files build
%defattr(644,root,root,755)
%{py3_sitedir}/rpm/__pycache__
%endif
+%if %{with plugins}
+%files plugin-audit
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
+
+%files plugin-syslog
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
+
+%files plugin-systemd-inhibit
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
+%{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
+
+%files plugin-ima
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
+
+%files plugin-prioreset
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
+
+%files plugin-selinux
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
+%endif
+
%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
%doc doc/librpm/html/*
%endif
-
%if 0
%attr(755,root,root) %{_bindir}/rpmdb
-%attr(755,root,root) %{_bindir}/rpmgraph
%attr(755,root,root) %{_bindir}/rpmkeys
%attr(755,root,root) %{_bindir}/rpmquery
%attr(755,root,root) %{_bindir}/rpmsign
%{_rpmlibdir}/rpmrc
%attr(755,root,root) %{_rpmlibdir}/script.req
%attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
-
-
-%attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
-%attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
-%attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
-%attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
-%attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
-%attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
-%{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
-
%{_mandir}/man8/rpm-misc.8*
%{_mandir}/man8/rpmdb.8*
%{_mandir}/man8/rpmkeys.8*
%{_mandir}/man8/rpmsign.8*
-%{_mandir}/man8/rpmgraph.8*
-%lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
-%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
%endif