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