# ELF first; it should be provided by python-libs not binary anyway)
#
# Conditional build:
-%bcond_with static # build static rpmi (not supported at the moment)
+%bcond_with static # build static rpm+rpmi
%bcond_without apidocs # don't generate documentation with doxygen
%bcond_with autoreqdep # autogenerate package name deps in addition to sonames/perl(X)
%bcond_without python # don't build python bindings
# force_cpp - force using __cpp other than "%{_target_cpu}-pld-linux-gcc -E"
# versions of required libraries
-%define reqdb_ver 4.3.27-1
-%define reqpopt_ver 1.10.2
+%define reqdb_ver 4.4.20
+%define reqpopt_ver 1.10.5
%define beecrypt_ver 2:4.1.2-4
-%define rpm_macros_rev 1.247
Summary: RPM Package Manager
Summary(de): RPM Packet-Manager
Summary(es): Gestor de paquetes RPM
Summary(uk): íÅÎÅÄÖÅÒ ÐÁËÅÔ¦× ×¦Ä RPM
Name: rpm
%define sover 4.4
-Version: 4.4.2
-Release: 16.1
+Version: 4.4.5
+Release: 0.1
License: GPL
Group: Base
Source0: ftp://jbj.org/pub/rpm-4.4.x/%{name}-%{version}.tar.gz
-# Source0-md5: e24ce468082479fe850c9d6563f56db5
+# Source0-md5: d5f434789c0c56d05d77be6f4262a561
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
Source8: %{name}-check-files
Source9: %{name}-php-provides
Source10: %{name}-php-requires
-Source11: %{name}.macros
+
Source12: perl.prov
Source13: %{name}-user_group.sh
Source14: %{name}.sysconfig
Patch8: %{name}-python-macros.patch
Patch9: %{name}-gettext-in-header.patch
Patch10: %{name}-compress-doc.patch
-Patch11: %{name}-build.patch
+Patch11: %{name}-rpmdeps-segv.patch
Patch12: %{name}-system_libs.patch
Patch13: %{name}-bb-and-short-circuit.patch
Patch14: %{name}-etc_dir.patch
Patch16: %{name}-php-deps.patch
Patch17: %{name}-ldconfig-always.patch
Patch18: %{name}-perl_req.patch
-
+Patch19: %{name}-link.patch
Patch20: %{name}-magic-usesystem.patch
Patch21: %{name}-dontneedutils.patch
Patch22: %{name}-provides-dont-obsolete.patch
Patch35: %{name}-perl_req-INC_dirs.patch
Patch36: %{name}-debuginfo.patch
Patch37: %{name}-doxygen_hack.patch
-Patch38: %{name}-kill-prereq.patch
+Patch38: %{name}-empty-rpmlock-path.patch
Patch39: %{name}-pythondeps.patch
Patch40: %{name}-print-requires.patch
Patch41: %{name}-reduce-stack-usage.patch
-Patch42: %{name}-glob.patch
+Patch42: %{name}-old-fileconflicts-behaviour.patch
Patch43: %{name}-patch-quote.patch
Patch44: %{name}-no-neon.patch
Patch45: %{name}-no-sqlite.patch
Patch46: %{name}-mono.patch
-Patch47: %{name}-posttrans.patch
+
Patch48: %{name}-requireseq.patch
+Patch49: %{name}-p4.patch
+Patch50: %{name}-macros.patch
+Patch51: %{name}-cleanlibdirs.patch
+Patch52: %{name}-morearchs.patch
URL: http://wraptastic.org/
-Icon: rpm.gif
BuildRequires: autoconf >= 2.52
BuildRequires: automake
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: libtool
%if %{with neon}
BuildRequires: libxml2-devel
-BuildRequires: neon-devel >= 0.24.7-3
+BuildRequires: neon-devel >= 0.25.5
%endif
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
%{?with_python:BuildRequires: python-devel >= 1:2.3}
BuildRequires: python-modules >= 1:2.3
-BuildRequires: readline-devel
BuildRequires: rpm-perlprov
%{?with_python:BuildRequires: rpm-pythonprov}
BuildRequires: zlib-devel
# don't require very fresh rpm.macros to build
%define __gettextize gettextize --copy --force --intl ; cp -f po/Makevars{.template,}
%define ix86 i386 i486 i586 i686 athlon pentium3 pentium4
+%define ppc ppc ppc7400 ppc7450
%define x8664 amd64 ia32e x86_64
# stabilize new build environment
%define _rpmlibdir /usr/lib/rpm
+%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: RPM base package - scripts used by rpm packages themselves
Summary(pl): Podstawowy pakiet RPM - skrypty u¿ywane przez same pakiety rpm
Group: Base
-Requires: sed
Obsoletes: vserver-rpm
%description base
Summary(uk): óËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, ÎÅÏÂȦÄΦ ÄÌÑ ÐÏÂÕÄÏ×É ÐÁËÅÔ¦×
Group: Applications/File
Requires(pre): findutils
+Requires: %{name}-build-macros >= 1.284
Requires: %{name}-utils = %{version}-%{release}
Requires: /bin/id
Requires: awk
Requires: gzip
Requires: make
Requires: patch
-Requires: popt >= 1.7
Requires: sed
Requires: sh-utils
Requires: tar
Requires: textutils
-Provides: rpmbuild(macros) = %{rpm_macros_rev}
Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
%ifarch %{x8664}
Conflicts: automake < 1:1.7.9-2
Conflicts: libtool < 2:1.5-13
%endif
-Obsoletes: rpmbuild(macros) < %{rpm_macros_rev}
%description build
Scripts for building binary RPM packages.
%prep
%setup -q
+%patch0 -p1
%patch1 -p1
%patch2 -p1
-# temporarily moved after patch0 - messes too much in pl.po
-#%patch3 -p1
+%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch17 -p1
%patch18 -p1
sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in
-cp -f platform.in macros.pld.in
+#cp -f platform.in macros.pld.in # what for?
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
install %{SOURCE9} scripts/php.prov.in
install %{SOURCE10} scripts/php.req.in
install %{SOURCE12} scripts/perl.prov
-cat %{SOURCE11} >> macros.in
+%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%{!?with_neon:%patch44 -p1}
%patch45 -p1
%patch46 -p1
-%patch47 -p1
+
%patch48 -p1
-%patch0 -p1
-%patch3 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
cd scripts
mv -f perl.req perl.req.in
CPPFLAGS="-Dglob=rpm_glob -Dglobfree=rpm_globfree"; export CPPFLAGS
# pass CC and CXX too in case of building with some older configure macro
+# disable perl-RPM2 build, we have it in separate spec
%configure \
CC="%{__newcc}" \
CXX="%{__newcxx}" \
CPP="%{__newcpp}" \
+ WITH_PERL_VERSION=no \
%{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
--enable-shared \
--enable-static \
%{?with_python:--with-python=auto} \
%{!?with_python:--without-python} \
%{!?with_selinux:--without-selinux} \
- --with-glob \
--without-db
# file_LDFLAGS, debugedit_LDADD - no need to link "file" and "debugedit" statically
pylibdir=%{py_libdir} \
myLDFLAGS="%{rpmldflags}" \
file_LDFLAGS= \
- debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt"
-
-# %{!?with_static:rpm_LDFLAGS="\$(myLDFLAGS)"} \
+ debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt" \
+ staticLDFLAGS=%{?with_static:-all-static}
%{?with_apidocs:%{__make} doxygen}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
+ staticLDFLAGS=%{?with_static:-all-static} \
pylibdir=%{py_libdir} \
pkgbindir="%{_bindir}"
+%ifarch %{ppc}
+sed -e '/_target_platform/s/[%]{_target_cpu}/ppc/' \
+ -i $RPM_BUILD_ROOT%{_rpmlibdir}/ppc74[05]0-linux/macros
+%endif
+
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
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
-for f in $RPM_BUILD_ROOT%{_datadir}/locale/{en_RN,eu_ES,gl,hu,ro,wa,zh,zh_CN.GB2312}/LC_MESSAGES/rpm.mo ; do
- [ "`file $f | sed -e 's/.*,//' -e 's/message.*//'`" -le 1 ] && rm -f $f
-done
+rm -f $RPM_BUILD_ROOT%{py_sitedir}/rpm/*.{la,a,py}
+
+# (currently) not used or supported in PLD
+rm -f $RPM_BUILD_ROOT%{_rpmlibdir}/{Specfile.pm,cpanflute,cpanflute2,find-provides,find-requires,freshen.sh,http.req,magic.prov,magic.req,perldeps.pl,sql.prov,sql.req,tcl.req}
+# wrong location, not used anyway
+rm -f $RPM_BUILD_ROOT%{_rpmlibdir}/rpm.{daily,log,xinetd}
+
%find_lang %{name}
rm -rf manual
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc RPM-PGP-KEY CHANGES manual
+%doc RPM-PGP-KEY CHANGES manual/*
%attr(755,root,root) /bin/rpm
#%attr(755,root,root) %{_bindir}/rpmdb
%files utils-perl
%defattr(644,root,root,755)
%attr(755,root,root) %{_rpmlibdir}/rpmdiff*
-# not here
-#%%{_rpmlibdir}/rpm.daily
-#%%{_rpmlibdir}/rpm.log
-#%%{_rpmlibdir}/rpm.xinetd
%if %{with static}
%files utils-static
%files build
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
+%attr(755,root,root) %{_rpmlibdir}/brp-*
+%attr(755,root,root) %{_rpmlibdir}/check-files
+%attr(755,root,root) %{_rpmlibdir}/check-prereqs
%attr(755,root,root) %{_rpmlibdir}/compress-doc
+%attr(755,root,root) %{_rpmlibdir}/config.*
%attr(755,root,root) %{_rpmlibdir}/cross-build
-#%attr(755,root,root) %{_rpmlibdir}/find-provides
-#%attr(755,root,root) %{_rpmlibdir}/find-provides-wrapper
-#%attr(755,root,root) %{_rpmlibdir}/find-requires
-#%attr(755,root,root) %{_rpmlibdir}/find-requires-wrapper
-#%attr(755,root,root) %{_rpmlibdir}/find-rpm-provides
%attr(755,root,root) %{_rpmlibdir}/find-spec-bcond
%attr(755,root,root) %{_rpmlibdir}/find-lang.sh
-%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
-%attr(755,root,root) %{_rpmlibdir}/config.*
%attr(755,root,root) %{_rpmlibdir}/getpo.sh
%attr(755,root,root) %{_rpmlibdir}/install-build-tree
-%attr(755,root,root) %{_rpmlibdir}/brp-*
-%attr(755,root,root) %{_rpmlibdir}/check-files
-%attr(755,root,root) %{_rpmlibdir}/check-prereqs
-#%attr(755,root,root) %{_rpmlibdir}/cpanflute
-#%attr(755,root,root) %{_rpmlibdir}/cpanflute2
-#%attr(755,root,root) %{_rpmlibdir}/Specfile.pm
+%attr(755,root,root) %{_rpmlibdir}/mkinstalldirs
%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
-#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides.sh
-#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides2.sh
+%attr(755,root,root) %{_rpmlibdir}/executabledeps.sh
+# needs jar (any jdk), jcf-dump (gcc-java) to work
+%attr(755,root,root) %{_rpmlibdir}/javadeps.sh
+%attr(755,root,root) %{_rpmlibdir}/libtooldeps.sh
+# needs hacked pkg-config to return anything
+%attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
%attr(755,root,root) %{_rpmlibdir}/rpmb
%attr(755,root,root) %{_rpmlibdir}/rpmt
%{_rpmlibdir}/noarch-*
%ifarch mips mipsel mips64 mips64el
%{_rpmlibdir}/mips*
%endif
-%ifarch ppc
+%ifarch %{ppc}
%{_rpmlibdir}/ppc*
%endif
%ifarch sparc sparc64