#
# TODO:
-# - check if glob() patch needs resurrecting/rewriting
-# - check if we want shell autodeps: Requires: executable(ln) executable(mv)
-# - %{_arch} = i686 not as used to be i386 (platform file thing?):
-# 5.0.2: rpm -E '%_target_base_arch %_arch'
-# i386 i686
-# 4.4.9: rpm -E '%_target_base_arch %_arch'
-# i386 i386
-# - python(abi) cap is not provided automatically because /usr/lib*/libpython2*.so.*
-# matches ELF first
+# - make key infrastructure code fallback from keyutils to plain mode in case keyctl
+# returns -ENOSYS
# - add macros for some ppc, mipsel, alpha and sparc
#
-# - headerGet() making poldek segfault http://rpm5.org/cvs/tktview?tn=38,1
-# - rpm doesn't exit when no sources/patches available http://rpm5.org/cvs/tktview?tn=40,1
-# - http://rpm5.org/cvs/tktview?tn=41&_submit=Show
# - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
#
# Conditional build:
%bcond_with static # build static rpm+rpmi
-%bcond_with apidocs # don't generate documentation with doxygen
+%bcond_without apidocs # don't generate documentation with doxygen
%bcond_without python # don't build python bindings
%bcond_without selinux # build without selinux support
%bcond_without suggest_tags # build without Suggest tag (bootstrapping)
-%bcond_without neon # build with HTTP/WebDAV support (neon library)
-%bcond_without db # BerkeleyDB
-%bcond_without sqlite # build with SQLite support
-%bcond_with sqlite_dbapi # default database backend is sqlite
-%bcond_without system_lua # use system lua
+%bcond_with db61 # use DB 6.1 instead of 5.2
+%bcond_with neon # build with HTTP/WebDAV support (neon library)
+%bcond_with sqlite # build with SQLite support
+%bcond_with system_lua # use system lua
+%bcond_without system_pcre # use system pcre
+%bcond_with keyutils # build with keyutils support
# force_cc - force using __cc other than "%{_target_cpu}-pld-linux-gcc"
# force_cxx - force using __cxx other than "%{_target_cpu}-pld-linux-g++"
# force_cpp - force using __cpp other than "%{_target_cpu}-pld-linux-gcc -E"
#
-%if %{with sqlite_dbapi}
-%define with_sqlite 1
-%endif
-%if %{without db} && %{without sqlite}
-%{error:Need db or sqlite}
-ERROR
+%if %{with sqlite}
+# Error: /lib64/librpmio-5.4.so: undefined symbol: sqlite3_enable_load_extension
+%define sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
%endif
# versions of required libraries
-%define reqdb_ver 5.3
+%if %{with db61}
+%define reqdb_pkg db6.1
+%define reqdb_ver 6.1
+%define reqdb_pkgver 6.1.19
+%else
+%define reqdb_pkg db5.2
+%define reqdb_ver 5.2
+%define reqdb_pkgver 5.2.36.0-4
+%endif
%define reqpopt_ver 1.15
-%define beecrypt_ver 2:4.1.2-4
-%define sover 5.4
+%define beecrypt_ver 2:4.2.0
+%define sover 5.4
Summary: RPM Package Manager
Summary(de.UTF-8): RPM Packet-Manager
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 5.4.10
-Release: 0.1
-License: LGPL
+Version: 5.4.15
+Release: 39
+License: LGPL v2.1
Group: Base
-# http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.10-0.20120706.src.rpm
+# http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm
Source0: %{name}-%{version}.tar.gz
-# Source0-md5: 5d099161bdd3203265ab32ffad3360b5
-Source100: cpu-os-macros.tar.gz
-# Source100-md5: 928034a5bdceb398881bc14b5f29973b
+# Source0-md5: 4067f83ca8b5bf1a21e443c0cff3efa0
+# See README.cpu-os-macros how to update cpu-os-macros.a
+Source100: cpu-os-macros.a
+Source101: README.cpu-os-macros
Source1: %{name}.groups
Source2: macros.pld.in
Source3: %{name}-install-tree
Source5: %{name}-hrmib-cache
Source6: %{name}-groups-po.awk
Source7: %{name}-compress-doc
-Source8: %{name}-check-files
-Source9: %{name}-php-provides
-Source10: %{name}-php-requires
-Source11: %{name}.sysinfo
-Source12: perl.prov
-Source13: %{name}-user_group.sh
-Source14: %{name}.sysconfig
-Source15: %{name}-macros.java
-Source16: %{name}-java-requires
+Source8: %{name}-php-provides
+Source9: %{name}-php-requires
+Source10: %{name}.sysinfo
+Source11: perl.prov
+Source12: %{name}-user_group.sh
+Source13: %{name}.sysconfig
+Source14: %{name}-java-requires
# http://svn.pld-linux.org/banner.sh/
-Source17: banner.sh
-Source19: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
-# Source19-md5: 08b29584dd349aac9caa7610131a0a88
-Source20: %{name}-mimetypedeps
-Source21: macros.local
-Source22: rpm.noautocompressdoc
-Source23: rpm.noautoprov
-Source24: rpm.noautoprovfiles
-Source25: rpm.noautoreq
-Source26: rpm.noautoreqdep
-Source27: rpm.noautoreqfiles
-Source28: macros.php
-Source29: %{name}-php-requires.php
-
+Source15: banner.sh
+Source16: ftp://ftp.pld-linux.org/dists/th/PLD-3.0-Th-GPG-key.asc
+# Source16-md5: 23914bb49fafe7153cee87126d966461
+Source17: %{name}-mimetypedeps
+Source18: macros.local
+Source19: %{name}.noautocompressdoc
+Source20: %{name}.noautoprov
+Source21: %{name}.noautoprovfiles
+Source22: %{name}.noautoreq
+Source24: %{name}.noautoreqfiles
+Source25: %{name}-php-requires.php
+Source26: %{name}db_checkversion.c
+Source27: macros.lang
+Source28: %{name}db_reset.c
+Source29: dbupgrade.sh
+Source30: rubygems.rb
+Source31: gem_helper.rb
Patch0: %{name}-branch.patch
Patch1: %{name}-man_pl.patch
Patch2: %{name}-popt-aliases.patch
-Patch3: %{name}-rpmpopt.patch
+Patch3: %{name}-nosetproctitle.patch
Patch4: %{name}-perl-macros.patch
Patch5: %{name}-perl-req-perlfile.patch
-Patch7: %{name}-scripts-closefds.patch
-Patch8: %{name}-php-macros.patch
-Patch9: %{name}-gettext-in-header.patch
-Patch11: %{name}-lua.patch
-
-Patch14: %{name}-etc_dir.patch
-Patch16: %{name}-php-deps.patch
-Patch19: %{name}-glob.patch
-
-Patch26: %{name}-notsc.patch
-Patch27: %{name}-hack-norpmlibdep.patch
-
-Patch34: %{name}-epoch0.patch
-Patch35: %{name}-perl_req-INC_dirs.patch
-Patch36: %{name}-debuginfo.patch
-Patch37: %{name}-doxygen_hack.patch
-
-Patch41: vendor-pld.patch
-
-Patch42: %{name}-old-fileconflicts-behaviour.patch
-
-Patch46: %{name}-mono.patch
-Patch47: %{name}-javadeps.patch
-
-Patch55: %{name}-truncate-cvslog.patch
-
-Patch59: %{name}-libtool-deps.patch
-Patch60: %{name}-mimetype.patch
-Patch61: %{name}-sparc64.patch
-Patch62: %{name}-gendiff.patch
-Patch70: %{name}-configure-autoconf.patch
-Patch72: openmp.patch
-Patch73: %{name}-URPM-build-fix.patch
-Patch74: %{name}-db5.3.patch
-Patch75: %{name}-helperEVR-noassert.patch
-Patch76: %{name}-unglobal.patch
-Patch77: %{name}-builddir-readlink.patch
-Patch78: %{name}-changelog_order_check_nonfatal.patch
-Patch79: %{name}-cleanbody.patch
-Patch80: %{name}-dirdeps-macro.patch
-Patch81: %{name}-installbeforeerase.patch
-Patch82: %{name}-libmagic-locale.patch
-Patch83: %{name}-namespace-probe.patch
-Patch84: %{name}-popt-coreutils.patch
-Patch85: %{name}-postun-nofail.patch
+Patch6: %{name}-scripts-closefds.patch
+Patch7: %{name}-php-macros.patch
+Patch8: %{name}-gettext-in-header.patch
+Patch9: %{name}-lua.patch
+Patch10: %{name}-php-deps.patch
+Patch11: %{name}-notsc.patch
+Patch12: %{name}-hack-norpmlibdep.patch
+Patch13: %{name}-dont-copy-descriptive-tags.patch
+Patch14: %{name}-perl_req-INC_dirs.patch
+Patch15: %{name}-debuginfo.patch
+Patch16: vendor-pld.patch
+Patch17: %{name}-old-fileconflicts-behaviour.patch
+Patch18: %{name}-javadeps.patch
+Patch19: %{name}-truncate-cvslog.patch
+Patch20: %{name}-libtool-deps.patch
+Patch21: %{name}-mimetype.patch
+Patch22: %{name}-sparc64.patch
+Patch23: %{name}-gendiff.patch
+Patch24: openmp.patch
+Patch25: %{name}-URPM-build-fix.patch
+Patch26: %{name}-semanage.patch
+Patch27: %{name}-helperEVR-noassert.patch
+Patch28: %{name}-unglobal.patch
+Patch29: %{name}-builddir-readlink.patch
+Patch30: %{name}-changelog_order_check_nonfatal.patch
+Patch31: %{name}-cleanbody.patch
+Patch32: %{name}-dirdeps-macro.patch
+Patch33: %{name}-installbeforeerase.patch
+Patch34: %{name}-libmagic-locale.patch
+Patch35: %{name}-namespace-compare.patch
+Patch36: %{name}-popt-coreutils.patch
+Patch37: %{name}-postun-nofail.patch
+Patch38: %{name}-silence-RPM_CHAR_TYPE.patch
+Patch39: %{name}-fix-missing-types-in-headers.patch
+Patch40: %{name}-fix--p-interpreter-and-empty-script.patch
+Patch41: %{name}-db_buffer_small.patch
+Patch42: %{name}-pattern_Release.patch
+Patch43: %{name}-fix-___build_pre-macro.patch
+Patch44: %{name}-missing-patch-file-fails-build.patch
+Patch45: %{name}-remove-misleading-missing-patch-message.patch
+Patch46: %{name}-file-magic-can-be-mixed-case.patch
+Patch47: %{name}-query-always-noisy.patch
+Patch48: %{name}-verify-ghosts-broken-logic.patch
+Patch49: %{name}-python-enable-compat-RPMSENSE.patch
+Patch50: %{name}-dont-treat-gstreamer-modules-as-font.patch
+Patch51: %{name}-gst-inspect-typo.patch
+Patch52: %{name}-null-term-ascii-digest.patch
+Patch53: %{name}-lua-enable-extra-libs.patch
+Patch54: %{name}-fix-filedigests-verify.patch
+Patch55: %{name}-disable-hmac-verify.patch
+Patch56: %{name}-macros.patch
+Patch57: %{name}-db5.2.patch
+Patch58: %{name}-preserve-iterator.patch
+Patch59: gcc6-stdlib.patch
+Patch60: %{name}-python-sitescriptdir.patch
+Patch61: %{name}-clean-docdir.patch
+Patch62: %{name}-DB_CONFIG.patch
+Patch63: %{name}-pythoneggs.patch
+Patch64: %{name}-fix-compress-doc.patch
+Patch65: %{name}-parseSpec-skip-empty-tags.patch
+Patch66: %{name}-payload-use-hashed-inode.patch
+Patch67: %{name}-repackage-dont-force-max-compression.patch
+Patch70: python-%{name}sense-missingok.patch
+Patch71: %{name}-changelog-encoding.patch
+Patch72: %{name}-preserve-tag-type.patch
+Patch74: %{name}-fix-internal-lua-build.patch
+Patch75: %{name}-double_check_file_deps.patch
+Patch77: %{name}-lua-expat.patch
+Patch78: %{name}-double_check_unpackaged_subdirs.patch
+Patch79: %{name}-rpmspec.patch
+Patch80: %{name}-revert-gpg-argv-parsing.patch
+Patch81: %{name}-perl-magic.patch
+Patch82: %{name}-5.4.15-use-DSA-sig.patch
+Patch83: %{name}-ignore-missing-macro-files.patch
+Patch84: x32.patch
+Patch85: rpm-CVE-2013-6435.patch
+Patch86: rpm-CVE-2014-8118.patch
+Patch87: %{name}-file-output-for-ELF.patch
+Patch88: %{name}-rpmtdnext.patch
+Patch89: disable-header-verification.patch
+Patch90: %{name}-cppcompat.patch
+Patch91: py-disable-fetch.patch
+Patch92: fast_python_deps.patch
+Patch93: python2_explicit.patch
+Patch94: do_not_write_before_macro_buffer.patch
+Patch95: rpm-python-spec-header.patch
+Patch96: skip-ldconfig-optimization.patch
+
+# Patches imported from Mandriva
+
+# status: ready to merge, it's already been merged on HEAD, so commiting it to rpm-5_4
+# would basically just mean backporting it..
+Patch1000: %{name}-5.4.4-add-_specfile-macro.patch
+# status: needs to be cleaned up and properly reviewed together with rest
+# of the patches related to dependency generation
+Patch1001: %{name}-5.4.9-avoid-dependencies-on-self.patch
+# status: probably ready to merge
+Patch1002: %{name}-5.4.4-pkgconfigdeps-check-path.patch
+# status: probably okay to merge, but discuss on rpm-devel first
+Patch1003: %{name}-5.4.4-glob-wildcards-for-loading-macro-files.patch
+# status: needs to be discussed
+Patch1004: %{name}-5.4.4-allow-installation-of-repackaged-rpms.patch
+# status: ready to merge
+Patch1005: %{name}-5.4.8-dont-show-suggests-with-requires.patch
+# status: ready for merge
+Patch1006: %{name}-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch
+# status: probably okay to merge, but discuss on rpm-devel first
+Patch1007: %{name}-5.4.10-duplicate_files_terminate_build.patch
+# status: same as above
+Patch1008: %{name}-5.4.10-unpackaged_subdirs_terminate_build.patch
+# mdvbz#64898
+# status: uncertain, might be okay to merge, discuss on rpm-devel first
+Patch1009: %{name}-5.4.4-rpmbuild-withoutclean.patch
+# no sense in having an additional dependency on 'pkgconfig' on all packages that
+# have a pkgconfig file, it's not needed for them to be made useful and anything
+# actuallly using pkgconfig for this purpose will pull it in as a dependency anyways...
+# status: might be okay to merge, but discuss on rpm-devel first
+Patch1010: %{name}-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch
+# status: ready for merge
+Patch1011: %{name}-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch
+# $RPM_BUILD_DIR isn't necessarily the same as $PWD, it's %%{_builddir}, not
+# %%{_builddir}/%%{?buildsubdir}, messing up paths in debug packages created..
+# status: needs to be discussed and investigated a bit better..
+Patch1012: %{name}-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch
+# status: probably okay to merge, but discuss on rpm-devel first
+Patch1013: %{name}-5.4.10-files-listed-twice-terminates-build.patch
+# status: probably okay to merge
+Patch1014: %{name}-5.4.9-ruby1.9-fixes.patch
+# status: keep locally
+Patch1015: %{name}-5.4.9-keep-loading-script-macros.patch
+# status: same as for other dep gen patches
+Patch1016: %{name}-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch
+# status: idem
+Patch1017: %{name}-5.4.9-rpmfc-extract-dependencies-for-all-files.patch
+# status: probably okay to merge
+Patch1019: %{name}-5.4.5-python-export-spec-macros.patch
+# status: idem
+Patch1020: %{name}-5.4.9-font-provides.patch
+# stauus: idem
+Patch1021: %{name}-5.4.7-kmod-dependencies.patch
+# status: probably okay to merge, discuss on rpm-devel first
+Patch1022: %{name}-5.4.5-skip-dependencies-for-character-devices.patch
+# status: probably okay to merge
+Patch1024: %{name}-5.4.5-rpmfc-apply-python-coloring-from-magic.patch
+# status: probably okay to merge
+Patch1026: %{name}-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch
+# status: ready
+Patch1027: %{name}-5.4.7-fix-generation-of-ruby-abi-provides.patch
+# crash reproducable with 'rpm -qa --triggers'
+# status: ready
+Patch1028: %{name}-5.4.7-hdrfmt-fix-unitialized-argv-element.patch
+# status: same as for other dep gen patches
+Patch1029: %{name}-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch
+# status: ready
+Patch1030: %{name}-5.4.7-fix-minor-memleaks.patch
+# status: ready
+Patch1031: %{name}-5.4.9-mire-fix-strings-lacking-null-terminator.patch
+# status: ready
+Patch1032: %{name}-5.4.9-rpmpython-fix-input.patch
+# status: ready
+Patch1033: %{name}-5.4.7-no-seqid_init-on-rdonly-database.patch
+# status: probably ready for merging
+Patch1034: %{name}-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch
+# status: probably ready to merge, discuss on rpm-devel first
+Patch1035: %{name}-5.4.9-fix-verify-segfault.patch
+# Due to rpmdav/neon being written in a different fashion than other rpmio clients,
+# the inconsistent behaviour affects code elsewhere which expects consistent behaviour,
+# with the result being that when unable to download files, neon will save error
+# page as the target file.
+# status: should go upstream, but uncertain about "correct" fix, ie. this is
+# more of a workaround, while rewriting rpmdav code to behave consistently
+# would be "the right thing to do". Yet I'm not fully able to grasp all of the
+# code and don't want to spend more time just to get the API..
+Patch1037: %{name}-5.4.10-fix-neon-saving-error-pages-as-target-file.patch
+# As the transaction flags for ignoring arch & os are no longer used, there's
+# currently no way to ignore arch & os of packages anymore. This patch adds
+# support for doing this again by defining rpm variables and overriding
+# --ignorearch & --ignoreos to set these.
+# status: needs to be discussed upstream before thinking about merging
+Patch1038: %{name}-5.4.10-support-ignore-arch-and-os-again.patch
+# status: ready for merge
+Patch1039: %{name}-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch
+# we want that patch too, a bit of builder infrastructure relies on NOSIGNATURES
+Patch1040: %{name}-5.4.9-support-signatures-and-digest-disablers.patch
+# lack insight on actual functionality, which anyways seems broken, so let's
+# disable it to avoid errors from berkeley db..
+# status: keep locally
+Patch1041: %{name}-5.4.9-disable-l10ndir.patch
+# status: ready for merge
+Patch1042: %{name}-5.4.9-fix-rpm_qa-pattern.patch
+# warning: introduces memory leak
+Patch1043: %{name}-5.4.12-copy-Value-string.patch
+Patch1044: %{name}-5.4.12-fix-rpmlua-print.patch
+Patch1045: %{name}-5.4.12-fix-rpmpython-module-import-init.patch
+Patch1046: %{name}-5.4.12-truncate-output-buffer-after-use.patch
+Patch1047: %{name}-5.4.13-perl-bindings-do-not-use-xmalloc.patch
+# proyvind:
+# there's a rpmdbchk tool I wrote a while back, which might help you. although
+# the incidents it's able to deal with is rather limited ATM... it might help
+# you out, if not and you'll be able to solve yer problem, you could take a
+# stab at adding support for fixing your specific problem to the util ;)
+# https://abf.io/openmandriva/rpm/raw/master/rpm-5.4.14-rpmdbchk.patch
+Patch1048: %{name}-5.4.14-rpmdbchk.patch
+# https://abf.io/openmandriva/rpm/raw/master/rpm-5.4.14-no-assert-abort-with-broken-headers.patch
+Patch1049: %{name}-5.4.14-no-assert-abort-with-broken-headers.patch
+
+Patch1050: python-libx32.patch
+
URL: http://rpm5.org/
-BuildRequires: autoconf >= 2.60
+BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver}
+%if %{with sqlite}
+BuildRequires: sqlite3-devel
+%else
+BuildRequires: %{reqdb_pkg}-sql-devel >= %{reqdb_pkgver}
+%endif
+BuildRequires: autoconf >= 2.63
BuildRequires: automake >= 1.4
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: bzip2-devel >= 1.0.2-17
-%{?with_db:BuildRequires: db-devel >= %{reqdb_ver}}
BuildRequires: elfutils-devel >= 0.108
-#BuildRequires: gettext-autopoint >= 0.11.4-2
-BuildRequires: gettext-devel >= 0.11.4-2
-BuildRequires: keyutils-devel
+BuildRequires: gettext-tools >= 0.19.2
+%{?with_keyutils:BuildRequires: keyutils-devel}
BuildRequires: libmagic-devel
-%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
+%if %{with selinux}
+BuildRequires: libselinux-devel >= 2.1.0
+BuildRequires: libsemanage-devel >= 2.1.0
+BuildRequires: libsepol-devel >= 2.1.0
+%endif
# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
BuildRequires: libstdc++-devel
BuildRequires: libtool >= 1:1.4.2-9
BuildRequires: libxml2-devel
BuildRequires: neon-devel >= 0.25.5
%endif
+%{?with_system_lua:BuildRequires: lua52-devel >= 5.2.2}
+BuildRequires: ossp-uuid-devel
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_system_lua:BuildRequires: lua51-devel >= 5.1.2}
%{?with_python:BuildRequires: python-devel >= 1:2.3}
BuildRequires: python-modules >= 1:2.3
%{?with_python:BuildRequires: rpm-pythonprov}
-%{?with_sqlite:BuildRequires: sqlite3-devel}
BuildRequires: tcl
-BuildRequires: zlib-devel
BuildRequires: xz-devel
+BuildRequires: zlib-devel
%if %{with apidocs}
BuildRequires: doxygen
BuildRequires: ghostscript
%endif
%if %{with static}
# Require static library only for static build
+BuildRequires: %{reqdb_pkg}-static >= %{reqdb_pkgver}
BuildRequires: beecrypt-static >= %{beecrypt_ver}
BuildRequires: bzip2-static >= 1.0.2-17
-%{?with_db:BuildRequires: db-static >= %{reqdb_ver}}
BuildRequires: elfutils-static
BuildRequires: glibc-static >= 2.2.94
BuildRequires: libmagic-static
-%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
+%if %{with selinux}
+BuildRequires: libselinux-static >= 2.1.0
+BuildRequires: libsemanage-static >= 2.1.0
+BuildRequires: libsepol-static >= 2.1.0
+%endif
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
%endif
+Requires(posttrans): coreutils
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-lib = %{version}-%{release}
Requires: beecrypt >= %{beecrypt_ver}
Conflicts: poldek < 0.21-0.20070703.00.3
# segfaults with lzma 0.42.2
Conflicts: lzma-libs < 4.999.3
+Conflicts: util-vserver < 0.30.216-1.pre3034.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _binary_payload w9.gzdio
-%define _noPayloadPrefix 1
# don't require very fresh rpm.macros to build
%define __gettextize gettextize --copy --force --intl ; cp -f po/Makevars{.template,}
%define x8664 amd64 ia32e x86_64
# stabilize new build environment
+%ifnarch x32
%define __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-pld-linux-gcc}
%define __newcxx %{?force_cxx}%{!?force_cxx:%{_target_cpu}-pld-linux-g++}
%define __newcpp %{?force_cpp}%{!?force_cpp:%{_target_cpu}-pld-linux-gcc -E}
+%else
+# x32 is a very special case
+%define __newcc %{?force_cc}%{!?force_cc:x86_64-pld-linux-gnux32-gcc}
+%define __newcxx %{?force_cxx}%{!?force_cxx:x86_64-pld-linux-gnux32-g++}
+%define __newcpp %{?force_cpp}%{!?force_cpp:x86_64-pld-linux-gnux32-gcc -E}
+%endif
%define _rpmlibdir /usr/lib/rpm
%define _noautocompressdoc RPM-GPG-KEY
-%define specflags -fno-strict-aliasing
-
%description
RPM is a powerful package manager, which can be used to build,
install, query, verify, update, and uninstall individual software
Summary: RPMs library
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
+Requires: %{reqdb_pkg} >= %{reqdb_pkgver}
+%if %{with sqlite}
+Requires: sqlite3 >= %{sqlite_build_version}
+%else
+Requires: %{reqdb_pkg}-sql >= %{reqdb_pkgver}
+%endif
Requires: beecrypt >= %{beecrypt_ver}
-%{?with_db:Requires: db >= %{reqdb_ver}}
Requires: libmagic >= 1.15-2
-%{?with_selinux:Requires: libselinux >= 1.18}
+%{?with_selinux:Requires: libselinux >= 2.1.0}
Requires: popt >= %{reqpopt_ver}
Obsoletes: rpm-libs
# avoid SEGV caused by mixed db versions
Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
Group: Development/Libraries
Requires: %{name}-lib = %{version}-%{release}
+Requires: %{reqdb_pkg}-devel >= %{reqdb_pkgver}
Requires: beecrypt-devel >= %{beecrypt_ver}
Requires: bzip2-devel
-%{?with_db:Requires: db-devel >= %{reqdb_ver}}
Requires: elfutils-devel
-Requires: keyutils-devel
+%{?with_keyutils:Requires: keyutils-devel}
Requires: libmagic-devel
-%{?with_selinux:Requires: libselinux-devel}
+%if %{with selinux}
+Requires: libselinux-devel
+Requires: libsemanage-devel
+Requires: libsepol-devel
+%endif
Requires: popt-devel >= %{reqpopt_ver}
Requires: zlib-devel
Summary(uk.UTF-8): Статична бібліотека для програм, що працюють з пакетами rpm
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
+Requires: %{reqdb_pkg}-static >= %{reqdb_pkgver}
Requires: beecrypt-static >= %{beecrypt_ver}
Requires: bzip2-static
-%{?with_db:Requires: db-static >= %{reqdb_ver}}
Requires: elfutils-static
-Requires: keyutils-static
+%{?with_keyutils:Requires: keyutils-static}
Requires: libmagic-static
+%if %{with selinux}
+Requires: libselinux-static
+Requires: libsemanage-static
+Requires: libsepol-static
+%endif
Requires: popt-static >= %{reqpopt_ver}
Requires: zlib-static
Summary(ru.UTF-8): Скрипты и утилиты, необходимые для сборки пакетов
Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
Group: Applications/File
-Requires(pre): findutils
-Requires: %{name}-build-macros >= 1.433-2
+Requires(pretrans): coreutils
+Requires(pretrans): findutils
+Requires: %{name}-build-macros >= 1.712
Requires: %{name}-utils = %{version}-%{release}
Requires: /bin/id
Requires: awk
Requires: gzip
Requires: make
Requires: patch
-Requires: sed
+Requires: sed >= 4.0
Requires: sh-utils
-Requires: tar
+Requires: tar >= 1:1.22
Requires: textutils
+Requires: which
+Requires: xz
Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
%ifarch %{x8664}
Summary(pl.UTF-8): Dodatkowe narzędzia do sprawdzenia zależności skryptów Perla w pakietach RPM
Group: Applications/File
Requires: %{name} = %{version}-%{release}
+Requires: perl-Encode
Requires: perl-devel
Requires: perl-modules
Group: Applications/File
Requires: %{name} = %{version}-%{release}
Requires: python
+Requires: python-setuptools
Requires: python-modules
%description pythonprov
Group: Applications/File
Requires: %{name} = %{version}-%{release}
Requires: sed >= 4.0
+Suggests: php-pear-PHP_CompatInfo
%description php-pearprov
Additional utilities for checking PHP PEAR provides/requires in RPM
Dodatkowe narzędzia do sprawdzenia zależności skryptów PHP PEAR w
pakietach RPM.
+%package rubyprov
+Summary: Ruby tools, which simplify creation of RPM packages with Ruby software
+Summary(pl.UTF-8): Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w Ruby
+Group: Applications/File
+Requires: %{name} = %{version}-%{release}
+Requires: ruby
+Requires: ruby-modules
+Requires: ruby-rubygems
+
+%description rubyprov
+Ruby tools, which simplifies creation of RPM packages with Ruby
+software.
+
+%description rubyprov -l pl.UTF-8
+Makra ułatwiające tworzenie pakietów RPM z programami napisanymi w
+Ruby.
+
%package -n python-rpm
Summary: Python interface to RPM library
Summary(pl.UTF-8): Pythonowy interfejs do biblioteki RPM-a
Summary(pt_BR.UTF-8): Módulo Python para aplicativos que manipulam pacotes RPM
Group: Development/Languages/Python
Requires: %{name} = %{version}-%{release}
-%pyrequires_eq python
+Requires: python
Obsoletes: rpm-python
%description -n python-rpm
Summary: RPM API documentation and guides
Summary(pl.UTF-8): Documentacja API RPM-a i przewodniki
Group: Documentation
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
%description apidocs
Documentation for RPM API and guides in HTML format generated from rpm
źrodeł RPM-a przez doxygen.
%prep
-%setup -q -n %{name}-%{version}%{?subver} -a100
+%setup -q -n %{name}-%{version}%{?subver}
+install -d platform
+cd platform
+ar x %{SOURCE100}
+cd -
+
#patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
%patch7 -p1
%patch8 -p1
-%patch9 -p1
-%{?with_system_lua:%patch11 -p1}
-# CHECK ME - macrofiles: ~/etc could be used
-#%%patch14 -p1
+%{?with_system_lua:%patch9 -p1}
+%patch10 -p1
+%ifnarch i386 i486
+# enable TSC for capable archs
+%patch11 -p1
+%endif
+%patch12 -p1
+%patch13 -p1
+%patch14 -p0
+%patch15 -p1
%patch16 -p1
-echo '%%define __perl_provides %%{__perl} /usr/lib/rpm/perl.prov' > macros.perl
-echo '%%define __perl_requires %%{__perl} /usr/lib/rpm/perl.req' >> macros.perl
-echo '# obsoleted file' > macros.python
-cp -p %{SOURCE20} macros.php
-echo '%%define __mono_provides /usr/lib/rpm/mono-find-provides' > macros.mono
-echo '%%define __mono_requires /usr/lib/rpm/mono-find-requires' >> macros.mono
-install %{SOURCE9} scripts/php.prov.in
-install %{SOURCE10} scripts/php.req.in
-install %{SOURCE12} scripts/perl.prov
-
-%ifarch i386 i486
-# disable TSC
-%patch26 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%ifarch sparc64
+%patch22 -p1
%endif
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
%patch34 -p1
-%patch35 -p0
+%patch35 -p1
%patch36 -p1
%patch37 -p1
-%patch41 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%{?with_db61:%patch41 -p1}
%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
%patch46 -p1
%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p0
+%patch53 -p1
+%patch54 -p1
%patch55 -p1
+%patch56 -p1
+%{!?with_db61:%patch57 -p1}
+%patch58 -p1
%patch59 -p1
-# Maybe, at last we can remove this?
-#patch19 -p1
%patch60 -p1
-%ifarch sparc64
%patch61 -p1
-%endif
%patch62 -p1
+%patch63 -p1
+%patch64 -p1
+%patch65 -p1
+%patch66 -p1
+%patch67 -p1
%patch70 -p1
-%patch72 -p1 -b .wiget
-%patch73 -p1
+%patch71 -p1
+%patch72 -p1
%patch74 -p1
%patch75 -p1
-%patch76 -p1
-%patch77 -p1
+%patch77 -p0
%patch78 -p1
%patch79 -p1
%patch80 -p1
-%patch81 -p1
+%patch81 -p0
%patch82 -p1
-%patch83 -p1
%patch84 -p1
%patch85 -p1
+%patch86 -p1
+%patch87 -p1
+%patch88 -p1
+%patch89 -p1
+%patch90 -p1
+%patch91 -p1
+
+%patch1000 -p1
+%patch1001 -p1
+%patch1002 -p1
+%patch1003 -p1
+%patch1004 -p1
+%patch1005 -p1
+%patch1006 -p1
+%patch1007 -p1
+%patch1008 -p1
+%patch1009 -p1
+%patch1010 -p1
+%patch1011 -p1
+%patch1012 -p1
+%patch1013 -p1
+%patch1014 -p1
+%patch1015 -p1
+%patch1016 -p1
+%patch1017 -p1
+%patch1019 -p1
+%patch1020 -p1
+%patch1021 -p1
+%patch1022 -p1
+%patch1024 -p1
+%patch1026 -p1
+%patch1027 -p1
+%patch1028 -p1
+%patch1029 -p1
+%patch1030 -p1
+%patch1031 -p1
+%patch1032 -p1
+%patch1033 -p1
+%patch1034 -p1
+%patch1035 -p1
+%patch1037 -p1
+%patch1038 -p1
+%patch1039 -p1
+%patch1040 -p1
+# don't delete, may be usefull if jbj descides to enable this again
+#%patch1041 -p1
+%patch1042 -p1
+%patch1043 -p1
+%patch1044 -p1
+%patch1045 -p1
+%patch1046 -p1
+%patch1047 -p1
+%patch1048 -p1
+%patch1049 -p1
+
+%patch83 -p1
+%patch92 -p1
+%patch93 -p1
+%patch94 -p1
+%patch95 -p1
+%patch96 -p1
+
+%patch1050 -p1
+
+install %{SOURCE2} macros/pld.in
+install %{SOURCE8} scripts/php.prov.in
+install %{SOURCE9} scripts/php.req.in
+install %{SOURCE11} scripts/perl.prov.in
+cp -p %{SOURCE30} scripts/rubygems.rb
+cp -p %{SOURCE31} scripts/gem_helper.rb
-cp -p %{SOURCE2} macros/pld.in
+rm scripts/find-php*
-cd scripts
-mv -f perl.req perl.req.in
-mv -f perl.prov perl.prov.in
-cd ..
+%{__mv} -f scripts/perl.req{,.in}
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
+install %{SOURCE26} tools/rpmdb_checkversion.c
+install %{SOURCE28} tools/rpmdb_reset.c
+
+for extlib in beecrypt neon %{?with_system_pcre:pcre} popt; do
+ [ -d $extlib ] && %{__rm} -r $extlib
+done
+
%build
%{__libtoolize}
#%{__autopoint}
%{__autoconf}
%{__automake}
+# rpm checks for CPU type at runtime, but it looks better
+sed -i \
+ -e 's|@host@|%{_target_cpu}-%{_target_vendor}-%{_target_os}|' \
+ -e 's|@host_cpu@|%{_target_cpu}|' \
+ -e 's|@host_os@|%{_target_os}|' \
+ macros/macros.in
+
%{?with_system_lua:CPPFLAGS="-I/usr/include/lua51 %{rpmcppflags}"}
# pass CC and CXX too in case of building with some older configure macro
%configure \
CXX="%{__newcxx}" \
CPP="%{__newcpp}" \
WITH_PERL_VERSION=no \
+ __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
+ --disable-silent-rules \
--enable-shared \
--enable-static \
%{!?with_apidocs:--without-apidocs} \
- %{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \
- %{!?with_python:--without-python} \
- --with%{!?with_selinux:out}-selinux \
- --with-libelf \
- --with-zlib=external \
- --with-bzip2=external \
--with-beecrypt=external \
+ --with-bugreport="http://bugs.pld-linux.org/" \
+ --with-bzip2=external \
+ --with-db=external \
+ --with-dbapi=db \
+ --with-file=external \
+ --with-keyutils=%{?with_keyutils:external}%{!?with_keyutils:no} \
+ --with-libelf \
+ --with-lua=%{!?with_system_lua:internal}%{?with_system_lua:external} \
--with-lzma=external \
- --with-xz=external \
--with-neon=%{?with_neon:external}%{!?with_neon:no} \
- --with-file=external \
+ --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/%%{_target}/macros:%{_rpmlibdir}/macros.build:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%%{_target}/macros:%{_sysconfdir}/rpm/macros.d/*.macros:~/etc/.rpmmacros:~/.rpmmacros' \
+ --without-path-versioned \
+ --with-pcre=%{!?with_system_pcre:internal}%{?with_system_pcre:external} \
--with-popt=external \
- --with-db=%{?with_db:external}%{!?with_db:no} \
+ %{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \
+ %{!?with_python:--without-python} \
+ --with-selinux=%{!?with_selinux:no}%{?with_selinux:external} \
+ --with-semanage=%{!?with_selinux:no}%{?with_selinux:external} \
+ --with-sepol=%{!?with_selinux:no}%{?with_selinux:external} \
--with-sqlite=%{?with_sqlite:yes}%{!?with_sqlite:no} \
- --with-dbapi=%{!?with_sqlite_dbapi:db}%{?with_sqlite_dbapi:sqlite} \
- --with-lua=%{!?with_system_lua:internal}%{?with_system_lua:external} \
- --with-pcre=external \
- --with-keyutils=none \
- --without-path-versioned \
- --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:%{_rpmlibdir}/%%{_target}/macros:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%%{_target}/macros:~/etc/rpmmacros:~/etc/.rpmmacros:~/.rpmmacros' \
- --with-extra-path-macros=%{_rpmlibdir}/platform/%%{_target}/macros:%{_sysconfdir}/rpm/macros.d/*.macros:%{_rpmlibdir}/macros.d/pld \
- --with-bugreport="http://bugs.pld-linux.org/" \
- --with-vendor=pld
+ --with-uuid=%{_libdir}:%{_includedir}/ossp-uuid \
+ --with-vendor=pld \
+ --with-xz=external \
+ --with-zlib=external
%{__make} -j1 \
CC="%{__cc}" \
%{?with_apidocs:%{__make} apidocs}
+%{__cc} %{rpmcflags} -I/usr/include/db%{reqdb_ver} tools/rpmdb_checkversion.c \
+ -o tools/rpmdb_checkversion -ldb-%{reqdb_ver}
+%{__cc} %{rpmcflags} -I/usr/include/db%{reqdb_ver} tools/rpmdb_reset.c \
+ -o tools/rpmdb_reset -ldb-%{reqdb_ver}
+
+if tools/rpmdb_checkversion -V 2>&1 | grep "t match library version"; then
+ echo "Error linking rpmdb tools!"
+ exit 1
+fi
+if tools/rpmdb_reset -V 2>&1 | grep "t match library version"; then
+ echo "Error linking rpmdb tools!"
+ exit 1
+fi
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner,/var/cache/hrmib,/etc/pki/rpm-gpg}
+install -d $RPM_BUILD_ROOT{/bin,/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm} \
+ $RPM_BUILD_ROOT{/var/lib/banner,/var/cache/hrmib,/etc/pki/rpm-gpg}
-install %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
+install %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
-%{__make} install \
+%{__make} -j1 install \
pkgconfigdir=%{_pkgconfigdir} \
DESTDIR=$RPM_BUILD_ROOT
-# install ARCH macros
-install -d $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux
-install cpu-os-macros/noarch-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
-
-%ifarch %{ix86}
-install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{i386,i486,i586,i686,athlon,pentium3,pentium4}-linux
-install cpu-os-macros/athlon-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/athlon-linux/macros
-install cpu-os-macros/i386-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i386-linux/macros
-install cpu-os-macros/i486-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i486-linux/macros
-install cpu-os-macros/i586-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i586-linux/macros
-install cpu-os-macros/i686-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/i686-linux/macros
-install cpu-os-macros/pentium3-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/pentium3-linux/macros
-install cpu-os-macros/pentium4-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/pentium4-linux/macros
+# install platform macros
+for f in platform/*macros; do
+ bn=${f#*/}
+ fn=${bn%.macros}/macros
+ install -m644 $f -D %{buildroot}%{_rpmlibdir}/$fn
+done
+
+# cleanup
+%ifnarch %{ix86} %{x8664} x32
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/athlon-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/i386-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/i486-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/i586-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/i686-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/pentium3-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/pentium4-linux/macros
%endif
-%ifarch %{x8664}
-install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{x86_64,ia32e,amd64}-linux
-install cpu-os-macros/x86_64-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/x86_64-linux/macros
-install cpu-os-macros/ia32e-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/ia32e-linux/macros
-install cpu-os-macros/amd64-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/amd64-linux/macros
+%ifnarch %{x8664} x32
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/amd64-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/ia32e-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/x32-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/x86_64-linux/macros
%endif
-%ifarch %{ppc}
-install -d $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux
-install cpu-os-macros/ppc-linux/macros $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux/macros
+%ifnarch %{ppc}
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux/macros
%endif
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/alpha*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/arm*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/ia64-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/k6-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/mips*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/ppc*series-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/ppc64*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/s390*-linux/macros
+rm $RPM_BUILD_ROOT%{_rpmlibdir}/sparc*-linux/macros
+
cat <<'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
# first platform file entry can't contain regexps
+%ifarch x32
+%{_target_cpu}-%{_target_vendor}-linux-gnux32
+%else
%{_target_cpu}-%{_target_vendor}-linux
+%endif
-# x86_64 things
%ifarch x86_64
x86_64-[^-]*-[Ll]inux(-gnu)?
amd64-[^-]*-[Ll]inux(-gnu)?
+x32-[^-]*-[Ll]inux(-gnu(x32)?)?
%endif
%ifarch amd64
amd64-[^-]*-[Ll]inux(-gnu)?
x86_64-[^-]*-[Ll]inux(-gnu)?
+x32-[^-]*-[Ll]inux(-gnu(x32)?)?
%endif
%ifarch ia32e
ia32e-[^-]*-[Ll]inux(-gnu)?
x86_64-[^-]*-[Ll]inux(-gnu)?
%endif
+%ifarch x32
+x32-[^-]*-[Ll]inux(-gnu(x32)?)?
+x86_64-[^-]*-[Ll]inux(-gnu)?
+amd64-[^-]*-[Ll]inux(-gnu)?
+%endif
-# x86 things
-%ifarch athlon %{x8664}
+%ifarch athlon %{x8664} x32
athlon-[^-]*-[Ll]inux(-gnu)?
%endif
-%ifarch pentium4 athlon %{x8664}
+%ifarch pentium4 athlon %{x8664} x32
pentium4-[^-]*-[Ll]inux(-gnu)?
%endif
-%ifarch pentium3 pentium4 athlon %{x8664}
+%ifarch pentium3 pentium4 athlon %{x8664} x32
pentium3-[^-]*-[Ll]inux(-gnu)?
%endif
-%ifarch i686 pentium3 pentium4 athlon %{x8664}
+%ifarch i686 pentium3 pentium4 athlon %{x8664} x32
i686-[^-]*-[Ll]inux(-gnu)?
%endif
-%ifarch i586 i686 pentium3 pentium4 athlon %{x8664}
+%ifarch i586 i686 pentium3 pentium4 athlon %{x8664} x32
i586-[^-]*-[Ll]inux(-gnu)?
%endif
-%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664}
+%ifarch i486 i586 i686 pentium3 pentium4 athlon %{x8664} x32
i486-[^-]*-[Ll]inux(-gnu)?
%endif
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
i386-[^-]*-[Ll]inux(-gnu)?
%endif
sparc-[^-]*-[Ll]inux(-gnu)?
%endif
-# noarch
noarch-[^-]*-.*
EOF
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/vpkg-provides*
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
-rm $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
+# Squash Extra Blank Lines
+%{__sed} -i -e '/./,/^$/!d' $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/vpkg-provides*
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-{prov,req}.pl
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-{provides,requires}.perl
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/find-lang.sh
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/lib/liblua.a
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/lib/liblua.la
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/mono-find-provides
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/mono-find-requires
# not installed since 4.4.8 (-tools-perl subpackage)
install scripts/rpmdiff scripts/rpmdiff.cgi $RPM_BUILD_ROOT%{_rpmlibdir}
-install macros.perl $RPM_BUILD_ROOT%{_rpmlibdir}/macros.perl
-install macros.python $RPM_BUILD_ROOT%{_rpmlibdir}/macros.python
-install macros.php $RPM_BUILD_ROOT%{_rpmlibdir}/macros.php
-install macros.mono $RPM_BUILD_ROOT%{_rpmlibdir}/macros.mono
-install %{SOURCE15} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.java
-
install %{SOURCE1} doc/manual/groups
install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
install %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond
install %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc
-install %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/check-files
-install %{SOURCE13} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
-install %{SOURCE16} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
-install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir}
+install %{SOURCE12} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
+install %{SOURCE14} $RPM_BUILD_ROOT%{_rpmlibdir}/java-find-requires
install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir}
-cp -p %{SOURCE29} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php
-install %{SOURCE20} $RPM_BUILD_ROOT%{_rpmlibdir}/mimetypedeps.sh
+cp -p %{SOURCE25} $RPM_BUILD_ROOT%{_rpmlibdir}/php.req.php
+install %{SOURCE17} $RPM_BUILD_ROOT%{_rpmlibdir}/mimetypedeps.sh
install %{SOURCE5} $RPM_BUILD_ROOT%{_rpmlibdir}/hrmib-cache
-install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/rpm
+install %{SOURCE13} $RPM_BUILD_ROOT/etc/sysconfig/rpm
-install %{SOURCE17} $RPM_BUILD_ROOT%{_bindir}/banner.sh
+install %{SOURCE15} $RPM_BUILD_ROOT%{_bindir}/banner.sh
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
-install %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
-install %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc
-install %{SOURCE23} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
-install %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
-install %{SOURCE25} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
-install %{SOURCE26} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep
-install %{SOURCE27} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
+install %{SOURCE18} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros
+install %{SOURCE27} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.lang
+install %{SOURCE19} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc
+install %{SOURCE20} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
+install %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
+install %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
+install %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Dirnames
-install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Filelinktos
+install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Filelinktos
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Obsoletename
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Providename
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Requirename
+install tools/rpmdb_checkversion $RPM_BUILD_ROOT%{_rpmlibdir}/bin
+install tools/rpmdb_reset $RPM_BUILD_ROOT%{_rpmlibdir}/bin
+install %{SOURCE29} $RPM_BUILD_ROOT%{_rpmlibdir}/bin/dbupgrade.sh
+
+# create macro loading wrappers for backward compatibility
+for m in gstreamer java mono perl php python; do
+ echo "%%{load:%{_rpmlibdir}/macros.d/$m}" >$RPM_BUILD_ROOT%{_rpmlibdir}/macros.$m
+done
+
+# moved to rpm-build-macros 1.699
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/macros.d/kernel
+
# for rpm -e|-U --repackage
install -d $RPM_BUILD_ROOT/var/{spool/repackage,lock/rpm}
touch $RPM_BUILD_ROOT/var/lock/rpm/transaction
# Bourne shell script vs ELF executable linked with rpm,rpmdb,rpmio
mv $RPM_BUILD_ROOT{%{_rpmlibdir},%{_bindir}}/rpm2cpio
+%if %{with python}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+%endif
# wrong location, not used anyway
%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
-# utils dropped in 4.4.8 -- their manuals
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/*/man8/rpmgraph.8
+# utils dropped in 5.4 -- their manuals
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/rpmgrep.1
+# script obsoleted by /usr/lib/rpm/bin/dbconvert binary
+%{__rm} $RPM_BUILD_ROOT%{_rpmlibdir}/dbconvert.sh
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
-%triggerpostun lib -- %{name}-lib < %{version}
-rm -f /var/lib/rpm/__db*
-
%pretrans
# this needs to be a dir
if [ -f %{_sysconfdir}/rpm/sysinfo ]; then
mkdir %{_sysconfdir}/rpm/sysinfo
fi
+%posttrans
+if [ -e /var/lib/rpm/Packages ] && \
+ ! %{_rpmlibdir}/bin/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm; then
+ if [ ! -e /var/lib/rpm.rpmbackup-%{version}-%{release} ] && \
+ /bin/cp -a /var/lib/rpm /var/lib/rpm.rpmbackup-%{version}-%{release}; then
+ echo
+ echo "Backup of the rpm database has been created in /var/lib/rpm.rpmbackup-%{version}-%{release}"
+ echo
+ fi
+ echo
+ echo 'If poldek aborts after migration with rpmdb error, this is expected behaviour,'
+ echo 'you should ignore it and restart poldek'
+ echo
+ %{_rpmlibdir}/bin/dbupgrade.sh
+fi
+
%triggerpostun -- %{name} < 4.4.9-44
%{_rpmlibdir}/hrmib-cache
%defattr(644,root,root,755)
%doc CHANGES CREDITS README pubkeys/JBJ-GPG-KEY manual/*
-%dir %{_sysconfdir}/pki/rpm-gpg
-%{_sysconfdir}/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
+%dir /etc/pki/rpm-gpg
+/etc/pki/rpm-gpg/PLD-3.0-Th-GPG-key.asc
%attr(755,root,root) /bin/rpm
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros.lang
%dir %{_sysconfdir}/rpm/sysinfo
# these are ok to be replaced
%config %verify(not md5 mtime size) %{_sysconfdir}/rpm/sysinfo/*
%{_mandir}/man8/rpm.8*
%lang(fr) %{_mandir}/fr/man8/rpm.8*
%lang(ja) %{_mandir}/ja/man8/rpm.8*
-%lang(ko) %{_mandir}/ko/man8/rpm.8*
%lang(pl) %{_mandir}/pl/man8/rpm.8*
%lang(ru) %{_mandir}/ru/man8/rpm.8*
%lang(sk) %{_mandir}/sk/man8/rpm.8*
%dir %{_rpmlibdir}/macros.d
%{_rpmlibdir}/macros.d/pld
%{_rpmlibdir}/cpuinfo.yaml
+%{_rpmlibdir}/noarch-*
+%ifarch %{ix86} %{x8664} x32
+%{_rpmlibdir}/i?86*
+%{_rpmlibdir}/pentium*
+%{_rpmlibdir}/athlon*
+%endif
+%ifarch alpha
+%{_rpmlibdir}/alpha*
+%endif
+%ifarch ia64
+%{_rpmlibdir}/ia64*
+%endif
+%ifarch mips mipsel mips64 mips64el
+%{_rpmlibdir}/mips*
+%endif
+%ifarch %{ppc}
+%{_rpmlibdir}/ppc*
+%endif
+%ifarch sparc sparc64
+%{_rpmlibdir}/sparc*
+%endif
+%ifarch %{x8664} x32
+%{_rpmlibdir}/amd64*
+%{_rpmlibdir}/ia32e*
+%{_rpmlibdir}/x86_64*
+%{_rpmlibdir}/x32*
+%endif
%attr(755,root,root) %{_rpmlibdir}/hrmib-cache
%dir %{_rpmlibdir}/bin
%attr(755,root,root) %{_rpmlibdir}/bin/dbconvert
+%attr(755,root,root) %{_rpmlibdir}/bin/dbupgrade.sh
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_checkversion
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmdb_reset
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmdbchk
%files base
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
%dir %{_rpmlibdir}
%attr(755,root,root) %{_bindir}/banner.sh
-%attr(755,root,root) %{_bindir}/multiarch-dispatch
%attr(755,root,root) %{_rpmlibdir}/user_group.sh
%dir /var/lib/banner
%attr(755,root,root) %{_libdir}/librpmmisc-%{sover}.so
%{_libdir}/librpm*.la
%{_includedir}/rpm
-%{_includedir}/multiarch-dispatch.h
%{_pkgconfigdir}/*.pc
%files static
%attr(755,root,root) %{_rpmlibdir}/bin/rpmcmp
%attr(755,root,root) %{_rpmlibdir}/bin/rpmdeps
%attr(755,root,root) %{_rpmlibdir}/bin/rpmdigest
-%attr(755,root,root) %{_rpmlibdir}/bin/rpmkey
+%if %{with selinux}
+%attr(755,root,root) %{_rpmlibdir}/bin/semodule
+%attr(755,root,root) %{_rpmlibdir}/bin/spooktool
+%endif
+%if %{without system_lua}
+%attr(755,root,root) %{_rpmlibdir}/bin/lua
+%attr(755,root,root) %{_rpmlibdir}/bin/luac
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmlua
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmluac
+%endif
+%{?with_keyutils:%attr(755,root,root) %{_rpmlibdir}/bin/rpmkey}
%attr(755,root,root) %{_rpmlibdir}/bin/rpmrepo
%{_mandir}/man8/rpm2cpio.8*
-%{_mandir}/man8/rpmcache.8*
%{_mandir}/man8/rpmconstant.8*
%{_mandir}/man8/rpmdeps.8*
%{_mandir}/man8/rpmmtree.8*
%lang(ja) %{_mandir}/ja/man8/rpm2cpio.8*
-%lang(ja) %{_mandir}/ja/man8/rpmcache.8*
-%lang(ko) %{_mandir}/ko/man8/rpm2cpio.8*
%lang(pl) %{_mandir}/pl/man8/rpm2cpio.8*
-%lang(pl) %{_mandir}/pl/man8/rpmcache.8*
%lang(pl) %{_mandir}/pl/man8/rpmdeps.8*
%lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
%attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
%attr(755,root,root) %{_rpmlibdir}/bin/api-sanity-autotest.pl
%attr(755,root,root) %{_rpmlibdir}/bin/api-sanity-checker.pl
+%{!?with_sqlite:%attr(755,root,root) %{_rpmlibdir}/bin/dbsql}
%attr(755,root,root) %{_rpmlibdir}/bin/install-sh
%attr(755,root,root) %{_rpmlibdir}/bin/mkinstalldirs
%attr(755,root,root) %{_rpmlibdir}/bin/pom2spec
+%attr(755,root,root) %{_rpmlibdir}/bin/rpmspec
%attr(755,root,root) %{_rpmlibdir}/bin/rpmspecdump
%attr(755,root,root) %{_rpmlibdir}/bin/sqlite3
%attr(755,root,root) %{_rpmlibdir}/bin/wget
%attr(755,root,root) %{_rpmlibdir}/vcheck
-%{_rpmlibdir}/noarch-*
-%ifarch %{ix86}
-%{_rpmlibdir}/i?86*
-%{_rpmlibdir}/pentium*
-%{_rpmlibdir}/athlon*
-%endif
-%ifarch alpha
-%{_rpmlibdir}/alpha*
-%endif
-%ifarch ia64
-%{_rpmlibdir}/ia64*
-%endif
-%ifarch mips mipsel mips64 mips64el
-%{_rpmlibdir}/mips*
-%endif
-%ifarch %{ppc}
-%{_rpmlibdir}/ppc*
-%endif
-%ifarch sparc sparc64
-%{_rpmlibdir}/sparc*
-%endif
-%ifarch %{x8664}
-%{_rpmlibdir}/amd64*
-%{_rpmlibdir}/ia32e*
-%{_rpmlibdir}/x86_64*
-%endif
-# must be here for "Requires: rpm-*prov" to work
-%{_rpmlibdir}/macros.java
-%{_rpmlibdir}/macros.mono
-%{_rpmlibdir}/macros.perl
-%{_rpmlibdir}/macros.php
# not used yet ... these six depend on perl
%attr(755,root,root) %{_rpmlibdir}/http.req
-%attr(755,root,root) %{_rpmlibdir}/mono*
+# we always used scripts provided by mono-devel, maybe move them here
+#%attr(755,root,root) %{_rpmlibdir}/mono-find-provides
+#%attr(755,root,root) %{_rpmlibdir}/mono-find-requires
+
+%attr(755,root,root) %{_rpmlibdir}/fontconfig.prov
+# must be here for "Requires: rpm-*prov" to work
%{_rpmlibdir}/macros.d/cmake
%{_rpmlibdir}/macros.d/gstreamer
%{_rpmlibdir}/macros.d/java
-%{_rpmlibdir}/macros.d/kernel
%{_rpmlibdir}/macros.d/libtool
%{_rpmlibdir}/macros.d/mono
%{_rpmlibdir}/macros.d/perl
%{_rpmlibdir}/macros.d/selinux
%{_rpmlibdir}/macros.d/tcl
%{_rpmlibdir}/macros.rpmbuild
+# compat wrappers
+%{_rpmlibdir}/macros.gstreamer
+%{_rpmlibdir}/macros.java
+%{_rpmlibdir}/macros.mono
+%{_rpmlibdir}/macros.perl
+%{_rpmlibdir}/macros.php
+%{_rpmlibdir}/macros.python
-%attr(755,root,root) %{_rpmlibdir}/check-multiarch-files
-%attr(755,root,root) %{_rpmlibdir}/gem_helper.rb
%attr(755,root,root) %{_rpmlibdir}/gstreamer.sh
%attr(755,root,root) %{_rpmlibdir}/kmod-deps.sh
-%attr(755,root,root) %{_rpmlibdir}/mkmultiarch
-%attr(755,root,root) %{_rpmlibdir}/pythoneggs.py
-%attr(755,root,root) %{_rpmlibdir}/rubygems.rb
%attr(755,root,root) %{_bindir}/gendiff
-%attr(755,root,root) %{_bindir}/multiarch-platform
%attr(755,root,root) %{_bindir}/rpmbuild
%dir %{_rpmlibdir}/helpers
# needs jar (any jdk), jcf-dump (gcc-java) to work
%attr(755,root,root) %{_rpmlibdir}/javadeps.sh
+%files rubyprov
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_rpmlibdir}/gem_helper.rb
+%attr(755,root,root) %{_rpmlibdir}/rubygems.rb
+
%files perlprov
%defattr(644,root,root,755)
%attr(755,root,root) %{_rpmlibdir}/perl.*
%files pythonprov
%defattr(644,root,root,755)
-%{_rpmlibdir}/macros.python
+%attr(755,root,root) %{_rpmlibdir}/pythoneggs.py
%attr(755,root,root) %{_rpmlibdir}/pythondeps.sh
%files php-pearprov
%defattr(644,root,root,755)
-%attr(755,root,root) %{_rpmlibdir}/php*
-%attr(755,root,root) %{_rpmlibdir}/find-php*
+%attr(755,root,root) %{_rpmlibdir}/php.prov
+%attr(755,root,root) %{_rpmlibdir}/php.req
+%attr(755,root,root) %{_rpmlibdir}/php.req.php
%if %{with python}
%files -n python-rpm