]> TLD Linux GIT Repositories - packages/rpm.git/blob - rpm.spec
- added public TLD key
[packages/rpm.git] / rpm.spec
1 #
2 # TODO:
3 # - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
4 #
5 # Conditional build:
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)
11
12 %define         db_ver          5.3.28.0
13 %define         popt_ver        1.15
14 %define         sover           9.1.0
15
16 %if "%{_rpmversion}" >= "4.12" && "%{_rpmversion}" < "5"
17 %define with_recommends_tags    1
18 %endif
19
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
27 Name:           rpm
28 Version:        4.16.0
29 Release:        0.10
30 Epoch:          1
31 License:        GPL v2 / LGPL v2.1
32 Group:          Base
33 Source0:        http://ftp.rpm.org/releases/rpm-4.16.x/%{name}-%{version}.tar.bz2
34 # Source0-md5:  434e166a812e35ef181f6dd176326920
35 Source1:        ftp://ftp.pld-linux.org/dists/th/TLD-Linux.asc
36 Source2:        macros.local
37 Source3:        macros.lang
38 Source4:        %{name}.sysconfig
39 Source5:        %{name}.groups
40 Source6:        %{name}-groups-po.awk
41 Source7:        %{name}-install-tree
42 Source9:        %{name}-user_group.sh
43 # http://svn.pld-linux.org/banner.sh/
44 Source10:       banner.sh
45 Source11:       %{name}.noautoprov
46 Source12:       %{name}.noautoprovfiles
47 Source13:       %{name}.noautoreq
48 Source14:       %{name}.noautoreqfiles
49 Source15:       perl.prov
50 Source16:       %{name}db_checkversion.c
51 Source17:       %{name}db_reset.c
52 Source18:       dbupgrade.sh
53 Patch0:         %{name}-man_pl.patch
54 Patch1:         %{name}-popt-aliases.patch
55 Patch2:         %{name}-perl-macros.patch
56 Patch3:         %{name}-perl-req-perlfile.patch
57 Patch4:         %{name}-scripts-closefds.patch
58 Patch6:         %{name}-perl_req-INC_dirs.patch
59 Patch7:         %{name}-debuginfo.patch
60 Patch8:         %{name}-libtool-deps.patch
61 Patch9:         %{name}-builddir-readlink.patch
62 Patch10:        %{name}-changelog_order_check_nonfatal.patch
63 Patch11:        %{name}-postun-nofail.patch
64 Patch12:        %{name}-clean-docdir.patch
65 Patch13:        %{name}-perl-magic.patch
66 Patch14:        %{name}-ignore-missing-macro-files.patch
67 Patch15:        x32.patch
68 Patch16:        rpm5-db-compat.patch
69 Patch17:        python-internal-build.patch
70 Patch18:        missing-macros.patch
71 Patch19:        pkgconfig.patch
72 Patch20:        uname-deps.patch
73 Patch21:        aarch64.patch
74 Patch22:        ix86-platforms.patch
75 Patch23:        shortcircuited-deps.patch
76 Patch24:        cpuinfo-deps.patch
77 Patch25:        rpmio-read-proc-files.patch
78 Patch26:        allow-at-in-ver-rel.patch
79 Patch27:        no-exeonly-for-elf-reqprov.patch
80 Patch28:        default-patch-flags.patch
81 Patch100:       build-id-links.patch
82 URL:            https://rpm.org/
83 BuildRequires:  acl-devel
84 BuildRequires:  db-devel >= %{db_ver}
85 BuildRequires:  autoconf >= 2.63
86 BuildRequires:  automake >= 1.4
87 BuildRequires:  bzip2-devel >= 1.0.2-17
88 BuildRequires:  elfutils-devel >= 0.108
89 BuildRequires:  gettext-tools >= 0.19.2
90 BuildRequires:  libarchive-devel
91 BuildRequires:  libcap-devel
92 BuildRequires:  libmagic-devel
93 BuildRequires:  libgcrypt-devel
94 %if %{with plugins}
95 BuildRequires:  audit-libs-devel
96 BuildRequires:  dbus-devel
97 %{?with_imaevm:BuildRequires:   libimaevm-devel >= 1.0}
98 BuildRequires:  libselinux-devel >= 2.1.0
99 %endif
100 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
101 BuildRequires:  libstdc++-devel
102 BuildRequires:  libtool >= 1:1.4.2-9
103 BuildRequires:  ossp-uuid-devel
104 BuildRequires:  patch >= 2.2
105 BuildRequires:  pkgconfig(lua) >= 5.1
106 BuildRequires:  popt-devel >= %{popt_ver}
107 BuildRequires:  python3-modules
108 %if %{with python3}
109 BuildRequires:  python3-devel
110 BuildRequires:  rpm-pythonprov
111 BuildRequires:  rpmbuild(macros) >= 1.750
112 %endif
113 BuildRequires:  sqlite3-devel >= 3.22.0
114 BuildRequires:  tcl
115 BuildRequires:  xz-devel
116 BuildRequires:  zlib-devel
117 BuildRequires:  zstd-devel
118 %if %{with apidocs}
119 BuildRequires:  doxygen
120 BuildRequires:  ghostscript
121 BuildRequires:  graphviz
122 BuildRequires:  tetex-pdftex
123 %endif
124 Requires(posttrans):    coreutils
125 Requires:       %{name}-base = %{epoch}:%{version}-%{release}
126 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
127 Requires:       rpm-tld-macros >= 1.744
128 Requires:       FHS >= 3.0-2
129 Requires:       libgcrypt
130 Requires:       popt >= %{popt_ver}
131 #%if %{with recommends_tags}
132 #Recommends:    rpm-plugin-audit
133 #Recommends:    rpm-plugin-prioreset
134 #Recommends:    rpm-plugin-syslog
135 #Recommends:    rpm-plugin-systemd-inhibit
136 #%endif
137 Obsoletes:      rpm-utils-perl
138 Obsoletes:      rpm-utils-static
139 Conflicts:      glibc < 2.2.92
140 # db4.6 poldek needed
141 Conflicts:      poldek < 0.21-0.20070703.00.3
142 # segfaults with lzma 0.42.2
143 Conflicts:      lzma-libs < 4.999.3
144 Conflicts:      util-vserver < 0.30.216-1.pre3034.7
145 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
146
147 %define         _binary_payload         w9.gzdio
148
149 # don't require very fresh rpm.macros to build
150 %define         find_lang sh ./scripts/find-lang.sh $RPM_BUILD_ROOT
151 %define         ix86    i386 i486 i586 i686 athlon geode pentium3 pentium4
152 %define         ppc     ppc ppc7400 ppc7450
153 %define         x8664   amd64 ia32e x86_64
154
155 %define         _rpmlibdir /usr/lib/rpm
156
157 %description
158 RPM is a powerful package manager, which can be used to build,
159 install, query, verify, update, and uninstall individual software
160 packages. A package consists of an archive of files, and package
161 information, including name, version, and description.
162
163 %description -l de.UTF-8
164 RPM ist ein kräftiger Packet-Manager, der verwendet sein kann zur
165 Installation, Anfrage, Verifizierung, Aktualisierung und
166 Uninstallation individueller Softwarepakete. Ein Paket besteht aus
167 einem Archiv Dateien und Paketinformation, inklusive Name, Version und
168 Beschreibung.
169
170 %description -l es.UTF-8
171 RPM es un poderoso administrador de paquetes, que puede ser usado para
172 construir, instalar, pesquisar, verificar, actualizar y desinstalar
173 paquetes individuales de software. Un paquete consiste en un
174 almacenaje de archivos, y información sobre el paquete, incluyendo
175 nombre, versión y descripción.
176
177 %description -l pl.UTF-8
178 RPM jest doskonałym programem zarządzającym pakietami. Umożliwia on
179 przebudowanie, instalację czy weryfikację dowolnego pakietu.
180 Informacje dotyczące każdego pakietu, takie jak jego opis, lista
181 plików wchodzących w skład pakietu, zależności od innych pakietów, są
182 przechowywane w bazie danych i można je uzyskać za pomocą opcji
183 odpytywania programu rpm.
184
185 %description -l pt_BR.UTF-8
186 RPM é um poderoso gerenciador de pacotes, que pode ser usado para
187 construir, instalar, pesquisar, verificar, atualizar e desinstalar
188 pacotes individuais de software. Um pacote consiste de um conjunto de
189 arquivos e informações adicionais, incluindo nome, versão e descrição
190 do pacote, permissões dos arquivos, etc.
191
192 %description -l ru.UTF-8
193 RPM - это мощный менеджер пакетов, который может быть использован для
194 создания, инсталляции, запросов (query), проверки, обновления и
195 удаления программных пакетов. Пакет состоит из файлового архива и
196 служебной информации, включающей название, версию, описание и другие
197 данные о пакете.
198
199 %description -l uk.UTF-8
200 RPM - це потужний менеджер пакетів, що може бути використаний для
201 створення, інсталяції, запитів (query), перевірки, поновлення та
202 видалення програмних пакетів. Пакет складається з файлового архіву та
203 службової інформації, що містить назву, версію, опис та іншу
204 інформацію про пакет.
205
206 %package base
207 Summary:        RPM base package - scripts used by rpm packages themselves
208 Summary(pl.UTF-8):      Podstawowy pakiet RPM - skrypty używane przez same pakiety rpm
209 Group:          Base
210 Requires:       filesystem
211 Obsoletes:      rpm-scripts
212 Obsoletes:      vserver-rpm
213
214 %description base
215 The RPM base package contains scripts used by rpm packages themselves.
216 These include:
217 - scripts for adding/removing groups and users needed for rpm
218   packages,
219 - banner.sh to display %%banner messages from rpm scriptlets.
220
221 %description base -l pl.UTF-8
222 Pakiet podstawowy RPM zwiera skrypty używane przez same pakiety rpm.
223 Zawiera on:
224 - skrypty dodające/usuwające grupy i użytkowników dla pakietów rpm,
225 - banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
226
227 %package lib
228 Summary:        RPMs library
229 Summary(pl.UTF-8):      Biblioteki RPM-a
230 Group:          Libraries
231 Requires:       db >= %{db_ver}
232 Requires:       libmagic >= 1.15-2
233 Requires:       popt >= %{popt_ver}
234 Obsoletes:      rpm-libs
235 # avoid SEGV caused by mixed db versions
236 Conflicts:      poldek < 0.18.1-16
237
238 %description lib
239 RPMs library.
240
241 %description lib -l pl.UTF-8
242 Biblioteki RPM-a.
243
244 %package devel
245 Summary:        Header files for rpm libraries
246 Summary(de.UTF-8):      Header-Dateien für rpm Libraries
247 Summary(es.UTF-8):      Archivos de inclusión y bibliotecas para programas de manipulación de paquetes rpm
248 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek rpm
249 Summary(pt_BR.UTF-8):   Arquivos de inclusão e bibliotecas para programas de manipulação de pacotes RPM
250 Summary(ru.UTF-8):      Хедеры и библиотеки для программ, работающих с rpm-пакетами
251 Summary(uk.UTF-8):      Хедери та бібліотеки для програм, що працюють з пакетами rpm
252 Group:          Development/Libraries
253 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
254 Requires:       bzip2-devel
255 Requires:       db-devel >= %{db_ver}
256 Requires:       elfutils-devel
257 Requires:       libmagic-devel
258 Requires:       libgcrypt-devel
259 %if %{with selinux}
260 Requires:       libselinux-devel
261 Requires:       libsemanage-devel
262 Requires:       libsepol-devel
263 %endif
264 Requires:       popt-devel >= %{popt_ver}
265 Requires:       zlib-devel
266
267 %description devel
268 The RPM packaging system includes C libraries that make it easy to
269 manipulate RPM packages and databases. They are intended to ease the
270 creation of graphical package managers and other tools that need
271 intimate knowledge of RPM packages. This package contains header files
272 for these libraries.
273
274 %description devel -l de.UTF-8
275 Der RPM-Packensystem enthält eine C-Library, die macht es einfach
276 RPM-Pakete und Dateibanken zu manipulieren. Er eignet sich für
277 Vereinfachung des Schaffens grafischer Paket-Manager und anderer
278 Werkzeuge, die intime Kenntnis von RPM-Paketen brauchen.
279
280 %description devel -l es.UTF-8
281 El sistema de empaquetado RPM incluye una biblioteca C que vuelve
282 fácil la manipulación de paquetes y bases de datos RPM. Su objetivo es
283 facilitar la creación de administradores gráficos de paquetes y otras
284 herramientas que necesiten un conocimiento profundo de paquetes RPM.
285
286 %description devel -l pl.UTF-8
287 System RPM zawiera biblioteki C, które ułatwiają manipulowanie
288 pakietami RPM oraz bazami danych. W zamiarze ma to uprościć tworzenie
289 graficznych programów zarządzających pakietami oraz innych narzędzi,
290 które wymagają szczegółowej wiedzy na temat pakietów RPM. Ten pakiet
291 zawiera pliki nagłówkowe wspomnianych bibliotek.
292
293 %description devel -l pt_BR.UTF-8
294 O sistema de empacotamento RPM inclui uma biblioteca C que torna fácil
295 a manipulação de pacotes e bases de dados RPM. Seu objetivo é
296 facilitar a criação de gerenciadores gráficos de pacotes e outras
297 ferramentas que precisem de conhecimento profundo de pacotes RPM.
298
299 %description devel -l ru.UTF-8
300 Система управления пакетами RPM содержит библиотеку C, которая
301 упрощает манипуляцию пакетами RPM и соответствующими базами данных.
302 Эта библиотека предназначена для облегчения создания графических
303 пакетных менеджеров и других утилит, которым необходимо работать с
304 пакетами RPM.
305
306 %description devel -l uk.UTF-8
307 Система керування пакетами RPM містить бібліотеку C, котра спрощує
308 роботу з пакетами RPM та відповідними базами даних. Ця бібліотека
309 призначена для полегшення створення графічних пакетних менеджерів та
310 інших утиліт, що працюють з пакетами RPM.
311
312 %package utils
313 Summary:        Additional utilities for managing RPM packages and database
314 Summary(de.UTF-8):      Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken
315 Summary(pl.UTF-8):      Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami
316 Group:          Applications/File
317 Requires:       %{name} = %{epoch}:%{version}-%{release}
318 Requires:       popt >= %{popt_ver}
319 #%if %{with recommends_tags}
320 #Recommends:    bzip2
321 #Recommends:    gzip
322 #%endif
323 Conflicts:      filesystem-debuginfo < 3.0-16
324
325 %description utils
326 Additional utilities for managing RPM packages and database.
327
328 %description utils -l de.UTF-8
329 Zusatzwerkzeuge für Verwaltung RPM-Pakete und Datenbanken.
330
331 %description utils -l pl.UTF-8
332 Dodatkowe narzędzia do zarządzania bazą RPM-a i pakietami.
333
334 %package build
335 Summary:        Scripts for building binary RPM packages
336 Summary(de.UTF-8):      Scripts fürs Bauen binärer RPM-Pakete
337 Summary(pl.UTF-8):      Skrypty pomocnicze do budowania binarnych RPM-ów
338 Summary(pt_BR.UTF-8):   Scripts e programas executáveis usados para construir pacotes
339 Summary(ru.UTF-8):      Скрипты и утилиты, необходимые для сборки пакетов
340 Summary(uk.UTF-8):      Скрипти та утиліти, необхідні для побудови пакетів
341 Group:          Applications/File
342 Requires(pretrans):     coreutils
343 Requires(pretrans):     findutils
344 Requires:       %{name}-utils = %{epoch}:%{version}-%{release}
345 Requires:       rpm-tld-macros-build >= 1.744
346 Requires:       /bin/id
347 Requires:       awk
348 Requires:       bzip2
349 Requires:       chrpath >= 0.10-4
350 Requires:       cpio
351 Requires:       diffutils
352 Requires:       elfutils
353 Requires:       file >= 4.17
354 Requires:       fileutils
355 Requires:       findutils
356 %ifarch athlon
357 Requires:       gcc >= 3.0.3
358 %else
359 Requires:       gcc
360 %endif
361 Requires:       glibc-devel
362 Requires:       grep
363 Requires:       gzip
364 Requires:       make
365 Requires:       patch
366 Requires:       sed >= 4.0
367 Requires:       sh-utils
368 Requires:       tar >= 1:1.22
369 Requires:       textutils
370 Requires:       which
371 Requires:       xz
372 Provides:       rpmbuild(noauto) = 3
373 %ifarch %{x8664}
374 Conflicts:      automake < 1:1.7.9-2
375 Conflicts:      libtool < 2:1.5-13
376 %endif
377
378 %description build
379 Scripts for building binary RPM packages.
380
381 %description build -l de.UTF-8
382 Scripts fürs Bauen binärer RPM-Pakete.
383
384 %description build -l pl.UTF-8
385 Skrypty pomocnicze do budowania binarnych RPM-ów.
386
387 %description build -l pt_BR.UTF-8
388 Este pacote contém scripts e programas executáveis que são usados para
389 construir pacotes usando o RPM.
390
391 %description build -l ru.UTF-8
392 Различные вспомогательные скрипты и исполняемые программы, которые
393 используются для сборки RPM'ов.
394
395 %description build -l uk.UTF-8
396 Різноманітні допоміжні скрипти та утиліти, які використовуються для
397 побудови RPM'ів.
398
399 %package perlprov
400 Summary:        Additional utilities for checking Perl provides/requires in RPM packages
401 Summary(de.UTF-8):      Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen
402 Summary(pl.UTF-8):      Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
403 Group:          Applications/File
404 Requires:       %{name} = %{epoch}:%{version}-%{release}
405 Requires:       perl-Encode
406 Requires:       perl-devel
407 Requires:       perl-modules
408
409 %description perlprov
410 Additional utilities for checking Perl provides/requires in RPM
411 packages.
412
413 %description perlprov -l de.UTF-8
414 Zusatzwerkzeuge fürs Nachsehen Perl-Abhängigkeiten in RPM-Paketen.
415
416 %description perlprov -l pl.UTF-8
417 Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w
418 pakietach RPM.
419
420 %package pythonprov
421 Summary:        Python macros, which simplifies creation of RPM packages with Python software
422 Summary(pl.UTF-8):      Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Pythonie
423 Group:          Applications/File
424 Requires:       %{name} = %{epoch}:%{version}-%{release}
425 Requires:       python3
426 Requires:       python3-modules
427 Requires:       python3-setuptools
428
429 %description pythonprov
430 Python macros, which simplifies creation of RPM packages with Python
431 software.
432
433 %description pythonprov -l pl.UTF-8
434 Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
435 Pythonie.
436
437 %package -n python3-rpm
438 Summary:        Python 3 interface to RPM library
439 Summary(pl.UTF-8):      Interfejs Pythona 3 do biblioteki RPM-a
440 Summary(pt_BR.UTF-8):   Módulo Python 3 para aplicativos que manipulam pacotes RPM
441 Group:          Development/Languages/Python
442 Requires:       %{name} = %{epoch}:%{version}-%{release}
443 Requires:       python3
444 Obsoletes:      python-rpm < 1:4.16.0
445 Obsoletes:      rpm-python
446
447 %description -n python3-rpm
448 The python3-rpm package contains a module which permits applications
449 written in the Python 3 programming language to use the interface
450 supplied by RPM (RPM Package Manager) libraries.
451
452 This package should be installed if you want to develop Python 3
453 programs that will manipulate RPM packages and databases.
454
455 %description -n python3-rpm -l pl.UTF-8
456 Pakiet python3-rpm zawiera moduł, który pozwala aplikacjom napisanym w
457 Pythonie 3 na używanie interfejsu dostarczanego przez biblioteki
458 RPM-a.
459
460 Pakiet ten powinien zostać zainstalowany, jeśli chcesz pisać w
461 Pythonie 3 programy manipulujące pakietami i bazami danych rpm.
462
463 %description -n python3-rpm -l pt_BR.UTF-8
464 O pacote python3-rpm contém um módulo que permite que aplicações
465 escritas em Python 3 utilizem a interface fornecida pelas bibliotecas
466 RPM (RPM Package Manager).
467
468 Esse pacote deve ser instalado se você quiser desenvolver programas em
469 Python 3 para manipular pacotes e bancos de dados RPM.
470
471 %package plugin-audit
472 Summary:        Plugin for logging audit events on package operations
473 Group:          Base
474 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
475
476 %description plugin-audit
477 Plugin for libaudit support
478
479 %package plugin-syslog
480 Summary:        Plugin for syslog functionality
481 Group:          Base
482 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
483
484 %description plugin-syslog
485 This plugin exports RPM actions to the system log.
486
487 %package plugin-systemd-inhibit
488 Summary:        Plugin for systemd inhibit functionality
489 Group:          Base
490 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
491
492 %description plugin-systemd-inhibit
493 This plugin blocks systemd from entering idle, sleep or shutdown while
494 an rpm transaction is running using the systemd-inhibit mechanism.
495
496 %package plugin-ima
497 Summary:        Plugin for IMA file signatures
498 Group:          Base
499 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
500
501 %description plugin-ima
502 This plugin adds support for enforcing and verifying IMA file
503 signatures in an rpm.
504
505 %package plugin-prioreset
506 Summary:        Plugin for resetting scriptlet priorities for SysV init
507 Group:          Base
508 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
509
510 %description plugin-prioreset
511 This plugin is useful on legacy SysV init systems if you run rpm
512 transactions with nice/ionice priorities. Should not be used on
513 systemd systems.
514
515 %package plugin-selinux
516 Summary:        Plugin for SELinux functionality
517 Group:          Base
518 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
519 Requires:       libselinux >= 2.1.0
520
521 %description plugin-selinux
522 Plugin for SELinux functionality.
523
524 %package sign
525 Summary:        Package signing support
526 Group:          Base
527 Requires:       %{name}-lib = %{epoch}:%{version}-%{release}
528
529 %description sign
530 This package contains support for digitally signing RPM packages.
531
532 %package apidocs
533 Summary:        RPM API documentation and guides
534 Summary(pl.UTF-8):      Documentacja API RPM-a i przewodniki
535 Group:          Documentation
536 BuildArch:      noarch
537
538 %description apidocs
539 Documentation for RPM API and guides in HTML format generated from rpm
540 sources by doxygen.
541
542 %description apidocs -l pl.UTF-8
543 Dokumentacja API RPM-a oraz przewodniki w formacie HTML generowane ze
544 źrodeł RPM-a przez doxygen.
545
546 %prep
547 %setup -q -n %{name}-%{version}%{?subver}
548 %patch0 -p1
549 %patch1 -p1
550 %patch2 -p1
551 %patch3 -p1
552 %patch4 -p1
553 %patch6 -p0
554 %patch7 -p1
555 %patch8 -p1
556 %patch9 -p1
557 %patch10 -p1
558 %patch11 -p1
559 %patch12 -p1
560 %patch13 -p1
561 %patch14 -p1
562 %patch15 -p1
563 %patch16 -p1
564 %patch17 -p1
565 %patch18 -p1
566 %patch19 -p1
567 %patch20 -p1
568 %patch21 -p1
569 %patch22 -p1
570 %patch23 -p1
571 %patch24 -p1
572 %patch25 -p1
573 %patch26 -p1
574 %patch27 -p1
575 %patch28 -p1
576 %patch100 -p1
577
578 install %{SOURCE15} scripts/perl.prov.in
579
580 %{__mv} -f scripts/perl.req{,.in}
581
582 # generate Group translations to *.po
583 awk -f %{SOURCE6} %{SOURCE5}
584
585 install %{SOURCE16} tools/rpmdb_checkversion.c
586 install %{SOURCE17} tools/rpmdb_reset.c
587
588 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
589
590 %build
591 %{__libtoolize}
592 %{__aclocal}
593 %{__autoheader}
594 %{__autoconf}
595 %{__automake}
596
597 # rpm checks for CPU type at runtime, but it looks better
598 sed -i \
599         -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
600         -e 's|@host_cpu@|%{_target_cpu}|' \
601         -e 's|@host_os@|%{_target_os}|' \
602         macros.in
603
604 %configure \
605         WITH_PERL_VERSION=no \
606         __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
607         __GPG=%{_bindir}/gpg \
608 %if %{with python3}
609         PYTHON=python3 \
610         --enable-python \
611 %endif
612         --disable-silent-rules \
613         --enable-shared \
614         --enable-bdb \
615         --enable-bdb-ro \
616         --enable-ndb \
617         --enable-sqlite \
618         --enable-zstd \
619         --with-lua \
620         %{?with_imaevm:--with-imaevm} \
621         --with-cap \
622         --with-acl \
623         --with-audit \
624         --with-archive \
625         --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
626         %{!?with_plugins:--disable-plugins} \
627         --with-vendor=tld
628
629 %{__make}
630
631 %{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb
632 %{__cc} %{rpmcflags} tools/rpmdb_reset.c -o tools/rpmdb_reset -ldb
633
634 if tools/rpmdb_checkversion -V 2>&1 | grep "t match library version"; then
635         echo "Error linking rpmdb tools!"
636         exit 1
637 fi
638 if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
639         echo "Error linking rpmdb tools!"
640         exit 1
641 fi
642
643 %if %{with python3}
644 cd python
645 %py3_build
646 %endif
647
648 %install
649 rm -rf $RPM_BUILD_ROOT
650 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
651         $RPM_BUILD_ROOT/var/lib/{banner,rpm}
652
653 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/TLD-Linux.asc
654
655 %{__make} install \
656         pkgconfigdir=%{_pkgconfigdir} \
657         DESTDIR=$RPM_BUILD_ROOT
658
659 # cleanup
660 %ifnarch %{ix86} %{x8664} x32
661 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
662 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
663 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
664 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
665 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
666 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
667 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
668 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
669 %endif
670
671 %ifnarch %{x8664} x32
672 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
673 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
674 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
675 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
676 %endif
677
678 %ifnarch %{ppc}
679 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
680 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
681 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
682 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
683 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
684 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
685 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
686 %endif
687
688 %ifnarch aarch64
689 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
690 %endif
691
692 %ifnarch %{arm}
693 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
694 %endif
695
696 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
697 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
698 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
699 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
700 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
701 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
702 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
703
704 cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
705 %ifarch x32
706 %{_target_cpu}-%{_target_vendor}-linux-gnux32
707 %else
708 %{_target_cpu}-%{_target_vendor}-linux
709 %endif
710 EOF
711
712 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
713
714 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/tld
715
716 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
717 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
718 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
719
720 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
721
722 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
723 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
724 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
725 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
726 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
727 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
728
729 cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/
730 cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/
731 cp -p %{SOURCE18} $RPM_BUILD_ROOT%{_rpmlibdir}/dbupgrade.sh
732
733 # move rpm to /bin
734 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
735 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
736 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
737
738 # move essential libs to /lib (libs that /bin/rpm links to)
739 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
740         mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
741         ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
742 done
743
744 # Make sure we have bdb set a default backend
745 grep -qE "db_backend[[:blank:]]+bdb" $RPM_BUILD_ROOT%{_rpmlibdir}/macros
746
747 %if %{with python3}
748 # Remove anything that rpm make install might put there
749 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
750 cd python
751 %py3_install
752 cd ..
753 %endif
754
755 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
756
757 # wrong location, not used anyway
758 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
759
760 %find_lang %{name}
761
762 %clean
763 rm -rf $RPM_BUILD_ROOT
764
765 %posttrans
766 if [ -e /var/lib/rpm/Packages ] && \
767                 ! %{_rpmlibdir}/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
768         if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
769                         /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
770                 echo
771                 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
772                 echo
773         fi
774         echo
775         echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
776         echo 'you should ignore it and restart poldek'
777         echo
778         %{_rpmlibdir}/dbupgrade.sh
779 fi
780
781 %post   lib -p /sbin/ldconfig
782 %postun lib -p /sbin/ldconfig
783
784 %pretrans build
785 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
786
787 %files -f %{name}.lang
788 %defattr(644,root,root,755)
789 %doc ChangeLog CREDITS README
790
791 %dir /etc/pki/rpm-gpg
792 /etc/pki/rpm-gpg/TLD-Linux.asc
793
794 %attr(755,root,root) /bin/rpm
795 %attr(755,root,root) %{_bindir}/rpmdb
796 %attr(755,root,root) %{_bindir}/rpmkeys
797 %attr(755,root,root) %{_bindir}/rpmquery
798 %attr(755,root,root) %{_bindir}/rpmverify
799
800 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
801 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
802 # this is ok to be replaced
803 %config %verify(not md5 mtime size) %{_sysconfdir}/rpm/platform
804
805 %{_mandir}/man8/rpm.8*
806 %{_mandir}/man8/rpmdb.8*
807 %{_mandir}/man8/rpmkeys.8*
808 %{_mandir}/man8/rpm-misc.8*
809 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
810 %lang(fr) %{_mandir}/fr/man8/rpm.8*
811 %lang(ja) %{_mandir}/ja/man8/rpm.8*
812 %lang(ko) %{_mandir}/ko/man8/rpm.8*
813 %lang(pl) %{_mandir}/pl/man8/rpm.8*
814 %lang(ru) %{_mandir}/ru/man8/rpm.8*
815 %lang(sk) %{_mandir}/sk/man8/rpm.8*
816
817 %dir /var/lib/rpm
818
819 %{_rpmlibdir}/rpmpopt*
820 %{_rpmlibdir}/rpmrc
821 %{_rpmlibdir}/macros
822 %dir %{_rpmlibdir}/macros.d
823 %dir %{_rpmlibdir}/platform
824 %{_rpmlibdir}/platform/noarch-*
825 %ifarch %{ix86} %{x8664} x32
826 %{_rpmlibdir}/platform/athlon*
827 %{_rpmlibdir}/platform/geode*
828 %{_rpmlibdir}/platform/i?86*
829 %{_rpmlibdir}/platform/pentium*
830 %endif
831 %ifarch %{x8664} x32
832 %{_rpmlibdir}/platform/amd64*
833 %{_rpmlibdir}/platform/ia32e*
834 %{_rpmlibdir}/platform/x86_64*
835 %{_rpmlibdir}/platform/x32*
836 %endif
837 %ifarch alpha
838 %{_rpmlibdir}/platform/alpha*
839 %endif
840 %ifarch aarch64
841 %{_rpmlibdir}/platform/aarch64*
842 %endif
843 %ifarch %{arm}
844 %{_rpmlibdir}/platform/arm*
845 %endif
846 %ifarch ia64
847 %{_rpmlibdir}/platform/ia64*
848 %endif
849 %ifarch mips mipsel mips64 mips64el
850 %{_rpmlibdir}/platform/mips*
851 %endif
852 %ifarch %{ppc}
853 %{_rpmlibdir}/platform/ppc*
854 %endif
855 %ifarch sparc sparc64
856 %{_rpmlibdir}/platform/sparc*
857 %endif
858
859 %dir %{_rpmlibdir}/tld
860
861 %attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh
862 %attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion
863 %attr(755,root,root) %{_rpmlibdir}/rpmdb_reset
864 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
865 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
866
867 # valgrind suppression file for rpm
868 %{_rpmlibdir}/rpm.supp
869
870 %files base
871 %defattr(644,root,root,755)
872 %dir %{_sysconfdir}/rpm
873 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
874 %dir %{_rpmlibdir}
875 %attr(755,root,root) %{_bindir}/banner.sh
876 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
877 %dir /var/lib/banner
878
879 %files lib
880 %defattr(644,root,root,755)
881 %attr(755,root,root) /%{_lib}/librpm.so.9
882 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
883 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
884 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
885 %attr(755,root,root) /%{_lib}/librpmio.so.9
886 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
887 %attr(755,root,root) /%{_lib}/librpmsign.so.9
888 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
889 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
890
891 %files devel
892 %defattr(644,root,root,755)
893 %attr(755,root,root) %{_libdir}/librpm.so
894 %attr(755,root,root) %{_libdir}/librpmbuild.so
895 %attr(755,root,root) %{_libdir}/librpmio.so
896 %attr(755,root,root) %{_libdir}/librpmsign.so
897 %{_libdir}/librpm*.la
898 %{_includedir}/rpm
899 %{_pkgconfigdir}/*.pc
900
901 %files utils
902 %defattr(644,root,root,755)
903 %attr(755,root,root) %{_bindir}/rpm2archive
904 %attr(755,root,root) %{_bindir}/rpm2cpio
905 %attr(755,root,root) %{_bindir}/rpmgraph
906 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
907 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
908 %attr(755,root,root) %{_rpmlibdir}/tgpg
909 %attr(755,root,root) %{_rpmlibdir}/debugedit
910 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
911 %{_mandir}/man8/rpm2archive.8*
912 %{_mandir}/man8/rpm2cpio.8*
913 %{_mandir}/man8/rpmdeps.8*
914 %{_mandir}/man8/rpmgraph.8*
915 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
916 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
917 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
918 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
919 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
920 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
921 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
922
923 %files build
924 %defattr(644,root,root,755)
925 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
926 %attr(755,root,root) %{_rpmlibdir}/brp-*
927 %attr(755,root,root) %{_rpmlibdir}/check-files
928 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
929 %attr(755,root,root) %{_rpmlibdir}/elfdeps
930 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
931 # needs hacked pkg-config to return anything
932 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
933 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
934
935 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
936 # must be here for "Requires: rpm-*prov" to work
937 #%{_rpmlibdir}/macros.d/cmake
938 #%{_rpmlibdir}/macros.d/gstreamer
939 #%{_rpmlibdir}/macros.d/libtool
940 #%{_rpmlibdir}/macros.d/perl
941 #%{_rpmlibdir}/macros.d/pkgconfig
942 #%{_rpmlibdir}/macros.d/python
943 #%{_rpmlibdir}/macros.d/selinux
944 #%{_rpmlibdir}/macros.d/tcl
945 #%{_rpmlibdir}/macros.rpmbuild
946
947 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
948 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
949 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
950 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
951 %attr(755,root,root) %{_rpmlibdir}/find-provides
952 %attr(755,root,root) %{_rpmlibdir}/find-requires
953 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
954 %attr(755,root,root) %{_rpmlibdir}/script.req
955 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
956
957 %dir %{_rpmlibdir}/fileattrs
958 %{_rpmlibdir}/fileattrs/debuginfo.attr
959 %{_rpmlibdir}/fileattrs/desktop.attr
960 %{_rpmlibdir}/fileattrs/elf.attr
961 %{_rpmlibdir}/fileattrs/font.attr
962 %{_rpmlibdir}/fileattrs/libtool.attr
963 %{_rpmlibdir}/fileattrs/metainfo.attr
964 %{_rpmlibdir}/fileattrs/ocaml.attr
965 %{_rpmlibdir}/fileattrs/perl.attr
966 %{_rpmlibdir}/fileattrs/perllib.attr
967 %{_rpmlibdir}/fileattrs/pkgconfig.attr
968 %{_rpmlibdir}/fileattrs/python.attr
969 %{_rpmlibdir}/fileattrs/pythondist.attr
970 %{_rpmlibdir}/fileattrs/script.attr
971
972 %attr(755,root,root) %{_bindir}/gendiff
973 %attr(755,root,root) %{_bindir}/rpmbuild
974 %attr(755,root,root) %{_bindir}/rpmspec
975
976 %{_mandir}/man1/gendiff.1*
977 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
978 %{_mandir}/man8/rpmbuild.8*
979 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
980 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
981 %{_mandir}/man8/rpmspec.8*
982
983 %files perlprov
984 %defattr(644,root,root,755)
985 %attr(755,root,root) %{_rpmlibdir}/perl.*
986
987 %files pythonprov
988 %defattr(644,root,root,755)
989 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
990
991 %if %{with python3}
992 %files -n python3-rpm
993 %defattr(644,root,root,755)
994 %dir %{py3_sitedir}/rpm
995 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
996 %{py3_sitedir}/rpm/*.py
997 %{py3_sitedir}/rpm-%{version}-py*.egg-info
998 %{py3_sitedir}/rpm/__pycache__
999 %endif
1000
1001 %if %{with plugins}
1002 %files plugin-audit
1003 %defattr(644,root,root,755)
1004 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
1005 %{_mandir}/man8/rpm-plugin-audit.8*
1006
1007 %files plugin-syslog
1008 %defattr(644,root,root,755)
1009 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
1010 %{_mandir}/man8/rpm-plugin-syslog.8*
1011
1012 %files plugin-systemd-inhibit
1013 %defattr(644,root,root,755)
1014 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
1015 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
1016
1017 %files plugin-ima
1018 %defattr(644,root,root,755)
1019 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1020 %{_mandir}/man8/rpm-plugin-ima.8*
1021
1022 %files plugin-prioreset
1023 %defattr(644,root,root,755)
1024 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1025 %{_mandir}/man8/rpm-plugin-prioreset.8*
1026
1027 %files plugin-selinux
1028 %defattr(644,root,root,755)
1029 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1030 %{_mandir}/man8/rpm-plugin-selinux.8*
1031 %endif
1032
1033 %files sign
1034 %defattr(644,root,root,755)
1035 %attr(755,root,root) %{_bindir}/rpmsign
1036 %{_mandir}/man8/rpmsign.8*
1037
1038 %if %{with apidocs}
1039 %files apidocs
1040 %defattr(644,root,root,755)
1041 %doc doc/librpm/html/*
1042 %endif