%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 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
%endif
# versions of required libraries
+%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 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: 53
+Version: 5.4.15
+Release: 0.1
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
+# Source0-md5: 4067f83ca8b5bf1a21e443c0cff3efa0
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
Source27: macros.lang
Source28: %{name}db_reset.c
Source29: dbupgrade.sh
+Source30: rubygems.rb
Patch0: %{name}-branch.patch
Patch1: %{name}-man_pl.patch
Patch2: %{name}-popt-aliases.patch
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
Patch65: %{name}-parseSpec-skip-empty-tags.patch
Patch66: %{name}-payload-use-hashed-inode.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
+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
# Patches imported from Mandriva
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: ready for merge
-Patch1018: %{name}-5.4.5-rubygems-add-missing-newline.patch
# status: probably okay to merge
Patch1019: %{name}-5.4.5-python-export-spec-macros.patch
# status: 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: ready to merge
-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
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
-# status: ready and should be merged
-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
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
URL: http://rpm5.org/
BuildRequires: %{reqdb_pkg}-devel >= %{reqdb_pkgver}
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}
Requires: elfutils-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
Requires: elfutils-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(pretrans): coreutils
+Requires(pretrans): findutils
Requires: %{name}-build-macros >= 1.656
Requires: %{name}-utils = %{version}-%{release}
Requires: /bin/id
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
Requires: %{name} = %{version}-%{release}
Requires: ruby
Requires: ruby-modules
+Requires: ruby-rubygems
%description rubyprov
Ruby tools, which simplifies creation of RPM packages with Ruby
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
%patch23 -p1
%patch24 -p1
%patch25 -p1
-####%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch38 -p1
%patch39 -p1
%patch40 -p1
-####%patch41 -p1
+%{?with_db61:%patch41 -p1}
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch54 -p1
%patch55 -p1
%patch56 -p1
-%patch57 -p1
+%{!?with_db61:%patch57 -p1}
%patch58 -p1
-%patch59 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1
%patch70 -p1
%patch71 -p1
%patch72 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch77 -p0
+%patch78 -p1
+%patch79 -p1
+%patch80 -p1
+%patch81 -p0
%patch1000 -p1
%patch1001 -p1
%patch1015 -p1
%patch1016 -p1
%patch1017 -p1
-%patch1018 -p1
%patch1019 -p1
%patch1020 -p1
%patch1021 -p1
%patch1022 -p1
-%patch1023 -p1
%patch1024 -p1
-%patch1025 -p1
%patch1026 -p1
%patch1027 -p1
%patch1028 -p1
%patch1033 -p1
%patch1034 -p1
%patch1035 -p1
-%patch1036 -p1
%patch1037 -p1
%patch1038 -p1
%patch1039 -p1
%patch1040 -p1
-%patch1041 -p1
+# don't delete, may be usefull if jbj descides to enable this again
+#%patch1041 -p1
%patch1042 -p1
-%patch68 -p1
-%patch69 -p1
+%patch1043 -p1
+%patch1044 -p1
+%patch1045 -p1
+%patch1046 -p1
+%patch1047 -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
%{__mv} -f scripts/perl.req{,.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-lzma=external \
- --with-xz=external \
- --with-neon=%{?with_neon:external}%{!?with_neon:no} \
- --with-file=external \
- --with-popt=external \
+ --with-bugreport="http://bugs.pld-linux.org/" \
+ --with-bzip2=external \
--with-db=external \
--with-dbapi=db \
- --with-sqlite=%{?with_sqlite:yes}%{!?with_sqlite:no} \
+ --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-neon=%{?with_neon:external}%{!?with_neon:no} \
+ --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-keyutils=%{?with_keyutils:external}%{!?with_keyutils:no} \
+ --with-popt=external \
+ %{?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-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
# first platform file entry can't contain regexps
%{_target_cpu}-%{_target_vendor}-linux
-# x86_64 things
%ifarch x86_64
x86_64-[^-]*-[Ll]inux(-gnu)?
amd64-[^-]*-[Ll]inux(-gnu)?
x86_64-[^-]*-[Ll]inux(-gnu)?
%endif
-# x86 things
%ifarch athlon %{x8664}
athlon-[^-]*-[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
-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
+# 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 %{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
# 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
%{_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}
+%{_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
%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
%{?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
# 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
%{_rpmlibdir}/macros.php
%{_rpmlibdir}/macros.python
-%attr(755,root,root) %{_rpmlibdir}/check-multiarch-files
%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) %{_bindir}/gendiff
-%attr(755,root,root) %{_bindir}/multiarch-platform
%attr(755,root,root) %{_bindir}/rpmbuild
%dir %{_rpmlibdir}/helpers