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