BR: acl-devel libcap-devel
[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_without  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 %{_ver_ge '%{_rpmversion}' '4.12'} && %{_ver_lt '%{_rpmversion}' '5.0'}
17  %define        with_recommends_tags
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.1
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/PLD-3.0-Th-GPG-key.asc
36 # Source1-md5:  23914bb49fafe7153cee87126d966461
37 Source2:        macros.local
38 Source3:        macros.lang
39 Source4:        %{name}.sysconfig
40 Source5:        %{name}.groups
41 Source6:        %{name}-groups-po.awk
42 Source7:        %{name}-install-tree
43 Source8:        %{name}-hrmib-cache
44 Source9:        %{name}-user_group.sh
45 # http://svn.pld-linux.org/banner.sh/
46 Source10:       banner.sh
47 Source11:       %{name}.noautoprov
48 Source12:       %{name}.noautoprovfiles
49 Source13:       %{name}.noautoreq
50 Source14:       %{name}.noautoreqfiles
51 Source15:       perl.prov
52 Source16:       %{name}db_checkversion.c
53 Source17:       %{name}db_reset.c
54 Source18:       dbupgrade.sh
55 Patch0:         %{name}-man_pl.patch
56 Patch1:         %{name}-popt-aliases.patch
57 Patch2:         %{name}-perl-macros.patch
58 Patch3:         %{name}-perl-req-perlfile.patch
59 Patch4:         %{name}-scripts-closefds.patch
60 Patch6:         %{name}-perl_req-INC_dirs.patch
61 Patch7:         %{name}-debuginfo.patch
62 Patch8:         %{name}-libtool-deps.patch
63 Patch9:         %{name}-builddir-readlink.patch
64 Patch10:        %{name}-changelog_order_check_nonfatal.patch
65 Patch11:        %{name}-postun-nofail.patch
66 Patch12:        %{name}-clean-docdir.patch
67 Patch13:        %{name}-perl-magic.patch
68 Patch14:        %{name}-ignore-missing-macro-files.patch
69 Patch15:        x32.patch
70 Patch16:        rpm5-db-compat.patch
71 Patch17:        python-internal-build.patch
72 Patch18:        rpmversion.patch
73 Patch19:        pkgconfig.patch
74 Patch20:        uname-deps.patch
75 Patch21:        aarch64.patch
76 URL:            https://rpm.org/
77 BuildRequires:  acl-devel
78 BuildRequires:  db-devel >= %{db_ver}
79 BuildRequires:  autoconf >= 2.63
80 BuildRequires:  automake >= 1.4
81 BuildRequires:  bzip2-devel >= 1.0.2-17
82 BuildRequires:  elfutils-devel >= 0.108
83 BuildRequires:  gettext-tools >= 0.19.2
84 BuildRequires:  libarchive-devel
85 BuildRequires:  libcap-devel
86 BuildRequires:  libmagic-devel
87 BuildRequires:  libgcrypt-devel
88 %if %{with plugins}
89 BuildRequires:  audit-libs-devel
90 BuildRequires:  dbus-devel
91 %{?with_imaevm:BuildRequires:   libimaevm-devel >= 1.0}
92 BuildRequires:  libselinux-devel >= 2.1.0
93 %endif
94 # needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
95 BuildRequires:  libstdc++-devel
96 BuildRequires:  libtool >= 1:1.4.2-9
97 BuildRequires:  ossp-uuid-devel
98 BuildRequires:  patch >= 2.2
99 BuildRequires:  pkgconfig(lua) >= 5.1
100 BuildRequires:  popt-devel >= %{popt_ver}
101 BuildRequires:  python3-modules
102 %if %{with python3}
103 BuildRequires:  python3-devel
104 BuildRequires:  rpm-pythonprov
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-pld-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-pld-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 %ifarch aarch64
562 %patch21 -p1
563 %endif
564
565 install %{SOURCE15} scripts/perl.prov.in
566
567 %{__mv} -f scripts/perl.req{,.in}
568
569 # generate Group translations to *.po
570 awk -f %{SOURCE6} %{SOURCE5}
571
572 install %{SOURCE16} tools/rpmdb_checkversion.c
573 install %{SOURCE17} tools/rpmdb_reset.c
574
575 %{__sed} -i -e '1s,/usr/bin/python,%{__python3},' scripts/pythondistdeps.py
576
577 %build
578 %{__libtoolize}
579 %{__aclocal}
580 %{__autoheader}
581 %{__autoconf}
582 %{__automake}
583
584 # rpm checks for CPU type at runtime, but it looks better
585 sed -i \
586         -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
587         -e 's|@host_cpu@|%{_target_cpu}|' \
588         -e 's|@host_os@|%{_target_os}|' \
589         macros.in
590
591 %configure \
592         WITH_PERL_VERSION=no \
593         __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
594         __GPG=%{_bindir}/gpg \
595 %if %{with python3}
596         PYTHON=python3 \
597         --enable-python \
598 %endif
599         --disable-silent-rules \
600         --enable-shared \
601         --enable-bdb \
602         --enable-ndb \
603         --enable-sqlite \
604         --enable-zstd \
605         --with-lua \
606         %{?with_imaevm:--with-imaevm} \
607         --with-cap \
608         --with-acl \
609         --with-audit \
610         --with-archive \
611         --with-selinux=%{!?with_plugins:no}%{?with_plugins:yes} \
612         %{!?with_plugins:--disable-plugins} \
613         --with-vendor=pld
614
615 %{__make}
616
617 %{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb
618 %{__cc} %{rpmcflags} tools/rpmdb_reset.c -o tools/rpmdb_reset -ldb
619
620 if tools/rpmdb_checkversion -V 2>&1 | grep "t match library version"; then
621         echo "Error linking rpmdb tools!"
622         exit 1
623 fi
624 if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
625         echo "Error linking rpmdb tools!"
626         exit 1
627 fi
628
629 %if %{with python3}
630 cd python
631 %py3_build
632 %endif
633
634 %install
635 rm -rf $RPM_BUILD_ROOT
636 install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/{rpm,pki/rpm-gpg}} \
637         $RPM_BUILD_ROOT{/var/lib/{banner,rpm},/var/cache/hrmib}
638
639 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
640
641 %{__make} install \
642         pkgconfigdir=%{_pkgconfigdir} \
643         DESTDIR=$RPM_BUILD_ROOT
644
645 # cleanup
646 %ifnarch %{ix86} %{x8664} x32
647 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/athlon-linux/macros
648 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/geode-linux/macros
649 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i386-linux/macros
650 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i486-linux/macros
651 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i586-linux/macros
652 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/i686-linux/macros
653 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium3-linux/macros
654 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/pentium4-linux/macros
655 %endif
656
657 %ifnarch %{x8664} x32
658 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/amd64-linux/macros
659 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia32e-linux/macros
660 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x32-linux/macros
661 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/x86_64-linux/macros
662 %endif
663
664 %ifnarch %{ppc}
665 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/m68k-linux/macros
666 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc32dy4-linux/macros
667 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc64*-linux/macros
668 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8260-linux/macros
669 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc8560-linux/macros
670 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc-linux/macros
671 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ppc*series-linux/macros
672 %endif
673
674 %ifnarch aarch64
675 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/aarch64-linux/macros
676 %endif
677
678 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/alpha*-linux/macros
679 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/arm*-linux/macros
680 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/ia64-linux/macros
681 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/mips*-linux/macros
682 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/riscv64-linux/macros
683 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/s390*-linux/macros
684 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sh*-linux/macros
685 rm $RPM_BUILD_ROOT%{_rpmlibdir}/platform/sparc*-linux/macros
686
687 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
688
689 install -d $RPM_BUILD_ROOT%{_rpmlibdir}/pld
690
691 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
692 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
693 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
694 cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rpm
695
696 cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_bindir}/banner.sh
697
698 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
699 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
700 cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
701 cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
702 cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
703 cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
704
705 cp -p tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/
706 cp -p tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/
707 cp -p %{SOURCE18} $RPM_BUILD_ROOT%{_rpmlibdir}/dbupgrade.sh
708
709 # move rpm to /bin
710 %{__mv} $RPM_BUILD_ROOT%{_bindir}/rpm $RPM_BUILD_ROOT/bin
711 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmquery
712 ln -sf /bin/rpm $RPM_BUILD_ROOT%{_bindir}/rpmverify
713
714 # move essential libs to /lib (libs that /bin/rpm links to)
715 for a in librpm.so librpmbuild.so librpmio.so librpmsign.so; do
716         mv -f $RPM_BUILD_ROOT%{_libdir}/${a}.* $RPM_BUILD_ROOT/%{_lib}
717         ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/${a}.*.*.*) $RPM_BUILD_ROOT%{_libdir}/${a}
718 done
719
720 #./rpmdb --macros=macros --rcfile=rpmrc --dbpath=/home/users/baggins/devel/PLD/rpm/BUILD/rpm-4.15.1/x/ --initdb
721
722 # Make sure we have bdb set a default backend
723 grep -qE "db_backend[[:blank:]]+bdb" $RPM_BUILD_ROOT%{_rpmlibdir}/macros
724
725 %if %{with python3}
726 # Remove anything that rpm make install might put there
727 %{__rm} -rf $RPM_BUILD_ROOT%{py3_sitedir}
728 cd python
729 %py3_install
730 cd ..
731 %endif
732
733 %{__rm} $RPM_BUILD_ROOT%{_libdir}/rpm-plugins/*.la
734
735 # wrong location, not used anyway
736 %{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log}
737
738 %find_lang %{name}
739
740 %clean
741 rm -rf $RPM_BUILD_ROOT
742
743 %posttrans
744 if [ -e /var/lib/rpm/Packages ] && \
745                 ! %{_rpmlibdir}/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
746         if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
747                         /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
748                 echo
749                 echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
750                 echo
751         fi
752         echo
753         echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
754         echo 'you should ignore it and restart poldek'
755         echo
756         %{_rpmlibdir}/dbupgrade.sh
757 fi
758
759 %triggerpostun -- %{name} < 4.4.9-44
760 %{_rpmlibdir}/hrmib-cache
761
762 %post   lib -p /sbin/ldconfig
763 %postun lib -p /sbin/ldconfig
764
765 %pretrans build
766 find %{_rpmlibdir} -name '*-linux' -type l | xargs rm -f
767
768 %files -f %{name}.lang
769 %defattr(644,root,root,755)
770 %doc ChangeLog CREDITS README
771
772 %dir /etc/pki/rpm-gpg
773 /etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
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
784 %{_mandir}/man8/rpm.8*
785 %{_mandir}/man8/rpmdb.8*
786 %{_mandir}/man8/rpmkeys.8*
787 %{_mandir}/man8/rpm-misc.8*
788 %{?with_plugins:%{_mandir}/man8/rpm-plugins.8*}
789 %lang(fr) %{_mandir}/fr/man8/rpm.8*
790 %lang(ja) %{_mandir}/ja/man8/rpm.8*
791 %lang(ko) %{_mandir}/ko/man8/rpm.8*
792 %lang(pl) %{_mandir}/pl/man8/rpm.8*
793 %lang(ru) %{_mandir}/ru/man8/rpm.8*
794 %lang(sk) %{_mandir}/sk/man8/rpm.8*
795
796 %dir /var/lib/rpm
797
798 # exported package NVRA (stamped with install tid)
799 # net-snmp hrSWInstalledName queries, bash-completions
800 %dir /var/cache/hrmib
801
802 %{_rpmlibdir}/rpmpopt*
803 %{_rpmlibdir}/rpmrc
804 %{_rpmlibdir}/macros
805 %dir %{_rpmlibdir}/macros.d
806 %dir %{_rpmlibdir}/platform
807 %{_rpmlibdir}/platform/noarch-*
808 %ifarch %{ix86} %{x8664} x32
809 %{_rpmlibdir}/platform/athlon*
810 %{_rpmlibdir}/platform/geode*
811 %{_rpmlibdir}/platform/i?86*
812 %{_rpmlibdir}/platform/pentium*
813 %endif
814 %ifarch %{x8664} x32
815 %{_rpmlibdir}/platform/amd64*
816 %{_rpmlibdir}/platform/ia32e*
817 %{_rpmlibdir}/platform/x86_64*
818 %{_rpmlibdir}/platform/x32*
819 %endif
820 %ifarch alpha
821 %{_rpmlibdir}/platform/alpha*
822 %endif
823 %ifarch aarch64
824 %{_rpmlibdir}/platform/aarch64*
825 %endif
826 %ifarch ia64
827 %{_rpmlibdir}/platform/ia64*
828 %endif
829 %ifarch mips mipsel mips64 mips64el
830 %{_rpmlibdir}/platform/mips*
831 %endif
832 %ifarch %{ppc}
833 %{_rpmlibdir}/platform/ppc*
834 %endif
835 %ifarch sparc sparc64
836 %{_rpmlibdir}/platform/sparc*
837 %endif
838
839 %dir %{_rpmlibdir}/pld
840
841 %attr(755,root,root) %{_rpmlibdir}/hrmib-cache
842
843 %attr(755,root,root) %{_rpmlibdir}/dbupgrade.sh
844 %attr(755,root,root) %{_rpmlibdir}/rpmdb_checkversion
845 %attr(755,root,root) %{_rpmlibdir}/rpmdb_reset
846 %attr(755,root,root) %{_rpmlibdir}/rpmdb_dump
847 %attr(755,root,root) %{_rpmlibdir}/rpmdb_load
848
849 # valgrind suppression file for rpm
850 %{_rpmlibdir}/rpm.supp
851
852 %files base
853 %defattr(644,root,root,755)
854 %dir %{_sysconfdir}/rpm
855 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
856 %dir %{_rpmlibdir}
857 %attr(755,root,root) %{_bindir}/banner.sh
858 %attr(755,root,root) %{_rpmlibdir}/user_group.sh
859 %dir /var/lib/banner
860
861 %files lib
862 %defattr(644,root,root,755)
863 %attr(755,root,root) /%{_lib}/librpm.so.9
864 %attr(755,root,root) /%{_lib}/librpm.so.%{sover}
865 %attr(755,root,root) /%{_lib}/librpmbuild.so.9
866 %attr(755,root,root) /%{_lib}/librpmbuild.so.%{sover}
867 %attr(755,root,root) /%{_lib}/librpmio.so.9
868 %attr(755,root,root) /%{_lib}/librpmio.so.%{sover}
869 %attr(755,root,root) /%{_lib}/librpmsign.so.9
870 %attr(755,root,root) /%{_lib}/librpmsign.so.%{sover}
871 %{?with_plugins:%dir %{_libdir}/rpm-plugins}
872
873 %files devel
874 %defattr(644,root,root,755)
875 %attr(755,root,root) %{_libdir}/librpm.so
876 %attr(755,root,root) %{_libdir}/librpmbuild.so
877 %attr(755,root,root) %{_libdir}/librpmio.so
878 %attr(755,root,root) %{_libdir}/librpmsign.so
879 %{_libdir}/librpm*.la
880 %{_includedir}/rpm
881 %{_pkgconfigdir}/*.pc
882
883 %files utils
884 %defattr(644,root,root,755)
885 %attr(755,root,root) %{_bindir}/rpm2archive
886 %attr(755,root,root) %{_bindir}/rpm2cpio
887 %attr(755,root,root) %{_bindir}/rpmgraph
888 %attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
889 %attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
890 %attr(755,root,root) %{_rpmlibdir}/tgpg
891 %attr(755,root,root) %{_rpmlibdir}/debugedit
892 %attr(755,root,root) %{_rpmlibdir}/rpmdeps
893 %{_mandir}/man8/rpm2archive.8*
894 %{_mandir}/man8/rpm2cpio.8*
895 %{_mandir}/man8/rpmdeps.8*
896 %{_mandir}/man8/rpmgraph.8*
897 %lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
898 %lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
899 %lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
900 %lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
901 %lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
902 %lang(ja) %{_mandir}/ja/man8/rpmgraph.8*
903 %lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
904
905 %files build
906 %defattr(644,root,root,755)
907 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
908 %attr(755,root,root) %{_rpmlibdir}/brp-*
909 %attr(755,root,root) %{_rpmlibdir}/check-files
910 %attr(755,root,root) %{_rpmlibdir}/install-build-tree
911 %attr(755,root,root) %{_rpmlibdir}/elfdeps
912 %attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
913 # needs hacked pkg-config to return anything
914 %attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
915 %attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
916
917 %attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
918 # must be here for "Requires: rpm-*prov" to work
919 #%{_rpmlibdir}/macros.d/cmake
920 #%{_rpmlibdir}/macros.d/gstreamer
921 #%{_rpmlibdir}/macros.d/libtool
922 #%{_rpmlibdir}/macros.d/perl
923 #%{_rpmlibdir}/macros.d/pkgconfig
924 #%{_rpmlibdir}/macros.d/python
925 #%{_rpmlibdir}/macros.d/selinux
926 #%{_rpmlibdir}/macros.d/tcl
927 #%{_rpmlibdir}/macros.rpmbuild
928
929 %attr(755,root,root) %{_rpmlibdir}/check-buildroot
930 %attr(755,root,root) %{_rpmlibdir}/check-prereqs
931 %attr(755,root,root) %{_rpmlibdir}/check-rpaths
932 %attr(755,root,root) %{_rpmlibdir}/check-rpaths-worker
933 %attr(755,root,root) %{_rpmlibdir}/find-provides
934 %attr(755,root,root) %{_rpmlibdir}/find-requires
935 %attr(755,root,root) %{_rpmlibdir}/ocamldeps.sh
936 %attr(755,root,root) %{_rpmlibdir}/script.req
937 %attr(755,root,root) %{_rpmlibdir}/sepdebugcrcfix
938
939 %dir %{_rpmlibdir}/fileattrs
940 %{_rpmlibdir}/fileattrs/debuginfo.attr
941 %{_rpmlibdir}/fileattrs/desktop.attr
942 %{_rpmlibdir}/fileattrs/elf.attr
943 %{_rpmlibdir}/fileattrs/font.attr
944 %{_rpmlibdir}/fileattrs/libtool.attr
945 %{_rpmlibdir}/fileattrs/metainfo.attr
946 %{_rpmlibdir}/fileattrs/ocaml.attr
947 %{_rpmlibdir}/fileattrs/perl.attr
948 %{_rpmlibdir}/fileattrs/perllib.attr
949 %{_rpmlibdir}/fileattrs/pkgconfig.attr
950 %{_rpmlibdir}/fileattrs/python.attr
951 %{_rpmlibdir}/fileattrs/pythondist.attr
952 %{_rpmlibdir}/fileattrs/script.attr
953
954 %attr(755,root,root) %{_bindir}/gendiff
955 %attr(755,root,root) %{_bindir}/rpmbuild
956 %attr(755,root,root) %{_bindir}/rpmspec
957
958 %{_mandir}/man1/gendiff.1*
959 %lang(pl) %{_mandir}/pl/man1/gendiff.1*
960 %{_mandir}/man8/rpmbuild.8*
961 %lang(ja) %{_mandir}/ja/man8/rpmbuild.8*
962 %lang(pl) %{_mandir}/pl/man8/rpmbuild.8*
963 %{_mandir}/man8/rpmspec.8*
964
965 %files perlprov
966 %defattr(644,root,root,755)
967 %attr(755,root,root) %{_rpmlibdir}/perl.*
968
969 %files pythonprov
970 %defattr(644,root,root,755)
971 %attr(755,root,root) %{_rpmlibdir}/pythondistdeps.py
972
973 %if %{with python3}
974 %files -n python3-rpm
975 %defattr(644,root,root,755)
976 %dir %{py3_sitedir}/rpm
977 %attr(755,root,root) %{py3_sitedir}/rpm/*.so
978 %{py3_sitedir}/rpm/*.py
979 %{py3_sitedir}/rpm-%{version}-py*.egg-info
980 %{py3_sitedir}/rpm/__pycache__
981 %endif
982
983 %if %{with plugins}
984 %files plugin-audit
985 %defattr(644,root,root,755)
986 %attr(755,root,root) %{_libdir}/rpm-plugins/audit.so
987 %{_mandir}/man8/rpm-plugin-audit.8*
988
989 %files plugin-syslog
990 %defattr(644,root,root,755)
991 %attr(755,root,root) %{_libdir}/rpm-plugins/syslog.so
992 %{_mandir}/man8/rpm-plugin-syslog.8*
993
994 %files plugin-systemd-inhibit
995 %defattr(644,root,root,755)
996 %attr(755,root,root) %{_libdir}/rpm-plugins/systemd_inhibit.so
997 %{_mandir}/man8/rpm-plugin-systemd-inhibit.8*
998
999 %files plugin-ima
1000 %defattr(644,root,root,755)
1001 %attr(755,root,root) %{_libdir}/rpm-plugins/ima.so
1002 %{_mandir}/man8/rpm-plugin-ima.8*
1003
1004 %files plugin-prioreset
1005 %defattr(644,root,root,755)
1006 %attr(755,root,root) %{_libdir}/rpm-plugins/prioreset.so
1007 %{_mandir}/man8/rpm-plugin-prioreset.8*
1008
1009 %files plugin-selinux
1010 %defattr(644,root,root,755)
1011 %attr(755,root,root) %{_libdir}/rpm-plugins/selinux.so
1012 %{_mandir}/man8/rpm-plugin-selinux.8*
1013 %endif
1014
1015 %files sign
1016 %defattr(644,root,root,755)
1017 %attr(755,root,root) %{_bindir}/rpmsign
1018 %{_mandir}/man8/rpmsign.8*
1019
1020 %if %{with apidocs}
1021 %files apidocs
1022 %defattr(644,root,root,755)
1023 %doc doc/librpm/html/*
1024 %endif
This page took 0.134326 seconds and 3 git commands to generate.