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_without 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: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
36 # Source1-md5: 23914bb49fafe7153cee87126d966461
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 Patch0: %{name}-man_pl.patch
52 Patch1: %{name}-popt-aliases.patch
53 Patch2: %{name}-perl-macros.patch
54 Patch3: %{name}-perl-req-perlfile.patch
55 Patch4: %{name}-scripts-closefds.patch
56 Patch6: %{name}-perl_req-INC_dirs.patch
57 Patch7: %{name}-debuginfo.patch
58 Patch8: %{name}-libtool-deps.patch
59 Patch9: %{name}-builddir-readlink.patch
60 Patch10: %{name}-changelog_order_check_nonfatal.patch
61 Patch11: %{name}-postun-nofail.patch
62 Patch12: %{name}-clean-docdir.patch
63 Patch13: %{name}-perl-magic.patch
64 Patch14: %{name}-ignore-missing-macro-files.patch
66 Patch16: rpm5-db-compat.patch
67 Patch17: python-internal-build.patch
68 Patch18: missing-macros.patch
69 Patch19: pkgconfig.patch
70 Patch20: uname-deps.patch
71 Patch21: aarch64.patch
72 Patch22: ix86-platforms.patch
73 Patch23: shortcircuited-deps.patch
74 Patch24: cpuinfo-deps.patch
75 Patch25: rpmio-read-proc-files.patch
76 Patch26: allow-at-in-ver-rel.patch
77 Patch27: no-exeonly-for-elf-reqprov.patch
78 Patch28: default-patch-flags.patch
79 Patch29: %{name}-noarch_py_prov.patch
80 Patch30: missing-ghost-terminate-build.patch
81 Patch31: missing-doc-terminate-build.patch
82 Patch32: noexpand.patch
83 Patch33: sqlite-db-backend.patch
84 Patch34: skip-symlinks.patch
87 BuildRequires: acl-devel
88 BuildRequires: db-devel >= %{db_ver}
89 BuildRequires: autoconf >= 2.63
90 BuildRequires: automake >= 1.4
91 BuildRequires: bzip2-devel >= 1.0.2-17
92 BuildRequires: elfutils-devel >= 0.108
93 BuildRequires: gettext-tools >= 0.19.2
94 BuildRequires: libarchive-devel
95 BuildRequires: libcap-devel
96 BuildRequires: libmagic-devel
97 BuildRequires: libgcrypt-devel
99 BuildRequires: audit-libs-devel
100 BuildRequires: dbus-devel
101 %{?with_imaevm:BuildRequires: libimaevm-devel >= 1.0}
102 BuildRequires: libselinux-devel >= 2.1.0
104 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
105 BuildRequires: libstdc++-devel
106 BuildRequires: libtool >= 1:1.4.2-9
107 BuildRequires: patch >= 2.2
108 BuildRequires: pkgconfig(lua) >= 5.1
109 BuildRequires: popt-devel >= %{popt_ver}
110 BuildRequires: python3-modules
112 BuildRequires: python3-devel
113 BuildRequires: rpm-pythonprov
114 BuildRequires: rpmbuild(macros) >= 1.750
116 BuildRequires: sqlite3-devel >= 3.22.0
118 BuildRequires: xz-devel
119 BuildRequires: zlib-devel
120 BuildRequires: zstd-devel
122 BuildRequires: doxygen
123 BuildRequires: ghostscript
124 BuildRequires: graphviz
125 BuildRequires: tetex-pdftex
127 Requires(posttrans): coreutils
128 Requires: %{name}-base = %{epoch}:%{version}-%{release}
129 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
130 Requires: rpm-pld-macros >= 1.744
131 Requires: FHS >= 3.0-2
133 Requires: popt >= %{popt_ver}
134 %if %{with recommends_tags}
135 Recommends: rpm-plugin-audit
136 Recommends: rpm-plugin-prioreset
137 Recommends: rpm-plugin-syslog
138 Recommends: rpm-plugin-systemd-inhibit
140 Obsoletes: rpm-utils-perl
141 Obsoletes: rpm-utils-static
142 Conflicts: glibc < 2.2.92
143 # db4.6 poldek needed
144 Conflicts: poldek < 0.21-0.20070703.00.3
145 # segfaults with lzma 0.42.2
146 Conflicts: lzma-libs < 4.999.3
147 Conflicts: util-vserver < 0.30.216-1.pre3034.7
148 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
150 %define _binary_payload w9.gzdio
152 # don't require very fresh rpm.macros to build
153 %define find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
154 %define ix86 i386 i486 i586 i686 athlon geode pentium3 pentium4
155 %define ppc ppc ppc7400 ppc7450
156 %define x8664 amd64 ia32e x86_64
158 %define _rpmlibdir /usr/lib/rpm
161 RPM is a powerful package manager, which can be used to build,
162 install, query, verify, update, and uninstall individual software
163 packages. A package consists of an archive of files, and package
164 information, including name, version, and description.
166 %description -l de.UTF-8
167 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
168 Installation, Anfrage, Verifizierung, Aktualisierung und
169 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
170 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
173 %description -l es.UTF-8
174 RPM es un poderoso administrador de paquetes, que puede ser usado para
175 construir, instalar, pesquisar, verificar, actualizar y desinstalar
176 paquetes individuales de software. Un paquete consiste en un
177 almacenaje de archivos, y información sobre el paquete, incluyendo
178 nombre, versión y descripción.
180 %description -l pl.UTF-8
181 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
182 przebudowanie, instalację czy weryfikację dowolnego pakietu.
183 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
184 plików wchodzących w skład pakietu, zależności od innych pakietów, są
185 przechowywane w bazie danych i można je uzyskać za pomocą opcji
186 odpytywania programu rpm.
188 %description -l pt_BR.UTF-8
189 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
190 construir, instalar, pesquisar, verificar, atualizar e desinstalar
191 pacotes individuais de software. Um pacote consiste de um conjunto de
192 arquivos e informações adicionais, incluindo nome, versão e descrição
193 do pacote, permissões dos arquivos, etc.
195 %description -l ru.UTF-8
196 RPM - это мощный менеджер пакетов, который может быть использован для
197 создания, инсталляции, запросов (query), проверки, обновления и
198 удаления программных пакетов. Пакет состоит из файлового архива и
199 служебной информации, включающей название, версию, описание и другие
202 %description -l uk.UTF-8
203 RPM - це потужний менеджер пакетів, що може бути використаний для
204 створення, інсталяції, запитів (query), перевірки, поновлення та
205 видалення програмних пакетів. Пакет складається з файлового архіву та
206 службової інформації, що містить назву, версію, опис та іншу
207 інформацію про пакет.
210 Summary: RPM base package - scripts used by rpm packages themselves
211 Summary(pl.UTF-8): Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
214 Obsoletes: rpm-scripts
215 Obsoletes: vserver-rpm
218 The RPM base package contains scripts used by rpm packages themselves.
220 - scripts for adding/removing groups and users needed for rpm
222 - banner.sh to display %%banner messages from rpm scriptlets.
224 %description base -l pl.UTF-8
225 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
227 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
228 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
231 Summary: RPMs library
232 Summary(pl.UTF-8): Biblioteki RPM-a
234 Requires: db >= %{db_ver}
235 Requires: libmagic >= 1.15-2
236 Requires: popt >= %{popt_ver}
238 # avoid SEGV caused by mixed db versions
239 Conflicts: poldek < 0.18.1-16
244 %description lib -l pl.UTF-8
248 Summary: Header files for rpm libraries
249 Summary(de.UTF-8): Header-Dateien für rpm Libraries
250 Summary(es.UTF-8): Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
251 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek rpm
252 Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
253 Summary(ru.UTF-8): Хедеры и библиотеки для программ, работающих с rpm-пакетами
254 Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
255 Group: Development/Libraries
256 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
257 Requires: bzip2-devel
258 Requires: db-devel >= %{db_ver}
259 Requires: elfutils-devel
260 Requires: libmagic-devel
261 Requires: libgcrypt-devel
263 Requires: libselinux-devel
264 Requires: libsemanage-devel
265 Requires: libsepol-devel
267 Requires: popt-devel >= %{popt_ver}
271 The RPM packaging system includes C libraries that make it easy to
272 manipulate RPM packages and databases. They are intended to ease the
273 creation of graphical package managers and other tools that need
274 intimate knowledge of RPM packages. This package contains header files
277 %description devel -l de.UTF-8
278 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
279 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
280 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
281 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
283 %description devel -l es.UTF-8
284 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
285 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
286 facilitar la creación de administradores gráficos de paquetes y otras
287 herramientas que necesiten un conocimiento profundo de paquetes RPM.
289 %description devel -l pl.UTF-8
290 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
291 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
292 graficznych programów zarządzających pakietami oraz innych narzędzi,
293 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
294 zawiera pliki nagłówkowe wspomnianych bibliotek.
296 %description devel -l pt_BR.UTF-8
297 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
298 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
299 facilitar a criação de gerenciadores gráficos de pacotes e outras
300 ferramentas que precisem de conhecimento profundo de pacotes RPM.
302 %description devel -l ru.UTF-8
303 Система управления пакетами RPM содержит библиотеку C, которая
304 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
305 Эта библиотека предназначена для облегчения создания графических
306 пакетных менеджеров и других утилит, которым необходимо работать с
309 %description devel -l uk.UTF-8
310 Система керування пакетами RPM містить бібліотеку C, котра спрощує
311 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
312 призначена для полегшення створення графічних пакетних менеджерів та
313 інших утиліт, що працюють з пакетами RPM.
316 Summary: Additional utilities for managing RPM packages and database
317 Summary(de.UTF-8): Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
318 Summary(pl.UTF-8): Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
319 Group: Applications/File
320 Requires: %{name} = %{epoch}:%{version}-%{release}
321 Requires: popt >= %{popt_ver}
322 %if %{with recommends_tags}
326 Conflicts: filesystem-debuginfo < 3.0-16
329 Additional utilities for managing RPM packages and database.
331 %description utils -l de.UTF-8
332 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
334 %description utils -l pl.UTF-8
335 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
338 Summary: Scripts for building binary RPM packages
339 Summary(de.UTF-8): Scripts fürs Bauen binärer RPM-Pakete
340 Summary(pl.UTF-8): Skrypty pomocnicze do budowania binarnych RPM-ów
341 Summary(pt_BR.UTF-8): Scripts e programas executáveis usados para construir pacotes
342 Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
343 Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
344 Group: Applications/File
345 Requires(pretrans): coreutils
346 Requires(pretrans): findutils
347 Requires: %{name}-utils = %{epoch}:%{version}-%{release}
348 Requires: rpm-pld-macros-build >= 1.744
352 Requires: chrpath >= 0.10-4
356 Requires: file >= 4.17
360 Requires: gcc >= 3.0.3
364 Requires: glibc-devel
371 Requires: tar >= 1:1.22
375 Provides: rpmbuild(noauto) = 3
377 Conflicts: automake < 1:1.7.9-2
378 Conflicts: libtool < 2:1.5-13
382 Scripts for building binary RPM packages.
384 %description build -l de.UTF-8
385 Scripts fürs Bauen binärer RPM-Pakete.
387 %description build -l pl.UTF-8
388 Skrypty pomocnicze do budowania binarnych RPM-ów.
390 %description build -l pt_BR.UTF-8
391 Este pacote contém scripts e programas executáveis que são usados para
392 construir pacotes usando o RPM.
394 %description build -l ru.UTF-8
395 Различные вспомогательные скрипты и исполняемые программы, которые
396 используются для сборки RPM'ов.
398 %description build -l uk.UTF-8
399 Різноманітні допоміжні скрипти та утиліти, які використовуються для
403 Summary: Additional utilities for checking Perl provides/requires in RPM packages
404 Summary(de.UTF-8): Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
405 Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
406 Group: Applications/File
407 Requires: %{name} = %{epoch}:%{version}-%{release}
408 Requires: perl-Encode
410 Requires: perl-modules
412 %description perlprov
413 Additional utilities for checking Perl provides/requires in RPM
416 %description perlprov -l de.UTF-8
417 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
419 %description perlprov -l pl.UTF-8
420 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
424 Summary: Python macros, which simplifies creation of RPM packages with Python software
425 Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
426 Group: Applications/File
427 Requires: %{name} = %{epoch}:%{version}-%{release}
429 Requires: python3-modules
430 Requires: python3-setuptools
432 %description pythonprov
433 Python macros, which simplifies creation of RPM packages with Python
436 %description pythonprov -l pl.UTF-8
437 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
440 %package -n python3-rpm
441 Summary: Python 3 interface to RPM library
442 Summary(pl.UTF-8): Interfejs Pythona 3 do biblioteki RPM-a
443 Summary(pt_BR.UTF-8): Módulo Python 3 para aplicativos que manipulam pacotes RPM
444 Group: Development/Languages/Python
445 Requires: %{name} = %{epoch}:%{version}-%{release}
447 Obsoletes: python-rpm < 1:4.16.0
448 Obsoletes: rpm-python
450 %description -n python3-rpm
451 The python3-rpm package contains a module which permits applications
452 written in the Python 3 programming language to use the interface
453 supplied by RPM (RPM Package Manager) libraries.
455 This package should be installed if you want to develop Python 3
456 programs that will manipulate RPM packages and databases.
458 %description -n python3-rpm -l pl.UTF-8
459 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
460 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
463 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
464 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
466 %description -n python3-rpm -l pt_BR.UTF-8
467 O pacote python3-rpm contém um módulo que permite que aplicações
468 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
469 RPM (RPM Package Manager).
471 Esse pacote deve ser instalado se você quiser desenvolver programas em
472 Python 3 para manipular pacotes e bancos de dados RPM.
474 %package plugin-audit
475 Summary: Plugin for logging audit events on package operations
477 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
479 %description plugin-audit
480 Plugin for libaudit support
482 %package plugin-syslog
483 Summary: Plugin for syslog functionality
485 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
487 %description plugin-syslog
488 This plugin exports RPM actions to the system log.
490 %package plugin-systemd-inhibit
491 Summary: Plugin for systemd inhibit functionality
493 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
495 %description plugin-systemd-inhibit
496 This plugin blocks systemd from entering idle, sleep or shutdown while
497 an rpm transaction is running using the systemd-inhibit mechanism.
500 Summary: Plugin for IMA file signatures
502 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
504 %description plugin-ima
505 This plugin adds support for enforcing and verifying IMA file
506 signatures in an rpm.
508 %package plugin-prioreset
509 Summary: Plugin for resetting scriptlet priorities for SysV init
511 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
513 %description plugin-prioreset
514 This plugin is useful on legacy SysV init systems if you run rpm
515 transactions with nice/ionice priorities. Should not be used on
518 %package plugin-selinux
519 Summary: Plugin for SELinux functionality
521 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
522 Requires: libselinux >= 2.1.0
524 %description plugin-selinux
525 Plugin for SELinux functionality.
528 Summary: Package signing support
530 Requires: %{name}-lib = %{epoch}:%{version}-%{release}
533 This package contains support for digitally signing RPM packages.
536 Summary: RPM API documentation and guides
537 Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
542 Documentation for RPM API and guides in HTML format generated from rpm
545 %description apidocs -l pl.UTF-8
546 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
547 źrodeł RPM-a przez doxygen.
550 %setup -q -n %{name}-%{version}%{?subver}
589 install %{SOURCE15} scripts/perl.prov.in
591 %{__mv} -f scripts/perl.req{,.in}
593 # generate Group translations to *.po
594 awk -f %{SOURCE6} %{SOURCE5}
596 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
605 # rpm checks for CPU type at runtime, but it looks better
607 -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
608 -e 's|@host_cpu@|%{_target_cpu}|' \
609 -e 's|@host_os@|%{_target_os}|' \
613 WITH_PERL_VERSION=no \
614 __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
615 __GPG=%{_bindir}/gpg \
620 --disable-silent-rules \
628 %{?with_imaevm:--with-imaevm} \
633 --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
634 %{!?with_plugins:--disable-plugins} \
639 %{__make} -C po update-gmo
647 rm -rf $RPM_BUILD_ROOT
648 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
649 $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/usr/lib/.build-id}
651 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
654 pkgconfigdir=%{_pkgconfigdir} \
655 DESTDIR=$RPM_BUILD_ROOT
658 %ifnarch %{ix86} %{x8664} x32
659 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
660 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
661 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
662 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
663 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
664 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
665 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
666 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
669 %ifnarch %{x8664} x32
670 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
671 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
672 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
673 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
677 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
678 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
679 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
680 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
681 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
682 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
683 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
687 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
691 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
694 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
695 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
696 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
697 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
698 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
699 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
700 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
702 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
704 %{_target_cpu}-%{_target_vendor}-linux-gnux32
706 %{_target_cpu}-%{_target_vendor}-linux
710 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
712 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
714 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
715 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
716 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
718 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
720 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
721 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
722 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
723 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
724 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
725 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
728 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
729 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
730 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
732 # move essential libs to /lib (libs that /bin/rpm links to)
733 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
734 mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
735 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
738 # init an empty database for %ghost'ing for all supported backends
739 for be in sqlite bdb ndb; do
741 --macros=$RPM_BUILD_ROOT%{_rpmlibdir}/macros \
742 --rcfile=$RPM_BUILD_ROOT%{_rpmlibdir}/rpmrc \
743 --dbpath=${PWD}/${be} \
744 --define "_db_backend ${be}" \
746 cp -va ${be}/. $RPM_BUILD_ROOT/var/lib/rpm/
750 # Remove anything that rpm make install might put there
751 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
757 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
759 # wrong location, not used anyway
760 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
765 rm -rf $RPM_BUILD_ROOT
768 if [ -e /var/lib/rpm/Packages ]; then
769 if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
770 /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
772 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
776 echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
777 echo 'you should ignore it and restart poldek'
779 %{__rm} -rf /var/lib/rpm/log >/dev/null 2>/dev/null || :
780 %{__rm} -rf /var/lib/rpm/tmp >/dev/null 2>/dev/null || :
781 # Unlock database for rebuild, safe since this is posttrans
782 %{__rm} -f /var/lib/rpm/.rpm.lock >/dev/null 2>/dev/null || :
783 if ! /usr/bin/rpmdb --rebuilddb; then
785 echo "rpm database conversion failed!"
786 echo "You have to run '/usr/bin/rpmdb --rebuilddb' manually"
792 %post lib -p /sbin/ldconfig
793 %postun lib -p /sbin/ldconfig
796 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
798 %files -f %{name}.lang
799 %defattr(644,root,root,755)
800 %doc ChangeLog CREDITS README
802 %dir /etc/pki/rpm-gpg
803 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
805 %attr(755,root,root) /bin/rpm
806 %attr(755,root,root) %{_bindir}/rpmdb
807 %attr(755,root,root) %{_bindir}/rpmkeys
808 %attr(755,root,root) %{_bindir}/rpmquery
809 %attr(755,root,root) %{_bindir}/rpmverify
811 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
812 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
813 # this is ok to be replaced
814 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
816 %{_mandir}/man8/rpm.8*
817 %{_mandir}/man8/rpmdb.8*
818 %{_mandir}/man8/rpmkeys.8*
819 %{_mandir}/man8/rpm-misc.8*
820 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
821 %lang(fr) %{_mandir}/fr/man8/rpm.8*
822 %lang(ja) %{_mandir}/ja/man8/rpm.8*
823 %lang(ko) %{_mandir}/ko/man8/rpm.8*
824 %lang(pl) %{_mandir}/pl/man8/rpm.8*
825 %lang(ru) %{_mandir}/ru/man8/rpm.8*
826 %lang(sk) %{_mandir}/sk/man8/rpm.8*
829 %ghost %config(missingok,noreplace) /var/lib/rpm/*
830 %ghost /var/lib/rpm/.*.lock
832 %{_rpmlibdir}/rpmpopt*
835 %dir %{_rpmlibdir}/macros.d
836 %dir %{_rpmlibdir}/platform
837 %{_rpmlibdir}/platform/noarch-*
838 %ifarch %{ix86} %{x8664} x32
839 %{_rpmlibdir}/platform/athlon*
840 %{_rpmlibdir}/platform/geode*
841 %{_rpmlibdir}/platform/i?86*
842 %{_rpmlibdir}/platform/pentium*
845 %{_rpmlibdir}/platform/amd64*
846 %{_rpmlibdir}/platform/ia32e*
847 %{_rpmlibdir}/platform/x86_64*
848 %{_rpmlibdir}/platform/x32*
851 %{_rpmlibdir}/platform/alpha*
854 %{_rpmlibdir}/platform/aarch64*
857 %{_rpmlibdir}/platform/arm*
860 %{_rpmlibdir}/platform/ia64*
862 %ifarch mips mipsel mips64 mips64el
863 %{_rpmlibdir}/platform/mips*
866 %{_rpmlibdir}/platform/ppc*
868 %ifarch sparc sparc64
869 %{_rpmlibdir}/platform/sparc*
872 %dir %{_rpmlibdir}/pld
874 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
875 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
877 # valgrind suppression file for rpm
878 %{_rpmlibdir}/rpm.supp
880 %dir /usr/lib/.build-id
883 %defattr(644,root,root,755)
884 %dir %{_sysconfdir}/rpm
885 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
887 %attr(755,root,root) %{_bindir}/banner.sh
888 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
892 %defattr(644,root,root,755)
893 %attr(755,root,root) /%{_lib}/librpm.so.9
894 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
895 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
896 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
897 %attr(755,root,root) /%{_lib}/librpmio.so.9
898 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
899 %attr(755,root,root) /%{_lib}/librpmsign.so.9
900 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
901 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
904 %defattr(644,root,root,755)
905 %attr(755,root,root) %{_libdir}/librpm.so
906 %attr(755,root,root) %{_libdir}/librpmbuild.so
907 %attr(755,root,root) %{_libdir}/librpmio.so
908 %attr(755,root,root) %{_libdir}/librpmsign.so
909 %{_libdir}/librpm*.la
911 %{_pkgconfigdir}/*.pc
914 %defattr(644,root,root,755)
915 %attr(755,root,root) %{_bindir}/rpm2archive
916 %attr(755,root,root) %{_bindir}/rpm2cpio
917 %attr(755,root,root) %{_bindir}/rpmgraph
918 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
919 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
920 %attr(755,root,root) %{_rpmlibdir}/tgpg
921 %attr(755,root,root) %{_rpmlibdir}/debugedit
922 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
923 %{_mandir}/man8/rpm2archive.8*
924 %{_mandir}/man8/rpm2cpio.8*
925 %{_mandir}/man8/rpmdeps.8*
926 %{_mandir}/man8/rpmgraph.8*
927 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
928 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
929 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
930 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
931 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
932 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
933 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
936 %defattr(644,root,root,755)
937 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
938 %attr(755,root,root) %{_rpmlibdir}/brp-*
939 %attr(755,root,root) %{_rpmlibdir}/check-files
940 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
941 %attr(755,root,root) %{_rpmlibdir}/elfdeps
942 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
943 # needs hacked pkg-config to return anything
944 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
945 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
947 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
948 # must be here for "Requires: rpm-*prov" to work
949 #%{_rpmlibdir}/macros.d/cmake
950 #%{_rpmlibdir}/macros.d/gstreamer
951 #%{_rpmlibdir}/macros.d/libtool
952 #%{_rpmlibdir}/macros.d/perl
953 #%{_rpmlibdir}/macros.d/pkgconfig
954 #%{_rpmlibdir}/macros.d/python
955 #%{_rpmlibdir}/macros.d/selinux
956 #%{_rpmlibdir}/macros.d/tcl
957 #%{_rpmlibdir}/macros.rpmbuild
959 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
960 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
961 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
962 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
963 %attr(755,root,root) %{_rpmlibdir}/find-provides
964 %attr(755,root,root) %{_rpmlibdir}/find-requires
965 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
966 %attr(755,root,root) %{_rpmlibdir}/script.req
967 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
969 %dir %{_rpmlibdir}/fileattrs
970 %{_rpmlibdir}/fileattrs/debuginfo.attr
971 %{_rpmlibdir}/fileattrs/desktop.attr
972 %{_rpmlibdir}/fileattrs/elf.attr
973 %{_rpmlibdir}/fileattrs/font.attr
974 %{_rpmlibdir}/fileattrs/libtool.attr
975 %{_rpmlibdir}/fileattrs/metainfo.attr
976 %{_rpmlibdir}/fileattrs/ocaml.attr
977 %{_rpmlibdir}/fileattrs/perl.attr
978 %{_rpmlibdir}/fileattrs/perllib.attr
979 %{_rpmlibdir}/fileattrs/pkgconfig.attr
980 %{_rpmlibdir}/fileattrs/python.attr
981 %{_rpmlibdir}/fileattrs/pythondist.attr
982 %{_rpmlibdir}/fileattrs/script.attr
984 %attr(755,root,root) %{_bindir}/gendiff
985 %attr(755,root,root) %{_bindir}/rpmbuild
986 %attr(755,root,root) %{_bindir}/rpmspec
988 %{_mandir}/man1/gendiff.1*
989 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
990 %{_mandir}/man8/rpmbuild.8*
991 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
992 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
993 %{_mandir}/man8/rpmspec.8*
996 %defattr(644,root,root,755)
997 %attr(755,root,root) %{_rpmlibdir}/perl.*
1000 %defattr(644,root,root,755)
1001 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
1004 %files -n python3-rpm
1005 %defattr(644,root,root,755)
1006 %dir %{py3_sitedir}/rpm
1007 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
1008 %{py3_sitedir}/rpm/*.py
1009 %{py3_sitedir}/rpm-%{version}-py*.egg-info
1010 %{py3_sitedir}/rpm/__pycache__
1015 %defattr(644,root,root,755)
1016 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1017 %{_mandir}/man8/rpm-plugin-audit.8*
1019 %files plugin-syslog
1020 %defattr(644,root,root,755)
1021 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1022 %{_mandir}/man8/rpm-plugin-syslog.8*
1024 %files plugin-systemd-inhibit
1025 %defattr(644,root,root,755)
1026 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1027 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1030 %defattr(644,root,root,755)
1031 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1032 %{_mandir}/man8/rpm-plugin-ima.8*
1034 %files plugin-prioreset
1035 %defattr(644,root,root,755)
1036 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1037 %{_mandir}/man8/rpm-plugin-prioreset.8*
1039 %files plugin-selinux
1040 %defattr(644,root,root,755)
1041 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1042 %{_mandir}/man8/rpm-plugin-selinux.8*
1046 %defattr(644,root,root,755)
1047 %attr(755,root,root) %{_bindir}/rpmsign
1048 %{_mandir}/man8/rpmsign.8*
1052 %defattr(644,root,root,755)
1053 %doc doc/librpm/html/*