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 Patch0: %{name}-man_pl.patch
60 Patch1: %{name}-popt-aliases.patch
61 Patch2: %{name}-perl-macros.patch
62 Patch3: %{name}-perl-req-perlfile.patch
63 Patch4: %{name}-scripts-closefds.patch
64 Patch5: %{name}-dir-macros-relative.patch
65 Patch6: %{name}-perl_req-INC_dirs.patch
66 Patch7: %{name}-debuginfo.patch
67 Patch8: %{name}-libtool-deps.patch
68 Patch9: %{name}-builddir-readlink.patch
69 Patch10: %{name}-changelog_order_check_nonfatal.patch
70 Patch11: %{name}-postun-nofail.patch
71 Patch12: %{name}-clean-docdir.patch
72 Patch13: %{name}-perl-magic.patch
73 Patch14: %{name}-ignore-missing-macro-files.patch
75 Patch16: rpm5-db-compat.patch
76 Patch17: python-internal-build.patch
77 Patch18: missing-macros.patch
78 Patch19: pkgconfig.patch
79 Patch20: uname-deps.patch
80 Patch21: arm_abi.patch
81 Patch22: ix86-platforms.patch
82 Patch23: shortcircuited-deps.patch
83 Patch24: cpuinfo-deps.patch
84 Patch25: rpmio-read-proc-files.patch
85 Patch26: allow-at-in-ver-rel.patch
86 Patch28: default-patch-flags.patch
87 Patch29: %{name}-noarch_py_prov.patch
88 Patch30: missing-ghost-terminate-build.patch
89 Patch31: missing-doc-terminate-build.patch
90 Patch32: noexpand.patch
91 Patch34: skip-symlinks.patch
93 Patch36: build-locale.patch
95 BuildRequires: acl-devel
96 %{?with_audit:BuildRequires: audit-libs-devel}
97 BuildRequires: autoconf >= 2.63
98 BuildRequires: automake >= 1:1.10
99 BuildRequires: bzip2-devel >= 1.0.2-17
100 %{?with_plugins:BuildRequires: dbus-devel >= 1.3}
101 BuildRequires: elfutils-devel >= 0.108
102 %{?with_fsverity:BuildRequires: fsverity-utils-devel}
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
363 Requires: file >= 4.17
366 Requires: rpm-pld-macros-build >= 1.744
368 Requires: gcc >= 3.0.3
372 Requires: glibc-devel
379 Requires: tar >= 1:1.22
383 Provides: rpmbuild(noauto) = 3
385 Conflicts: automake < 1:1.7.9-2
386 Conflicts: libtool < 2:1.5-13
390 Scripts for building binary RPM packages.
392 %description build -l de.UTF-8
393 Scripts fürs Bauen binärer RPM-Pakete.
395 %description build -l pl.UTF-8
396 Skrypty pomocnicze do budowania binarnych RPM-ów.
398 %description build -l pt_BR.UTF-8
399 Este pacote contém scripts e programas executáveis que são usados para
400 construir pacotes usando o RPM.
402 %description build -l ru.UTF-8
403 Различные вспомогательные скрипты и исполняемые программы, которые
404 используются для сборки RPM'ов.
406 %description build -l uk.UTF-8
407 Різноманітні допоміжні скрипти та утиліти, які використовуються для
411 Summary: Additional utilities for checking Perl provides/requires in RPM packages
412 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
413 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
414 Group: Applications/File
415 Requires: %{name} = %{epoch}:%{version}-%{release}
416 Requires: perl-Encode
418 Requires: perl-modules
420 %description perlprov
421 Additional utilities for checking Perl provides/requires in RPM
424 %description perlprov -l de.UTF-8
425 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
427 %description perlprov -l pl.UTF-8
428 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
432 Summary: Python macros, which simplifies creation of RPM packages with Python software
433 Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
434 Group: Applications/File
435 Requires: %{name} = %{epoch}:%{version}-%{release}
437 Requires: python3-modules
438 Requires: python3-setuptools
440 %description pythonprov
441 Python macros, which simplifies creation of RPM packages with Python
444 %description pythonprov -l pl.UTF-8
445 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
448 %package -n python3-rpm
449 Summary: Python 3 interface to RPM library
450 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
451 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
452 Group: Development/Languages/Python
453 Requires: %{name} = %{epoch}:%{version}-%{release}
455 Obsoletes: python-rpm < 1:4.16.0
456 Obsoletes: rpm-python < 4.0.2-50
458 %description -n python3-rpm
459 The python3-rpm package contains a module which permits applications
460 written in the Python 3 programming language to use the interface
461 supplied by RPM (RPM Package Manager) libraries.
463 This package should be installed if you want to develop Python 3
464 programs that will manipulate RPM packages and databases.
466 %description -n python3-rpm -l pl.UTF-8
467 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
468 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
471 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
472 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
474 %description -n python3-rpm -l pt_BR.UTF-8
475 O pacote python3-rpm contém um módulo que permite que aplicações
476 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
477 RPM (RPM Package Manager).
479 Esse pacote deve ser instalado se você quiser desenvolver programas em
480 Python 3 para manipular pacotes e bancos de dados RPM.
482 %package plugin-audit
483 Summary: Plugin for logging audit events on package operations
484 Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
486 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
488 %description plugin-audit
489 Plugin for libaudit support.
491 %description plugin-audit -l pl.UTF-8
492 Wtyczka do obsługi libaudit.
494 %package plugin-syslog
495 Summary: Plugin for syslog functionality
496 Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
498 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
500 %description plugin-syslog
501 This plugin exports RPM actions to the system log.
503 %description plugin-syslog -l pl.UTF-8
504 Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
506 %package plugin-systemd-inhibit
507 Summary: Plugin for systemd inhibit functionality
508 Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
510 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
511 Requires: dbus >= 1.3
513 %description plugin-systemd-inhibit
514 This plugin blocks systemd from entering idle, sleep or shutdown while
515 an rpm transaction is running using the systemd-inhibit mechanism.
517 %description plugin-systemd-inhibit -l pl.UTF-8
518 Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
519 uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
520 RPM-a, korzystając z mechanizmu systemd-inhibit.
523 Summary: Plugin for IMA file signatures
524 Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
526 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
528 %description plugin-ima
529 This plugin adds support for enforcing and verifying IMA file
530 signatures in an rpm.
532 %description plugin-ima -l pl.UTF-8
533 Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików IMA
536 %package plugin-prioreset
537 Summary: Plugin for resetting scriptlet priorities for SysV init
538 Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
540 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
542 %description plugin-prioreset
543 This plugin is useful on legacy SysV init systems if you run rpm
544 transactions with nice/ionice priorities. Should not be used on
547 %description plugin-prioreset -l pl.UTF-8
548 Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
549 SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
550 nice/ionice. Nie powinna być używana w systemach z systemd.
552 %package plugin-selinux
553 Summary: Plugin for SELinux functionality
554 Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
556 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
557 Requires: libselinux >= 2.1.0
559 %description plugin-selinux
560 Plugin for SELinux functionality.
562 %description plugin-selinux -l pl.UTF-8
563 Wtyczka do funkcjonalności SELinux.
565 %package plugin-fsverity
566 Summary: Plugin for fsverity file signatures
568 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
570 %description plugin-fsverity
571 Plugin for fsverity file signatures.
573 %package plugin-fapolicyd
574 Summary: Plugin for fapolicyd support
576 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
578 %description plugin-fapolicyd
579 Plugin for fapolicyd support.
581 See https://people.redhat.com/sgrubb/fapolicyd/ for information about
582 the fapolicyd daemon.
584 %package plugin-dbus-announce
585 Summary: Plugin for announcing transactions on the DBUS
587 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
589 %description plugin-dbus-announce
590 The plugin announces basic information about rpm transactions to the
591 system DBUS - like packages installed or removed. Other programs can
592 subscribe to the signals to get notified when packages on the system
596 Summary: Package signing support
597 Summary(pl.UTF-8): Obsługa podpisywania pakietów
599 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
602 This package contains support for digitally signing RPM packages.
604 %description sign -l pl.UTF-8
605 Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
608 Summary: RPM API documentation and guides
609 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
614 Documentation for RPM API and guides in HTML format generated from rpm
617 %description apidocs -l pl.UTF-8
618 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
619 źrodeł RPM-a przez doxygen.
622 %setup -q -n %{name}-%{version}%{?subver}
661 install %{SOURCE15} scripts/perl.prov.in
663 %{__mv} scripts/perl.req{,.in}
665 # generate Group translations to *.po
666 awk -f %{SOURCE6} %{SOURCE5}
668 #%{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
677 # rpm checks for CPU type at runtime, but it looks better
679 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
680 -e 's|@host_cpu@|%{_target_cpu}|' \
681 -e 's|@host_os@|%{_target_os}|' \
686 WITH_PERL_VERSION=no \
687 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
688 __GPG=%{_bindir}/gpg \
692 %{!?with_plugins:--disable-plugins} \
693 %{!?with_systemd:--disable-inhibit-plugin} \
694 --disable-silent-rules \
699 --with-audit%{!?with_audit:=no} \
702 %{?with_imaevm:--with-imaevm} \
704 %{?with_python3:--enable-python} \
705 --with-selinux%{!?with_selinux:=no} \
710 %{__make} -C po update-gmo
718 rm -rf $RPM_BUILD_ROOT
719 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
720 $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
722 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
725 pkgconfigdir=%{_pkgconfigdir} \
726 DESTDIR=$RPM_BUILD_ROOT
729 %ifnarch %{ix86} %{x8664} x32
730 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
731 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
732 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
733 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
734 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
735 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
736 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
737 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
740 %ifnarch %{x8664} x32
741 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
742 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
743 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
744 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
748 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
749 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
750 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
751 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
752 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
753 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
754 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
758 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
762 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
765 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
766 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
767 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
768 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
769 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
770 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
771 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
773 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
775 %{_target_cpu}-%{_target_vendor}-linux-gnux32
777 %{_target_cpu}-%{_target_vendor}-linux
781 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
783 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
785 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
786 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
787 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
789 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
791 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
792 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
793 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
794 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
795 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
796 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
799 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
800 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
801 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
803 # move essential libs to /lib (libs that /bin/rpm links to)
804 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
805 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
806 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
809 # init an empty database for %ghost'ing for all supported backends
810 for be in sqlite bdb ndb; do
812 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
813 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
814 --dbpath=${PWD}/${be} \
815 --define "_db_backend ${be}" \
817 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
821 # Remove anything that rpm make install might put there
822 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
828 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
830 # wrong location, not used anyway
831 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
836 rm -rf $RPM_BUILD_ROOT
839 if [ -e /var/lib/rpm/Packages ]; then
840 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
841 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
843 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
847 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
848 echo 'you should ignore it and restart poldek'
850 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
851 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
852 # Unlock database for rebuild, safe since this is posttrans
853 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
854 if ! /usr/bin/rpmdb --rebuilddb; then
856 echo "rpm database conversion failed!"
857 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
864 if [ -d /var/cache/hrmib ]; then
865 %{__rm} -rf /var/cache/hrmib
866 echo "HR-MIB is not supported by this rpm version."
867 echo "/var/cache/hrmib has been removed."
870 %post lib -p /sbin/ldconfig
871 %postun lib -p /sbin/ldconfig
874 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
876 %files -f %{name}.lang
877 %defattr(644,root,root,755)
878 %doc ChangeLog CREDITS README
880 %dir /etc/pki/rpm-gpg
881 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
883 %attr(755,root,root) /bin/rpm
884 %attr(755,root,root) %{_bindir}/rpmdb
885 %attr(755,root,root) %{_bindir}/rpmkeys
886 %attr(755,root,root) %{_bindir}/rpmquery
887 %attr(755,root,root) %{_bindir}/rpmverify
889 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
890 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
891 # this is ok to be replaced
892 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
894 %{_mandir}/man8/rpm.8*
895 %{_mandir}/man8/rpmdb.8*
896 %{_mandir}/man8/rpmkeys.8*
897 %{_mandir}/man8/rpm-misc.8*
898 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
899 %lang(fr) %{_mandir}/fr/man8/rpm.8*
900 %lang(ja) %{_mandir}/ja/man8/rpm.8*
901 %lang(ko) %{_mandir}/ko/man8/rpm.8*
902 %lang(pl) %{_mandir}/pl/man8/rpm.8*
903 %lang(ru) %{_mandir}/ru/man8/rpm.8*
904 %lang(sk) %{_mandir}/sk/man8/rpm.8*
907 %ghost %config(missingok,noreplace) /var/lib/rpm/*
908 %ghost /var/lib/rpm/.*.lock
910 %{_rpmlibdir}/rpmpopt*
913 %dir %{_rpmlibdir}/macros.d
914 %dir %{_rpmlibdir}/platform
915 %{_rpmlibdir}/platform/noarch-*
916 %ifarch %{ix86} %{x8664} x32
917 %{_rpmlibdir}/platform/athlon*
918 %{_rpmlibdir}/platform/geode*
919 %{_rpmlibdir}/platform/i?86*
920 %{_rpmlibdir}/platform/pentium*
923 %{_rpmlibdir}/platform/amd64*
924 %{_rpmlibdir}/platform/ia32e*
925 %{_rpmlibdir}/platform/x86_64*
926 %{_rpmlibdir}/platform/x32*
929 %{_rpmlibdir}/platform/alpha*
932 %{_rpmlibdir}/platform/aarch64*
935 %{_rpmlibdir}/platform/arm*
938 %{_rpmlibdir}/platform/ia64*
940 %ifarch mips mipsel mips64 mips64el
941 %{_rpmlibdir}/platform/mips*
944 %{_rpmlibdir}/platform/ppc*
946 %ifarch sparc sparc64
947 %{_rpmlibdir}/platform/sparc*
950 %dir %{_rpmlibdir}/pld
952 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
953 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
955 # valgrind suppression file for rpm
956 %{_rpmlibdir}/rpm.supp
958 %dir /usr/lib/.build-id
961 %defattr(644,root,root,755)
962 %dir %{_sysconfdir}/rpm
963 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
965 %attr(755,root,root) %{_bindir}/banner.sh
966 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
970 %defattr(644,root,root,755)
971 %attr(755,root,root) /%{_lib}/librpm.so.9
972 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
973 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
974 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
975 %attr(755,root,root) /%{_lib}/librpmio.so.9
976 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
977 %attr(755,root,root) /%{_lib}/librpmsign.so.9
978 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
979 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
982 %defattr(644,root,root,755)
983 %attr(755,root,root) %{_libdir}/librpm.so
984 %attr(755,root,root) %{_libdir}/librpmbuild.so
985 %attr(755,root,root) %{_libdir}/librpmio.so
986 %attr(755,root,root) %{_libdir}/librpmsign.so
988 %{_libdir}/librpmbuild.la
989 %{_libdir}/librpmio.la
990 %{_libdir}/librpmsign.la
992 %{_pkgconfigdir}/rpm.pc
995 %defattr(644,root,root,755)
996 %attr(755,root,root) %{_bindir}/rpm2archive
997 %attr(755,root,root) %{_bindir}/rpm2cpio
998 %attr(755,root,root) %{_bindir}/rpmgraph
999 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
1000 %attr(755,root,root) %{_rpmlibdir}/tgpg
1001 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
1002 %{_mandir}/man8/rpm2archive.8*
1003 %{_mandir}/man8/rpm2cpio.8*
1004 %{_mandir}/man8/rpmdeps.8*
1005 %{_mandir}/man8/rpmgraph.8*
1006 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
1007 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
1008 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
1009 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
1010 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
1011 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
1012 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
1015 %defattr(644,root,root,755)
1016 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
1017 %attr(755,root,root) %{_rpmlibdir}/brp-*
1018 %attr(755,root,root) %{_rpmlibdir}/check-files
1019 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
1020 %attr(755,root,root) %{_rpmlibdir}/elfdeps
1021 #%attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
1022 # needs hacked pkg-config to return anything
1023 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
1024 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
1026 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
1027 # must be here for "Requires: rpm-*prov" to work
1028 #%{_rpmlibdir}/macros.d/cmake
1029 #%{_rpmlibdir}/macros.d/gstreamer
1030 #%{_rpmlibdir}/macros.d/libtool
1031 #%{_rpmlibdir}/macros.d/perl
1032 #%{_rpmlibdir}/macros.d/pkgconfig
1033 #%{_rpmlibdir}/macros.d/python
1034 #%{_rpmlibdir}/macros.d/selinux
1035 #%{_rpmlibdir}/macros.d/tcl
1036 #%{_rpmlibdir}/macros.rpmbuild
1038 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
1039 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
1040 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
1041 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
1042 %attr(755,root,root) %{_rpmlibdir}/find-provides
1043 %attr(755,root,root) %{_rpmlibdir}/find-requires
1044 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
1045 %attr(755,root,root) %{_rpmlibdir}/script.req
1047 %dir %{_rpmlibdir}/fileattrs
1048 %{_rpmlibdir}/fileattrs/debuginfo.attr
1049 %{_rpmlibdir}/fileattrs/desktop.attr
1050 %{_rpmlibdir}/fileattrs/elf.attr
1051 %{_rpmlibdir}/fileattrs/font.attr
1052 #%{_rpmlibdir}/fileattrs/libtool.attr
1053 %{_rpmlibdir}/fileattrs/metainfo.attr
1054 %{_rpmlibdir}/fileattrs/ocaml.attr
1055 %{_rpmlibdir}/fileattrs/perl.attr
1056 %{_rpmlibdir}/fileattrs/perllib.attr
1057 %{_rpmlibdir}/fileattrs/pkgconfig.attr
1058 %{_rpmlibdir}/fileattrs/script.attr
1060 %attr(755,root,root) %{_bindir}/gendiff
1061 %attr(755,root,root) %{_bindir}/rpmbuild
1062 %attr(755,root,root) %{_bindir}/rpmspec
1064 %{_mandir}/man1/gendiff.1*
1065 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
1066 %{_mandir}/man8/rpmbuild.8*
1067 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
1068 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
1069 %{_mandir}/man8/rpmspec.8*
1072 %defattr(644,root,root,755)
1073 %attr(755,root,root) %{_rpmlibdir}/perl.*
1076 %defattr(644,root,root,755)
1077 #%attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
1080 %files -n python3-rpm
1081 %defattr(644,root,root,755)
1082 %dir %{py3_sitedir}/rpm
1083 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1084 %{py3_sitedir}/rpm/*.py
1085 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1086 %{py3_sitedir}/rpm/__pycache__
1091 %defattr(644,root,root,755)
1092 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1093 %{_mandir}/man8/rpm-plugin-audit.8*
1095 %files plugin-syslog
1096 %defattr(644,root,root,755)
1097 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1098 %{_mandir}/man8/rpm-plugin-syslog.8*
1101 %files plugin-systemd-inhibit
1102 %defattr(644,root,root,755)
1103 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1104 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1108 %defattr(644,root,root,755)
1109 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1110 %{_mandir}/man8/rpm-plugin-ima.8*
1112 %files plugin-prioreset
1113 %defattr(644,root,root,755)
1114 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1115 %{_mandir}/man8/rpm-plugin-prioreset.8*
1117 %files plugin-selinux
1118 %defattr(644,root,root,755)
1119 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1120 %{_mandir}/man8/rpm-plugin-selinux.8*
1122 %if %{with fsverity}
1123 %files plugin-fsverity
1124 %defattr(644,root,root,755)
1125 %attr(755,root,root) %{_libdir}/rpm-plugins/fsverity.so
1128 %files plugin-fapolicyd
1129 %defattr(644,root,root,755)
1130 %attr(755,root,root) %{_libdir}/rpm-plugins/fapolicyd.so
1131 %{_mandir}/man8/rpm-plugin-fapolicyd.8*
1133 %files plugin-dbus-announce
1134 %defattr(644,root,root,755)
1135 %attr(755,root,root) %{_libdir}/rpm-plugins/dbus_announce.so
1136 %{_mandir}/man8/rpm-plugin-dbus-announce.8*
1137 %{_sysconfdir}/dbus-1/system.d/org.rpm.conf
1141 %defattr(644,root,root,755)
1142 %attr(755,root,root) %{_bindir}/rpmsign
1143 %{_mandir}/man8/rpmsign.8*
1147 %defattr(644,root,root,755)
1148 %doc docs/librpm/html/*