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