3 # - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
6 %bcond_without apidocs # don't generate documentation with doxygen
7 %bcond_without python3 # don't build python bindings
8 %bcond_without plugins # build plugins
9 %bcond_with recommends_tags # build without Recommends tag (bootstrapping)
10 %bcond_with imaevm # build with IMA/EVM support (requires libimaevm from ima-evm-utils)
12 %define db_ver 5.3.28.0
16 %if "%{_rpmversion}" >= "4.12" && "%{_rpmversion}" < "5"
17 %define with_recommends_tags 1
20 Summary: RPM Package Manager
21 Summary(de.UTF-8): RPM Packet-Manager
22 Summary(es.UTF-8): Gestor de paquetes RPM
23 Summary(pl.UTF-8): Aplikacja do zarządzania pakietami RPM
24 Summary(pt_BR.UTF-8): Gerenciador de pacotes RPM
25 Summary(ru.UTF-8): Менеджер пакетов от RPM
26 Summary(uk.UTF-8): Менеджер пакетів від RPM
31 License: GPL v2 / LGPL v2.1
33 Source0: http://ftp.rpm.org/releases/rpm-4.16.x/%{name}-%{version}.tar.bz2
34 # Source0-md5: 0d10f63a0a4c9517cf3808a601378399
35 Source1: https://ftp.tld-linux.org/TLD/TLD-Linux.asc
36 # Source1-md5: 5b5caff8c570489ad5bf950734546c24
39 Source4: %{name}.sysconfig
40 Source5: %{name}.groups
41 Source6: %{name}-groups-po.awk
42 Source7: %{name}-install-tree
43 Source9: %{name}-user_group.sh
44 # http://svn.pld-linux.org/banner.sh/
46 Source11: %{name}.noautoprov
47 Source12: %{name}.noautoprovfiles
48 Source13: %{name}.noautoreq
49 Source14: %{name}.noautoreqfiles
51 Source16: %{name}db_checkversion.c
52 Source17: %{name}db_reset.c
53 Source18: dbupgrade.sh
54 Patch0: %{name}-man_pl.patch
55 Patch1: %{name}-popt-aliases.patch
56 Patch2: %{name}-perl-macros.patch
57 Patch3: %{name}-perl-req-perlfile.patch
58 Patch4: %{name}-scripts-closefds.patch
59 Patch6: %{name}-perl_req-INC_dirs.patch
60 Patch7: %{name}-debuginfo.patch
61 Patch8: %{name}-libtool-deps.patch
62 Patch9: %{name}-builddir-readlink.patch
63 Patch10: %{name}-changelog_order_check_nonfatal.patch
64 Patch11: %{name}-postun-nofail.patch
65 Patch12: %{name}-clean-docdir.patch
66 Patch13: %{name}-perl-magic.patch
67 Patch14: %{name}-ignore-missing-macro-files.patch
69 Patch16: rpm5-db-compat.patch
70 Patch17: python-internal-build.patch
71 Patch18: missing-macros.patch
72 Patch19: pkgconfig.patch
73 Patch20: uname-deps.patch
74 Patch21: aarch64.patch
75 Patch22: ix86-platforms.patch
76 Patch23: shortcircuited-deps.patch
77 Patch24: cpuinfo-deps.patch
78 Patch25: rpmio-read-proc-files.patch
79 Patch26: allow-at-in-ver-rel.patch
80 Patch27: no-exeonly-for-elf-reqprov.patch
81 Patch28: default-patch-flags.patch
82 Patch29: %{name}-noarch_py_prov.patch
83 Patch30: missing-ghost-terminate-build.patch
84 Patch31: missing-doc-terminate-build.patch
85 Patch32: noexpand.patch
86 Patch100: build-id-links.patch
88 BuildRequires: acl-devel
89 BuildRequires: db-devel >= %{db_ver}
90 BuildRequires: autoconf >= 2.63
91 BuildRequires: automake >= 1.4
92 BuildRequires: bzip2-devel >= 1.0.2-17
93 BuildRequires: elfutils-devel >= 0.108
94 BuildRequires: gettext-tools >= 0.19.2
95 BuildRequires: libarchive-devel
96 BuildRequires: libcap-devel
97 BuildRequires: libmagic-devel
98 BuildRequires: libgcrypt-devel
100 BuildRequires: audit-libs-devel
101 BuildRequires: dbus-devel
102 %{?with_imaevm:BuildRequires: libimaevm-devel >= 1.0}
103 BuildRequires: libselinux-devel >= 2.1.0
105 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
106 BuildRequires: libstdc++-devel
107 BuildRequires: libtool >= 1:1.4.2-9
108 BuildRequires: ossp-uuid-devel
109 BuildRequires: patch >= 2.2
110 BuildRequires: pkgconfig(lua) >= 5.1
111 BuildRequires: popt-devel >= %{popt_ver}
112 BuildRequires: python3-modules
114 BuildRequires: python3-devel
115 BuildRequires: rpm-pythonprov
116 BuildRequires: rpmbuild(macros) >= 1.750
118 BuildRequires: sqlite3-devel >= 3.22.0
120 BuildRequires: xz-devel
121 BuildRequires: zlib-devel
122 BuildRequires: zstd-devel
124 BuildRequires: doxygen
125 BuildRequires: ghostscript
126 BuildRequires: graphviz
127 BuildRequires: tetex-pdftex
129 Requires(posttrans): coreutils
130 Requires: %{name}-base = %{epoch}:%{version}-%{release}
131 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
132 Requires: rpm-tld-macros >= 1.744
133 Requires: FHS >= 3.0-2
135 Requires: popt >= %{popt_ver}
136 #%if %{with recommends_tags}
137 #Recommends: rpm-plugin-audit
138 #Recommends: rpm-plugin-prioreset
139 #Recommends: rpm-plugin-syslog
140 #Recommends: rpm-plugin-systemd-inhibit
142 Obsoletes: rpm-utils-perl
143 Obsoletes: rpm-utils-static
144 Conflicts: glibc < 2.2.92
145 # db4.6 poldek needed
146 Conflicts: poldek < 0.21-0.20070703.00.3
147 # segfaults with lzma 0.42.2
148 Conflicts: lzma-libs < 4.999.3
149 Conflicts: util-vserver < 0.30.216-1.pre3034.7
150 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
152 %define _binary_payload w9.gzdio
154 # don't require very fresh rpm.macros to build
155 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
156 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
157 %define ppc ppc ppc7400 ppc7450
158 %define x8664 amd64 ia32e x86_64
160 %define _rpmlibdir /usr/lib/rpm
163 RPM is a powerful package manager, which can be used to build,
164 install, query, verify, update, and uninstall individual software
165 packages. A package consists of an archive of files, and package
166 information, including name, version, and description.
168 %description -l de.UTF-8
169 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
170 Installation, Anfrage, Verifizierung, Aktualisierung und
171 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
172 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
175 %description -l es.UTF-8
176 RPM es un poderoso administrador de paquetes, que puede ser usado para
177 construir, instalar, pesquisar, verificar, actualizar y desinstalar
178 paquetes individuales de software. Un paquete consiste en un
179 almacenaje de archivos, y información sobre el paquete, incluyendo
180 nombre, versión y descripción.
182 %description -l pl.UTF-8
183 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
184 przebudowanie, instalację czy weryfikację dowolnego pakietu.
185 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
186 plików wchodzących w skład pakietu, zależności od innych pakietów, są
187 przechowywane w bazie danych i można je uzyskać za pomocą opcji
188 odpytywania programu rpm.
190 %description -l pt_BR.UTF-8
191 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
192 construir, instalar, pesquisar, verificar, atualizar e desinstalar
193 pacotes individuais de software. Um pacote consiste de um conjunto de
194 arquivos e informações adicionais, incluindo nome, versão e descrição
195 do pacote, permissões dos arquivos, etc.
197 %description -l ru.UTF-8
198 RPM - это мощный менеджер пакетов, который может быть использован для
199 создания, инсталляции, запросов (query), проверки, обновления и
200 удаления программных пакетов. Пакет состоит из файлового архива и
201 служебной информации, включающей название, версию, описание и другие
204 %description -l uk.UTF-8
205 RPM - це потужний менеджер пакетів, що може бути використаний для
206 створення, інсталяції, запитів (query), перевірки, поновлення та
207 видалення програмних пакетів. Пакет складається з файлового архіву та
208 службової інформації, що містить назву, версію, опис та іншу
209 інформацію про пакет.
212 Summary: RPM base package - scripts used by rpm packages themselves
213 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
216 Obsoletes: rpm-scripts
217 Obsoletes: vserver-rpm
220 The RPM base package contains scripts used by rpm packages themselves.
222 - scripts for adding/removing groups and users needed for rpm
224 - banner.sh to display %%banner messages from rpm scriptlets.
226 %description base -l pl.UTF-8
227 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
229 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
230 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
233 Summary: RPMs library
234 Summary(pl.UTF-8): Biblioteki RPM-a
236 Requires: db >= %{db_ver}
237 Requires: libmagic >= 1.15-2
238 Requires: popt >= %{popt_ver}
240 # avoid SEGV caused by mixed db versions
241 Conflicts: poldek < 0.18.1-16
246 %description lib -l pl.UTF-8
250 Summary: Header files for rpm libraries
251 Summary(de.UTF-8): Header-Dateien für rpm Libraries
252 Summary(es.UTF-8): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
253 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek rpm
254 Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
255 Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
256 Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
257 Group: Development/Libraries
258 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
259 Requires: bzip2-devel
260 Requires: db-devel >= %{db_ver}
261 Requires: elfutils-devel
262 Requires: libmagic-devel
263 Requires: libgcrypt-devel
265 Requires: libselinux-devel
266 Requires: libsemanage-devel
267 Requires: libsepol-devel
269 Requires: popt-devel >= %{popt_ver}
273 The RPM packaging system includes C libraries that make it easy to
274 manipulate RPM packages and databases. They are intended to ease the
275 creation of graphical package managers and other tools that need
276 intimate knowledge of RPM packages. This package contains header files
279 %description devel -l de.UTF-8
280 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
281 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
282 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
283 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
285 %description devel -l es.UTF-8
286 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
287 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
288 facilitar la creación de administradores gráficos de paquetes y otras
289 herramientas que necesiten un conocimiento profundo de paquetes RPM.
291 %description devel -l pl.UTF-8
292 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
293 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
294 graficznych programów zarządzających pakietami oraz innych narzędzi,
295 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
296 zawiera pliki nagłówkowe wspomnianych bibliotek.
298 %description devel -l pt_BR.UTF-8
299 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
300 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
301 facilitar a criação de gerenciadores gráficos de pacotes e outras
302 ferramentas que precisem de conhecimento profundo de pacotes RPM.
304 %description devel -l ru.UTF-8
305 Система управления пакетами RPM содержит библиотеку C, которая
306 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
307 Эта библиотека предназначена для облегчения создания графических
308 пакетных менеджеров и других утилит, которым необходимо работать с
311 %description devel -l uk.UTF-8
312 Система керування пакетами RPM містить бібліотеку C, котра спрощує
313 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
314 призначена для полегшення створення графічних пакетних менеджерів та
315 інших утиліт, що працюють з пакетами RPM.
318 Summary: Additional utilities for managing RPM packages and database
319 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
320 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
321 Group: Applications/File
322 Requires: %{name} = %{epoch}:%{version}-%{release}
323 Requires: popt >= %{popt_ver}
324 #%if %{with recommends_tags}
328 Conflicts: filesystem-debuginfo < 3.0-16
331 Additional utilities for managing RPM packages and database.
333 %description utils -l de.UTF-8
334 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
336 %description utils -l pl.UTF-8
337 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
340 Summary: Scripts for building binary RPM packages
341 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
342 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
343 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
344 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
345 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
346 Group: Applications/File
347 Requires(pretrans): coreutils
348 Requires(pretrans): findutils
349 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
350 Requires: rpm-tld-macros-build >= 1.744
354 Requires: chrpath >= 0.10-4
358 Requires: file >= 4.17
362 Requires: gcc >= 3.0.3
366 Requires: glibc-devel
373 Requires: tar >= 1:1.22
377 Provides: rpmbuild(noauto) = 3
379 Conflicts: automake < 1:1.7.9-2
380 Conflicts: libtool < 2:1.5-13
384 Scripts for building binary RPM packages.
386 %description build -l de.UTF-8
387 Scripts fürs Bauen binärer RPM-Pakete.
389 %description build -l pl.UTF-8
390 Skrypty pomocnicze do budowania binarnych RPM-ów.
392 %description build -l pt_BR.UTF-8
393 Este pacote contém scripts e programas executáveis que são usados para
394 construir pacotes usando o RPM.
396 %description build -l ru.UTF-8
397 Различные вспомогательные скрипты и исполняемые программы, которые
398 используются для сборки RPM'ов.
400 %description build -l uk.UTF-8
401 Різноманітні допоміжні скрипти та утиліти, які використовуються для
405 Summary: Additional utilities for checking Perl provides/requires in RPM packages
406 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
407 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
408 Group: Applications/File
409 Requires: %{name} = %{epoch}:%{version}-%{release}
410 Requires: perl-Encode
412 Requires: perl-modules
414 %description perlprov
415 Additional utilities for checking Perl provides/requires in RPM
418 %description perlprov -l de.UTF-8
419 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
421 %description perlprov -l pl.UTF-8
422 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
426 Summary: Python macros, which simplifies creation of RPM packages with Python software
427 Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
428 Group: Applications/File
429 Requires: %{name} = %{epoch}:%{version}-%{release}
431 Requires: python3-modules
432 Requires: python3-setuptools
434 %description pythonprov
435 Python macros, which simplifies creation of RPM packages with Python
438 %description pythonprov -l pl.UTF-8
439 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
442 %package -n python3-rpm
443 Summary: Python 3 interface to RPM library
444 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
445 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
446 Group: Development/Languages/Python
447 Requires: %{name} = %{epoch}:%{version}-%{release}
449 Obsoletes: python-rpm < 1:4.16.0
450 Obsoletes: rpm-python
452 %description -n python3-rpm
453 The python3-rpm package contains a module which permits applications
454 written in the Python 3 programming language to use the interface
455 supplied by RPM (RPM Package Manager) libraries.
457 This package should be installed if you want to develop Python 3
458 programs that will manipulate RPM packages and databases.
460 %description -n python3-rpm -l pl.UTF-8
461 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
462 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
465 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
466 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
468 %description -n python3-rpm -l pt_BR.UTF-8
469 O pacote python3-rpm contém um módulo que permite que aplicações
470 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
471 RPM (RPM Package Manager).
473 Esse pacote deve ser instalado se você quiser desenvolver programas em
474 Python 3 para manipular pacotes e bancos de dados RPM.
476 %package plugin-audit
477 Summary: Plugin for logging audit events on package operations
479 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
481 %description plugin-audit
482 Plugin for libaudit support
484 %package plugin-syslog
485 Summary: Plugin for syslog functionality
487 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
489 %description plugin-syslog
490 This plugin exports RPM actions to the system log.
492 %package plugin-systemd-inhibit
493 Summary: Plugin for systemd inhibit functionality
495 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
497 %description plugin-systemd-inhibit
498 This plugin blocks systemd from entering idle, sleep or shutdown while
499 an rpm transaction is running using the systemd-inhibit mechanism.
502 Summary: Plugin for IMA file signatures
504 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
506 %description plugin-ima
507 This plugin adds support for enforcing and verifying IMA file
508 signatures in an rpm.
510 %package plugin-prioreset
511 Summary: Plugin for resetting scriptlet priorities for SysV init
513 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
515 %description plugin-prioreset
516 This plugin is useful on legacy SysV init systems if you run rpm
517 transactions with nice/ionice priorities. Should not be used on
520 %package plugin-selinux
521 Summary: Plugin for SELinux functionality
523 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
524 Requires: libselinux >= 2.1.0
526 %description plugin-selinux
527 Plugin for SELinux functionality.
530 Summary: Package signing support
532 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
535 This package contains support for digitally signing RPM packages.
538 Summary: RPM API documentation and guides
539 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
544 Documentation for RPM API and guides in HTML format generated from rpm
547 %description apidocs -l pl.UTF-8
548 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
549 źrodeł RPM-a przez doxygen.
552 %setup -q -n %{name}-%{version}%{?subver}
587 install %{SOURCE15} scripts/perl.prov.in
589 %{__mv} -f scripts/perl.req{,.in}
591 # generate Group translations to *.po
592 awk -f %{SOURCE6} %{SOURCE5}
594 install %{SOURCE16} tools/rpmdb_checkversion.c
595 install %{SOURCE17} tools/rpmdb_reset.c
597 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
606 # rpm checks for CPU type at runtime, but it looks better
608 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
609 -e 's|@host_cpu@|%{_target_cpu}|' \
610 -e 's|@host_os@|%{_target_os}|' \
614 WITH_PERL_VERSION=no \
615 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
616 __GPG=%{_bindir}/gpg \
621 --disable-silent-rules \
629 %{?with_imaevm:--with-imaevm} \
634 --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
635 %{!?with_plugins:--disable-plugins} \
640 %{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb
641 %{__cc} %{rpmcflags} tools/rpmdb_reset.c -o tools/rpmdb_reset -ldb
643 if tools/rpmdb_checkversion -V 2>&1 | grep "t match library version"; then
644 echo "Error linking rpmdb tools!"
647 if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
648 echo "Error linking rpmdb tools!"
658 rm -rf $RPM_BUILD_ROOT
659 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
660 $RPM_BUILD_ROOT/var/lib/{banner,rpm}
662 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/TLD-Linux.asc
665 pkgconfigdir=%{_pkgconfigdir} \
666 DESTDIR=$RPM_BUILD_ROOT
669 %ifnarch %{ix86} %{x8664} x32
670 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
671 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
672 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
673 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
674 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
675 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
676 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
677 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
680 %ifnarch %{x8664} x32
681 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
682 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
683 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
684 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
688 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
689 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
690 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
691 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
692 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
693 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
694 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
698 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
702 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
705 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
706 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
707 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
708 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
709 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
710 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
711 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
713 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
715 %{_target_cpu}-%{_target_vendor}-linux-gnux32
717 %{_target_cpu}-%{_target_vendor}-linux
721 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
723 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/tld
725 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
726 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
727 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
729 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
731 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
732 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
733 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
734 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
735 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
736 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
738 cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/
739 cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/
740 cp -p %{SOURCE18} $RPM_BUILD_ROOT%{_rpmlibdir}/dbupgrade.sh
743 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
744 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
745 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
747 # move essential libs to /lib (libs that /bin/rpm links to)
748 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
749 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
750 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
753 # Make sure we have bdb set a default backend
754 grep -qE "db_backend[[:blank:]]+bdb" $RPM_BUILD_ROOT%{_rpmlibdir}/macros
757 # Remove anything that rpm make install might put there
758 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
764 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
766 # wrong location, not used anyway
767 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
772 rm -rf $RPM_BUILD_ROOT
775 if [ -e /var/lib/rpm/Packages ] && \
776 ! %{_rpmlibdir}/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
777 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
778 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
780 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
784 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
785 echo 'you should ignore it and restart poldek'
787 %{_rpmlibdir}/dbupgrade.sh
790 %post lib -p /sbin/ldconfig
791 %postun lib -p /sbin/ldconfig
794 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
796 %files -f %{name}.lang
797 %defattr(644,root,root,755)
798 %doc ChangeLog CREDITS README
800 %dir /etc/pki/rpm-gpg
801 /etc/pki/rpm-gpg/TLD-Linux.asc
803 %attr(755,root,root) /bin/rpm
804 %attr(755,root,root) %{_bindir}/rpmdb
805 %attr(755,root,root) %{_bindir}/rpmkeys
806 %attr(755,root,root) %{_bindir}/rpmquery
807 %attr(755,root,root) %{_bindir}/rpmverify
809 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
810 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
811 # this is ok to be replaced
812 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
814 %{_mandir}/man8/rpm.8*
815 %{_mandir}/man8/rpmdb.8*
816 %{_mandir}/man8/rpmkeys.8*
817 %{_mandir}/man8/rpm-misc.8*
818 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
819 %lang(fr) %{_mandir}/fr/man8/rpm.8*
820 %lang(ja) %{_mandir}/ja/man8/rpm.8*
821 %lang(ko) %{_mandir}/ko/man8/rpm.8*
822 %lang(pl) %{_mandir}/pl/man8/rpm.8*
823 %lang(ru) %{_mandir}/ru/man8/rpm.8*
824 %lang(sk) %{_mandir}/sk/man8/rpm.8*
828 %{_rpmlibdir}/rpmpopt*
831 %dir %{_rpmlibdir}/macros.d
832 %dir %{_rpmlibdir}/platform
833 %{_rpmlibdir}/platform/noarch-*
834 %ifarch %{ix86} %{x8664} x32
835 %{_rpmlibdir}/platform/athlon*
836 %{_rpmlibdir}/platform/geode*
837 %{_rpmlibdir}/platform/i?86*
838 %{_rpmlibdir}/platform/pentium*
841 %{_rpmlibdir}/platform/amd64*
842 %{_rpmlibdir}/platform/ia32e*
843 %{_rpmlibdir}/platform/x86_64*
844 %{_rpmlibdir}/platform/x32*
847 %{_rpmlibdir}/platform/alpha*
850 %{_rpmlibdir}/platform/aarch64*
853 %{_rpmlibdir}/platform/arm*
856 %{_rpmlibdir}/platform/ia64*
858 %ifarch mips mipsel mips64 mips64el
859 %{_rpmlibdir}/platform/mips*
862 %{_rpmlibdir}/platform/ppc*
864 %ifarch sparc sparc64
865 %{_rpmlibdir}/platform/sparc*
868 %dir %{_rpmlibdir}/tld
870 %attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh
871 %attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion
872 %attr(755,root,root) %{_rpmlibdir}/rpmdb_reset
873 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
874 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
876 # valgrind suppression file for rpm
877 %{_rpmlibdir}/rpm.supp
880 %defattr(644,root,root,755)
881 %dir %{_sysconfdir}/rpm
882 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
884 %attr(755,root,root) %{_bindir}/banner.sh
885 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
889 %defattr(644,root,root,755)
890 %attr(755,root,root) /%{_lib}/librpm.so.9
891 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
892 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
893 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
894 %attr(755,root,root) /%{_lib}/librpmio.so.9
895 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
896 %attr(755,root,root) /%{_lib}/librpmsign.so.9
897 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
898 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
901 %defattr(644,root,root,755)
902 %attr(755,root,root) %{_libdir}/librpm.so
903 %attr(755,root,root) %{_libdir}/librpmbuild.so
904 %attr(755,root,root) %{_libdir}/librpmio.so
905 %attr(755,root,root) %{_libdir}/librpmsign.so
906 %{_libdir}/librpm*.la
908 %{_pkgconfigdir}/*.pc
911 %defattr(644,root,root,755)
912 %attr(755,root,root) %{_bindir}/rpm2archive
913 %attr(755,root,root) %{_bindir}/rpm2cpio
914 %attr(755,root,root) %{_bindir}/rpmgraph
915 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
916 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
917 %attr(755,root,root) %{_rpmlibdir}/tgpg
918 %attr(755,root,root) %{_rpmlibdir}/debugedit
919 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
920 %{_mandir}/man8/rpm2archive.8*
921 %{_mandir}/man8/rpm2cpio.8*
922 %{_mandir}/man8/rpmdeps.8*
923 %{_mandir}/man8/rpmgraph.8*
924 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
925 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
926 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
927 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
928 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
929 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
930 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
933 %defattr(644,root,root,755)
934 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
935 %attr(755,root,root) %{_rpmlibdir}/brp-*
936 %attr(755,root,root) %{_rpmlibdir}/check-files
937 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
938 %attr(755,root,root) %{_rpmlibdir}/elfdeps
939 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
940 # needs hacked pkg-config to return anything
941 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
942 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
944 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
945 # must be here for "Requires: rpm-*prov" to work
946 #%{_rpmlibdir}/macros.d/cmake
947 #%{_rpmlibdir}/macros.d/gstreamer
948 #%{_rpmlibdir}/macros.d/libtool
949 #%{_rpmlibdir}/macros.d/perl
950 #%{_rpmlibdir}/macros.d/pkgconfig
951 #%{_rpmlibdir}/macros.d/python
952 #%{_rpmlibdir}/macros.d/selinux
953 #%{_rpmlibdir}/macros.d/tcl
954 #%{_rpmlibdir}/macros.rpmbuild
956 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
957 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
958 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
959 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
960 %attr(755,root,root) %{_rpmlibdir}/find-provides
961 %attr(755,root,root) %{_rpmlibdir}/find-requires
962 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
963 %attr(755,root,root) %{_rpmlibdir}/script.req
964 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
966 %dir %{_rpmlibdir}/fileattrs
967 %{_rpmlibdir}/fileattrs/debuginfo.attr
968 %{_rpmlibdir}/fileattrs/desktop.attr
969 %{_rpmlibdir}/fileattrs/elf.attr
970 %{_rpmlibdir}/fileattrs/font.attr
971 %{_rpmlibdir}/fileattrs/libtool.attr
972 %{_rpmlibdir}/fileattrs/metainfo.attr
973 %{_rpmlibdir}/fileattrs/ocaml.attr
974 %{_rpmlibdir}/fileattrs/perl.attr
975 %{_rpmlibdir}/fileattrs/perllib.attr
976 %{_rpmlibdir}/fileattrs/pkgconfig.attr
977 %{_rpmlibdir}/fileattrs/python.attr
978 %{_rpmlibdir}/fileattrs/pythondist.attr
979 %{_rpmlibdir}/fileattrs/script.attr
981 %attr(755,root,root) %{_bindir}/gendiff
982 %attr(755,root,root) %{_bindir}/rpmbuild
983 %attr(755,root,root) %{_bindir}/rpmspec
985 %{_mandir}/man1/gendiff.1*
986 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
987 %{_mandir}/man8/rpmbuild.8*
988 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
989 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
990 %{_mandir}/man8/rpmspec.8*
993 %defattr(644,root,root,755)
994 %attr(755,root,root) %{_rpmlibdir}/perl.*
997 %defattr(644,root,root,755)
998 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
1001 %files -n python3-rpm
1002 %defattr(644,root,root,755)
1003 %dir %{py3_sitedir}/rpm
1004 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1005 %{py3_sitedir}/rpm/*.py
1006 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1007 %{py3_sitedir}/rpm/__pycache__
1012 %defattr(644,root,root,755)
1013 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1014 %{_mandir}/man8/rpm-plugin-audit.8*
1016 %files plugin-syslog
1017 %defattr(644,root,root,755)
1018 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1019 %{_mandir}/man8/rpm-plugin-syslog.8*
1021 %files plugin-systemd-inhibit
1022 %defattr(644,root,root,755)
1023 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1024 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1027 %defattr(644,root,root,755)
1028 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1029 %{_mandir}/man8/rpm-plugin-ima.8*
1031 %files plugin-prioreset
1032 %defattr(644,root,root,755)
1033 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1034 %{_mandir}/man8/rpm-plugin-prioreset.8*
1036 %files plugin-selinux
1037 %defattr(644,root,root,755)
1038 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1039 %{_mandir}/man8/rpm-plugin-selinux.8*
1043 %defattr(644,root,root,755)
1044 %attr(755,root,root) %{_bindir}/rpmsign
1045 %{_mandir}/man8/rpmsign.8*
1049 %defattr(644,root,root,755)
1050 %doc doc/librpm/html/*