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