3 # - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
6 %bcond_without apidocs # Doxygen based API documentation
7 %bcond_without python3 # Python (3) bindings
8 %bcond_without plugins # plugins (all, including: audit, imaevm, selinux, systemd)
9 %bcond_without recommends_tags # use of Recommends tag (disable for bootstrapping)
10 %bcond_with imaevm # IMA/EVM signing support (requires libimaevm from ima-evm-utils)
11 %bcond_without audit # audit plugin
12 %bcond_without selinux # SELinux plugin
13 %bcond_without systemd # systemd inhibit plugin
14 %bcond_without fsverity # fsverity plugin
19 %if "%{_rpmversion}" >= "4.12" && "%{_rpmversion}" < "5"
20 %define with_recommends_tags 1
23 %if %{without plugins}
25 %undefine with_selinux
26 %undefine with_systemd
28 Summary: RPM Package Manager
29 Summary(de.UTF-8): RPM Packet-Manager
30 Summary(es.UTF-8): Gestor de paquetes RPM
31 Summary(pl.UTF-8): Aplikacja do zarządzania pakietami RPM
32 Summary(pt_BR.UTF-8): Gerenciador de pacotes RPM
33 Summary(ru.UTF-8): Менеджер пакетов от RPM
34 Summary(uk.UTF-8): Менеджер пакетів від RPM
39 License: GPL v2 / LGPL v2.1
41 Source0: http://ftp.rpm.org/releases/rpm-4.17.x/%{name}-%{version}.tar.bz2
42 # Source0-md5: ba23b5d2403fd2f9163dfd0dadce1820
43 Source1: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
44 # Source1-md5: 23914bb49fafe7153cee87126d966461
47 Source4: %{name}.sysconfig
48 Source5: %{name}.groups
49 Source6: %{name}-groups-po.awk
50 Source7: %{name}-install-tree
51 Source9: %{name}-user_group.sh
52 # http://svn.pld-linux.org/banner.sh/
54 Source11: %{name}.noautoprov
55 Source12: %{name}.noautoprovfiles
56 Source13: %{name}.noautoreq
57 Source14: %{name}.noautoreqfiles
59 Source16: libtooldeps.sh
60 Source17: libtool.attr
61 Patch0: %{name}-man_pl.patch
62 Patch1: %{name}-popt-aliases.patch
63 Patch2: %{name}-perl-macros.patch
64 Patch3: %{name}-perl-req-perlfile.patch
65 Patch4: %{name}-scripts-closefds.patch
66 Patch5: %{name}-dir-macros-relative.patch
67 Patch6: %{name}-perl_req-INC_dirs.patch
68 Patch7: %{name}-debuginfo.patch
69 Patch9: %{name}-builddir-readlink.patch
70 Patch10: %{name}-changelog_order_check_nonfatal.patch
71 Patch11: %{name}-postun-nofail.patch
72 Patch12: %{name}-clean-docdir.patch
73 Patch13: %{name}-perl-magic.patch
74 Patch14: %{name}-ignore-missing-macro-files.patch
76 Patch16: rpm5-db-compat.patch
77 Patch17: python-internal-build.patch
78 Patch18: missing-macros.patch
79 Patch19: pkgconfig.patch
80 Patch20: uname-deps.patch
81 Patch21: arm_abi.patch
82 Patch22: ix86-platforms.patch
83 Patch23: shortcircuited-deps.patch
84 Patch24: cpuinfo-deps.patch
85 Patch25: rpmio-read-proc-files.patch
86 Patch26: allow-at-in-ver-rel.patch
87 Patch28: default-patch-flags.patch
88 Patch29: %{name}-noarch_py_prov.patch
89 Patch30: missing-ghost-terminate-build.patch
90 Patch31: missing-doc-terminate-build.patch
91 Patch32: noexpand.patch
92 Patch34: skip-symlinks.patch
94 Patch36: build-locale.patch
95 Patch37: no-exe-for-elf-req.patch
96 Patch38: gem-in-package-builddir.patch
98 BuildRequires: acl-devel
99 %{?with_audit:BuildRequires: audit-libs-devel}
100 BuildRequires: autoconf >= 2.63
101 BuildRequires: automake >= 1:1.10
102 BuildRequires: bzip2-devel >= 1.0.2-17
103 %{?with_plugins:BuildRequires: dbus-devel >= 1.3}
104 BuildRequires: elfutils-devel >= 0.108
105 BuildRequires: gettext-tools >= 0.19.2
106 %{?with_imaevm:BuildRequires: ima-evm-utils-devel >= 1.0}
107 BuildRequires: libarchive-devel
108 BuildRequires: libcap-devel
109 BuildRequires: libgcrypt-devel
110 BuildRequires: libgomp-devel >= 6:4.5
111 BuildRequires: libmagic-devel
112 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
113 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
114 BuildRequires: libstdc++-devel
115 BuildRequires: libtool >= 1:1.4.2-9
116 BuildRequires: lua-devel >= 5.2
117 BuildRequires: patch >= 2.2
118 BuildRequires: pkgconfig
119 BuildRequires: popt-devel >= %{popt_ver}
120 BuildRequires: python3-modules >= 1:3.2
122 BuildRequires: python3-devel >= 1:3.2
123 BuildRequires: rpm-pythonprov
124 BuildRequires: rpmbuild(macros) >= 1.750
126 BuildRequires: rpm-build >= 4.6
127 BuildRequires: sqlite3-devel >= 3.22.0
129 BuildRequires: xz-devel
130 BuildRequires: zlib-devel
131 BuildRequires: zstd-devel
133 BuildRequires: doxygen
134 BuildRequires: ghostscript
135 BuildRequires: graphviz
136 BuildRequires: tetex-pdftex
138 Requires(posttrans): coreutils
139 Requires: %{name}-base = %{epoch}:%{version}-%{release}
140 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
141 Requires: FHS >= 3.0-2
143 Requires: popt >= %{popt_ver}
144 Requires: rpm-pld-macros >= 2.002
145 %if %{with recommends_tags}
146 Recommends: rpm-plugin-audit
147 Recommends: rpm-plugin-prioreset
148 Recommends: rpm-plugin-syslog
149 Recommends: rpm-plugin-systemd-inhibit
151 Obsoletes: rpm-utils-perl < 1:4.15
152 Obsoletes: rpm-utils-static < 1:4.15
153 Conflicts: glibc < 2.2.92
154 # db4.6 poldek needed
155 Conflicts: poldek < 0.21-0.20070703.00.3
156 # segfaults with lzma 0.42.2
157 Conflicts: lzma-libs < 4.999.3
158 Conflicts: util-vserver < 0.30.216-1.pre3034.7
159 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
161 %define _binary_payload w9.gzdio
163 # don't require very fresh rpm.macros to build
164 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
165 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
166 %define ppc ppc ppc7400 ppc7450
167 %define x8664 amd64 ia32e x86_64
169 %define _rpmlibdir /usr/lib/rpm
172 RPM is a powerful package manager, which can be used to build,
173 install, query, verify, update, and uninstall individual software
174 packages. A package consists of an archive of files, and package
175 information, including name, version, and description.
177 %description -l de.UTF-8
178 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
179 Installation, Anfrage, Verifizierung, Aktualisierung und
180 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
181 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
184 %description -l es.UTF-8
185 RPM es un poderoso administrador de paquetes, que puede ser usado para
186 construir, instalar, pesquisar, verificar, actualizar y desinstalar
187 paquetes individuales de software. Un paquete consiste en un
188 almacenaje de archivos, y información sobre el paquete, incluyendo
189 nombre, versión y descripción.
191 %description -l pl.UTF-8
192 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
193 przebudowanie, instalację czy weryfikację dowolnego pakietu.
194 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
195 plików wchodzących w skład pakietu, zależności od innych pakietów, są
196 przechowywane w bazie danych i można je uzyskać za pomocą opcji
197 odpytywania programu rpm.
199 %description -l pt_BR.UTF-8
200 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
201 construir, instalar, pesquisar, verificar, atualizar e desinstalar
202 pacotes individuais de software. Um pacote consiste de um conjunto de
203 arquivos e informações adicionais, incluindo nome, versão e descrição
204 do pacote, permissões dos arquivos, etc.
206 %description -l ru.UTF-8
207 RPM - это мощный менеджер пакетов, который может быть использован для
208 создания, инсталляции, запросов (query), проверки, обновления и
209 удаления программных пакетов. Пакет состоит из файлового архива и
210 служебной информации, включающей название, версию, описание и другие
213 %description -l uk.UTF-8
214 RPM - це потужний менеджер пакетів, що може бути використаний для
215 створення, інсталяції, запитів (query), перевірки, поновлення та
216 видалення програмних пакетів. Пакет складається з файлового архіву та
217 службової інформації, що містить назву, версію, опис та іншу
218 інформацію про пакет.
221 Summary: RPM base package - scripts used by rpm packages themselves
222 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
225 Obsoletes: rpm-scripts < 4.4
226 Obsoletes: vserver-rpm < 1
229 The RPM base package contains scripts used by rpm packages themselves.
231 - scripts for adding/removing groups and users needed for rpm
233 - banner.sh to display %%banner messages from rpm scriptlets.
235 %description base -l pl.UTF-8
236 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
238 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
239 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
242 Summary: RPMs library
243 Summary(pl.UTF-8): Biblioteki RPM-a
245 Requires: libmagic >= 1.15-2
246 Requires: popt >= %{popt_ver}
247 Requires: sqlite3-libs >= 3.22.0
248 Obsoletes: rpm-libs < 4.0.2-4
249 # avoid SEGV caused by mixed db versions
250 Conflicts: poldek < 0.18.1-16
255 %description lib -l pl.UTF-8
259 Summary: Header files for rpm libraries
260 Summary(de.UTF-8): Header-Dateien für rpm Libraries
261 Summary(es.UTF-8): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
262 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek rpm
263 Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
264 Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
265 Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
266 Group: Development/Libraries
267 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
269 %{?with_audit:Requires: audit-libs-devel}
270 Requires: bzip2-devel
271 Requires: elfutils-devel
272 Requires: libcap-devel
273 Requires: libgcrypt-devel
274 Requires: libmagic-devel
276 Requires: libselinux-devel
277 Requires: libsemanage-devel
278 Requires: libsepol-devel
280 Requires: lua-devel >= 5.2
281 Requires: popt-devel >= %{popt_ver}
282 Requires: sqlite3-devel >= 3.22.0
286 Obsoletes: rpm-static < 1:4.15
289 The RPM packaging system includes C libraries that make it easy to
290 manipulate RPM packages and databases. They are intended to ease the
291 creation of graphical package managers and other tools that need
292 intimate knowledge of RPM packages. This package contains header files
295 %description devel -l de.UTF-8
296 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
297 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
298 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
299 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
301 %description devel -l es.UTF-8
302 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
303 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
304 facilitar la creación de administradores gráficos de paquetes y otras
305 herramientas que necesiten un conocimiento profundo de paquetes RPM.
307 %description devel -l pl.UTF-8
308 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
309 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
310 graficznych programów zarządzających pakietami oraz innych narzędzi,
311 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
312 zawiera pliki nagłówkowe wspomnianych bibliotek.
314 %description devel -l pt_BR.UTF-8
315 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
316 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
317 facilitar a criação de gerenciadores gráficos de pacotes e outras
318 ferramentas que precisem de conhecimento profundo de pacotes RPM.
320 %description devel -l ru.UTF-8
321 Система управления пакетами RPM содержит библиотеку C, которая
322 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
323 Эта библиотека предназначена для облегчения создания графических
324 пакетных менеджеров и других утилит, которым необходимо работать с
327 %description devel -l uk.UTF-8
328 Система керування пакетами RPM містить бібліотеку C, котра спрощує
329 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
330 призначена для полегшення створення графічних пакетних менеджерів та
331 інших утиліт, що працюють з пакетами RPM.
334 Summary: Additional utilities for managing RPM packages and database
335 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
336 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
337 Group: Applications/File
338 Requires: %{name} = %{epoch}:%{version}-%{release}
339 Requires: popt >= %{popt_ver}
340 %if %{with recommends_tags}
344 Conflicts: filesystem-debuginfo < 3.0-16
347 Additional utilities for managing RPM packages and database.
349 %description utils -l de.UTF-8
350 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
352 %description utils -l pl.UTF-8
353 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
356 Summary: Scripts for building binary RPM packages
357 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
358 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
359 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
360 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
361 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
362 Group: Applications/File
363 Requires(pretrans): coreutils
364 Requires(pretrans): findutils
365 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
369 Requires: chrpath >= 0.10-4
374 Requires: file >= 4.17
377 Requires: rpm-pld-macros-build >= 1.744
379 Requires: gcc >= 3.0.3
383 Requires: glibc-devel
390 Requires: tar >= 1:1.22
394 Provides: rpmbuild(noauto) = 3
396 Conflicts: automake < 1:1.7.9-2
397 Conflicts: libtool < 2:1.5-13
401 Scripts for building binary RPM packages.
403 %description build -l de.UTF-8
404 Scripts fürs Bauen binärer RPM-Pakete.
406 %description build -l pl.UTF-8
407 Skrypty pomocnicze do budowania binarnych RPM-ów.
409 %description build -l pt_BR.UTF-8
410 Este pacote contém scripts e programas executáveis que são usados para
411 construir pacotes usando o RPM.
413 %description build -l ru.UTF-8
414 Различные вспомогательные скрипты и исполняемые программы, которые
415 используются для сборки RPM'ов.
417 %description build -l uk.UTF-8
418 Різноманітні допоміжні скрипти та утиліти, які використовуються для
422 Summary: Additional utilities for checking Perl provides/requires in RPM packages
423 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
424 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
425 Group: Applications/File
426 Requires: %{name} = %{epoch}:%{version}-%{release}
427 Requires: perl-Encode
429 Requires: perl-modules
431 %description perlprov
432 Additional utilities for checking Perl provides/requires in RPM
435 %description perlprov -l de.UTF-8
436 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
438 %description perlprov -l pl.UTF-8
439 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
442 %package -n python3-rpm
443 Summary: Python 3 interface to RPM library
444 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
445 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
446 Group: Development/Languages/Python
447 Requires: %{name} = %{epoch}:%{version}-%{release}
449 Obsoletes: python-rpm < 1:4.16.0
450 Obsoletes: rpm-python < 4.0.2-50
452 %description -n python3-rpm
453 The python3-rpm package contains a module which permits applications
454 written in the Python 3 programming language to use the interface
455 supplied by RPM (RPM Package Manager) libraries.
457 This package should be installed if you want to develop Python 3
458 programs that will manipulate RPM packages and databases.
460 %description -n python3-rpm -l pl.UTF-8
461 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
462 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
465 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
466 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
468 %description -n python3-rpm -l pt_BR.UTF-8
469 O pacote python3-rpm contém um módulo que permite que aplicações
470 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
471 RPM (RPM Package Manager).
473 Esse pacote deve ser instalado se você quiser desenvolver programas em
474 Python 3 para manipular pacotes e bancos de dados RPM.
476 %package plugin-audit
477 Summary: Plugin for logging audit events on package operations
478 Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
480 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
482 %description plugin-audit
483 Plugin for libaudit support.
485 %description plugin-audit -l pl.UTF-8
486 Wtyczka do obsługi libaudit.
488 %package plugin-syslog
489 Summary: Plugin for syslog functionality
490 Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
492 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
494 %description plugin-syslog
495 This plugin exports RPM actions to the system log.
497 %description plugin-syslog -l pl.UTF-8
498 Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
500 %package plugin-systemd-inhibit
501 Summary: Plugin for systemd inhibit functionality
502 Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
504 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
505 Requires: dbus >= 1.3
507 %description plugin-systemd-inhibit
508 This plugin blocks systemd from entering idle, sleep or shutdown while
509 an rpm transaction is running using the systemd-inhibit mechanism.
511 %description plugin-systemd-inhibit -l pl.UTF-8
512 Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
513 uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
514 RPM-a, korzystając z mechanizmu systemd-inhibit.
517 Summary: Plugin for IMA file signatures
518 Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
520 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
522 %description plugin-ima
523 This plugin adds support for enforcing and verifying IMA file
524 signatures in an rpm.
526 %description plugin-ima -l pl.UTF-8
527 Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików IMA
530 %package plugin-prioreset
531 Summary: Plugin for resetting scriptlet priorities for SysV init
532 Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
534 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
536 %description plugin-prioreset
537 This plugin is useful on legacy SysV init systems if you run rpm
538 transactions with nice/ionice priorities. Should not be used on
541 %description plugin-prioreset -l pl.UTF-8
542 Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
543 SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
544 nice/ionice. Nie powinna być używana w systemach z systemd.
546 %package plugin-selinux
547 Summary: Plugin for SELinux functionality
548 Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
550 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
551 Requires: libselinux >= 2.1.0
553 %description plugin-selinux
554 Plugin for SELinux functionality.
556 %description plugin-selinux -l pl.UTF-8
557 Wtyczka do funkcjonalności SELinux.
559 %package plugin-fsverity
560 Summary: Plugin for fsverity file signatures
562 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
564 %description plugin-fsverity
565 Plugin for fsverity file signatures.
567 %package plugin-fapolicyd
568 Summary: Plugin for fapolicyd support
570 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
572 %description plugin-fapolicyd
573 Plugin for fapolicyd support.
575 See https://people.redhat.com/sgrubb/fapolicyd/ for information about
576 the fapolicyd daemon.
578 %package plugin-dbus-announce
579 Summary: Plugin for announcing transactions on the DBUS
581 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
583 %description plugin-dbus-announce
584 The plugin announces basic information about rpm transactions to the
585 system DBUS - like packages installed or removed. Other programs can
586 subscribe to the signals to get notified when packages on the system
590 Summary: Package signing support
591 Summary(pl.UTF-8): Obsługa podpisywania pakietów
593 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
596 This package contains support for digitally signing RPM packages.
598 %description sign -l pl.UTF-8
599 Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
602 Summary: RPM API documentation and guides
603 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
608 Documentation for RPM API and guides in HTML format generated from rpm
611 %description apidocs -l pl.UTF-8
612 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
613 źrodeł RPM-a przez doxygen.
616 %setup -q -n %{name}-%{version}%{?subver}
656 install %{SOURCE15} scripts/perl.prov.in
658 %{__mv} scripts/perl.req{,.in}
660 # generate Group translations to *.po
661 awk -f %{SOURCE6} %{SOURCE5}
670 # rpm checks for CPU type at runtime, but it looks better
672 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
673 -e 's|@host_cpu@|%{_target_cpu}|' \
674 -e 's|@host_os@|%{_target_os}|' \
679 WITH_PERL_VERSION=no \
680 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
681 __GPG=%{_bindir}/gpg \
684 %{!?with_plugins:--disable-plugins} \
685 %{!?with_systemd:--disable-inhibit-plugin} \
686 --disable-silent-rules \
691 --with-audit%{!?with_audit:=no} \
694 %{?with_imaevm:--with-imaevm} \
695 %{?with_python3:--enable-python} \
696 --with-selinux%{!?with_selinux:=no} \
701 %{__make} -C po update-gmo
709 rm -rf $RPM_BUILD_ROOT
710 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
711 $RPM_BUILD_ROOT/var/lib/{banner,rpm}
713 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
716 pkgconfigdir=%{_pkgconfigdir} \
717 DESTDIR=$RPM_BUILD_ROOT
720 %ifnarch %{ix86} %{x8664} x32
721 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
722 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
723 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
724 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
725 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
726 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
727 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
728 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
731 %ifnarch %{x8664} x32
732 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
733 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
734 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
735 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
739 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
740 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
741 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
742 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
743 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
744 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
745 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
749 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
753 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
756 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
757 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
758 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
759 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
760 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
761 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
762 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
764 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
766 %{_target_cpu}-%{_target_vendor}-linux-gnux32
768 %{_target_cpu}-%{_target_vendor}-linux
772 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
774 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
776 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
777 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
778 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
780 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
782 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
783 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
784 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
785 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
786 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
787 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
789 cp -p %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/libtooldeps.sh
790 cp -p %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/fileattrs/libtool.attr
793 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
794 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
795 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
797 # move essential libs to /lib (libs that /bin/rpm links to)
798 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
799 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
800 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
803 # init an empty database for %ghost'ing for all supported backends
804 for be in sqlite bdb ndb; do
806 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
807 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
808 --dbpath=${PWD}/${be} \
809 --define "_db_backend ${be}" \
811 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
815 # Remove anything that rpm make install might put there
816 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
822 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
824 # wrong location, not used anyway
825 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
830 rm -rf $RPM_BUILD_ROOT
833 if [ -e /var/lib/rpm/Packages ]; then
834 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
835 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
837 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
841 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
842 echo 'you should ignore it and restart poldek'
844 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
845 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
846 # Unlock database for rebuild, safe since this is posttrans
847 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
848 if ! /usr/bin/rpmdb --rebuilddb; then
850 echo "rpm database conversion failed!"
851 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
858 if [ -d /var/cache/hrmib ]; then
859 %{__rm} -rf /var/cache/hrmib
860 echo "HR-MIB is not supported by this rpm version."
861 echo "/var/cache/hrmib has been removed."
864 %post lib -p /sbin/ldconfig
865 %postun lib -p /sbin/ldconfig
868 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
870 %files -f %{name}.lang
871 %defattr(644,root,root,755)
872 %doc ChangeLog CREDITS README
874 %dir /etc/pki/rpm-gpg
875 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
877 %attr(755,root,root) /bin/rpm
878 %attr(755,root,root) %{_bindir}/rpmdb
879 %attr(755,root,root) %{_bindir}/rpmkeys
880 %attr(755,root,root) %{_bindir}/rpmquery
881 %attr(755,root,root) %{_bindir}/rpmverify
883 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
884 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
885 # this is ok to be replaced
886 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
888 %{_mandir}/man8/rpm.8*
889 %{_mandir}/man8/rpmdb.8*
890 %{_mandir}/man8/rpmkeys.8*
891 %{_mandir}/man8/rpm-misc.8*
892 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
893 %lang(fr) %{_mandir}/fr/man8/rpm.8*
894 %lang(ja) %{_mandir}/ja/man8/rpm.8*
895 %lang(ko) %{_mandir}/ko/man8/rpm.8*
896 %lang(pl) %{_mandir}/pl/man8/rpm.8*
897 %lang(ru) %{_mandir}/ru/man8/rpm.8*
898 %lang(sk) %{_mandir}/sk/man8/rpm.8*
901 %ghost %config(missingok,noreplace) /var/lib/rpm/*
902 %ghost /var/lib/rpm/.*.lock
904 %{_rpmlibdir}/rpmpopt*
907 %dir %{_rpmlibdir}/macros.d
908 %dir %{_rpmlibdir}/platform
909 %{_rpmlibdir}/platform/noarch-*
910 %ifarch %{ix86} %{x8664} x32
911 %{_rpmlibdir}/platform/athlon*
912 %{_rpmlibdir}/platform/geode*
913 %{_rpmlibdir}/platform/i?86*
914 %{_rpmlibdir}/platform/pentium*
917 %{_rpmlibdir}/platform/amd64*
918 %{_rpmlibdir}/platform/ia32e*
919 %{_rpmlibdir}/platform/x86_64*
920 %{_rpmlibdir}/platform/x32*
923 %{_rpmlibdir}/platform/alpha*
926 %{_rpmlibdir}/platform/aarch64*
929 %{_rpmlibdir}/platform/arm*
932 %{_rpmlibdir}/platform/ia64*
934 %ifarch mips mipsel mips64 mips64el
935 %{_rpmlibdir}/platform/mips*
938 %{_rpmlibdir}/platform/ppc*
940 %ifarch sparc sparc64
941 %{_rpmlibdir}/platform/sparc*
944 %dir %{_rpmlibdir}/pld
946 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
947 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
949 # valgrind suppression file for rpm
950 %{_rpmlibdir}/rpm.supp
953 %defattr(644,root,root,755)
954 %dir %{_sysconfdir}/rpm
955 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
957 %attr(755,root,root) %{_bindir}/banner.sh
958 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
962 %defattr(644,root,root,755)
963 %attr(755,root,root) /%{_lib}/librpm.so.9
964 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
965 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
966 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
967 %attr(755,root,root) /%{_lib}/librpmio.so.9
968 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
969 %attr(755,root,root) /%{_lib}/librpmsign.so.9
970 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
971 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
974 %defattr(644,root,root,755)
975 %attr(755,root,root) %{_libdir}/librpm.so
976 %attr(755,root,root) %{_libdir}/librpmbuild.so
977 %attr(755,root,root) %{_libdir}/librpmio.so
978 %attr(755,root,root) %{_libdir}/librpmsign.so
980 %{_libdir}/librpmbuild.la
981 %{_libdir}/librpmio.la
982 %{_libdir}/librpmsign.la
984 %{_pkgconfigdir}/rpm.pc
987 %defattr(644,root,root,755)
988 %attr(755,root,root) %{_bindir}/rpm2archive
989 %attr(755,root,root) %{_bindir}/rpm2cpio
990 %attr(755,root,root) %{_bindir}/rpmgraph
991 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
992 %attr(755,root,root) %{_rpmlibdir}/tgpg
993 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
994 %{_mandir}/man8/rpm2archive.8*
995 %{_mandir}/man8/rpm2cpio.8*
996 %{_mandir}/man8/rpmdeps.8*
997 %{_mandir}/man8/rpmgraph.8*
998 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
999 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
1000 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
1001 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
1002 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
1003 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
1004 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
1007 %defattr(644,root,root,755)
1008 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
1009 %attr(755,root,root) %{_rpmlibdir}/brp-*
1010 %attr(755,root,root) %{_rpmlibdir}/check-files
1011 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
1012 %attr(755,root,root) %{_rpmlibdir}/elfdeps
1013 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
1014 # needs hacked pkg-config to return anything
1015 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
1016 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
1018 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
1019 # must be here for "Requires: rpm-*prov" to work
1020 #%{_rpmlibdir}/macros.d/cmake
1021 #%{_rpmlibdir}/macros.d/gstreamer
1022 #%{_rpmlibdir}/macros.d/libtool
1023 #%{_rpmlibdir}/macros.d/perl
1024 #%{_rpmlibdir}/macros.d/pkgconfig
1025 #%{_rpmlibdir}/macros.d/python
1026 #%{_rpmlibdir}/macros.d/selinux
1027 #%{_rpmlibdir}/macros.d/tcl
1028 #%{_rpmlibdir}/macros.rpmbuild
1030 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
1031 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
1032 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
1033 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
1034 %attr(755,root,root) %{_rpmlibdir}/find-provides
1035 %attr(755,root,root) %{_rpmlibdir}/find-requires
1036 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
1037 %attr(755,root,root) %{_rpmlibdir}/script.req
1039 %dir %{_rpmlibdir}/fileattrs
1040 %{_rpmlibdir}/fileattrs/debuginfo.attr
1041 %{_rpmlibdir}/fileattrs/desktop.attr
1042 %{_rpmlibdir}/fileattrs/elf.attr
1043 %{_rpmlibdir}/fileattrs/font.attr
1044 %{_rpmlibdir}/fileattrs/libtool.attr
1045 %{_rpmlibdir}/fileattrs/metainfo.attr
1046 %{_rpmlibdir}/fileattrs/ocaml.attr
1047 %{_rpmlibdir}/fileattrs/pkgconfig.attr
1048 %{_rpmlibdir}/fileattrs/script.attr
1050 %attr(755,root,root) %{_bindir}/gendiff
1051 %attr(755,root,root) %{_bindir}/rpmbuild
1052 %attr(755,root,root) %{_bindir}/rpmspec
1054 %{_mandir}/man1/gendiff.1*
1055 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
1056 %{_mandir}/man8/rpmbuild.8*
1057 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
1058 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
1059 %{_mandir}/man8/rpmspec.8*
1062 %defattr(644,root,root,755)
1063 %{_rpmlibdir}/fileattrs/perl.attr
1064 %{_rpmlibdir}/fileattrs/perllib.attr
1065 %attr(755,root,root) %{_rpmlibdir}/perl.*
1068 %files -n python3-rpm
1069 %defattr(644,root,root,755)
1070 %dir %{py3_sitedir}/rpm
1071 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1072 %{py3_sitedir}/rpm/*.py
1073 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1074 %{py3_sitedir}/rpm/__pycache__
1079 %defattr(644,root,root,755)
1080 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1081 %{_mandir}/man8/rpm-plugin-audit.8*
1083 %files plugin-syslog
1084 %defattr(644,root,root,755)
1085 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1086 %{_mandir}/man8/rpm-plugin-syslog.8*
1089 %files plugin-systemd-inhibit
1090 %defattr(644,root,root,755)
1091 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1092 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1096 %defattr(644,root,root,755)
1097 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1098 %{_mandir}/man8/rpm-plugin-ima.8*
1100 %files plugin-prioreset
1101 %defattr(644,root,root,755)
1102 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1103 %{_mandir}/man8/rpm-plugin-prioreset.8*
1105 %files plugin-selinux
1106 %defattr(644,root,root,755)
1107 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1108 %{_mandir}/man8/rpm-plugin-selinux.8*
1110 %if %{with fsverity}
1111 %files plugin-fsverity
1112 %defattr(644,root,root,755)
1113 %attr(755,root,root) %{_libdir}/rpm-plugins/fsverity.so
1116 %files plugin-fapolicyd
1117 %defattr(644,root,root,755)
1118 %attr(755,root,root) %{_libdir}/rpm-plugins/fapolicyd.so
1119 %{_mandir}/man8/rpm-plugin-fapolicyd.8*
1121 %files plugin-dbus-announce
1122 %defattr(644,root,root,755)
1123 %attr(755,root,root) %{_libdir}/rpm-plugins/dbus_announce.so
1124 %{_mandir}/man8/rpm-plugin-dbus-announce.8*
1125 %{_sysconfdir}/dbus-1/system.d/org.rpm.conf
1129 %defattr(644,root,root,755)
1130 %attr(755,root,root) %{_bindir}/rpmsign
1131 %{_mandir}/man8/rpmsign.8*
1135 %defattr(644,root,root,755)
1136 %doc docs/librpm/html/*