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 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 Patch27: no-exeonly-for-elf-reqprov.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 Patch33: sqlite-db-backend.patch
93 Patch34: skip-symlinks.patch
95 Patch36: build-locale.patch
96 Patch37: %{name}-pl.po-update.patch
98 BuildRequires: acl-devel
99 %{?with_audit:BuildRequires: audit-libs-devel}
100 BuildRequires: autoconf >= 2.63
101 BuildRequires: automake >= 1:1.10
102 BuildRequires: bzip2-devel >= 1.0.2-17
103 BuildRequires: db-devel >= %{db_ver}
104 %{?with_systemd:BuildRequires: dbus-devel >= 1.3}
105 BuildRequires: elfutils-devel >= 0.108
106 BuildRequires: gettext-tools >= 0.19.2
107 %{?with_imaevm:BuildRequires: ima-evm-utils-devel >= 1.0}
108 BuildRequires: libarchive-devel
109 BuildRequires: libcap-devel
110 BuildRequires: libmagic-devel
111 BuildRequires: libgcrypt-devel
112 BuildRequires: libgomp-devel >= 6:4.5
113 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
114 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
115 BuildRequires: libstdc++-devel
116 BuildRequires: libtool >= 1:1.4.2-9
117 BuildRequires: lua-devel >= 5.2
118 BuildRequires: patch >= 2.2
119 BuildRequires: pkgconfig
120 BuildRequires: popt-devel >= %{popt_ver}
121 BuildRequires: python3-modules >= 1:3.2
123 BuildRequires: python3-devel >= 1:3.2
124 BuildRequires: rpm-pythonprov
125 BuildRequires: rpmbuild(macros) >= 1.750
127 BuildRequires: rpm-build >= 4.6
128 BuildRequires: sqlite3-devel >= 3.22.0
130 BuildRequires: xz-devel
131 BuildRequires: zlib-devel
132 BuildRequires: zstd-devel
134 BuildRequires: doxygen
135 BuildRequires: ghostscript
136 BuildRequires: graphviz
137 BuildRequires: tetex-pdftex
139 Requires(posttrans): coreutils
140 Requires: %{name}-base = %{epoch}:%{version}-%{release}
141 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
142 Requires: rpm-pld-macros >= 2.002
143 Requires: FHS >= 3.0-2
145 Requires: popt >= %{popt_ver}
146 %if %{with recommends_tags}
147 Recommends: rpm-plugin-audit
148 Recommends: rpm-plugin-prioreset
149 Recommends: rpm-plugin-syslog
150 Recommends: rpm-plugin-systemd-inhibit
152 Obsoletes: rpm-utils-perl < 1:4.15
153 Obsoletes: rpm-utils-static < 1:4.15
154 Conflicts: glibc < 2.2.92
155 # db4.6 poldek needed
156 Conflicts: poldek < 0.21-0.20070703.00.3
157 # segfaults with lzma 0.42.2
158 Conflicts: lzma-libs < 4.999.3
159 Conflicts: util-vserver < 0.30.216-1.pre3034.7
160 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
162 %define _binary_payload w9.gzdio
164 # don't require very fresh rpm.macros to build
165 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
166 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
167 %define ppc ppc ppc7400 ppc7450
168 %define x8664 amd64 ia32e x86_64
170 %define _rpmlibdir /usr/lib/rpm
173 RPM is a powerful package manager, which can be used to build,
174 install, query, verify, update, and uninstall individual software
175 packages. A package consists of an archive of files, and package
176 information, including name, version, and description.
178 %description -l de.UTF-8
179 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
180 Installation, Anfrage, Verifizierung, Aktualisierung und
181 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
182 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
185 %description -l es.UTF-8
186 RPM es un poderoso administrador de paquetes, que puede ser usado para
187 construir, instalar, pesquisar, verificar, actualizar y desinstalar
188 paquetes individuales de software. Un paquete consiste en un
189 almacenaje de archivos, y información sobre el paquete, incluyendo
190 nombre, versión y descripción.
192 %description -l pl.UTF-8
193 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
194 przebudowanie, instalację czy weryfikację dowolnego pakietu.
195 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
196 plików wchodzących w skład pakietu, zależności od innych pakietów, są
197 przechowywane w bazie danych i można je uzyskać za pomocą opcji
198 odpytywania programu rpm.
200 %description -l pt_BR.UTF-8
201 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
202 construir, instalar, pesquisar, verificar, atualizar e desinstalar
203 pacotes individuais de software. Um pacote consiste de um conjunto de
204 arquivos e informações adicionais, incluindo nome, versão e descrição
205 do pacote, permissões dos arquivos, etc.
207 %description -l ru.UTF-8
208 RPM - это мощный менеджер пакетов, который может быть использован для
209 создания, инсталляции, запросов (query), проверки, обновления и
210 удаления программных пакетов. Пакет состоит из файлового архива и
211 служебной информации, включающей название, версию, описание и другие
214 %description -l uk.UTF-8
215 RPM - це потужний менеджер пакетів, що може бути використаний для
216 створення, інсталяції, запитів (query), перевірки, поновлення та
217 видалення програмних пакетів. Пакет складається з файлового архіву та
218 службової інформації, що містить назву, версію, опис та іншу
219 інформацію про пакет.
222 Summary: RPM base package - scripts used by rpm packages themselves
223 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
226 Obsoletes: rpm-scripts < 4.4
227 Obsoletes: vserver-rpm < 1
230 The RPM base package contains scripts used by rpm packages themselves.
232 - scripts for adding/removing groups and users needed for rpm
234 - banner.sh to display %%banner messages from rpm scriptlets.
236 %description base -l pl.UTF-8
237 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
239 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
240 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
243 Summary: RPMs library
244 Summary(pl.UTF-8): Biblioteki RPM-a
246 Requires: db >= %{db_ver}
247 Requires: libmagic >= 1.15-2
248 Requires: popt >= %{popt_ver}
249 Requires: sqlite3-libs >= 3.22.0
250 Obsoletes: rpm-libs < 4.0.2-4
251 # avoid SEGV caused by mixed db versions
252 Conflicts: poldek < 0.18.1-16
257 %description lib -l pl.UTF-8
261 Summary: Header files for rpm libraries
262 Summary(de.UTF-8): Header-Dateien für rpm Libraries
263 Summary(es.UTF-8): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
264 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek rpm
265 Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
266 Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
267 Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
268 Group: Development/Libraries
269 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
270 Requires: bzip2-devel
271 Requires: db-devel >= %{db_ver}
272 Requires: elfutils-devel
273 Requires: libmagic-devel
274 Requires: libgcrypt-devel
276 Requires: libselinux-devel
277 Requires: libsemanage-devel
278 Requires: libsepol-devel
280 Requires: popt-devel >= %{popt_ver}
284 The RPM packaging system includes C libraries that make it easy to
285 manipulate RPM packages and databases. They are intended to ease the
286 creation of graphical package managers and other tools that need
287 intimate knowledge of RPM packages. This package contains header files
290 %description devel -l de.UTF-8
291 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
292 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
293 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
294 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
296 %description devel -l es.UTF-8
297 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
298 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
299 facilitar la creación de administradores gráficos de paquetes y otras
300 herramientas que necesiten un conocimiento profundo de paquetes RPM.
302 %description devel -l pl.UTF-8
303 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
304 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
305 graficznych programów zarządzających pakietami oraz innych narzędzi,
306 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
307 zawiera pliki nagłówkowe wspomnianych bibliotek.
309 %description devel -l pt_BR.UTF-8
310 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
311 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
312 facilitar a criação de gerenciadores gráficos de pacotes e outras
313 ferramentas que precisem de conhecimento profundo de pacotes RPM.
315 %description devel -l ru.UTF-8
316 Система управления пакетами RPM содержит библиотеку C, которая
317 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
318 Эта библиотека предназначена для облегчения создания графических
319 пакетных менеджеров и других утилит, которым необходимо работать с
322 %description devel -l uk.UTF-8
323 Система керування пакетами RPM містить бібліотеку C, котра спрощує
324 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
325 призначена для полегшення створення графічних пакетних менеджерів та
326 інших утиліт, що працюють з пакетами RPM.
329 Summary: Additional utilities for managing RPM packages and database
330 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
331 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
332 Group: Applications/File
333 Requires: %{name} = %{epoch}:%{version}-%{release}
334 Requires: popt >= %{popt_ver}
335 %if %{with recommends_tags}
339 Conflicts: filesystem-debuginfo < 3.0-16
342 Additional utilities for managing RPM packages and database.
344 %description utils -l de.UTF-8
345 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
347 %description utils -l pl.UTF-8
348 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
351 Summary: Scripts for building binary RPM packages
352 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
353 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
354 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
355 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
356 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
357 Group: Applications/File
358 Requires(pretrans): coreutils
359 Requires(pretrans): findutils
360 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
361 Requires: rpm-pld-macros-build >= 1.744
365 Requires: chrpath >= 0.10-4
369 Requires: file >= 4.17
373 Requires: gcc >= 3.0.3
377 Requires: glibc-devel
384 Requires: tar >= 1:1.22
388 Provides: rpmbuild(noauto) = 3
390 Conflicts: automake < 1:1.7.9-2
391 Conflicts: libtool < 2:1.5-13
395 Scripts for building binary RPM packages.
397 %description build -l de.UTF-8
398 Scripts fürs Bauen binärer RPM-Pakete.
400 %description build -l pl.UTF-8
401 Skrypty pomocnicze do budowania binarnych RPM-ów.
403 %description build -l pt_BR.UTF-8
404 Este pacote contém scripts e programas executáveis que são usados para
405 construir pacotes usando o RPM.
407 %description build -l ru.UTF-8
408 Различные вспомогательные скрипты и исполняемые программы, которые
409 используются для сборки RPM'ов.
411 %description build -l uk.UTF-8
412 Різноманітні допоміжні скрипти та утиліти, які використовуються для
416 Summary: Additional utilities for checking Perl provides/requires in RPM packages
417 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
418 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
419 Group: Applications/File
420 Requires: %{name} = %{epoch}:%{version}-%{release}
421 Requires: perl-Encode
423 Requires: perl-modules
425 %description perlprov
426 Additional utilities for checking Perl provides/requires in RPM
429 %description perlprov -l de.UTF-8
430 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
432 %description perlprov -l pl.UTF-8
433 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
437 Summary: Python macros, which simplifies creation of RPM packages with Python software
438 Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
439 Group: Applications/File
440 Requires: %{name} = %{epoch}:%{version}-%{release}
442 Requires: python3-modules
443 Requires: python3-setuptools
445 %description pythonprov
446 Python macros, which simplifies creation of RPM packages with Python
449 %description pythonprov -l pl.UTF-8
450 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
453 %package -n python3-rpm
454 Summary: Python 3 interface to RPM library
455 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
456 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
457 Group: Development/Languages/Python
458 Requires: %{name} = %{epoch}:%{version}-%{release}
460 Obsoletes: python-rpm < 1:4.16.0
461 Obsoletes: rpm-python < 4.0.2-50
463 %description -n python3-rpm
464 The python3-rpm package contains a module which permits applications
465 written in the Python 3 programming language to use the interface
466 supplied by RPM (RPM Package Manager) libraries.
468 This package should be installed if you want to develop Python 3
469 programs that will manipulate RPM packages and databases.
471 %description -n python3-rpm -l pl.UTF-8
472 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
473 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
476 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
477 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
479 %description -n python3-rpm -l pt_BR.UTF-8
480 O pacote python3-rpm contém um módulo que permite que aplicações
481 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
482 RPM (RPM Package Manager).
484 Esse pacote deve ser instalado se você quiser desenvolver programas em
485 Python 3 para manipular pacotes e bancos de dados RPM.
487 %package plugin-audit
488 Summary: Plugin for logging audit events on package operations
489 Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
491 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
493 %description plugin-audit
494 Plugin for libaudit support.
496 %description plugin-audit -l pl.UTF-8
497 Wtyczka do obsługi libaudit.
499 %package plugin-syslog
500 Summary: Plugin for syslog functionality
501 Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
503 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
505 %description plugin-syslog
506 This plugin exports RPM actions to the system log.
508 %description plugin-syslog -l pl.UTF-8
509 Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
511 %package plugin-systemd-inhibit
512 Summary: Plugin for systemd inhibit functionality
513 Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
515 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
516 Requires: dbus >= 1.3
518 %description plugin-systemd-inhibit
519 This plugin blocks systemd from entering idle, sleep or shutdown while
520 an rpm transaction is running using the systemd-inhibit mechanism.
522 %description plugin-systemd-inhibit -l pl.UTF-8
523 Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
524 uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
525 RPM-a, korzystając z mechanizmu systemd-inhibit.
528 Summary: Plugin for IMA file signatures
529 Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
531 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
533 %description plugin-ima
534 This plugin adds support for enforcing and verifying IMA file
535 signatures in an rpm.
537 %description plugin-ima -l pl.UTF-8
538 Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików
541 %package plugin-prioreset
542 Summary: Plugin for resetting scriptlet priorities for SysV init
543 Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
545 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
547 %description plugin-prioreset
548 This plugin is useful on legacy SysV init systems if you run rpm
549 transactions with nice/ionice priorities. Should not be used on
552 %description plugin-prioreset -l pl.UTF-8
553 Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
554 SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
555 nice/ionice. Nie powinna być używana w systemach z systemd.
557 %package plugin-selinux
558 Summary: Plugin for SELinux functionality
559 Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
561 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
562 Requires: libselinux >= 2.1.0
564 %description plugin-selinux
565 Plugin for SELinux functionality.
567 %description plugin-selinux -l pl.UTF-8
568 Wtyczka do funkcjonalności SELinux.
571 Summary: Package signing support
572 Summary(pl.UTF-8): Obsługa podpisywania pakietów
574 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
577 This package contains support for digitally signing RPM packages.
579 %description sign -l pl.UTF-8
580 Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
583 Summary: RPM API documentation and guides
584 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
589 Documentation for RPM API and guides in HTML format generated from rpm
592 %description apidocs -l pl.UTF-8
593 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
594 źrodeł RPM-a przez doxygen.
597 %setup -q -n %{name}-%{version}%{?subver}
639 install %{SOURCE15} scripts/perl.prov.in
641 %{__mv} scripts/perl.req{,.in}
643 # generate Group translations to *.po
644 awk -f %{SOURCE6} %{SOURCE5}
646 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
655 # rpm checks for CPU type at runtime, but it looks better
657 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
658 -e 's|@host_cpu@|%{_target_cpu}|' \
659 -e 's|@host_os@|%{_target_os}|' \
664 WITH_PERL_VERSION=no \
665 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
666 __GPG=%{_bindir}/gpg \
670 %{!?with_plugins:--disable-plugins} \
671 %{!?with_systemd:--disable-inhibit-plugin} \
672 --disable-silent-rules \
677 --with-audit%{!?with_audit:=no} \
679 %{?with_imaevm:--with-imaevm} \
681 %{?with_python3:--enable-python} \
682 --with-selinux%{!?with_selinux:=no} \
687 %{__make} -C po update-gmo
695 rm -rf $RPM_BUILD_ROOT
696 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
697 $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
699 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
702 pkgconfigdir=%{_pkgconfigdir} \
703 DESTDIR=$RPM_BUILD_ROOT
706 %ifnarch %{ix86} %{x8664} x32
707 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
708 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
709 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
710 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
711 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
712 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
713 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
714 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
717 %ifnarch %{x8664} x32
718 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
719 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
720 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
721 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
725 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
726 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
727 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
728 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
729 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
730 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
731 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
735 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
739 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
742 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
743 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
744 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
745 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
746 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
747 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
748 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
750 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
752 %{_target_cpu}-%{_target_vendor}-linux-gnux32
754 %{_target_cpu}-%{_target_vendor}-linux
758 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
760 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
762 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
763 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
764 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
766 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
768 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
769 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
770 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
771 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
772 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
773 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
776 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
777 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
778 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
780 # move essential libs to /lib (libs that /bin/rpm links to)
781 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
782 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
783 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
786 # init an empty database for %ghost'ing for all supported backends
787 for be in sqlite bdb ndb; do
789 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
790 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
791 --dbpath=${PWD}/${be} \
792 --define "_db_backend ${be}" \
794 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
798 # Remove anything that rpm make install might put there
799 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
805 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
807 # wrong location, not used anyway
808 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
813 rm -rf $RPM_BUILD_ROOT
816 if [ -e /var/lib/rpm/Packages ]; then
817 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
818 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
820 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
824 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
825 echo 'you should ignore it and restart poldek'
827 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
828 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
829 # Unlock database for rebuild, safe since this is posttrans
830 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
831 if ! /usr/bin/rpmdb --rebuilddb; then
833 echo "rpm database conversion failed!"
834 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
841 if [ -d /var/cache/hrmib ]; then
842 %{__rm} -rf /var/cache/hrmib
843 echo "HR-MIB is not supported by this rpm version."
844 echo "/var/cache/hrmib has been removed."
847 %post lib -p /sbin/ldconfig
848 %postun lib -p /sbin/ldconfig
851 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
853 %files -f %{name}.lang
854 %defattr(644,root,root,755)
855 %doc ChangeLog CREDITS README
857 %dir /etc/pki/rpm-gpg
858 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
860 %attr(755,root,root) /bin/rpm
861 %attr(755,root,root) %{_bindir}/rpmdb
862 %attr(755,root,root) %{_bindir}/rpmkeys
863 %attr(755,root,root) %{_bindir}/rpmquery
864 %attr(755,root,root) %{_bindir}/rpmverify
866 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
867 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
868 # this is ok to be replaced
869 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
871 %{_mandir}/man8/rpm.8*
872 %{_mandir}/man8/rpmdb.8*
873 %{_mandir}/man8/rpmkeys.8*
874 %{_mandir}/man8/rpm-misc.8*
875 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
876 %lang(fr) %{_mandir}/fr/man8/rpm.8*
877 %lang(ja) %{_mandir}/ja/man8/rpm.8*
878 %lang(ko) %{_mandir}/ko/man8/rpm.8*
879 %lang(pl) %{_mandir}/pl/man8/rpm.8*
880 %lang(ru) %{_mandir}/ru/man8/rpm.8*
881 %lang(sk) %{_mandir}/sk/man8/rpm.8*
884 %ghost %config(missingok,noreplace) /var/lib/rpm/*
885 %ghost /var/lib/rpm/.*.lock
887 %{_rpmlibdir}/rpmpopt*
890 %dir %{_rpmlibdir}/macros.d
891 %dir %{_rpmlibdir}/platform
892 %{_rpmlibdir}/platform/noarch-*
893 %ifarch %{ix86} %{x8664} x32
894 %{_rpmlibdir}/platform/athlon*
895 %{_rpmlibdir}/platform/geode*
896 %{_rpmlibdir}/platform/i?86*
897 %{_rpmlibdir}/platform/pentium*
900 %{_rpmlibdir}/platform/amd64*
901 %{_rpmlibdir}/platform/ia32e*
902 %{_rpmlibdir}/platform/x86_64*
903 %{_rpmlibdir}/platform/x32*
906 %{_rpmlibdir}/platform/alpha*
909 %{_rpmlibdir}/platform/aarch64*
912 %{_rpmlibdir}/platform/arm*
915 %{_rpmlibdir}/platform/ia64*
917 %ifarch mips mipsel mips64 mips64el
918 %{_rpmlibdir}/platform/mips*
921 %{_rpmlibdir}/platform/ppc*
923 %ifarch sparc sparc64
924 %{_rpmlibdir}/platform/sparc*
927 %dir %{_rpmlibdir}/pld
929 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
930 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
932 # valgrind suppression file for rpm
933 %{_rpmlibdir}/rpm.supp
935 %dir /usr/lib/.build-id
938 %defattr(644,root,root,755)
939 %dir %{_sysconfdir}/rpm
940 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
942 %attr(755,root,root) %{_bindir}/banner.sh
943 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
947 %defattr(644,root,root,755)
948 %attr(755,root,root) /%{_lib}/librpm.so.9
949 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
950 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
951 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
952 %attr(755,root,root) /%{_lib}/librpmio.so.9
953 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
954 %attr(755,root,root) /%{_lib}/librpmsign.so.9
955 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
956 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
959 %defattr(644,root,root,755)
960 %attr(755,root,root) %{_libdir}/librpm.so
961 %attr(755,root,root) %{_libdir}/librpmbuild.so
962 %attr(755,root,root) %{_libdir}/librpmio.so
963 %attr(755,root,root) %{_libdir}/librpmsign.so
965 %{_libdir}/librpmbuild.la
966 %{_libdir}/librpmio.la
967 %{_libdir}/librpmsign.la
969 %{_pkgconfigdir}/rpm.pc
972 %defattr(644,root,root,755)
973 %attr(755,root,root) %{_bindir}/rpm2archive
974 %attr(755,root,root) %{_bindir}/rpm2cpio
975 %attr(755,root,root) %{_bindir}/rpmgraph
976 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
977 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
978 %attr(755,root,root) %{_rpmlibdir}/tgpg
979 %attr(755,root,root) %{_rpmlibdir}/debugedit
980 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
981 %{_mandir}/man8/rpm2archive.8*
982 %{_mandir}/man8/rpm2cpio.8*
983 %{_mandir}/man8/rpmdeps.8*
984 %{_mandir}/man8/rpmgraph.8*
985 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
986 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
987 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
988 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
989 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
990 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
991 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
994 %defattr(644,root,root,755)
995 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
996 %attr(755,root,root) %{_rpmlibdir}/brp-*
997 %attr(755,root,root) %{_rpmlibdir}/check-files
998 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
999 %attr(755,root,root) %{_rpmlibdir}/elfdeps
1000 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
1001 # needs hacked pkg-config to return anything
1002 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
1003 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
1005 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
1006 # must be here for "Requires: rpm-*prov" to work
1007 #%{_rpmlibdir}/macros.d/cmake
1008 #%{_rpmlibdir}/macros.d/gstreamer
1009 #%{_rpmlibdir}/macros.d/libtool
1010 #%{_rpmlibdir}/macros.d/perl
1011 #%{_rpmlibdir}/macros.d/pkgconfig
1012 #%{_rpmlibdir}/macros.d/python
1013 #%{_rpmlibdir}/macros.d/selinux
1014 #%{_rpmlibdir}/macros.d/tcl
1015 #%{_rpmlibdir}/macros.rpmbuild
1017 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
1018 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
1019 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
1020 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
1021 %attr(755,root,root) %{_rpmlibdir}/find-provides
1022 %attr(755,root,root) %{_rpmlibdir}/find-requires
1023 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
1024 %attr(755,root,root) %{_rpmlibdir}/script.req
1025 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
1027 %dir %{_rpmlibdir}/fileattrs
1028 %{_rpmlibdir}/fileattrs/debuginfo.attr
1029 %{_rpmlibdir}/fileattrs/desktop.attr
1030 %{_rpmlibdir}/fileattrs/elf.attr
1031 %{_rpmlibdir}/fileattrs/font.attr
1032 %{_rpmlibdir}/fileattrs/libtool.attr
1033 %{_rpmlibdir}/fileattrs/metainfo.attr
1034 %{_rpmlibdir}/fileattrs/ocaml.attr
1035 %{_rpmlibdir}/fileattrs/perl.attr
1036 %{_rpmlibdir}/fileattrs/perllib.attr
1037 %{_rpmlibdir}/fileattrs/pkgconfig.attr
1038 %{_rpmlibdir}/fileattrs/python.attr
1039 %{_rpmlibdir}/fileattrs/pythondist.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 %defattr(644,root,root,755)
1059 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
1062 %files -n python3-rpm
1063 %defattr(644,root,root,755)
1064 %dir %{py3_sitedir}/rpm
1065 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1066 %{py3_sitedir}/rpm/*.py
1067 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1068 %{py3_sitedir}/rpm/__pycache__
1073 %defattr(644,root,root,755)
1074 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1075 %{_mandir}/man8/rpm-plugin-audit.8*
1077 %files plugin-syslog
1078 %defattr(644,root,root,755)
1079 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1080 %{_mandir}/man8/rpm-plugin-syslog.8*
1083 %files plugin-systemd-inhibit
1084 %defattr(644,root,root,755)
1085 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1086 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1090 %defattr(644,root,root,755)
1091 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1092 %{_mandir}/man8/rpm-plugin-ima.8*
1094 %files plugin-prioreset
1095 %defattr(644,root,root,755)
1096 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1097 %{_mandir}/man8/rpm-plugin-prioreset.8*
1099 %files plugin-selinux
1100 %defattr(644,root,root,755)
1101 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1102 %{_mandir}/man8/rpm-plugin-selinux.8*
1106 %defattr(644,root,root,755)
1107 %attr(755,root,root) %{_bindir}/rpmsign
1108 %{_mandir}/man8/rpmsign.8*
1112 %defattr(644,root,root,755)
1113 %doc doc/librpm/html/*