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
15 %define db_ver 5.3.28.0
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.16.x/%{name}-%{version}.tar.bz2
42 # Source0-md5: 576277fafa5d0681a8a92c8716aca5f0
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 Patch6: %{name}-perl_req-INC_dirs.patch
65 Patch7: %{name}-debuginfo.patch
66 Patch8: %{name}-libtool-deps.patch
67 Patch9: %{name}-builddir-readlink.patch
68 Patch10: %{name}-changelog_order_check_nonfatal.patch
69 Patch11: %{name}-postun-nofail.patch
70 Patch12: %{name}-clean-docdir.patch
71 Patch13: %{name}-perl-magic.patch
72 Patch14: %{name}-ignore-missing-macro-files.patch
74 Patch16: rpm5-db-compat.patch
75 Patch17: python-internal-build.patch
76 Patch18: missing-macros.patch
77 Patch19: pkgconfig.patch
78 Patch20: uname-deps.patch
79 Patch21: aarch64.patch
80 Patch22: ix86-platforms.patch
81 Patch23: shortcircuited-deps.patch
82 Patch24: cpuinfo-deps.patch
83 Patch25: rpmio-read-proc-files.patch
84 Patch26: allow-at-in-ver-rel.patch
85 Patch27: no-exeonly-for-elf-reqprov.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 Patch33: sqlite-db-backend.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 BuildRequires: db-devel >= %{db_ver}
102 %{?with_systemd:BuildRequires: dbus-devel >= 1.3}
103 BuildRequires: elfutils-devel >= 0.108
104 BuildRequires: gettext-tools >= 0.19.2
105 BuildRequires: libarchive-devel
106 BuildRequires: libcap-devel
107 BuildRequires: libmagic-devel
108 BuildRequires: libgcrypt-devel
109 BuildRequires: libgomp-devel >= 6:4.5
110 %{?with_imaevm:BuildRequires: libimaevm-devel >= 1.0}
111 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
112 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
113 BuildRequires: libstdc++-devel
114 BuildRequires: libtool >= 1:1.4.2-9
115 BuildRequires: lua-devel >= 5.2
116 BuildRequires: patch >= 2.2
117 BuildRequires: pkgconfig
118 BuildRequires: popt-devel >= %{popt_ver}
119 BuildRequires: python3-modules >= 1:3.2
121 BuildRequires: python3-devel >= 1:3.2
122 BuildRequires: rpm-pythonprov
123 BuildRequires: rpmbuild(macros) >= 1.750
125 BuildRequires: rpm-build >= 4.6
126 BuildRequires: sqlite3-devel >= 3.22.0
128 BuildRequires: xz-devel
129 BuildRequires: zlib-devel
130 BuildRequires: zstd-devel
132 BuildRequires: doxygen
133 BuildRequires: ghostscript
134 BuildRequires: graphviz
135 BuildRequires: tetex-pdftex
137 Requires(posttrans): coreutils
138 Requires: %{name}-base = %{epoch}:%{version}-%{release}
139 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
140 Requires: rpm-pld-macros >= 1.744
141 Requires: FHS >= 3.0-2
143 Requires: popt >= %{popt_ver}
144 %if %{with recommends_tags}
145 Recommends: rpm-plugin-audit
146 Recommends: rpm-plugin-prioreset
147 Recommends: rpm-plugin-syslog
148 Recommends: rpm-plugin-systemd-inhibit
150 Obsoletes: rpm-utils-perl < 1:4.15
151 Obsoletes: rpm-utils-static < 1:4.15
152 Conflicts: glibc < 2.2.92
153 # db4.6 poldek needed
154 Conflicts: poldek < 0.21-0.20070703.00.3
155 # segfaults with lzma 0.42.2
156 Conflicts: lzma-libs < 4.999.3
157 Conflicts: util-vserver < 0.30.216-1.pre3034.7
158 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
160 %define _binary_payload w9.gzdio
162 # don't require very fresh rpm.macros to build
163 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
164 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
165 %define ppc ppc ppc7400 ppc7450
166 %define x8664 amd64 ia32e x86_64
168 %define _rpmlibdir /usr/lib/rpm
171 RPM is a powerful package manager, which can be used to build,
172 install, query, verify, update, and uninstall individual software
173 packages. A package consists of an archive of files, and package
174 information, including name, version, and description.
176 %description -l de.UTF-8
177 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
178 Installation, Anfrage, Verifizierung, Aktualisierung und
179 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
180 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
183 %description -l es.UTF-8
184 RPM es un poderoso administrador de paquetes, que puede ser usado para
185 construir, instalar, pesquisar, verificar, actualizar y desinstalar
186 paquetes individuales de software. Un paquete consiste en un
187 almacenaje de archivos, y información sobre el paquete, incluyendo
188 nombre, versión y descripción.
190 %description -l pl.UTF-8
191 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
192 przebudowanie, instalację czy weryfikację dowolnego pakietu.
193 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
194 plików wchodzących w skład pakietu, zależności od innych pakietów, są
195 przechowywane w bazie danych i można je uzyskać za pomocą opcji
196 odpytywania programu rpm.
198 %description -l pt_BR.UTF-8
199 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
200 construir, instalar, pesquisar, verificar, atualizar e desinstalar
201 pacotes individuais de software. Um pacote consiste de um conjunto de
202 arquivos e informações adicionais, incluindo nome, versão e descrição
203 do pacote, permissões dos arquivos, etc.
205 %description -l ru.UTF-8
206 RPM - это мощный менеджер пакетов, который может быть использован для
207 создания, инсталляции, запросов (query), проверки, обновления и
208 удаления программных пакетов. Пакет состоит из файлового архива и
209 служебной информации, включающей название, версию, описание и другие
212 %description -l uk.UTF-8
213 RPM - це потужний менеджер пакетів, що може бути використаний для
214 створення, інсталяції, запитів (query), перевірки, поновлення та
215 видалення програмних пакетів. Пакет складається з файлового архіву та
216 службової інформації, що містить назву, версію, опис та іншу
217 інформацію про пакет.
220 Summary: RPM base package - scripts used by rpm packages themselves
221 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
224 Obsoletes: rpm-scripts < 4.4
225 Obsoletes: vserver-rpm < 1
228 The RPM base package contains scripts used by rpm packages themselves.
230 - scripts for adding/removing groups and users needed for rpm
232 - banner.sh to display %%banner messages from rpm scriptlets.
234 %description base -l pl.UTF-8
235 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
237 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
238 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
241 Summary: RPMs library
242 Summary(pl.UTF-8): Biblioteki RPM-a
244 Requires: db >= %{db_ver}
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}
268 Requires: bzip2-devel
269 Requires: db-devel >= %{db_ver}
270 Requires: elfutils-devel
271 Requires: libmagic-devel
272 Requires: libgcrypt-devel
274 Requires: libselinux-devel
275 Requires: libsemanage-devel
276 Requires: libsepol-devel
278 Requires: popt-devel >= %{popt_ver}
282 The RPM packaging system includes C libraries that make it easy to
283 manipulate RPM packages and databases. They are intended to ease the
284 creation of graphical package managers and other tools that need
285 intimate knowledge of RPM packages. This package contains header files
288 %description devel -l de.UTF-8
289 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
290 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
291 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
292 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
294 %description devel -l es.UTF-8
295 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
296 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
297 facilitar la creación de administradores gráficos de paquetes y otras
298 herramientas que necesiten un conocimiento profundo de paquetes RPM.
300 %description devel -l pl.UTF-8
301 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
302 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
303 graficznych programów zarządzających pakietami oraz innych narzędzi,
304 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
305 zawiera pliki nagłówkowe wspomnianych bibliotek.
307 %description devel -l pt_BR.UTF-8
308 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
309 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
310 facilitar a criação de gerenciadores gráficos de pacotes e outras
311 ferramentas que precisem de conhecimento profundo de pacotes RPM.
313 %description devel -l ru.UTF-8
314 Система управления пакетами RPM содержит библиотеку C, которая
315 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
316 Эта библиотека предназначена для облегчения создания графических
317 пакетных менеджеров и других утилит, которым необходимо работать с
320 %description devel -l uk.UTF-8
321 Система керування пакетами RPM містить бібліотеку C, котра спрощує
322 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
323 призначена для полегшення створення графічних пакетних менеджерів та
324 інших утиліт, що працюють з пакетами RPM.
327 Summary: Additional utilities for managing RPM packages and database
328 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
329 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
330 Group: Applications/File
331 Requires: %{name} = %{epoch}:%{version}-%{release}
332 Requires: popt >= %{popt_ver}
333 %if %{with recommends_tags}
337 Conflicts: filesystem-debuginfo < 3.0-16
340 Additional utilities for managing RPM packages and database.
342 %description utils -l de.UTF-8
343 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
345 %description utils -l pl.UTF-8
346 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
349 Summary: Scripts for building binary RPM packages
350 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
351 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
352 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
353 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
354 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
355 Group: Applications/File
356 Requires(pretrans): coreutils
357 Requires(pretrans): findutils
358 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
359 Requires: rpm-pld-macros-build >= 1.744
363 Requires: chrpath >= 0.10-4
367 Requires: file >= 4.17
371 Requires: gcc >= 3.0.3
375 Requires: glibc-devel
382 Requires: tar >= 1:1.22
386 Provides: rpmbuild(noauto) = 3
388 Conflicts: automake < 1:1.7.9-2
389 Conflicts: libtool < 2:1.5-13
393 Scripts for building binary RPM packages.
395 %description build -l de.UTF-8
396 Scripts fürs Bauen binärer RPM-Pakete.
398 %description build -l pl.UTF-8
399 Skrypty pomocnicze do budowania binarnych RPM-ów.
401 %description build -l pt_BR.UTF-8
402 Este pacote contém scripts e programas executáveis que são usados para
403 construir pacotes usando o RPM.
405 %description build -l ru.UTF-8
406 Различные вспомогательные скрипты и исполняемые программы, которые
407 используются для сборки RPM'ов.
409 %description build -l uk.UTF-8
410 Різноманітні допоміжні скрипти та утиліти, які використовуються для
414 Summary: Additional utilities for checking Perl provides/requires in RPM packages
415 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
416 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
417 Group: Applications/File
418 Requires: %{name} = %{epoch}:%{version}-%{release}
419 Requires: perl-Encode
421 Requires: perl-modules
423 %description perlprov
424 Additional utilities for checking Perl provides/requires in RPM
427 %description perlprov -l de.UTF-8
428 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
430 %description perlprov -l pl.UTF-8
431 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
435 Summary: Python macros, which simplifies creation of RPM packages with Python software
436 Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
437 Group: Applications/File
438 Requires: %{name} = %{epoch}:%{version}-%{release}
440 Requires: python3-modules
441 Requires: python3-setuptools
443 %description pythonprov
444 Python macros, which simplifies creation of RPM packages with Python
447 %description pythonprov -l pl.UTF-8
448 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
451 %package -n python3-rpm
452 Summary: Python 3 interface to RPM library
453 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
454 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
455 Group: Development/Languages/Python
456 Requires: %{name} = %{epoch}:%{version}-%{release}
458 Obsoletes: python-rpm < 1:4.16.0
459 Obsoletes: rpm-python < 4.0.2-50
461 %description -n python3-rpm
462 The python3-rpm package contains a module which permits applications
463 written in the Python 3 programming language to use the interface
464 supplied by RPM (RPM Package Manager) libraries.
466 This package should be installed if you want to develop Python 3
467 programs that will manipulate RPM packages and databases.
469 %description -n python3-rpm -l pl.UTF-8
470 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
471 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
474 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
475 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
477 %description -n python3-rpm -l pt_BR.UTF-8
478 O pacote python3-rpm contém um módulo que permite que aplicações
479 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
480 RPM (RPM Package Manager).
482 Esse pacote deve ser instalado se você quiser desenvolver programas em
483 Python 3 para manipular pacotes e bancos de dados RPM.
485 %package plugin-audit
486 Summary: Plugin for logging audit events on package operations
487 Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
489 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
491 %description plugin-audit
492 Plugin for libaudit support.
494 %description plugin-audit -l pl.UTF-8
495 Wtyczka do obsługi libaudit.
497 %package plugin-syslog
498 Summary: Plugin for syslog functionality
499 Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
501 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
503 %description plugin-syslog
504 This plugin exports RPM actions to the system log.
506 %description plugin-syslog -l pl.UTF-8
507 Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
509 %package plugin-systemd-inhibit
510 Summary: Plugin for systemd inhibit functionality
511 Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
513 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
514 Requires: dbus >= 1.3
516 %description plugin-systemd-inhibit
517 This plugin blocks systemd from entering idle, sleep or shutdown while
518 an rpm transaction is running using the systemd-inhibit mechanism.
520 %description plugin-systemd-inhibit -l pl.UTF-8
521 Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
522 uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
523 RPM-a, korzystając z mechanizmu systemd-inhibit.
526 Summary: Plugin for IMA file signatures
527 Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
529 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
531 %description plugin-ima
532 This plugin adds support for enforcing and verifying IMA file
533 signatures in an rpm.
535 %description plugin-ima -l pl.UTF-8
536 Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików
539 %package plugin-prioreset
540 Summary: Plugin for resetting scriptlet priorities for SysV init
541 Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
543 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
545 %description plugin-prioreset
546 This plugin is useful on legacy SysV init systems if you run rpm
547 transactions with nice/ionice priorities. Should not be used on
550 %description plugin-prioreset -l pl.UTF-8
551 Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
552 SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
553 nice/ionice. Nie powinna być używana w systemach z systemd.
555 %package plugin-selinux
556 Summary: Plugin for SELinux functionality
557 Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
559 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
560 Requires: libselinux >= 2.1.0
562 %description plugin-selinux
563 Plugin for SELinux functionality.
565 %description plugin-selinux -l pl.UTF-8
566 Wtyczka do funkcjonalności SELinux.
569 Summary: Package signing support
570 Summary(pl.UTF-8): Obsługa podpisywania pakietów
572 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
575 This package contains support for digitally signing RPM packages.
577 %description sign -l pl.UTF-8
578 Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
581 Summary: RPM API documentation and guides
582 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
587 Documentation for RPM API and guides in HTML format generated from rpm
590 %description apidocs -l pl.UTF-8
591 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
592 źrodeł RPM-a przez doxygen.
595 %setup -q -n %{name}-%{version}%{?subver}
635 install %{SOURCE15} scripts/perl.prov.in
637 %{__mv} scripts/perl.req{,.in}
639 # generate Group translations to *.po
640 awk -f %{SOURCE6} %{SOURCE5}
642 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
651 # rpm checks for CPU type at runtime, but it looks better
653 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
654 -e 's|@host_cpu@|%{_target_cpu}|' \
655 -e 's|@host_os@|%{_target_os}|' \
660 WITH_PERL_VERSION=no \
661 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
662 __GPG=%{_bindir}/gpg \
666 %{!?with_plugins:--disable-plugins} \
667 %{!?with_systemd:--disable-inhibit-plugin} \
668 --disable-silent-rules \
673 --with-audit%{!?with_audit:=no} \
675 %{?with_imaevm:--with-imaevm} \
677 %{?with_python3:--enable-python} \
678 --with-selinux%{!?with_selinux:=no} \
683 %{__make} -C po update-gmo
691 rm -rf $RPM_BUILD_ROOT
692 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
693 $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
695 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
698 pkgconfigdir=%{_pkgconfigdir} \
699 DESTDIR=$RPM_BUILD_ROOT
702 %ifnarch %{ix86} %{x8664} x32
703 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
704 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
705 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
706 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
707 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
708 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
709 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
710 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
713 %ifnarch %{x8664} x32
714 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
715 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
716 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
717 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
721 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
722 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
723 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
724 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
725 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
726 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
727 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
731 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
735 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
738 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
739 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
740 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
741 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
742 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
743 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
744 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
746 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
748 %{_target_cpu}-%{_target_vendor}-linux-gnux32
750 %{_target_cpu}-%{_target_vendor}-linux
754 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
756 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
758 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
759 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
760 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
762 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
764 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
765 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
766 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
767 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
768 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
769 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
772 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
773 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
774 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
776 # move essential libs to /lib (libs that /bin/rpm links to)
777 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
778 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
779 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
782 # init an empty database for %ghost'ing for all supported backends
783 for be in sqlite bdb ndb; do
785 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
786 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
787 --dbpath=${PWD}/${be} \
788 --define "_db_backend ${be}" \
790 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
794 # Remove anything that rpm make install might put there
795 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
801 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
803 # wrong location, not used anyway
804 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
809 rm -rf $RPM_BUILD_ROOT
812 if [ -e /var/lib/rpm/Packages ]; then
813 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
814 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
816 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
820 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
821 echo 'you should ignore it and restart poldek'
823 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
824 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
825 # Unlock database for rebuild, safe since this is posttrans
826 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
827 if ! /usr/bin/rpmdb --rebuilddb; then
829 echo "rpm database conversion failed!"
830 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
837 if [ -d /var/cache/hrmib ]; then
838 %{__rm} -rf /var/cache/hrmib
839 echo "HR-MIB is not supported by this rpm version."
840 echo "/var/cache/hrmib has been removed."
843 %post lib -p /sbin/ldconfig
844 %postun lib -p /sbin/ldconfig
847 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
849 %files -f %{name}.lang
850 %defattr(644,root,root,755)
851 %doc ChangeLog CREDITS README
853 %dir /etc/pki/rpm-gpg
854 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
856 %attr(755,root,root) /bin/rpm
857 %attr(755,root,root) %{_bindir}/rpmdb
858 %attr(755,root,root) %{_bindir}/rpmkeys
859 %attr(755,root,root) %{_bindir}/rpmquery
860 %attr(755,root,root) %{_bindir}/rpmverify
862 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
863 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
864 # this is ok to be replaced
865 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
867 %{_mandir}/man8/rpm.8*
868 %{_mandir}/man8/rpmdb.8*
869 %{_mandir}/man8/rpmkeys.8*
870 %{_mandir}/man8/rpm-misc.8*
871 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
872 %lang(fr) %{_mandir}/fr/man8/rpm.8*
873 %lang(ja) %{_mandir}/ja/man8/rpm.8*
874 %lang(ko) %{_mandir}/ko/man8/rpm.8*
875 %lang(pl) %{_mandir}/pl/man8/rpm.8*
876 %lang(ru) %{_mandir}/ru/man8/rpm.8*
877 %lang(sk) %{_mandir}/sk/man8/rpm.8*
880 %ghost %config(missingok,noreplace) /var/lib/rpm/*
881 %ghost /var/lib/rpm/.*.lock
883 %{_rpmlibdir}/rpmpopt*
886 %dir %{_rpmlibdir}/macros.d
887 %dir %{_rpmlibdir}/platform
888 %{_rpmlibdir}/platform/noarch-*
889 %ifarch %{ix86} %{x8664} x32
890 %{_rpmlibdir}/platform/athlon*
891 %{_rpmlibdir}/platform/geode*
892 %{_rpmlibdir}/platform/i?86*
893 %{_rpmlibdir}/platform/pentium*
896 %{_rpmlibdir}/platform/amd64*
897 %{_rpmlibdir}/platform/ia32e*
898 %{_rpmlibdir}/platform/x86_64*
899 %{_rpmlibdir}/platform/x32*
902 %{_rpmlibdir}/platform/alpha*
905 %{_rpmlibdir}/platform/aarch64*
908 %{_rpmlibdir}/platform/arm*
911 %{_rpmlibdir}/platform/ia64*
913 %ifarch mips mipsel mips64 mips64el
914 %{_rpmlibdir}/platform/mips*
917 %{_rpmlibdir}/platform/ppc*
919 %ifarch sparc sparc64
920 %{_rpmlibdir}/platform/sparc*
923 %dir %{_rpmlibdir}/pld
925 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
926 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
928 # valgrind suppression file for rpm
929 %{_rpmlibdir}/rpm.supp
931 %dir /usr/lib/.build-id
934 %defattr(644,root,root,755)
935 %dir %{_sysconfdir}/rpm
936 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
938 %attr(755,root,root) %{_bindir}/banner.sh
939 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
943 %defattr(644,root,root,755)
944 %attr(755,root,root) /%{_lib}/librpm.so.9
945 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
946 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
947 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
948 %attr(755,root,root) /%{_lib}/librpmio.so.9
949 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
950 %attr(755,root,root) /%{_lib}/librpmsign.so.9
951 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
952 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
955 %defattr(644,root,root,755)
956 %attr(755,root,root) %{_libdir}/librpm.so
957 %attr(755,root,root) %{_libdir}/librpmbuild.so
958 %attr(755,root,root) %{_libdir}/librpmio.so
959 %attr(755,root,root) %{_libdir}/librpmsign.so
961 %{_libdir}/librpmbuild.la
962 %{_libdir}/librpmio.la
963 %{_libdir}/librpmsign.la
965 %{_pkgconfigdir}/rpm.pc
968 %defattr(644,root,root,755)
969 %attr(755,root,root) %{_bindir}/rpm2archive
970 %attr(755,root,root) %{_bindir}/rpm2cpio
971 %attr(755,root,root) %{_bindir}/rpmgraph
972 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
973 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
974 %attr(755,root,root) %{_rpmlibdir}/tgpg
975 %attr(755,root,root) %{_rpmlibdir}/debugedit
976 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
977 %{_mandir}/man8/rpm2archive.8*
978 %{_mandir}/man8/rpm2cpio.8*
979 %{_mandir}/man8/rpmdeps.8*
980 %{_mandir}/man8/rpmgraph.8*
981 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
982 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
983 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
984 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
985 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
986 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
987 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
990 %defattr(644,root,root,755)
991 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
992 %attr(755,root,root) %{_rpmlibdir}/brp-*
993 %attr(755,root,root) %{_rpmlibdir}/check-files
994 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
995 %attr(755,root,root) %{_rpmlibdir}/elfdeps
996 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
997 # needs hacked pkg-config to return anything
998 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
999 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
1001 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
1002 # must be here for "Requires: rpm-*prov" to work
1003 #%{_rpmlibdir}/macros.d/cmake
1004 #%{_rpmlibdir}/macros.d/gstreamer
1005 #%{_rpmlibdir}/macros.d/libtool
1006 #%{_rpmlibdir}/macros.d/perl
1007 #%{_rpmlibdir}/macros.d/pkgconfig
1008 #%{_rpmlibdir}/macros.d/python
1009 #%{_rpmlibdir}/macros.d/selinux
1010 #%{_rpmlibdir}/macros.d/tcl
1011 #%{_rpmlibdir}/macros.rpmbuild
1013 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
1014 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
1015 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
1016 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
1017 %attr(755,root,root) %{_rpmlibdir}/find-provides
1018 %attr(755,root,root) %{_rpmlibdir}/find-requires
1019 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
1020 %attr(755,root,root) %{_rpmlibdir}/script.req
1021 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
1023 %dir %{_rpmlibdir}/fileattrs
1024 %{_rpmlibdir}/fileattrs/debuginfo.attr
1025 %{_rpmlibdir}/fileattrs/desktop.attr
1026 %{_rpmlibdir}/fileattrs/elf.attr
1027 %{_rpmlibdir}/fileattrs/font.attr
1028 %{_rpmlibdir}/fileattrs/libtool.attr
1029 %{_rpmlibdir}/fileattrs/metainfo.attr
1030 %{_rpmlibdir}/fileattrs/ocaml.attr
1031 %{_rpmlibdir}/fileattrs/perl.attr
1032 %{_rpmlibdir}/fileattrs/perllib.attr
1033 %{_rpmlibdir}/fileattrs/pkgconfig.attr
1034 %{_rpmlibdir}/fileattrs/python.attr
1035 %{_rpmlibdir}/fileattrs/pythondist.attr
1036 %{_rpmlibdir}/fileattrs/script.attr
1038 %attr(755,root,root) %{_bindir}/gendiff
1039 %attr(755,root,root) %{_bindir}/rpmbuild
1040 %attr(755,root,root) %{_bindir}/rpmspec
1042 %{_mandir}/man1/gendiff.1*
1043 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
1044 %{_mandir}/man8/rpmbuild.8*
1045 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
1046 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
1047 %{_mandir}/man8/rpmspec.8*
1050 %defattr(644,root,root,755)
1051 %attr(755,root,root) %{_rpmlibdir}/perl.*
1054 %defattr(644,root,root,755)
1055 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
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*
1102 %defattr(644,root,root,755)
1103 %attr(755,root,root) %{_bindir}/rpmsign
1104 %{_mandir}/man8/rpmsign.8*
1108 %defattr(644,root,root,755)
1109 %doc doc/librpm/html/*