#
# TODO:
+# - make key infrastructure code fallback from keyutils to plain mode in case keyctl
+# returns -ENOSYS
# - add macros for some ppc, mipsel, alpha and sparc
#
# - when adopting, use 4.5 ticket for checklist: https://bugs.launchpad.net/pld-linux/+bug/262985
%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_with 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 system_lua # use system lua
+%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"
ERROR
%endif
+%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
+%define reqdb_pkg db5.2
+%define reqdb_ver 5.2
%define reqpopt_ver 1.15
%define beecrypt_ver 2:4.1.2-4
%define sover 5.4
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
Version: 5.4.10
-Release: 0.24
+Release: 47
License: LGPL
Group: Base
# http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.10-0.20120706.src.rpm
# Source16-md5: 08b29584dd349aac9caa7610131a0a88
Source17: %{name}-mimetypedeps
Source18: macros.local
-Source19: rpm.noautocompressdoc
-Source20: rpm.noautoprov
-Source21: rpm.noautoprovfiles
-Source22: rpm.noautoreq
-Source23: rpm.noautoreqdep
-Source24: rpm.noautoreqfiles
+Source19: %{name}.noautocompressdoc
+Source20: %{name}.noautoprov
+Source21: %{name}.noautoprovfiles
+Source22: %{name}.noautoreq
+Source23: %{name}.noautoreqdep
+Source24: %{name}.noautoreqfiles
Source25: %{name}-php-requires.php
-Source26: rpmdb_checkversion.c
+Source26: %{name}db_checkversion.c
+Source27: macros.lang
+Source28: %{name}db_reset.c
+Source29: dbupgrade.sh
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
Patch6: %{name}-scripts-closefds.patch
Patch10: %{name}-php-deps.patch
Patch11: %{name}-notsc.patch
Patch12: %{name}-hack-norpmlibdep.patch
-Patch13: %{name}-epoch0.patch
+Patch13: %{name}-dont-copy-descriptive-tags.patch
Patch14: %{name}-perl_req-INC_dirs.patch
Patch15: %{name}-debuginfo.patch
Patch16: vendor-pld.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-file-always-noisy.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: %{name}-triggerin-compat.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: rpm-repackage-dont-force-max-compression.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: rpm-5.4.4-add-_specfile-macro.patch
+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: rpm-5.4.9-avoid-dependencies-on-self.patch
+Patch1001: %{name}-5.4.9-avoid-dependencies-on-self.patch
# status: probably ready to merge
-Patch1002: rpm-5.4.4-pkgconfigdeps-check-path.patch
+Patch1002: %{name}-5.4.4-pkgconfigdeps-check-path.patch
# status: probably okay to merge, but discuss on rpm-devel first
-Patch1003: rpm-5.4.4-glob-wildcards-for-loading-macro-files.patch
+Patch1003: %{name}-5.4.4-glob-wildcards-for-loading-macro-files.patch
# status: needs to be discussed
-Patch1004: rpm-5.4.4-allow-installation-of-repackaged-rpms.patch
+Patch1004: %{name}-5.4.4-allow-installation-of-repackaged-rpms.patch
# status: ready to merge
-Patch1005: rpm-5.4.8-dont-show-suggests-with-requires.patch
+Patch1005: %{name}-5.4.8-dont-show-suggests-with-requires.patch
# status: ready for merge
-Patch1006: rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch
+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: rpm-5.4.10-duplicate_files_terminate_build.patch
+Patch1007: %{name}-5.4.10-duplicate_files_terminate_build.patch
# status: same as above
-Patch1008: rpm-5.4.10-unpackaged_subdirs_terminate_build.patch
+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: rpm-5.4.4-rpmbuild-withoutclean.patch
+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: rpm-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch
+Patch1010: %{name}-5.4.4-drop-useless-auto-generated-pkgconfig-dependency.patch
# status: ready for merge
-Patch1011: rpm-5.4.4-fix-rpmconstant-to-always-use-LC_CTYPE-C-for-case-conversion.patch
+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: rpm-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch
+Patch1012: %{name}-5.4.4-pass-_builddir-properly-to-find-debuginfo.patch
# status: probably okay to merge, but discuss on rpm-devel first
-Patch1013: rpm-5.4.10-files-listed-twice-terminates-build.patch
+Patch1013: %{name}-5.4.10-files-listed-twice-terminates-build.patch
# status: probably okay to merge
-Patch1014: rpm-5.4.9-ruby1.9-fixes.patch
+Patch1014: %{name}-5.4.9-ruby1.9-fixes.patch
# status: keep locally
-Patch1015: rpm-5.4.9-keep-loading-script-macros.patch
+Patch1015: %{name}-5.4.9-keep-loading-script-macros.patch
# status: same as for other dep gen patches
-Patch1016: rpm-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch
+Patch1016: %{name}-5.4.9-update-rpmfc-when-removing-dependencies-on-self.patch
# status: idem
-Patch1017: rpm-5.4.9-rpmfc-extract-dependencies-for-all-files.patch
+Patch1017: %{name}-5.4.9-rpmfc-extract-dependencies-for-all-files.patch
# status: ready for merge
-Patch1018: rpm-5.4.5-rubygems-add-missing-newline.patch
+Patch1018: %{name}-5.4.5-rubygems-add-missing-newline.patch
# status: probably okay to merge
-Patch1019: rpm-5.4.5-python-export-spec-macros.patch
+Patch1019: %{name}-5.4.5-python-export-spec-macros.patch
# status: idem
-Patch1020: rpm-5.4.9-font-provides.patch
+Patch1020: %{name}-5.4.9-font-provides.patch
# stauus: idem
-Patch1021: rpm-5.4.7-kmod-dependencies.patch
+Patch1021: %{name}-5.4.7-kmod-dependencies.patch
# status: probably okay to merge, discuss on rpm-devel first
-Patch1022: rpm-5.4.5-skip-dependencies-for-character-devices.patch
+Patch1022: %{name}-5.4.5-skip-dependencies-for-character-devices.patch
# status: ready to merge
-Patch1023: rpm-5.4.5-rpmfc-use-strlen-not-sizeof.patch
+Patch1023: %{name}-5.4.5-rpmfc-use-strlen-not-sizeof.patch
# status: probably okay to merge
-Patch1024: rpm-5.4.5-rpmfc-apply-python-coloring-from-magic.patch
+Patch1024: %{name}-5.4.5-rpmfc-apply-python-coloring-from-magic.patch
# status: ready to merge
-Patch1025: rpm-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch
+Patch1025: %{name}-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch
# status: probably okay to merge
-Patch1026: rpm-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch
+Patch1026: %{name}-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch
# status: ready
-Patch1027: rpm-5.4.7-fix-generation-of-ruby-abi-provides.patch
+Patch1027: %{name}-5.4.7-fix-generation-of-ruby-abi-provides.patch
# crash reproducable with 'rpm -qa --triggers'
# status: ready
-Patch1028: rpm-5.4.7-hdrfmt-fix-unitialized-argv-element.patch
+Patch1028: %{name}-5.4.7-hdrfmt-fix-unitialized-argv-element.patch
# status: same as for other dep gen patches
-Patch1029: rpm-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch
+Patch1029: %{name}-5.4.7-dont-consider-trigger-dependencies-as-overlapping.patch
# status: ready
-Patch1030: rpm-5.4.7-fix-minor-memleaks.patch
+Patch1030: %{name}-5.4.7-fix-minor-memleaks.patch
# status: ready
-Patch1031: rpm-5.4.9-mire-fix-strings-lacking-null-terminator.patch
+Patch1031: %{name}-5.4.9-mire-fix-strings-lacking-null-terminator.patch
# status: ready
-Patch1032: rpm-5.4.9-rpmpython-fix-input.patch
+Patch1032: %{name}-5.4.9-rpmpython-fix-input.patch
# status: ready
-Patch1033: rpm-5.4.7-no-seqid_init-on-rdonly-database.patch
+Patch1033: %{name}-5.4.7-no-seqid_init-on-rdonly-database.patch
# status: probably ready for merging
-Patch1034: rpm-5.4.9-avoid-double-slash-in-path-for-dirname-filetrigger-matching.patch
+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: rpm-5.4.9-fix-verify-segfault.patch
+Patch1035: %{name}-5.4.9-fix-verify-segfault.patch
# status: ready and should be merged
-Patch1036: rpm-5.4.9-fix-typo-in-rpmtag-header.patch
+Patch1036: %{name}-5.4.9-fix-typo-in-rpmtag-header.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
# 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: rpm-5.4.10-fix-neon-saving-error-pages-as-target-file.patch
+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: rpm-5.4.10-support-ignore-arch-and-os-again.patch
+Patch1038: %{name}-5.4.10-support-ignore-arch-and-os-again.patch
# status: ready for merge
-Patch1039: rpm-5.4.4-fix-same-package-with-epoch-possible-to-upgrade.patch
+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
URL: http://rpm5.org/
+%{?with_db:BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
BuildRequires: autoconf >= 2.60
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
+%{?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: lua51-devel >= 5.1.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
+%{?with_db:BuildRequires: %{reqdb_pkg}-static >= %{reqdb_ver}}
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 _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
+%{?with_db:Requires: %{reqdb_pkg} >= %{reqdb_ver}}
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}
+%{?with_sqlite:Requires: sqlite3 >= %{sqlite_build_version}}
Obsoletes: rpm-libs
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
Summary(uk.UTF-8): Хедери та бібліотеки для програм, що працюють з пакетами rpm
Group: Development/Libraries
Requires: %{name}-lib = %{version}-%{release}
+%{?with_db:Requires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
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}
Requires: popt-devel >= %{reqpopt_ver}
Summary(uk.UTF-8): Статична бібліотека для програм, що працюють з пакетами rpm
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
+%{?with_db:Requires: %{reqdb_pkg}-static >= %{reqdb_ver}}
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
Requires: popt-static >= %{reqpopt_ver}
Requires: zlib-static
Summary(uk.UTF-8): Скрипти та утиліти, необхідні для побудови пакетів
Group: Applications/File
Requires(pre): findutils
-Requires: %{name}-build-macros >= 1.653
+Requires: %{name}-build-macros >= 1.656
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}
Group: Applications/File
Requires: %{name} = %{version}-%{release}
Requires: python
-Requires: python-modules
Requires: python-distribute
+Requires: python-modules
%description pythonprov
Python macros, which simplifies creation of RPM packages with Python
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
+
+%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
%patch23 -p1
%patch24 -p1
%patch25 -p1
-%patch26 -p1
+####%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
-%patch41 -p1
+####%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
+%patch57 -p1
+%patch58 -p1
+%patch59 -p1
+%patch60 -p1
+%patch61 -p1
+%patch62 -p1
+%patch63 -p1
+%patch64 -p1
+%patch65 -p1
+%patch66 -p1
+%patch67 -p1
%patch1000 -p1
%patch1001 -p1
%patch1037 -p1
%patch1038 -p1
%patch1039 -p1
+%patch1040 -p1
+%patch1041 -p1
+%patch1042 -p1
install %{SOURCE2} macros/pld.in
install %{SOURCE8} scripts/php.prov.in
awk -f %{SOURCE6} %{SOURCE1}
install %{SOURCE26} tools/rpmdb_checkversion.c
+install %{SOURCE28} tools/rpmdb_reset.c
%build
%{__libtoolize}
CXX="%{__newcxx}" \
CPP="%{__newcpp}" \
WITH_PERL_VERSION=no \
+ __GST_INSPECT=%{_bindir}/gst-inspect-1.0 \
--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-selinux=%{!?with_selinux:no}%{?with_selinux:external} \
+ --with-sepol=%{!?with_selinux:not}%{?with_selinux:external} \
+ --with-semanage=%{!?with_selinux:no}%{?with_selinux:external} \
--with-libelf \
--with-zlib=external \
--with-bzip2=external \
--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 \
+ --with-keyutils=%{?with_keyutils:external}%{!?with_keyutils:no} \
--with-uuid=%{_libdir}:%{_includedir}/ossp-uuid \
--without-path-versioned \
- --with-extra-path-macros='%{_sysconfdir}/rpm/macros.d/*.macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:~/etc/.rpmmacros:~/.rpmmacros' \
+ --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/%{_target}/macros:%{_rpmlibdir}/macros.d/pld:%{_rpmlibdir}/macros.build:%{_sysconfdir}/rpm/macros.*:%{_sysconfdir}/rpm/macros:%{_sysconfdir}/rpm/%{_target}/macros:%{_sysconfdir}/rpm/macros.d/*.macros:~/etc/.rpmmacros:~/.rpmmacros' \
--with-bugreport="http://bugs.pld-linux.org/" \
--with-vendor=pld
%{?with_apidocs:%{__make} apidocs}
-%{__cc} %{rpmcflags} tools/rpmdb_checkversion.c -o tools/rpmdb_checkversion -ldb
+%{__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
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}/macros.d/ruby
+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
+
+%{__sed} -i -e '/macros.d\/ruby/ s/^/#/' $RPM_BUILD_ROOT%{_rpmlibdir}/macros
# not installed since 4.4.8 (-tools-perl subpackage)
install scripts/rpmdiff scripts/rpmdiff.cgi $RPM_BUILD_ROOT%{_rpmlibdir}
install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo
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
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
# 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}
fi
%posttrans
-if [ -x %{_rpmlibdir}/bin/rpmdb_checkversion ] && \
- ! %{_rpmlibdir}/bin/rpmdb_checkversion -h /var/lib/rpm -d /var/lib/rpm ; then
+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
+ /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
- if [ -x %{_rpmlibdir}/bin/dbconvert ]; then
- if ! %{_rpmlibdir}/bin/dbconvert --rebuilddb ; then
- echo
- echo "rpm database conversion failed!"
- echo "You have to run %{_rpmlibdir}/bin/dbconvert manually"
- echo
- fi
- 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
%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/*
%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
%files base
%defattr(644,root,root,755)
%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*
%{_rpmlibdir}/macros.d/php
%{_rpmlibdir}/macros.d/pkgconfig
%{_rpmlibdir}/macros.d/python
-%{_rpmlibdir}/macros.d/ruby
%{_rpmlibdir}/macros.d/selinux
%{_rpmlibdir}/macros.d/tcl
%{_rpmlibdir}/macros.rpmbuild
%{_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}/rubygems.rb
%attr(755,root,root) %{_bindir}/gendiff
%attr(755,root,root) %{_bindir}/multiarch-platform
# 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.*