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
96 BuildRequires: acl-devel
97 %{?with_audit:BuildRequires: audit-libs-devel}
98 BuildRequires: autoconf >= 2.63
99 BuildRequires: automake >= 1:1.10
100 BuildRequires: bzip2-devel >= 1.0.2-17
101 %{?with_plugins:BuildRequires: dbus-devel >= 1.3}
102 BuildRequires: elfutils-devel >= 0.108
103 BuildRequires: gettext-tools >= 0.19.2
104 %{?with_imaevm:BuildRequires: ima-evm-utils-devel >= 1.0}
105 BuildRequires: libarchive-devel
106 BuildRequires: libcap-devel
107 BuildRequires: libgcrypt-devel
108 BuildRequires: libgomp-devel >= 6:4.5
109 BuildRequires: libmagic-devel
110 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
111 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
112 BuildRequires: libstdc++-devel
113 BuildRequires: libtool >= 1:1.4.2-9
114 BuildRequires: lua-devel >= 5.2
115 BuildRequires: patch >= 2.2
116 BuildRequires: pkgconfig
117 BuildRequires: popt-devel >= %{popt_ver}
118 BuildRequires: python3-modules >= 1:3.2
120 BuildRequires: python3-devel >= 1:3.2
121 BuildRequires: rpm-pythonprov
122 BuildRequires: rpmbuild(macros) >= 1.750
124 BuildRequires: rpm-build >= 4.6
125 BuildRequires: sqlite3-devel >= 3.22.0
127 BuildRequires: xz-devel
128 BuildRequires: zlib-devel
129 BuildRequires: zstd-devel
131 BuildRequires: doxygen
132 BuildRequires: ghostscript
133 BuildRequires: graphviz
134 BuildRequires: tetex-pdftex
136 Requires(posttrans): coreutils
137 Requires: %{name}-base = %{epoch}:%{version}-%{release}
138 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
139 Requires: FHS >= 3.0-2
141 Requires: popt >= %{popt_ver}
142 Requires: rpm-pld-macros >= 2.002
143 %if %{with recommends_tags}
144 Recommends: rpm-plugin-audit
145 Recommends: rpm-plugin-prioreset
146 Recommends: rpm-plugin-syslog
147 Recommends: rpm-plugin-systemd-inhibit
149 Obsoletes: rpm-utils-perl < 1:4.15
150 Obsoletes: rpm-utils-static < 1:4.15
151 Conflicts: glibc < 2.2.92
152 # db4.6 poldek needed
153 Conflicts: poldek < 0.21-0.20070703.00.3
154 # segfaults with lzma 0.42.2
155 Conflicts: lzma-libs < 4.999.3
156 Conflicts: util-vserver < 0.30.216-1.pre3034.7
157 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
159 %define _binary_payload w9.gzdio
161 # don't require very fresh rpm.macros to build
162 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
163 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
164 %define ppc ppc ppc7400 ppc7450
165 %define x8664 amd64 ia32e x86_64
167 %define _rpmlibdir /usr/lib/rpm
170 RPM is a powerful package manager, which can be used to build,
171 install, query, verify, update, and uninstall individual software
172 packages. A package consists of an archive of files, and package
173 information, including name, version, and description.
175 %description -l de.UTF-8
176 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
177 Installation, Anfrage, Verifizierung, Aktualisierung und
178 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
179 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
182 %description -l es.UTF-8
183 RPM es un poderoso administrador de paquetes, que puede ser usado para
184 construir, instalar, pesquisar, verificar, actualizar y desinstalar
185 paquetes individuales de software. Un paquete consiste en un
186 almacenaje de archivos, y información sobre el paquete, incluyendo
187 nombre, versión y descripción.
189 %description -l pl.UTF-8
190 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
191 przebudowanie, instalację czy weryfikację dowolnego pakietu.
192 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
193 plików wchodzących w skład pakietu, zależności od innych pakietów, są
194 przechowywane w bazie danych i można je uzyskać za pomocą opcji
195 odpytywania programu rpm.
197 %description -l pt_BR.UTF-8
198 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
199 construir, instalar, pesquisar, verificar, atualizar e desinstalar
200 pacotes individuais de software. Um pacote consiste de um conjunto de
201 arquivos e informações adicionais, incluindo nome, versão e descrição
202 do pacote, permissões dos arquivos, etc.
204 %description -l ru.UTF-8
205 RPM - это мощный менеджер пакетов, который может быть использован для
206 создания, инсталляции, запросов (query), проверки, обновления и
207 удаления программных пакетов. Пакет состоит из файлового архива и
208 служебной информации, включающей название, версию, описание и другие
211 %description -l uk.UTF-8
212 RPM - це потужний менеджер пакетів, що може бути використаний для
213 створення, інсталяції, запитів (query), перевірки, поновлення та
214 видалення програмних пакетів. Пакет складається з файлового архіву та
215 службової інформації, що містить назву, версію, опис та іншу
216 інформацію про пакет.
219 Summary: RPM base package - scripts used by rpm packages themselves
220 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
223 Obsoletes: rpm-scripts < 4.4
224 Obsoletes: vserver-rpm < 1
227 The RPM base package contains scripts used by rpm packages themselves.
229 - scripts for adding/removing groups and users needed for rpm
231 - banner.sh to display %%banner messages from rpm scriptlets.
233 %description base -l pl.UTF-8
234 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
236 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
237 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
240 Summary: RPMs library
241 Summary(pl.UTF-8): Biblioteki RPM-a
243 Requires: libmagic >= 1.15-2
244 Requires: popt >= %{popt_ver}
245 Requires: sqlite3-libs >= 3.22.0
246 Obsoletes: rpm-libs < 4.0.2-4
247 # avoid SEGV caused by mixed db versions
248 Conflicts: poldek < 0.18.1-16
253 %description lib -l pl.UTF-8
257 Summary: Header files for rpm libraries
258 Summary(de.UTF-8): Header-Dateien für rpm Libraries
259 Summary(es.UTF-8): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
260 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek rpm
261 Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
262 Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
263 Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
264 Group: Development/Libraries
265 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
266 Requires: bzip2-devel
267 Requires: elfutils-devel
268 Requires: libgcrypt-devel
269 Requires: libmagic-devel
271 Requires: libselinux-devel
272 Requires: libsemanage-devel
273 Requires: libsepol-devel
275 Requires: popt-devel >= %{popt_ver}
279 The RPM packaging system includes C libraries that make it easy to
280 manipulate RPM packages and databases. They are intended to ease the
281 creation of graphical package managers and other tools that need
282 intimate knowledge of RPM packages. This package contains header files
285 %description devel -l de.UTF-8
286 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
287 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
288 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
289 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
291 %description devel -l es.UTF-8
292 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
293 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
294 facilitar la creación de administradores gráficos de paquetes y otras
295 herramientas que necesiten un conocimiento profundo de paquetes RPM.
297 %description devel -l pl.UTF-8
298 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
299 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
300 graficznych programów zarządzających pakietami oraz innych narzędzi,
301 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
302 zawiera pliki nagłówkowe wspomnianych bibliotek.
304 %description devel -l pt_BR.UTF-8
305 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
306 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
307 facilitar a criação de gerenciadores gráficos de pacotes e outras
308 ferramentas que precisem de conhecimento profundo de pacotes RPM.
310 %description devel -l ru.UTF-8
311 Система управления пакетами RPM содержит библиотеку C, которая
312 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
313 Эта библиотека предназначена для облегчения создания графических
314 пакетных менеджеров и других утилит, которым необходимо работать с
317 %description devel -l uk.UTF-8
318 Система керування пакетами RPM містить бібліотеку C, котра спрощує
319 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
320 призначена для полегшення створення графічних пакетних менеджерів та
321 інших утиліт, що працюють з пакетами RPM.
324 Summary: Additional utilities for managing RPM packages and database
325 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
326 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
327 Group: Applications/File
328 Requires: %{name} = %{epoch}:%{version}-%{release}
329 Requires: popt >= %{popt_ver}
330 %if %{with recommends_tags}
334 Conflicts: filesystem-debuginfo < 3.0-16
337 Additional utilities for managing RPM packages and database.
339 %description utils -l de.UTF-8
340 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
342 %description utils -l pl.UTF-8
343 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
346 Summary: Scripts for building binary RPM packages
347 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
348 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
349 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
350 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
351 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
352 Group: Applications/File
353 Requires(pretrans): coreutils
354 Requires(pretrans): findutils
355 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
359 Requires: chrpath >= 0.10-4
364 Requires: file >= 4.17
367 Requires: rpm-pld-macros-build >= 1.744
369 Requires: gcc >= 3.0.3
373 Requires: glibc-devel
380 Requires: tar >= 1:1.22
384 Provides: rpmbuild(noauto) = 3
386 Conflicts: automake < 1:1.7.9-2
387 Conflicts: libtool < 2:1.5-13
391 Scripts for building binary RPM packages.
393 %description build -l de.UTF-8
394 Scripts fürs Bauen binärer RPM-Pakete.
396 %description build -l pl.UTF-8
397 Skrypty pomocnicze do budowania binarnych RPM-ów.
399 %description build -l pt_BR.UTF-8
400 Este pacote contém scripts e programas executáveis que são usados para
401 construir pacotes usando o RPM.
403 %description build -l ru.UTF-8
404 Различные вспомогательные скрипты и исполняемые программы, которые
405 используются для сборки RPM'ов.
407 %description build -l uk.UTF-8
408 Різноманітні допоміжні скрипти та утиліти, які використовуються для
412 Summary: Additional utilities for checking Perl provides/requires in RPM packages
413 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
414 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
415 Group: Applications/File
416 Requires: %{name} = %{epoch}:%{version}-%{release}
417 Requires: perl-Encode
419 Requires: perl-modules
421 %description perlprov
422 Additional utilities for checking Perl provides/requires in RPM
425 %description perlprov -l de.UTF-8
426 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
428 %description perlprov -l pl.UTF-8
429 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
432 %package -n python3-rpm
433 Summary: Python 3 interface to RPM library
434 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
435 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
436 Group: Development/Languages/Python
437 Requires: %{name} = %{epoch}:%{version}-%{release}
439 Obsoletes: python-rpm < 1:4.16.0
440 Obsoletes: rpm-python < 4.0.2-50
442 %description -n python3-rpm
443 The python3-rpm package contains a module which permits applications
444 written in the Python 3 programming language to use the interface
445 supplied by RPM (RPM Package Manager) libraries.
447 This package should be installed if you want to develop Python 3
448 programs that will manipulate RPM packages and databases.
450 %description -n python3-rpm -l pl.UTF-8
451 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
452 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
455 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
456 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
458 %description -n python3-rpm -l pt_BR.UTF-8
459 O pacote python3-rpm contém um módulo que permite que aplicações
460 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
461 RPM (RPM Package Manager).
463 Esse pacote deve ser instalado se você quiser desenvolver programas em
464 Python 3 para manipular pacotes e bancos de dados RPM.
466 %package plugin-audit
467 Summary: Plugin for logging audit events on package operations
468 Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
470 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
472 %description plugin-audit
473 Plugin for libaudit support.
475 %description plugin-audit -l pl.UTF-8
476 Wtyczka do obsługi libaudit.
478 %package plugin-syslog
479 Summary: Plugin for syslog functionality
480 Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
482 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
484 %description plugin-syslog
485 This plugin exports RPM actions to the system log.
487 %description plugin-syslog -l pl.UTF-8
488 Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
490 %package plugin-systemd-inhibit
491 Summary: Plugin for systemd inhibit functionality
492 Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
494 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
495 Requires: dbus >= 1.3
497 %description plugin-systemd-inhibit
498 This plugin blocks systemd from entering idle, sleep or shutdown while
499 an rpm transaction is running using the systemd-inhibit mechanism.
501 %description plugin-systemd-inhibit -l pl.UTF-8
502 Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
503 uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
504 RPM-a, korzystając z mechanizmu systemd-inhibit.
507 Summary: Plugin for IMA file signatures
508 Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
510 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
512 %description plugin-ima
513 This plugin adds support for enforcing and verifying IMA file
514 signatures in an rpm.
516 %description plugin-ima -l pl.UTF-8
517 Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików IMA
520 %package plugin-prioreset
521 Summary: Plugin for resetting scriptlet priorities for SysV init
522 Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
524 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
526 %description plugin-prioreset
527 This plugin is useful on legacy SysV init systems if you run rpm
528 transactions with nice/ionice priorities. Should not be used on
531 %description plugin-prioreset -l pl.UTF-8
532 Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
533 SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
534 nice/ionice. Nie powinna być używana w systemach z systemd.
536 %package plugin-selinux
537 Summary: Plugin for SELinux functionality
538 Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
540 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
541 Requires: libselinux >= 2.1.0
543 %description plugin-selinux
544 Plugin for SELinux functionality.
546 %description plugin-selinux -l pl.UTF-8
547 Wtyczka do funkcjonalności SELinux.
549 %package plugin-fsverity
550 Summary: Plugin for fsverity file signatures
552 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
554 %description plugin-fsverity
555 Plugin for fsverity file signatures.
557 %package plugin-fapolicyd
558 Summary: Plugin for fapolicyd support
560 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
562 %description plugin-fapolicyd
563 Plugin for fapolicyd support.
565 See https://people.redhat.com/sgrubb/fapolicyd/ for information about
566 the fapolicyd daemon.
568 %package plugin-dbus-announce
569 Summary: Plugin for announcing transactions on the DBUS
571 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
573 %description plugin-dbus-announce
574 The plugin announces basic information about rpm transactions to the
575 system DBUS - like packages installed or removed. Other programs can
576 subscribe to the signals to get notified when packages on the system
580 Summary: Package signing support
581 Summary(pl.UTF-8): Obsługa podpisywania pakietów
583 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
586 This package contains support for digitally signing RPM packages.
588 %description sign -l pl.UTF-8
589 Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
592 Summary: RPM API documentation and guides
593 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
598 Documentation for RPM API and guides in HTML format generated from rpm
601 %description apidocs -l pl.UTF-8
602 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
603 źrodeł RPM-a przez doxygen.
606 %setup -q -n %{name}-%{version}%{?subver}
644 install %{SOURCE15} scripts/perl.prov.in
646 %{__mv} scripts/perl.req{,.in}
648 # generate Group translations to *.po
649 awk -f %{SOURCE6} %{SOURCE5}
658 # rpm checks for CPU type at runtime, but it looks better
660 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
661 -e 's|@host_cpu@|%{_target_cpu}|' \
662 -e 's|@host_os@|%{_target_os}|' \
667 WITH_PERL_VERSION=no \
668 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
669 __GPG=%{_bindir}/gpg \
672 %{!?with_plugins:--disable-plugins} \
673 %{!?with_systemd:--disable-inhibit-plugin} \
674 --disable-silent-rules \
679 --with-audit%{!?with_audit:=no} \
682 %{?with_imaevm:--with-imaevm} \
683 %{?with_python3:--enable-python} \
684 --with-selinux%{!?with_selinux:=no} \
689 %{__make} -C po update-gmo
697 rm -rf $RPM_BUILD_ROOT
698 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
699 $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
701 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
704 pkgconfigdir=%{_pkgconfigdir} \
705 DESTDIR=$RPM_BUILD_ROOT
708 %ifnarch %{ix86} %{x8664} x32
709 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
710 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
711 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
712 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
713 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
714 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
715 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
716 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
719 %ifnarch %{x8664} x32
720 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
721 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
722 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
723 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
727 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
728 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
729 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
730 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
731 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
732 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
733 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
737 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
741 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
744 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
745 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
746 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
747 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
748 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
749 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
750 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
752 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
754 %{_target_cpu}-%{_target_vendor}-linux-gnux32
756 %{_target_cpu}-%{_target_vendor}-linux
760 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
762 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
764 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
765 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
766 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
768 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
770 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
771 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
772 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
773 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
774 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
775 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
777 cp -p %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/libtooldeps.sh
778 cp -p %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/fileattrs/libtool.attr
781 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
782 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
783 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
785 # move essential libs to /lib (libs that /bin/rpm links to)
786 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
787 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
788 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
791 # init an empty database for %ghost'ing for all supported backends
792 for be in sqlite bdb ndb; do
794 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
795 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
796 --dbpath=${PWD}/${be} \
797 --define "_db_backend ${be}" \
799 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
803 # Remove anything that rpm make install might put there
804 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
810 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
812 # wrong location, not used anyway
813 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
818 rm -rf $RPM_BUILD_ROOT
821 if [ -e /var/lib/rpm/Packages ]; then
822 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
823 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
825 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
829 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
830 echo 'you should ignore it and restart poldek'
832 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
833 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
834 # Unlock database for rebuild, safe since this is posttrans
835 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
836 if ! /usr/bin/rpmdb --rebuilddb; then
838 echo "rpm database conversion failed!"
839 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
846 if [ -d /var/cache/hrmib ]; then
847 %{__rm} -rf /var/cache/hrmib
848 echo "HR-MIB is not supported by this rpm version."
849 echo "/var/cache/hrmib has been removed."
852 %post lib -p /sbin/ldconfig
853 %postun lib -p /sbin/ldconfig
856 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
858 %files -f %{name}.lang
859 %defattr(644,root,root,755)
860 %doc ChangeLog CREDITS README
862 %dir /etc/pki/rpm-gpg
863 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
865 %attr(755,root,root) /bin/rpm
866 %attr(755,root,root) %{_bindir}/rpmdb
867 %attr(755,root,root) %{_bindir}/rpmkeys
868 %attr(755,root,root) %{_bindir}/rpmquery
869 %attr(755,root,root) %{_bindir}/rpmverify
871 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
872 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
873 # this is ok to be replaced
874 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
876 %{_mandir}/man8/rpm.8*
877 %{_mandir}/man8/rpmdb.8*
878 %{_mandir}/man8/rpmkeys.8*
879 %{_mandir}/man8/rpm-misc.8*
880 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
881 %lang(fr) %{_mandir}/fr/man8/rpm.8*
882 %lang(ja) %{_mandir}/ja/man8/rpm.8*
883 %lang(ko) %{_mandir}/ko/man8/rpm.8*
884 %lang(pl) %{_mandir}/pl/man8/rpm.8*
885 %lang(ru) %{_mandir}/ru/man8/rpm.8*
886 %lang(sk) %{_mandir}/sk/man8/rpm.8*
889 %ghost %config(missingok,noreplace) /var/lib/rpm/*
890 %ghost /var/lib/rpm/.*.lock
892 %{_rpmlibdir}/rpmpopt*
895 %dir %{_rpmlibdir}/macros.d
896 %dir %{_rpmlibdir}/platform
897 %{_rpmlibdir}/platform/noarch-*
898 %ifarch %{ix86} %{x8664} x32
899 %{_rpmlibdir}/platform/athlon*
900 %{_rpmlibdir}/platform/geode*
901 %{_rpmlibdir}/platform/i?86*
902 %{_rpmlibdir}/platform/pentium*
905 %{_rpmlibdir}/platform/amd64*
906 %{_rpmlibdir}/platform/ia32e*
907 %{_rpmlibdir}/platform/x86_64*
908 %{_rpmlibdir}/platform/x32*
911 %{_rpmlibdir}/platform/alpha*
914 %{_rpmlibdir}/platform/aarch64*
917 %{_rpmlibdir}/platform/arm*
920 %{_rpmlibdir}/platform/ia64*
922 %ifarch mips mipsel mips64 mips64el
923 %{_rpmlibdir}/platform/mips*
926 %{_rpmlibdir}/platform/ppc*
928 %ifarch sparc sparc64
929 %{_rpmlibdir}/platform/sparc*
932 %dir %{_rpmlibdir}/pld
934 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
935 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
937 # valgrind suppression file for rpm
938 %{_rpmlibdir}/rpm.supp
940 %dir /usr/lib/.build-id
943 %defattr(644,root,root,755)
944 %dir %{_sysconfdir}/rpm
945 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
947 %attr(755,root,root) %{_bindir}/banner.sh
948 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
952 %defattr(644,root,root,755)
953 %attr(755,root,root) /%{_lib}/librpm.so.9
954 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
955 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
956 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
957 %attr(755,root,root) /%{_lib}/librpmio.so.9
958 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
959 %attr(755,root,root) /%{_lib}/librpmsign.so.9
960 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
961 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
964 %defattr(644,root,root,755)
965 %attr(755,root,root) %{_libdir}/librpm.so
966 %attr(755,root,root) %{_libdir}/librpmbuild.so
967 %attr(755,root,root) %{_libdir}/librpmio.so
968 %attr(755,root,root) %{_libdir}/librpmsign.so
970 %{_libdir}/librpmbuild.la
971 %{_libdir}/librpmio.la
972 %{_libdir}/librpmsign.la
974 %{_pkgconfigdir}/rpm.pc
977 %defattr(644,root,root,755)
978 %attr(755,root,root) %{_bindir}/rpm2archive
979 %attr(755,root,root) %{_bindir}/rpm2cpio
980 %attr(755,root,root) %{_bindir}/rpmgraph
981 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
982 %attr(755,root,root) %{_rpmlibdir}/tgpg
983 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
984 %{_mandir}/man8/rpm2archive.8*
985 %{_mandir}/man8/rpm2cpio.8*
986 %{_mandir}/man8/rpmdeps.8*
987 %{_mandir}/man8/rpmgraph.8*
988 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
989 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
990 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
991 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
992 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
993 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
994 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
997 %defattr(644,root,root,755)
998 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
999 %attr(755,root,root) %{_rpmlibdir}/brp-*
1000 %attr(755,root,root) %{_rpmlibdir}/check-files
1001 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
1002 %attr(755,root,root) %{_rpmlibdir}/elfdeps
1003 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
1004 # needs hacked pkg-config to return anything
1005 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
1006 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
1008 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
1009 # must be here for "Requires: rpm-*prov" to work
1010 #%{_rpmlibdir}/macros.d/cmake
1011 #%{_rpmlibdir}/macros.d/gstreamer
1012 #%{_rpmlibdir}/macros.d/libtool
1013 #%{_rpmlibdir}/macros.d/perl
1014 #%{_rpmlibdir}/macros.d/pkgconfig
1015 #%{_rpmlibdir}/macros.d/python
1016 #%{_rpmlibdir}/macros.d/selinux
1017 #%{_rpmlibdir}/macros.d/tcl
1018 #%{_rpmlibdir}/macros.rpmbuild
1020 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
1021 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
1022 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
1023 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
1024 %attr(755,root,root) %{_rpmlibdir}/find-provides
1025 %attr(755,root,root) %{_rpmlibdir}/find-requires
1026 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
1027 %attr(755,root,root) %{_rpmlibdir}/script.req
1029 %dir %{_rpmlibdir}/fileattrs
1030 %{_rpmlibdir}/fileattrs/debuginfo.attr
1031 %{_rpmlibdir}/fileattrs/desktop.attr
1032 %{_rpmlibdir}/fileattrs/elf.attr
1033 %{_rpmlibdir}/fileattrs/font.attr
1034 %{_rpmlibdir}/fileattrs/libtool.attr
1035 %{_rpmlibdir}/fileattrs/metainfo.attr
1036 %{_rpmlibdir}/fileattrs/ocaml.attr
1037 %{_rpmlibdir}/fileattrs/perl.attr
1038 %{_rpmlibdir}/fileattrs/perllib.attr
1039 %{_rpmlibdir}/fileattrs/pkgconfig.attr
1040 %{_rpmlibdir}/fileattrs/script.attr
1042 %attr(755,root,root) %{_bindir}/gendiff
1043 %attr(755,root,root) %{_bindir}/rpmbuild
1044 %attr(755,root,root) %{_bindir}/rpmspec
1046 %{_mandir}/man1/gendiff.1*
1047 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
1048 %{_mandir}/man8/rpmbuild.8*
1049 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
1050 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
1051 %{_mandir}/man8/rpmspec.8*
1054 %defattr(644,root,root,755)
1055 %attr(755,root,root) %{_rpmlibdir}/perl.*
1058 %files -n python3-rpm
1059 %defattr(644,root,root,755)
1060 %dir %{py3_sitedir}/rpm
1061 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1062 %{py3_sitedir}/rpm/*.py
1063 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1064 %{py3_sitedir}/rpm/__pycache__
1069 %defattr(644,root,root,755)
1070 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1071 %{_mandir}/man8/rpm-plugin-audit.8*
1073 %files plugin-syslog
1074 %defattr(644,root,root,755)
1075 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1076 %{_mandir}/man8/rpm-plugin-syslog.8*
1079 %files plugin-systemd-inhibit
1080 %defattr(644,root,root,755)
1081 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1082 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1086 %defattr(644,root,root,755)
1087 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1088 %{_mandir}/man8/rpm-plugin-ima.8*
1090 %files plugin-prioreset
1091 %defattr(644,root,root,755)
1092 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1093 %{_mandir}/man8/rpm-plugin-prioreset.8*
1095 %files plugin-selinux
1096 %defattr(644,root,root,755)
1097 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1098 %{_mandir}/man8/rpm-plugin-selinux.8*
1100 %if %{with fsverity}
1101 %files plugin-fsverity
1102 %defattr(644,root,root,755)
1103 %attr(755,root,root) %{_libdir}/rpm-plugins/fsverity.so
1106 %files plugin-fapolicyd
1107 %defattr(644,root,root,755)
1108 %attr(755,root,root) %{_libdir}/rpm-plugins/fapolicyd.so
1109 %{_mandir}/man8/rpm-plugin-fapolicyd.8*
1111 %files plugin-dbus-announce
1112 %defattr(644,root,root,755)
1113 %attr(755,root,root) %{_libdir}/rpm-plugins/dbus_announce.so
1114 %{_mandir}/man8/rpm-plugin-dbus-announce.8*
1115 %{_sysconfdir}/dbus-1/system.d/org.rpm.conf
1119 %defattr(644,root,root,755)
1120 %attr(755,root,root) %{_bindir}/rpmsign
1121 %{_mandir}/man8/rpmsign.8*
1125 %defattr(644,root,root,755)
1126 %doc docs/librpm/html/*