# TODO:
# - python(abi) cap is not provided automatically (because /usr/bin/python matches
# ELF first; it should be provided by python-libs not binary anyway)
-# - consider using system libmagic not internal libfmagic
-# (but internal has different method of passing output)
-# - after ac drop amd64 patch and make x86_64 generic arch + subarchs amd64 and ia32e
#
# Conditional build:
%bcond_with static # build static rpmi (not supported at the moment)
%bcond_with autoreqdep # autogenerate package name deps in addition to sonames/perl(X)
%bcond_without python # don't build python bindings
%bcond_without selinux # build without selinux support
+%bcond_without system_libmagic # don't use system libmagic
+%bcond_with neon # build with HTTP/WebDAV support (neon library)
# 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"
# versions of required libraries
%define reqdb_ver 4.3.27-1
-%define reqpopt_ver 1.10.1
-%define beecrypt_ver 2:4.1.0
-%define rpm_macros_rev 1.213
+%define reqpopt_ver 1.10.2
+%define beecrypt_ver 2:4.1.2-4
+%define rpm_macros_rev 1.245
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.1
-Release: 1.8
+Version: 4.4.2
+Release: 16.1
License: GPL
Group: Base
Source0: ftp://jbj.org/pub/rpm-4.4.x/%{name}-%{version}.tar.gz
-# Source0-md5: 90ded9047b1b69d918c6c7c7b56fd7a9
+# Source0-md5: e24ce468082479fe850c9d6563f56db5
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
Source32: pldnotify.awk
# http://svn.pld-linux.org/banner.sh/
Source33: banner.sh
+Source34: php-pear-build-macros
Patch0: %{name}-pl.po.patch
Patch1: %{name}-rpmrc.patch
Patch2: %{name}-arch.patch
Patch16: %{name}-php-deps.patch
Patch17: %{name}-ldconfig-always.patch
Patch18: %{name}-perl_req.patch
-Patch19: %{name}-no-bin-env.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}-gcc4.patch
+Patch38: %{name}-kill-prereq.patch
Patch39: %{name}-pythondeps.patch
Patch40: %{name}-print-requires.patch
Patch41: %{name}-reduce-stack-usage.patch
-URL: http://www.rpm.org/
+Patch42: %{name}-glob.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
+URL: http://wraptastic.org/
Icon: rpm.gif
BuildRequires: autoconf >= 2.52
BuildRequires: automake
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
-BuildRequires: bzip2-devel >= 1.0.1
+BuildRequires: bzip2-devel >= 1.0.2-17
BuildRequires: db-devel >= %{reqdb_ver}
%{?with_apidocs:BuildRequires: doxygen}
-BuildRequires: elfutils-devel
+BuildRequires: elfutils-devel >= 0.108
BuildRequires: findutils
BuildRequires: gettext-devel >= 0.11.4-2
-#BuildRequires: libmagic-devel
+%{?with_system_libmagic:BuildRequires: libmagic-devel}
%{?with_selinux:BuildRequires: libselinux-devel >= 1.18}
# needed only for AM_PROG_CXX used for CXX substitution in rpm.macros
BuildRequires: libstdc++-devel
BuildRequires: libtool
+%if %{with neon}
BuildRequires: libxml2-devel
BuildRequires: neon-devel >= 0.24.7-3
+%endif
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
-%{?with_python:BuildRequires: python-devel >= 2.2}
-BuildRequires: python-modules >= 2.2
+%{?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
%if %{with static}
# Require static library only for static build
BuildRequires: beecrypt-static >= %{beecrypt_ver}
-BuildRequires: bzip2-static >= 1.0.2-5
+BuildRequires: bzip2-static >= 1.0.2-17
BuildRequires: db-static >= %{reqdb_ver}
BuildRequires: glibc-static >= 2.2.94
BuildRequires: elfutils-static
-#BuildRequires: libmagic-static
+%{?with_system_libmagic:BuildRequires: libmagic-static}
%{?with_selinux:BuildRequires: libselinux-static >= 1.18}
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
%endif
Requires: beecrypt >= %{beecrypt_ver}
Requires: popt >= %{reqpopt_ver}
+Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-lib = %{version}-%{release}
%{!?with_static:Obsoletes: rpm-utils-static}
Conflicts: glibc < 2.2.92
# 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 ix86 i386 i486 i586 i686 athlon pentium3 pentium4
+%define x8664 amd64 ia32e x86_64
# stabilize new build environment
%define __newcc %{?force_cc}%{!?force_cc:%{_target_cpu}-pld-linux-gcc}
ÓÌÕÖÂÏ×ϧ ¦ÎÆÏÒÍÁæ§, ÝÏ Í¦ÓÔÉÔØ ÎÁÚ×Õ, ×ÅÒÓ¦À, ÏÐÉÓ ÔÁ ¦ÎÛÕ
¦ÎÆÏÒÍÁæÀ ÐÒÏ ÐÁËÅÔ.
+%package base
+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
+The RPM base package contains scripts used by rpm packages themselves.
+These include:
+- scripts for adding/removing groups and users needed for rpm
+ packages,
+- banner.sh to display %%banner messages from rpm scriptlets.
+
+%description base -l pl
+Pakiet podstawowy RPM zwiera skrypty u¿ywane przez same pakiety rpm.
+Zawiera on:
+- skrypty dodaj±ce/usuwaj±ce grupy i u¿ytkowników dla pakietów rpm,
+- banner.sh do pokazywania komunikatów %%banner dla skryptletów rpm.
+
%package lib
Summary: RPMs library
Summary(pl): Biblioteki RPM-a
Group: Libraries
+Requires: beecrypt >= %{beecrypt_ver}
Requires: db >= %{reqdb_ver}
-%{?with_selinux:BuildRequires: libselinux >= 1.18}
+%{?with_selinux:Requires: libselinux >= 1.18}
+%{?with_system_libmagic:Requires: libmagic >= 1.15-2}
Requires: popt >= %{reqpopt_ver}
+Obsoletes: rpm-libs
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
Requires: db-devel >= %{reqdb_ver}
Requires: elfutils-devel
%{?with_selinux:Requires: libselinux-devel}
+%{?with_system_libmagic:Requires: libmagic-devel}
Requires: popt-devel >= %{reqpopt_ver}
Requires: zlib-devel
Requires: bzip2-static
Requires: db-static >= %{reqdb_ver}
Requires: elfutils-static
+%{?with_system_libmagic:Requires: libmagic-static}
Requires: popt-static >= %{reqpopt_ver}
Requires: zlib-static
Requires: cpio
Requires: diffutils
Requires: elfutils
-Requires: file >= 4.13-2
+Requires: file >= 4.14-1
Requires: fileutils
Requires: findutils
-%ifarch athlon
-Requires: gcc >= 3.0.3
-%else
-%ifarch i686
-# because of -mtune in rpmrc
Requires: gcc >= 5:3.4
-%else
-Requires: gcc
-%endif
-%endif
Requires: glibc-devel
Requires: grep
Requires: gzip
Requires: tar
Requires: textutils
Provides: rpmbuild(macros) = %{rpm_macros_rev}
+Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
-# because of -fvisibility-inlines-hidden in rpm.macros
-Conflicts: gcc-c++ < 5:3.4
-%ifarch amd64
+%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.
Summary(pl): Makra u³atwiaj±ce tworzenie pakietów rpm z programami napisanymi w Pythonie
Group: Applications/File
Requires: %{name} = %{version}-%{release}
+Requires: python
Requires: python-modules
%description pythonprov
Summary(pl): Dodatkowe narzêdzia do sprawdzania zale¿no¶ci skryptów php w rpm
Group: Applications/File
Requires: %{name} = %{version}-%{release}
+Requires: php-pear-PEAR >= 1:1.4.0-0.b1.3
+Requires: php-zlib
+Requires: sed >= 4.0
%description php-pearprov
Additional utilities for checking php pear provides/requires in rpm
packages.
+This package provides rpm macros and dependencies to help building
+PEAR packages.
+
%description php-pearprov -l pl
Dodatkowe narzêdzia do sprawdzenia zale¿no¶ci skryptów php pear w
pakietach rpm.
+Ten pakiet dostarcza makra rpm-a i zale¿no¶ci pomagaj±ce przy
+budowaniu pakietów PEAR-a.
+
%package -n python-rpm
Summary: Python interface to RPM library
Summary(pl): Pythonowy interfejs do biblioteki RPM-a
%patch11 -p1
%patch12 -p1
%patch13 -p1
-# home-etc FIXME
-#%patch14 -p1
+%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
-%patch19 -p1
sed -e 's/^/@pld@/' %{SOURCE2} >>platform.in
cp -f platform.in macros.pld.in
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
-echo '%%define __php_provides /usr/lib/rpm/php.prov' > macros.php
-echo '%%define __php_requires /usr/lib/rpm/php.req' >> macros.php
+install %{SOURCE34} macros.php
+echo '%%define __mono_provides /usr/lib/rpm/mono-find-provides' > macros.mono
+echo '%%define __mono_requires /usr/lib/rpm/mono-find-requires' >> macros.mono
install %{SOURCE5} scripts/find-lang.sh
install %{SOURCE9} scripts/php.prov.in
install %{SOURCE10} scripts/php.req.in
%patch39 -p1
%patch40 -p1
%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%{!?with_neon:%patch44 -p1}
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
%patch0 -p1
%patch3 -p1
-cd scripts;
+cd scripts
mv -f perl.req perl.req.in
mv -f perl.prov perl.prov.in
cd ..
mv -f po/{no,nb}.po
mv -f po/{sr,sr@Latn}.po
-rm -rf neon zlib libelf db db3 popt rpmdb/db.h
+rm -rf sqlite zlib db db3 popt rpmdb/db.h
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
mv -f ${f}.tmp $f
done
-# ... and make some cleanings
-rm -fr $(find ./ -type d -name CVS )
-rm -f $(find ./ -type f -name ".cvsignore" )
-
%build
+%if %{with system_libmagic}
+rm -rf file
+%else
cd file
%{__libtoolize}
%{__aclocal}
%{__autoconf}
%{__automake}
cd ..
+%endif
%{__libtoolize}
%{__gettextize}
-e 's|@host_cpu@|%{_target_cpu}|' macros.in > macros.tmp
mv -f macros.tmp macros.in
+CPPFLAGS="-Dglob=rpm_glob -Dglobfree=rpm_globfree"; export CPPFLAGS
+
# pass CC and CXX too in case of building with some older configure macro
%configure \
CC="%{__newcc}" \
CXX="%{__newcxx}" \
CPP="%{__newcpp}" \
+ %{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
--enable-shared \
--enable-static \
- %{?with_apidoc:--with-apidocs} \
- %{?with_pkgnameinautoreq:--enable-adding-packages-names-in-autogenerated-dependancies} \
+ %{?with_apidocs:--with-apidocs} \
%{?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
debugedit_LDADD="\$(WITH_LIBELF_LIB) -lpopt"
# %{!?with_static:rpm_LDFLAGS="\$(myLDFLAGS)"} \
+
%{?with_apidocs:%{__make} doxygen}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm}
+install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm,/var/lib/banner}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
install macros.perl $RPM_BUILD_ROOT%{_rpmlibdir}/macros.perl
install macros.python $RPM_BUILD_ROOT%{_rpmlibdir}/macros.python
install macros.php $RPM_BUILD_ROOT%{_rpmlibdir}/macros.php
+install macros.mono $RPM_BUILD_ROOT%{_rpmlibdir}/macros.mono
install %{SOURCE1} doc/manual/groups
install %{SOURCE3} $RPM_BUILD_ROOT%{_rpmlibdir}/install-build-tree
^libpsres.so
^libxkbfile.so
^libxkbui.so
+# -- fam / gamin
+^libfam.so.0
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <<EOF
# global list of file masks not to be compressed in DOCDIR
ln -s /%{_lib}/$a $RPM_BUILD_ROOT%{_libdir}/$a
done
+# remove arch dependant macros which have no use on noarch
+sed -i -e '
+/{__spec_install_post_strip}/d
+/{__spec_install_post_chrpath}/d
+/{__spec_install_post_compress_modules}/d
+' $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
+
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
#%attr(755,root,root) %{_bindir}/rpmverify
%dir %{_sysconfdir}/rpm
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/macros
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rpm
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/macros
%{_mandir}/man8/rpm.8*
%lang(fr) %{_mandir}/fr/man8/rpm.8*
%dir /var/lock/rpm
/var/lock/rpm/transaction
-%dir %{_rpmlibdir}
#%attr(755,root,root) %{_rpmlibdir}/rpmd
#%{!?with_static:%attr(755,root,root) %{_rpmlibdir}/rpm[eiu]}
#%attr(755,root,root) %{_rpmlibdir}/rpmk
#%attr(755,root,root) %{_rpmlibdir}/rpm[qv]
%doc %attr(755,root,root) %{_rpmlibdir}/convertrpmrc.sh
-%attr(755,root,root) %{_rpmlibdir}/user_group.sh
-
-%attr(755,root,root) %{_bindir}/banner.sh
%{_rpmlibdir}/rpmrc
%{_rpmlibdir}/rpmpopt*
%{_rpmlibdir}/macros
+%files base
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rpm
+%dir %{_rpmlibdir}
+%attr(755,root,root) %{_bindir}/banner.sh
+%attr(755,root,root) %{_rpmlibdir}/user_group.sh
+%dir /var/lib/banner
+
%files lib
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/librpm*-*.so
%attr(755,root,root) %{_bindir}/rpmcache
%attr(755,root,root) %{_bindir}/rpmdeps
%attr(755,root,root) %{_bindir}/rpmgraph
-%attr(755,root,root) %{_bindir}/rpmfile
+%{!?with_system_libmagic:%attr(755,root,root) %{_bindir}/rpmfile}
%attr(755,root,root) %{_rpmlibdir}/find-debuginfo.sh
%attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
%attr(755,root,root) %{_rpmlibdir}/tgpg
%files build
%defattr(644,root,root,755)
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/noauto*
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/rpm/noauto*
%attr(755,root,root) %{_rpmlibdir}/compress-doc
%attr(755,root,root) %{_rpmlibdir}/cross-build
#%attr(755,root,root) %{_rpmlibdir}/find-provides
%ifarch sparc sparc64
%{_rpmlibdir}/sparc*
%endif
-%ifarch x86_64
+%ifarch %{x8664}
%{_rpmlibdir}/x86_64*
%endif
# must be here for "Requires: rpm-*prov" to work
+%{_rpmlibdir}/macros.mono
%{_rpmlibdir}/macros.perl
%{_rpmlibdir}/macros.php
# not used yet ... these six depend on perl
%if %{with python}
%files -n python-rpm
%defattr(644,root,root,755)
-%attr(755,root,root) %{py_sitedir}/*.so
+%dir %{py_sitedir}/rpm
%attr(755,root,root) %{py_sitedir}/rpm/*.so
-%attr(755,root,root) %{py_sitedir}/rpm/*.py[co]
-%attr(755,root,root) %{py_sitedir}/rpmdb/*.so
-%{py_sitedir}/rpmdb/*.py*
+%{py_sitedir}/rpm/*.py[co]
%endif
%if %{with apidocs}