# - 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 distver # build with distversion field
%bcond_with static # build static rpmi (not supported at the moment)
-%bcond_without doc # don't generate documentation with doxygen
+%bcond_without apidocs # don't generate documentation with doxygen
+%bcond_without pkgnameinautoreq # don't put package name in autogenerated dependancy
%bcond_without python # don't build python bindings
%bcond_without selinux # dont enable selinux 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"
-%include /usr/lib/rpm/macros.python
-%define snap 20040614
+%define snap 20041121
# versions of required libraries
%define reqdb_ver 4.2.50-1
%define reqpopt_ver 1.9
-%define beecrypt_ver 3.0.0-0.20030610.1
-%define rpm_macros_rev 1.158
+%define beecrypt_ver 2:4.1.0
+%define rpm_macros_rev 1.182
Summary: RPM Package Manager
Summary(de): RPM Packet-Manager
Summary(es): Gestor de paquetes RPM
Summary(uk): íÅÎÅÄÖÅÒ ÐÁËÅÔ¦× ×¦Ä RPM
Name: rpm
%define ver 4.4
-%define sover 4.3
+%define sover 4.4
Version: %{ver}
-Release: 0.%{snap}.0.2
+Release: 0.%{snap}.0.6
License: GPL
Group: Base
#Source0: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.2.x/%{name}-%{version}.%{snap}.tar.gz
+# Snap tarball is generated from rpm-4_4 branch
Source0: ftp://distfiles.pld-linux.org/src/%{name}-%{version}.%{snap}.tar.bz2
-# Source0-md5: a91b8e17f6e69208b188d2876e80aef9
+# Source0-md5: 9960ab3e3023b49b42c1e85acef33de5
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
Source10: %{name}-php-requires
Source11: %{name}.macros
Source12: perl.prov
+Source13: %{name}-user_group.sh
+Source14: %{name}.sysconfig
Source30: builder
Source31: adapter.awk
Source32: pldnotify.awk
+# http://svn.pld-linux.org/banner.sh/
+Source33: banner.sh
Patch1: %{name}-rpmrc.patch
Patch2: %{name}-arch.patch
Patch3: %{name}-rpmpopt.patch
Patch15: %{name}-etc_dir.patch
Patch16: %{name}-system_libs-more.patch
Patch17: %{name}-php-deps.patch
-Patch18: %{name}-python-fix.patch
Patch19: %{name}-ldconfig-always.patch
Patch20: %{name}-perl_req.patch
Patch21: %{name}-no-bin-env.patch
Patch30: %{name}-makefile-no_myLDADD_deps.patch
Patch31: %{name}-libdir64.patch
Patch32: %{name}-libdir-links.patch
-Patch33: %{name}-context.patch
Patch35: %{name}-missing-prototypes.patch
Patch36: %{name}-pld-autodep.patch
Patch37: %{name}-rpmsq.patch
-Patch38: %{name}-file-readelf.patch
Patch40: %{name}-epoch0.patch
-Patch41: %{name}-file-readelf-fix.patch
Patch43: %{name}-perl_req-INC_dirs.patch
Patch44: %{name}-debuginfo.patch
+Patch45: %{name}-beecrypt4.patch
+Patch46: %{name}-doxygen_hack.patch
+Patch47: %{name}-distver.patch
+Patch48: %{name}-gcc4.patch
Patch100: %{name}-pl.po.patch
URL: http://www.rpm.org/
Icon: rpm.gif
BuildRequires: beecrypt-devel >= %{beecrypt_ver}
BuildRequires: bzip2-devel >= 1.0.1
BuildRequires: db-devel >= %{reqdb_ver}
-%{?with_doc:BuildRequires: doxygen}
+%{?with_apidocs:BuildRequires: doxygen}
BuildRequires: elfutils-devel
BuildRequires: findutils
BuildRequires: gettext-devel >= 0.11.4-2
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: libxml2-devel
+BuildRequires: neon-devel >= 0.24.7-3
BuildRequires: patch >= 2.2
BuildRequires: popt-devel >= %{reqpopt_ver}
%{?with_python:BuildRequires: python-devel >= 2.2}
BuildRequires: python-modules >= 2.2
+BuildRequires: readline-devel
BuildRequires: rpm-perlprov
BuildRequires: rpm-pythonprov
BuildRequires: zlib-devel
BuildRequires: popt-static >= %{reqpopt_ver}
BuildRequires: zlib-static
%endif
+Requires: beecrypt >= %{beecrypt_ver}
Requires: popt >= %{reqpopt_ver}
Requires: %{name}-lib = %{version}-%{release}
%{!?with_static:Obsoletes: rpm-utils-static}
Group: Libraries
Requires: db >= %{reqdb_ver}
Requires: popt >= %{reqpopt_ver}
+%{?with_distver:Provides: rpm-lib(distver)}
# avoid SEGV caused by mixed db versions
Conflicts: poldek < 0.18.1-16
Requires: /bin/id
Requires: awk
Requires: binutils
+Requires: bzip2
Requires: chrpath >= 0.10-4
+Requires: cpio
Requires: diffutils
+Requires: elfutils
Requires: file >= 4.01
Requires: fileutils
Requires: findutils
%else
Requires: gcc
%endif
-%ifarch amd64
-Conflicts: automake < 1:1.7.9-2
-Conflicts: libtool < 2:1.5-13
-%endif
Requires: glibc-devel
Requires: grep
Requires: gzip
Requires: tar
Requires: textutils
Provides: rpmbuild(macros) = %{rpm_macros_rev}
+Provides: rpmbuild(noauto) = 3
+%ifarch amd64
+Conflicts: automake < 1:1.7.9-2
+Conflicts: libtool < 2:1.5-13
+%endif
%description build
Scripts for building binary RPM packages.
ò¦ÚÎÏÍÁΦÔΦ ÄÏÐÏͦÖΦ ÓËÒÉÐÔÉ ÔÁ ÕÔÉ̦ÔÉ, Ñ˦ ×ÉËÏÒÉÓÔÏ×ÕÀÔØÓÑ ÄÌÑ
ÐÏÂÕÄÏ×É RPM'¦×.
+%if %{with apidocs}
+%package apidocs
+Summary: rpm API documentation and guides
+Summary(pl): Documentacja API rpm i przewodniki.
+Group: Documentation
+
+%description apidocs
+Documentation for rpm API and guides in html format generated
+from rpm sources by doxygen.
+
+%description apidocs -l pl
+Dokumentacja API rpm oraz przewodniki w formacie html generowana
+ze ¼rode³ rpm przez doxygen.
+%endif
+
%prep
%setup -q -n %{name}
-# UPDATE
-#%patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
+# temporarily moved after patch100 - messes too much in pl.po
+#%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch7 -p1
#%patch15 -p1
%patch16 -p1
%patch17 -p1
-%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
-%patch33 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
-%patch38 -p1
%patch40 -p1
-%patch41 -p1
%patch43 -p0
%patch44 -p1
+# OBSOLETE
+#%patch45 -p1
+# NEEDS UPDATE
+# %patch46 -p1
+%{?with_distver:%patch47 -p1}
+%patch48 -p1
+# NEEDS UPDATE
#%patch100 -p1
+%patch3 -p1
cd scripts;
mv -f perl.req perl.req.in
mv -f po/{no,nb}.po
mv -f po/{sr,sr@Latn}.po
-rm -rf zlib libelf db db3 popt rpmdb/db.h
+rm -rf neon zlib libelf db db3 popt rpmdb/db.h
# generate Group translations to *.po
awk -f %{SOURCE6} %{SOURCE1}
CPP="%{__newcpp}" \
--enable-shared \
--enable-static \
- %{?with_doc:--with-apidocs} \
+ %{?with_apidoc:--with-apidocs} \
+ %{?with_pkgnameinautoreq:--enable-adding-packages-names-in-autogenerated-dependancies} \
%{?with_python:--with-python=auto} \
%{!?with_python:--without-python} \
%{!?with_selinux:--without-selinux} \
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}
+install -d $RPM_BUILD_ROOT{/%{_lib},/etc/sysconfig,%{_sysconfdir}/rpm}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
install %{SOURCE4} $RPM_BUILD_ROOT%{_rpmlibdir}/find-spec-bcond
install %{SOURCE7} $RPM_BUILD_ROOT%{_rpmlibdir}/compress-doc
install %{SOURCE8} $RPM_BUILD_ROOT%{_rpmlibdir}/check-files
+install %{SOURCE13} $RPM_BUILD_ROOT%{_rpmlibdir}/user_group.sh
install scripts/find-php* $RPM_BUILD_ROOT%{_rpmlibdir}
install scripts/php.{prov,req} $RPM_BUILD_ROOT%{_rpmlibdir}
+install %{SOURCE14} $RPM_BUILD_ROOT/etc/sysconfig/rpm
install %{SOURCE30} $RPM_BUILD_ROOT%{_bindir}/builder
install %{SOURCE31} $RPM_BUILD_ROOT%{_bindir}/adapter.awk
install %{SOURCE32} $RPM_BUILD_ROOT%{_bindir}/pldnotify.awk
+install %{SOURCE33} $RPM_BUILD_ROOT%{_bindir}/banner.sh
install rpmio/ugid.h $RPM_BUILD_ROOT%{_includedir}/rpm
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/rpm
-
%ifarch %{ix86}
ix86re=$(echo "(%{ix86})"|sed 's/ /|/g')
perl -p -i -e 's/^(buildarchtranslate: '"$ix86re"': ).*/\1%{_target_cpu}/' \
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqfiles <<EOF
# global list of files (regexps) which don't generate Requires
-/usr/src/examples/.*
-/usr/share/doc/.*
+^/usr/src/examples/
+^/usr/share/doc/
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreq <<EOF
# global list of script capabilities (regexps) not to be used in Requires
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautoreqdep <<EOF
# global list of capabilities (SONAME, perl(module), php(module) regexps)
# which don't generate dependencies on package NAMES
-libGL.so.1
-libGLU.so.1
-libOSMesa.so.4
-libglide3.so.3
-libgtkmozembed.so
-libgtksuperwin.so
-libxpcom.so
+# -- OpenGL implementation
+^libGL.so.1$
+^libGLU.so.1$
+^libOSMesa.so
+# -- Glide
+^libglide3.so.3$
+# -- mozilla
+^libgtkmozembed.so$
+^libgtksuperwin.so$
+^libxpcom.so$
+# -- X11 implementation
+^libFS.so
+^libI810XvMC.so
+^libICE.so
+^libSM.so
+^libX11.so
+^libXRes.so
+^libXTrap.so
+^libXaw.so
+^libXcomposite.so
+^libXcursor.so
+^libXdamage.so
+^libXdmcp.so
+^libXevie.so
+^libXext.so
+^libXfixes.so
+^libXfont.so
+^libXfontcache.so
+^libXft.so
+^libXi.so
+^libXinerama.so
+^libXmu.so
+^libXmuu.so
+^libXp.so
+^libXpm.so
+^libXrandr.so
+^libXrender.so
+^libXss.so
+^libXt.so
+^libXtst.so
+^libXv.so
+^libXvMC.so
+^libXxf86dga.so
+^libXxf86misc.so
+^libXxf86rush.so
+^libXxf86vm.so
+^libdps.so
+^libdpstk.so
+^libfontenc.so
+^libpsres.so
+^libxkbfile.so
+^libxkbui.so
EOF
cat > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/noautocompressdoc <<EOF
# global list of file masks not to be compressed in DOCDIR
%dir %{_sysconfdir}/rpm
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/rpm/macros
+%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rpm
%{_mandir}/man8/rpm.8*
%lang(fr) %{_mandir}/fr/man8/rpm.8*
#%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*
#%attr(755,root,root) %{_rpmlibdir}/cpanflute
#%attr(755,root,root) %{_rpmlibdir}/cpanflute2
#%attr(755,root,root) %{_rpmlibdir}/Specfile.pm
-%attr(755,root,root) %{_rpmlibdir}/http.req
-%attr(755,root,root) %{_rpmlibdir}/magic.prov
-%attr(755,root,root) %{_rpmlibdir}/magic.req
%attr(755,root,root) %{_rpmlibdir}/u_pkg.sh
#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides.sh
#%attr(755,root,root) %{_rpmlibdir}/vpkg-provides2.sh
%{_rpmlibdir}/pentium*
%{_rpmlibdir}/athlon*
%endif
+%ifarch alpha
+%{_rpmlibdir}/alpha*
+%endif
%ifarch amd64
%{_rpmlibdir}/amd64*
-%{_rpmlibdir}/x86_64*
%endif
-%ifarch sparc sparc64
-%{_rpmlibdir}/sparc*
+%ifarch ia64
+%{_rpmlibdir}/ia64*
%endif
-%ifarch alpha
-%{_rpmlibdir}/alpha*
+%ifarch mips mipsel mips64 mips64el
+%{_rpmlibdir}/mips*
%endif
%ifarch ppc
%{_rpmlibdir}/ppc*
%endif
+%ifarch sparc sparc64
+%{_rpmlibdir}/sparc*
+%endif
# must be here for "Requires: rpm-*prov" to work
%{_rpmlibdir}/macros.perl
%{_rpmlibdir}/macros.php
-# not used yet ...
-%{_rpmlibdir}/sql.prov
-%{_rpmlibdir}/sql.req
-%{_rpmlibdir}/tcl.req
+# not used yet ... these six depend on perl
+#%attr(755,root,root) %{_rpmlibdir}/http.req
+#%attr(755,root,root) %{_rpmlibdir}/magic.prov
+#%attr(755,root,root) %{_rpmlibdir}/magic.req
+#%{_rpmlibdir}/sql.prov
+#%{_rpmlibdir}/sql.req
+#%{_rpmlibdir}/tcl.req
%{_rpmlibdir}/trpm
%attr(755,root,root) %{_bindir}/javadeps
%{_includedir}/rpm
%{_libdir}/librpm*.la
%attr(755,root,root) %{_libdir}/librpm.so
+%attr(755,root,root) %{_libdir}/librpm-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmio.so
+%attr(755,root,root) %{_libdir}/librpmio-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmdb.so
+%attr(755,root,root) %{_libdir}/librpmdb-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmbuild.so
%files static
%attr(755,root,root) %{_rpmlibdir}/rpm2cpio.sh
%attr(755,root,root) %{_rpmlibdir}/tgpg
%attr(755,root,root) %{_rpmlibdir}/rpmdb_loadcvt
-
-%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
-
%{_mandir}/man8/rpm2cpio.8*
%{_mandir}/man8/rpmdeps.8*
%{_mandir}/man8/rpmcache.8*
%lang(pl) %{_mandir}/pl/man8/rpmgraph.8*
%lang(ru) %{_mandir}/ru/man8/rpm2cpio.8*
+%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
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/builder
%attr(755,root,root) %{_bindir}/adapter.awk
%attr(755,root,root) %{_bindir}/pldnotify.awk
+
+%if %{with apidocs}
+%files apidocs
+%defattr(644,root,root,755)
+%doc apidocs
+%endif