%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_with db60 # use DB 6.0 instead of 5.2
%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
%endif
# versions of required libraries
+%if %{with db60}
+%define reqdb_pkg db6.0
+%define reqdb_ver 6.0
+%define reqdb_pkgver 6.0.20
+%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 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: 48
-License: LGPL
+Version: 5.4.13
+Release: 3
+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.13-0.20130819.src.rpm
Source0: %{name}-%{version}.tar.gz
-# Source0-md5: 5d099161bdd3203265ab32ffad3360b5
+# Source0-md5: 4ce4ab33a4d5f1fcb13afcc494c92c07
Source100: cpu-os-macros.tar.gz
# Source100-md5: 928034a5bdceb398881bc14b5f29973b
Source1: %{name}.groups
Source20: %{name}.noautoprov
Source21: %{name}.noautoprovfiles
Source22: %{name}.noautoreq
-Source23: %{name}.noautoreqdep
Source24: %{name}.noautoreqfiles
Source25: %{name}-php-requires.php
Source26: %{name}db_checkversion.c
Patch23: %{name}-gendiff.patch
Patch24: openmp.patch
Patch25: %{name}-URPM-build-fix.patch
-Patch26: %{name}-db5.3.patch
Patch27: %{name}-helperEVR-noassert.patch
Patch28: %{name}-unglobal.patch
Patch29: %{name}-builddir-readlink.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
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-%{name}sense-missingok.patch
+Patch71: %{name}-changelog-encoding.patch
+Patch72: %{name}-preserve-tag-type.patch
+Patch73: gem_helper-spec-arg.patch
+Patch74: %{name}-fix-internal-lua-build.patch
+Patch75: %{name}-double_check_file_deps.patch
+Patch76: %{name}-revert-debugedit-breakage.patch
+Patch77: %{name}-lua-expat.patch
+Patch78: %{name}-double_check_unpackaged_subdirs.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
+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
+Patch1048: %{name}-5.4.13-dont-override-existing-variables-with-etc-os-release.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
%patch23 -p1
%patch24 -p1
%patch25 -p1
-####%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
-####%patch41 -p1
+%{?with_db60:%patch41 -p1}
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
-%patch57 -p1
+%{!?with_db60:%patch57 -p1}
%patch58 -p1
-%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch65 -p1
%patch66 -p1
%patch67 -p1
+%patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch76 -p0
+%patch77 -p0
+%patch78 -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
+%patch1044 -p1
+%patch1045 -p1
+%patch1046 -p1
+%patch1047 -p1
+%patch1048 -p1
%patch68 -p1
+%patch69 -p1
install %{SOURCE2} macros/pld.in
install %{SOURCE8} scripts/php.prov.in
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}
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-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-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}/%{_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' \
+ --without-path-versioned \
+ --with-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=%{?with_keyutils:external}%{!?with_keyutils:no} \
--with-uuid=%{_libdir}:%{_includedir}/ossp-uuid \
- --without-path-versioned \
- --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-vendor=pld \
+ --with-xz=external \
+ --with-zlib=external
%{__make} -j1 \
CC="%{__cc}" \
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
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
-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
+%{__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 %{SOURCE20} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprov
install %{SOURCE21} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoprovfiles
install %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq
-install %{SOURCE23} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep
install %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles
touch $RPM_BUILD_ROOT%{_sysconfdir}/rpm/sysinfo/Conflictname
%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