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_with 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: https://ftp.tld-linux.org/TLD/TLD-Linux.asc
44 # Source1-md5: 5b5caff8c570489ad5bf950734546c24
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
97 Patch38: no-exe-for-elf-debuginfo.patch
99 BuildRequires: acl-devel
100 %{?with_audit:BuildRequires: audit-libs-devel}
101 BuildRequires: autoconf >= 2.63
102 BuildRequires: automake >= 1:1.10
103 BuildRequires: bzip2-devel >= 1.0.2-17
104 BuildRequires: db-devel >= %{db_ver}
105 %{?with_systemd:BuildRequires: dbus-devel >= 1.3}
106 BuildRequires: elfutils-devel >= 0.108
107 BuildRequires: gettext-tools >= 0.19.2
108 %{?with_imaevm:BuildRequires: ima-evm-utils-devel >= 1.0}
109 BuildRequires: libarchive-devel
110 BuildRequires: libcap-devel
111 BuildRequires: libmagic-devel
112 BuildRequires: libgcrypt-devel
113 BuildRequires: libgomp-devel >= 6:4.5
114 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
115 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
116 BuildRequires: libstdc++-devel
117 BuildRequires: libtool >= 1:1.4.2-9
118 BuildRequires: lua-devel >= 5.2
119 BuildRequires: patch >= 2.2
120 BuildRequires: pkgconfig
121 BuildRequires: popt-devel >= %{popt_ver}
122 BuildRequires: python3-modules >= 1:3.2
124 BuildRequires: python3-devel >= 1:3.2
125 BuildRequires: rpm-pythonprov
126 BuildRequires: rpmbuild(macros) >= 1.750
128 BuildRequires: rpm-build >= 4.6
129 BuildRequires: sqlite3-devel >= 3.22.0
131 BuildRequires: xz-devel
132 BuildRequires: zlib-devel
133 BuildRequires: zstd-devel
135 BuildRequires: doxygen
136 BuildRequires: ghostscript
137 BuildRequires: graphviz
138 BuildRequires: tetex-pdftex
140 Requires(posttrans): coreutils
141 Requires: %{name}-base = %{epoch}:%{version}-%{release}
142 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
143 Requires: rpm-tld-macros >= 2.002
144 Requires: FHS >= 3.0-2
146 Requires: popt >= %{popt_ver}
147 %if %{with recommends_tags}
148 Recommends: rpm-plugin-audit
149 Recommends: rpm-plugin-prioreset
150 Recommends: rpm-plugin-syslog
151 Recommends: rpm-plugin-systemd-inhibit
153 Obsoletes: rpm-utils-perl < 1:4.15
154 Obsoletes: rpm-utils-static < 1:4.15
155 Conflicts: glibc < 2.2.92
156 # db4.6 poldek needed
157 Conflicts: poldek < 0.21-0.20070703.00.3
158 # segfaults with lzma 0.42.2
159 Conflicts: lzma-libs < 4.999.3
160 Conflicts: util-vserver < 0.30.216-1.pre3034.7
161 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
163 %define _binary_payload w9.gzdio
165 # don't require very fresh rpm.macros to build
166 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
167 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
168 %define ppc ppc ppc7400 ppc7450
169 %define x8664 amd64 ia32e x86_64
171 %define _rpmlibdir /usr/lib/rpm
174 RPM is a powerful package manager, which can be used to build,
175 install, query, verify, update, and uninstall individual software
176 packages. A package consists of an archive of files, and package
177 information, including name, version, and description.
179 %description -l de.UTF-8
180 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
181 Installation, Anfrage, Verifizierung, Aktualisierung und
182 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
183 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
186 %description -l es.UTF-8
187 RPM es un poderoso administrador de paquetes, que puede ser usado para
188 construir, instalar, pesquisar, verificar, actualizar y desinstalar
189 paquetes individuales de software. Un paquete consiste en un
190 almacenaje de archivos, y información sobre el paquete, incluyendo
191 nombre, versión y descripción.
193 %description -l pl.UTF-8
194 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
195 przebudowanie, instalację czy weryfikację dowolnego pakietu.
196 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
197 plików wchodzących w skład pakietu, zależności od innych pakietów, są
198 przechowywane w bazie danych i można je uzyskać za pomocą opcji
199 odpytywania programu rpm.
201 %description -l pt_BR.UTF-8
202 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
203 construir, instalar, pesquisar, verificar, atualizar e desinstalar
204 pacotes individuais de software. Um pacote consiste de um conjunto de
205 arquivos e informações adicionais, incluindo nome, versão e descrição
206 do pacote, permissões dos arquivos, etc.
208 %description -l ru.UTF-8
209 RPM - это мощный менеджер пакетов, который может быть использован для
210 создания, инсталляции, запросов (query), проверки, обновления и
211 удаления программных пакетов. Пакет состоит из файлового архива и
212 служебной информации, включающей название, версию, описание и другие
215 %description -l uk.UTF-8
216 RPM - це потужний менеджер пакетів, що може бути використаний для
217 створення, інсталяції, запитів (query), перевірки, поновлення та
218 видалення програмних пакетів. Пакет складається з файлового архіву та
219 службової інформації, що містить назву, версію, опис та іншу
220 інформацію про пакет.
223 Summary: RPM base package - scripts used by rpm packages themselves
224 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
227 Obsoletes: rpm-scripts < 4.4
228 Obsoletes: vserver-rpm < 1
231 The RPM base package contains scripts used by rpm packages themselves.
233 - scripts for adding/removing groups and users needed for rpm
235 - banner.sh to display %%banner messages from rpm scriptlets.
237 %description base -l pl.UTF-8
238 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
240 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
241 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
244 Summary: RPMs library
245 Summary(pl.UTF-8): Biblioteki RPM-a
247 Requires: db >= %{db_ver}
248 Requires: libmagic >= 1.15-2
249 Requires: popt >= %{popt_ver}
250 Requires: sqlite3-libs >= 3.22.0
251 Obsoletes: rpm-libs < 4.0.2-4
252 # avoid SEGV caused by mixed db versions
253 Conflicts: poldek < 0.18.1-16
258 %description lib -l pl.UTF-8
262 Summary: Header files for rpm libraries
263 Summary(de.UTF-8): Header-Dateien für rpm Libraries
264 Summary(es.UTF-8): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
265 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek rpm
266 Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
267 Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
268 Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
269 Group: Development/Libraries
270 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
271 Requires: bzip2-devel
272 Requires: db-devel >= %{db_ver}
273 Requires: elfutils-devel
274 Requires: libmagic-devel
275 Requires: libgcrypt-devel
277 Requires: libselinux-devel
278 Requires: libsemanage-devel
279 Requires: libsepol-devel
281 Requires: popt-devel >= %{popt_ver}
285 The RPM packaging system includes C libraries that make it easy to
286 manipulate RPM packages and databases. They are intended to ease the
287 creation of graphical package managers and other tools that need
288 intimate knowledge of RPM packages. This package contains header files
291 %description devel -l de.UTF-8
292 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
293 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
294 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
295 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
297 %description devel -l es.UTF-8
298 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
299 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
300 facilitar la creación de administradores gráficos de paquetes y otras
301 herramientas que necesiten un conocimiento profundo de paquetes RPM.
303 %description devel -l pl.UTF-8
304 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
305 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
306 graficznych programów zarządzających pakietami oraz innych narzędzi,
307 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
308 zawiera pliki nagłówkowe wspomnianych bibliotek.
310 %description devel -l pt_BR.UTF-8
311 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
312 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
313 facilitar a criação de gerenciadores gráficos de pacotes e outras
314 ferramentas que precisem de conhecimento profundo de pacotes RPM.
316 %description devel -l ru.UTF-8
317 Система управления пакетами RPM содержит библиотеку C, которая
318 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
319 Эта библиотека предназначена для облегчения создания графических
320 пакетных менеджеров и других утилит, которым необходимо работать с
323 %description devel -l uk.UTF-8
324 Система керування пакетами RPM містить бібліотеку C, котра спрощує
325 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
326 призначена для полегшення створення графічних пакетних менеджерів та
327 інших утиліт, що працюють з пакетами RPM.
330 Summary: Additional utilities for managing RPM packages and database
331 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
332 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
333 Group: Applications/File
334 Requires: %{name} = %{epoch}:%{version}-%{release}
335 Requires: popt >= %{popt_ver}
336 %if %{with recommends_tags}
340 Conflicts: filesystem-debuginfo < 3.0-16
343 Additional utilities for managing RPM packages and database.
345 %description utils -l de.UTF-8
346 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
348 %description utils -l pl.UTF-8
349 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
352 Summary: Scripts for building binary RPM packages
353 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
354 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
355 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
356 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
357 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
358 Group: Applications/File
359 Requires(pretrans): coreutils
360 Requires(pretrans): findutils
361 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
362 Requires: rpm-tld-macros-build >= 1.744
366 Requires: chrpath >= 0.10-4
370 Requires: file >= 4.17
374 Requires: gcc >= 3.0.3
378 Requires: glibc-devel
385 Requires: tar >= 1:1.22
389 Provides: rpmbuild(noauto) = 3
391 Conflicts: automake < 1:1.7.9-2
392 Conflicts: libtool < 2:1.5-13
396 Scripts for building binary RPM packages.
398 %description build -l de.UTF-8
399 Scripts fürs Bauen binärer RPM-Pakete.
401 %description build -l pl.UTF-8
402 Skrypty pomocnicze do budowania binarnych RPM-ów.
404 %description build -l pt_BR.UTF-8
405 Este pacote contém scripts e programas executáveis que são usados para
406 construir pacotes usando o RPM.
408 %description build -l ru.UTF-8
409 Различные вспомогательные скрипты и исполняемые программы, которые
410 используются для сборки RPM'ов.
412 %description build -l uk.UTF-8
413 Різноманітні допоміжні скрипти та утиліти, які використовуються для
417 Summary: Additional utilities for checking Perl provides/requires in RPM packages
418 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
419 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
420 Group: Applications/File
421 Requires: %{name} = %{epoch}:%{version}-%{release}
422 Requires: perl-Encode
424 Requires: perl-modules
426 %description perlprov
427 Additional utilities for checking Perl provides/requires in RPM
430 %description perlprov -l de.UTF-8
431 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
433 %description perlprov -l pl.UTF-8
434 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
438 Summary: Python macros, which simplifies creation of RPM packages with Python software
439 Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
440 Group: Applications/File
441 Requires: %{name} = %{epoch}:%{version}-%{release}
443 Requires: python3-modules
444 Requires: python3-setuptools
446 %description pythonprov
447 Python macros, which simplifies creation of RPM packages with Python
450 %description pythonprov -l pl.UTF-8
451 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
454 %package -n python3-rpm
455 Summary: Python 3 interface to RPM library
456 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
457 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
458 Group: Development/Languages/Python
459 Requires: %{name} = %{epoch}:%{version}-%{release}
461 Obsoletes: python-rpm < 1:4.16.0
462 Obsoletes: rpm-python < 4.0.2-50
464 %description -n python3-rpm
465 The python3-rpm package contains a module which permits applications
466 written in the Python 3 programming language to use the interface
467 supplied by RPM (RPM Package Manager) libraries.
469 This package should be installed if you want to develop Python 3
470 programs that will manipulate RPM packages and databases.
472 %description -n python3-rpm -l pl.UTF-8
473 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
474 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
477 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
478 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
480 %description -n python3-rpm -l pt_BR.UTF-8
481 O pacote python3-rpm contém um módulo que permite que aplicações
482 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
483 RPM (RPM Package Manager).
485 Esse pacote deve ser instalado se você quiser desenvolver programas em
486 Python 3 para manipular pacotes e bancos de dados RPM.
488 %package plugin-audit
489 Summary: Plugin for logging audit events on package operations
490 Summary(pl.UTF-8): Wtyczka do logowania zdarzeń audytowych przy operacjach na pakietach
492 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
494 %description plugin-audit
495 Plugin for libaudit support.
497 %description plugin-audit -l pl.UTF-8
498 Wtyczka do obsługi libaudit.
500 %package plugin-syslog
501 Summary: Plugin for syslog functionality
502 Summary(pl.UTF-8): Wtyczka do funkcjonalności sysloga
504 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
506 %description plugin-syslog
507 This plugin exports RPM actions to the system log.
509 %description plugin-syslog -l pl.UTF-8
510 Ta wtyczka eksportuje akcje RPM-a do logu systemowego.
512 %package plugin-systemd-inhibit
513 Summary: Plugin for systemd inhibit functionality
514 Summary(pl.UTF-8): Wtyczka do funkcjonalności systemd inhibit
516 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
517 Requires: dbus >= 1.3
519 %description plugin-systemd-inhibit
520 This plugin blocks systemd from entering idle, sleep or shutdown while
521 an rpm transaction is running using the systemd-inhibit mechanism.
523 %description plugin-systemd-inhibit -l pl.UTF-8
524 Ta wtyczka blokuje systemd przed wejściem w stan bezczynności (idle),
525 uśpienia (sleep) lub zamykania (shutdown) podczas trwania transakcji
526 RPM-a, korzystając z mechanizmu systemd-inhibit.
529 Summary: Plugin for IMA file signatures
530 Summary(pl.UTF-8): Wtyczka do sygnatur plików IMA
532 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
534 %description plugin-ima
535 This plugin adds support for enforcing and verifying IMA file
536 signatures in an rpm.
538 %description plugin-ima -l pl.UTF-8
539 Ta wtyczka dodaje obsługę wymuszania i weryfikacji podpisów plików
542 %package plugin-prioreset
543 Summary: Plugin for resetting scriptlet priorities for SysV init
544 Summary(pl.UTF-8): Wtyczka do resetowania priorytetu skryptletów przy inicie SysV
546 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
548 %description plugin-prioreset
549 This plugin is useful on legacy SysV init systems if you run rpm
550 transactions with nice/ionice priorities. Should not be used on
553 %description plugin-prioreset -l pl.UTF-8
554 Ta wtyczka jest przydatna w systemach ze starym procesem init w wersji
555 SysV, jeżeli transakcje RPM-a są uruchamiane z priorytetami
556 nice/ionice. Nie powinna być używana w systemach z systemd.
558 %package plugin-selinux
559 Summary: Plugin for SELinux functionality
560 Summary(pl.UTF-8): Wtyczka do funkcjonalności SELinux
562 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
563 Requires: libselinux >= 2.1.0
565 %description plugin-selinux
566 Plugin for SELinux functionality.
568 %description plugin-selinux -l pl.UTF-8
569 Wtyczka do funkcjonalności SELinux.
572 Summary: Package signing support
573 Summary(pl.UTF-8): Obsługa podpisywania pakietów
575 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
578 This package contains support for digitally signing RPM packages.
580 %description sign -l pl.UTF-8
581 Ten pakiet zawiera obsługę cyfrowego podpisywania pakietów RPM.
584 Summary: RPM API documentation and guides
585 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
590 Documentation for RPM API and guides in HTML format generated from rpm
593 %description apidocs -l pl.UTF-8
594 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
595 źrodeł RPM-a przez doxygen.
598 %setup -q -n %{name}-%{version}%{?subver}
641 install %{SOURCE15} scripts/perl.prov.in
643 %{__mv} scripts/perl.req{,.in}
645 # generate Group translations to *.po
646 awk -f %{SOURCE6} %{SOURCE5}
648 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
657 # rpm checks for CPU type at runtime, but it looks better
659 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
660 -e 's|@host_cpu@|%{_target_cpu}|' \
661 -e 's|@host_os@|%{_target_os}|' \
666 WITH_PERL_VERSION=no \
667 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
668 __GPG=%{_bindir}/gpg \
672 %{!?with_plugins:--disable-plugins} \
673 %{!?with_systemd:--disable-inhibit-plugin} \
674 --disable-silent-rules \
679 --with-audit%{!?with_audit:=no} \
681 %{?with_imaevm:--with-imaevm} \
683 %{?with_python3:--enable-python} \
684 --with-selinux%{!?with_selinux:=no} \
689 %{__make} -C po update-gmo
697 rm -rf $RPM_BUILD_ROOT
698 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
699 $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
701 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/TLD-Linux.asc
704 pkgconfigdir=%{_pkgconfigdir} \
705 DESTDIR=$RPM_BUILD_ROOT
708 %ifnarch %{ix86} %{x8664} x32
709 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
710 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
711 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
712 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
713 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
714 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
715 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
716 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
719 %ifnarch %{x8664} x32
720 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
721 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
722 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
723 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
727 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
728 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
729 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
730 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
731 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
732 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
733 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
737 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
741 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
744 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
745 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
746 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
747 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
748 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
749 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
750 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
752 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
754 %{_target_cpu}-%{_target_vendor}-linux-gnux32
756 %{_target_cpu}-%{_target_vendor}-linux
760 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
762 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/tld
764 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
765 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
766 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
768 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
770 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
771 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
772 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
773 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
774 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
775 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
778 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
779 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
780 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
782 # move essential libs to /lib (libs that /bin/rpm links to)
783 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
784 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
785 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
788 # init an empty database for %ghost'ing for all supported backends
789 for be in sqlite bdb ndb; do
791 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
792 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
793 --dbpath=${PWD}/${be} \
794 --define "_db_backend ${be}" \
796 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
800 # Remove anything that rpm make install might put there
801 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
807 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
809 # wrong location, not used anyway
810 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
815 rm -rf $RPM_BUILD_ROOT
818 if [ -e /var/lib/rpm/Packages ]; then
819 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
820 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
822 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
826 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
827 echo 'you should ignore it and restart poldek'
829 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
830 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
831 # Unlock database for rebuild, safe since this is posttrans
832 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
833 if ! /usr/bin/rpmdb --rebuilddb; then
835 echo "rpm database conversion failed!"
836 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
843 if [ -d /var/cache/hrmib ]; then
844 %{__rm} -rf /var/cache/hrmib
845 echo "HR-MIB is not supported by this rpm version."
846 echo "/var/cache/hrmib has been removed."
849 %post lib -p /sbin/ldconfig
850 %postun lib -p /sbin/ldconfig
853 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
855 %files -f %{name}.lang
856 %defattr(644,root,root,755)
857 %doc ChangeLog CREDITS README
859 %dir /etc/pki/rpm-gpg
860 /etc/pki/rpm-gpg/TLD-Linux.asc
862 %attr(755,root,root) /bin/rpm
863 %attr(755,root,root) %{_bindir}/rpmdb
864 %attr(755,root,root) %{_bindir}/rpmkeys
865 %attr(755,root,root) %{_bindir}/rpmquery
866 %attr(755,root,root) %{_bindir}/rpmverify
868 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
869 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
870 # this is ok to be replaced
871 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
873 %{_mandir}/man8/rpm.8*
874 %{_mandir}/man8/rpmdb.8*
875 %{_mandir}/man8/rpmkeys.8*
876 %{_mandir}/man8/rpm-misc.8*
877 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
878 %lang(fr) %{_mandir}/fr/man8/rpm.8*
879 %lang(ja) %{_mandir}/ja/man8/rpm.8*
880 %lang(ko) %{_mandir}/ko/man8/rpm.8*
881 %lang(pl) %{_mandir}/pl/man8/rpm.8*
882 %lang(ru) %{_mandir}/ru/man8/rpm.8*
883 %lang(sk) %{_mandir}/sk/man8/rpm.8*
886 %ghost %config(missingok,noreplace) /var/lib/rpm/*
887 %ghost /var/lib/rpm/.*.lock
889 %{_rpmlibdir}/rpmpopt*
892 %dir %{_rpmlibdir}/macros.d
893 %dir %{_rpmlibdir}/platform
894 %{_rpmlibdir}/platform/noarch-*
895 %ifarch %{ix86} %{x8664} x32
896 %{_rpmlibdir}/platform/athlon*
897 %{_rpmlibdir}/platform/geode*
898 %{_rpmlibdir}/platform/i?86*
899 %{_rpmlibdir}/platform/pentium*
902 %{_rpmlibdir}/platform/amd64*
903 %{_rpmlibdir}/platform/ia32e*
904 %{_rpmlibdir}/platform/x86_64*
905 %{_rpmlibdir}/platform/x32*
908 %{_rpmlibdir}/platform/alpha*
911 %{_rpmlibdir}/platform/aarch64*
914 %{_rpmlibdir}/platform/arm*
917 %{_rpmlibdir}/platform/ia64*
919 %ifarch mips mipsel mips64 mips64el
920 %{_rpmlibdir}/platform/mips*
923 %{_rpmlibdir}/platform/ppc*
925 %ifarch sparc sparc64
926 %{_rpmlibdir}/platform/sparc*
929 %dir %{_rpmlibdir}/tld
931 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
932 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
934 # valgrind suppression file for rpm
935 %{_rpmlibdir}/rpm.supp
937 %dir /usr/lib/.build-id
940 %defattr(644,root,root,755)
941 %dir %{_sysconfdir}/rpm
942 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
944 %attr(755,root,root) %{_bindir}/banner.sh
945 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
949 %defattr(644,root,root,755)
950 %attr(755,root,root) /%{_lib}/librpm.so.9
951 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
952 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
953 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
954 %attr(755,root,root) /%{_lib}/librpmio.so.9
955 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
956 %attr(755,root,root) /%{_lib}/librpmsign.so.9
957 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
958 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
961 %defattr(644,root,root,755)
962 %attr(755,root,root) %{_libdir}/librpm.so
963 %attr(755,root,root) %{_libdir}/librpmbuild.so
964 %attr(755,root,root) %{_libdir}/librpmio.so
965 %attr(755,root,root) %{_libdir}/librpmsign.so
967 %{_libdir}/librpmbuild.la
968 %{_libdir}/librpmio.la
969 %{_libdir}/librpmsign.la
971 %{_pkgconfigdir}/rpm.pc
974 %defattr(644,root,root,755)
975 %attr(755,root,root) %{_bindir}/rpm2archive
976 %attr(755,root,root) %{_bindir}/rpm2cpio
977 %attr(755,root,root) %{_bindir}/rpmgraph
978 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
979 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
980 %attr(755,root,root) %{_rpmlibdir}/tgpg
981 %attr(755,root,root) %{_rpmlibdir}/debugedit
982 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
983 %{_mandir}/man8/rpm2archive.8*
984 %{_mandir}/man8/rpm2cpio.8*
985 %{_mandir}/man8/rpmdeps.8*
986 %{_mandir}/man8/rpmgraph.8*
987 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
988 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
989 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
990 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
991 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
992 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
993 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
996 %defattr(644,root,root,755)
997 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
998 %attr(755,root,root) %{_rpmlibdir}/brp-*
999 %attr(755,root,root) %{_rpmlibdir}/check-files
1000 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
1001 %attr(755,root,root) %{_rpmlibdir}/elfdeps
1002 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
1003 # needs hacked pkg-config to return anything
1004 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
1005 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
1007 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
1008 # must be here for "Requires: rpm-*prov" to work
1009 #%{_rpmlibdir}/macros.d/cmake
1010 #%{_rpmlibdir}/macros.d/gstreamer
1011 #%{_rpmlibdir}/macros.d/libtool
1012 #%{_rpmlibdir}/macros.d/perl
1013 #%{_rpmlibdir}/macros.d/pkgconfig
1014 #%{_rpmlibdir}/macros.d/python
1015 #%{_rpmlibdir}/macros.d/selinux
1016 #%{_rpmlibdir}/macros.d/tcl
1017 #%{_rpmlibdir}/macros.rpmbuild
1019 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
1020 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
1021 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
1022 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
1023 %attr(755,root,root) %{_rpmlibdir}/find-provides
1024 %attr(755,root,root) %{_rpmlibdir}/find-requires
1025 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
1026 %attr(755,root,root) %{_rpmlibdir}/script.req
1027 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
1029 %dir %{_rpmlibdir}/fileattrs
1030 %{_rpmlibdir}/fileattrs/debuginfo.attr
1031 %{_rpmlibdir}/fileattrs/desktop.attr
1032 %{_rpmlibdir}/fileattrs/elf.attr
1033 %{_rpmlibdir}/fileattrs/font.attr
1034 %{_rpmlibdir}/fileattrs/libtool.attr
1035 %{_rpmlibdir}/fileattrs/metainfo.attr
1036 %{_rpmlibdir}/fileattrs/ocaml.attr
1037 %{_rpmlibdir}/fileattrs/perl.attr
1038 %{_rpmlibdir}/fileattrs/perllib.attr
1039 %{_rpmlibdir}/fileattrs/pkgconfig.attr
1040 %{_rpmlibdir}/fileattrs/python.attr
1041 %{_rpmlibdir}/fileattrs/pythondist.attr
1042 %{_rpmlibdir}/fileattrs/script.attr
1044 %attr(755,root,root) %{_bindir}/gendiff
1045 %attr(755,root,root) %{_bindir}/rpmbuild
1046 %attr(755,root,root) %{_bindir}/rpmspec
1048 %{_mandir}/man1/gendiff.1*
1049 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
1050 %{_mandir}/man8/rpmbuild.8*
1051 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
1052 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
1053 %{_mandir}/man8/rpmspec.8*
1056 %defattr(644,root,root,755)
1057 %attr(755,root,root) %{_rpmlibdir}/perl.*
1060 %defattr(644,root,root,755)
1061 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
1064 %files -n python3-rpm
1065 %defattr(644,root,root,755)
1066 %dir %{py3_sitedir}/rpm
1067 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1068 %{py3_sitedir}/rpm/*.py
1069 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1070 %{py3_sitedir}/rpm/__pycache__
1075 %defattr(644,root,root,755)
1076 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1077 %{_mandir}/man8/rpm-plugin-audit.8*
1079 %files plugin-syslog
1080 %defattr(644,root,root,755)
1081 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1082 %{_mandir}/man8/rpm-plugin-syslog.8*
1085 %files plugin-systemd-inhibit
1086 %defattr(644,root,root,755)
1087 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1088 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1092 %defattr(644,root,root,755)
1093 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1094 %{_mandir}/man8/rpm-plugin-ima.8*
1096 %files plugin-prioreset
1097 %defattr(644,root,root,755)
1098 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1099 %{_mandir}/man8/rpm-plugin-prioreset.8*
1101 %files plugin-selinux
1102 %defattr(644,root,root,755)
1103 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1104 %{_mandir}/man8/rpm-plugin-selinux.8*
1108 %defattr(644,root,root,755)
1109 %attr(755,root,root) %{_bindir}/rpmsign
1110 %{_mandir}/man8/rpmsign.8*
1114 %defattr(644,root,root,755)
1115 %doc doc/librpm/html/*