%bcond_without selinux # build without selinux support
%bcond_without suggest_tags # build without Suggest tag (bootstrapping)
%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_with sqlite # build with SQLite support
%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"
#
-%if %{with sqlite_dbapi}
-%define with_sqlite 1
-%endif
-
-%if %{without db} && %{without sqlite}
-%{error:Need db or sqlite}
-ERROR
-%endif
%if %{with sqlite}
# Error: /lib64/librpmio-5.4.so: undefined symbol: sqlite3_enable_load_extension
# versions of required libraries
%define reqdb_pkg db5.2
%define reqdb_ver 5.2
+%define reqdb_pkgver 5.2.36.0-4
%define reqpopt_ver 1.15
-%define beecrypt_ver 2:4.1.2-4
+%define beecrypt_ver 2:4.2.0
%define sover 5.4
Summary: RPM Package Manager
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 5.4.10
-Release: 50
-License: LGPL
+Version: 5.4.12
+Release: 2
+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.12-0.20130725.src.rpm
Source0: %{name}-%{version}.tar.gz
-# Source0-md5: 5d099161bdd3203265ab32ffad3360b5
+# Source0-md5: 1af762bbedf936240b1e1a482cc7a193
Source100: cpu-os-macros.tar.gz
# Source100-md5: 928034a5bdceb398881bc14b5f29973b
Source1: %{name}.groups
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
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
+Patch67: %{name}-repackage-dont-force-max-compression.patch
Patch68: rubyprov-archdirs.patch
Patch69: rubyprov-abi-versioned.patch
-Patch70: python-rpmsense-missingok.patch
+Patch70: python-%{name}sense-missingok.patch
+Patch71: %{name}-changelog-encoding.patch
+Patch72: %{name}-preserve-tag-type.patch
+Patch73: gem_helper-spec-arg.patch
+Patch74: rpm-fix-internal-lua-build.patch
# Patches imported from Mandriva
Patch1023: %{name}-5.4.5-rpmfc-use-strlen-not-sizeof.patch
# status: probably okay to merge
Patch1024: %{name}-5.4.5-rpmfc-apply-python-coloring-from-magic.patch
-# status: ready to merge
-Patch1025: %{name}-5.4.7-rpmfc-fix-invalid-free-if-not-_defaultdocdir-set.patch
# status: probably okay to merge
Patch1026: %{name}-5.4.10-dont-try-generate-rpmfc-dependencies-from-doc-files.patch
# status: ready
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
URL: http://rpm5.org/
-%{?with_db:BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_ver}}
+BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver}
+%if %{with sqlite}
+BuildRequires: sqlite3-devel
+%else
+BuildRequires: %{reqdb_pkg}-sql-devel >= %{reqdb_pkgver}
+%endif
BuildRequires: autoconf >= 2.60
BuildRequires: automake >= 1.4
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: libxml2-devel
BuildRequires: neon-devel >= 0.25.5
%endif
-%{?with_system_lua:BuildRequires: lua51-devel >= 5.1.2}
+%{?with_system_lua:BuildRequires: lua52-devel >= 5.2.2}
BuildRequires: ossp-uuid-devel
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
%{?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: xz-devel
BuildRequires: zlib-devel
%endif
%if %{with static}
# Require static library only for static build
-%{?with_db:BuildRequires: %{reqdb_pkg}-static >= %{reqdb_ver}}
+BuildRequires: %{reqdb_pkg}-static >= %{reqdb_pkgver}
BuildRequires: beecrypt-static >= %{beecrypt_ver}
BuildRequires: bzip2-static >= 1.0.2-17
BuildRequires: elfutils-static
Summary: RPMs library
Summary(pl.UTF-8): Biblioteki RPM-a
Group: Libraries
-%{?with_db:Requires: %{reqdb_pkg} >= %{reqdb_ver}}
+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}
Requires: libmagic >= 1.15-2
%{?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: %{reqdb_pkg}-devel >= %{reqdb_pkgver}
Requires: beecrypt-devel >= %{beecrypt_ver}
Requires: bzip2-devel
Requires: elfutils-devel
Summary(uk.UTF-8): Статична бібліотека для програм, що працюють з пакетами rpm
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
-%{?with_db:Requires: %{reqdb_pkg}-static >= %{reqdb_ver}}
+Requires: %{reqdb_pkg}-static >= %{reqdb_pkgver}
Requires: beecrypt-static >= %{beecrypt_ver}
Requires: bzip2-static
Requires: elfutils-static
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
Requires: %{name} = %{version}-%{release}
Requires: ruby
Requires: ruby-modules
+Requires: ruby-rubygems
%description rubyprov
Ruby tools, which simplifies creation of RPM packages with Ruby
%patch56 -p1
%patch57 -p1
%patch58 -p1
-%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch66 -p1
%patch67 -p1
%patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%patch74 -p1
%patch1000 -p1
%patch1001 -p1
%patch1022 -p1
%patch1023 -p1
%patch1024 -p1
-%patch1025 -p1
%patch1026 -p1
%patch1027 -p1
%patch1028 -p1
%patch1040 -p1
%patch1041 -p1
%patch1042 -p1
+%patch1043 -p1
%patch68 -p1
%patch69 -p1
install %{SOURCE26} tools/rpmdb_checkversion.c
install %{SOURCE28} tools/rpmdb_reset.c
+for extlib in beecrypt neon pcre popt ; do
+ [ -d $extlib ] && %{__rm} -r $extlib
+done
+
%build
%{__libtoolize}
#%{__autopoint}
%{?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-sepol=%{!?with_selinux:not}%{?with_selinux:external} \
+ --with-sepol=%{!?with_selinux:no}%{?with_selinux:external} \
--with-semanage=%{!?with_selinux:no}%{?with_selinux:external} \
--with-libelf \
--with-zlib=external \
--with-neon=%{?with_neon:external}%{!?with_neon:no} \
--with-file=external \
--with-popt=external \
- --with-db=%{?with_db:external}%{!?with_db:no} \
+ --with-db=external \
+ --with-dbapi=db \
--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=%{?with_keyutils:external}%{!?with_keyutils:no} \
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
%dir %{_rpmlibdir}/macros.d
%{_rpmlibdir}/macros.d/pld
%{_rpmlibdir}/cpuinfo.yaml
+%{_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
%attr(755,root,root) %{_rpmlibdir}/hrmib-cache
%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/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
# not used yet ... these six depend on perl
%attr(755,root,root) %{_rpmlibdir}/http.req
# we always used scripts provided by mono-devel, maybe move them here