#
# TODO:
+# - manuals are not compressed
# - python(abi) cap is not provided automatically because /usr/lib*/libpython2*.so.*
# matches ELF first
# - repackaging when lzma is not installed (todo: fix digest signature of header)
# tags (incl. digest) and writes whole package to destination file;
# repackaging uses unchanged "immutable header" image from original rpm, also
# preserving payload format and compressor from original rpm, _not_ current settings
+# - TODO: add macros for some ppc, mipsel, alpha and sparc
+# - uppackaged list:
+# /usr/lib/rpm/http.req
+# /usr/lib/rpm/install-sh
+# /usr/lib/rpm/mono-find-provides
+# /usr/lib/rpm/mono-find-requires
+# /usr/lib/rpm/osgideps.pl
+# /usr/lib/rpm/perldeps.pl
+# /usr/lib/rpm/rpm2cpio
+# /usr/lib/rpm/symclash.py
+# /usr/lib/rpm/symclash.sh
+# /usr/lib/rpm/vcheck
+# /usr/share/man/ja/man8/rpmcache.8
+# /usr/share/man/ja/man8/rpmgraph.8
+# /usr/share/man/man8/rpmcache.8
+# /usr/share/man/man8/rpmconstant.8
+# /usr/share/man/man8/rpmgraph.8
+# /usr/share/man/pl/man8/rpmcache.8
+# /usr/share/man/pl/man8/rpmgraph.8
#
# Conditional build:
%bcond_with static # build static rpm+rpmi
%endif
%if %{without db} && %{without sqlite}
-%{error: Need db or sqlite}
+%{error:Need db or sqlite}
ERROR
%endif
%define reqdb_ver 4.6.18
%define reqpopt_ver 1.10.8
%define beecrypt_ver 2:4.1.2-4
+%define find_lang_rev 1.27
%define sover 5.0
Summary: RPM Package Manager
Summary(de.UTF-8): RPM Packet-Manager
Summary(ru.UTF-8): Менеджер пакетов от RPM
Summary(uk.UTF-8): Менеджер пакетів від RPM
Name: rpm
-Version: 5.0
+Version: 5.0.2
Release: 0.1
-License: GPL
+License: LGPL
Group: Base
-Source0: rpm-20070927.tar.gz
-# Source0-md5: cf0bda3a41b74d68b36ef078edfafc6d
+Source0: http://rpm5.org/files/rpm/rpm-5.0/%{name}-%{version}.tar.gz
+# Source0-md5: 596aaf5cd9dea7195f625530bc89e684
Source1: %{name}.groups
Source2: %{name}.platform
Source3: %{name}-install-tree
# http://svn.pld-linux.org/banner.sh/
Source17: banner.sh
Source18: %{name}-pld.macros
-Patch0: %{name}-pl.po.patch
+Source100: %{name}-macros-athlon
+Source101: %{name}-macros-i386
+Source102: %{name}-macros-i486
+Source103: %{name}-macros-i586
+Source104: %{name}-macros-i686
+Source105: %{name}-macros-noarch
+Source106: %{name}-macros-pentium3
+Source107: %{name}-macros-pentium4
+Source108: %{name}-macros-ppc
+Source109: %{name}-macros-x86_64
+Source110: %{name}-macros-ia32e
+Source111: %{name}-macros-amd64
+
+#Patch0: %{name}-pl.po.patch
+Patch1: %{name}-man_pl.patch
Patch3: %{name}-rpmpopt.patch
Patch4: %{name}-perl-macros.patch
Patch5: %{name}-perl-req-perlfile.patch
Patch23: %{name}-pkgconfigdeps.patch
-Patch25: %{name}-rpm2cpio-payload.patch
Patch26: %{name}-notsc.patch
Patch27: %{name}-hack-norpmlibdep.patch
-Patch31: %{name}-missing-prototypes.patch
Patch32: %{name}-pld-autodep.patch
-Patch34: %{name}-epoch0.patch
Patch35: %{name}-perl_req-INC_dirs.patch
Patch36: %{name}-debuginfo.patch
Patch37: %{name}-doxygen_hack.patch
-Patch41: %{name}-reduce-stack-usage.patch
Patch42: %{name}-old-fileconflicts-behaviour.patch
Patch46: %{name}-mono.patch
Requires: sh-utils
Requires: tar
Requires: textutils
+Provides: rpmbuild(find_lang) = %{find_lang_rev}
Provides: rpmbuild(monoautodeps)
Provides: rpmbuild(noauto) = 3
%ifarch %{x8664}
Python para manipular pacotes e bancos de dados RPM.
%prep
-%setup -q -n %{name}
-sed -i -e 's# no # nb #g' configure.ac
-mv po/no.po po/nb.po
-sed -i -e 's# sr # sr@Latn #g' configure.ac
-mv -f po/{sr,sr@Latn}.po
+%setup -q
-sed -i -e 's#${prefix}/lib/python@WITH_PYTHON_VERSION@#@WITH_PYTHON_LIBDIR@#g' python/rpm/Makefile.am
-
-# APPLIED ALREADY?
-#%patch0 -p1
+# APPLIED ALREADY? translationproject.org is used now
+#%%patch0 -p1
+%patch1 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
-# CHECK ME
-#%patch14 -p1
+# CHECK ME - macrofiles: ~/etc could be used
+#%%patch14 -p1
%patch16 -p1
%patch18 -p1
echo '%%define __perl_provides %%{__perl} /usr/lib/rpm/perl.prov' > macros.perl
install %{SOURCE10} scripts/php.req.in
install %{SOURCE12} scripts/perl.prov
%patch23 -p1
-%patch25 -p1
-%ifarch i386
+
+%ifarch i386 i486
# disable TSC
%patch26 -p1
%endif
%patch27 -p1
-# CHECK ME
-#%patch31 -p1
%patch32 -p1
-%patch34 -p1
%patch35 -p0
%patch36 -p1
%patch37 -p1
-# CHECK ME
-#%patch41 -p1
%patch42 -p1
-# CHECK ME, PROBABLY WILL NEED TO HANLE IN OTHER WAY since rpmfcSCRIPT already handles mono
-#%patch46 -p1
+%patch46 -p1
%patch47 -p1
# OLD COMMENTED OUT
-#%patch52 -p1
+#%%patch52 -p1
%patch55 -p1
%patch58 -p1
%patch59 -p1
#done
%build
+rev=$(awk '/^#.*Id:.*/{print $4}' scripts/find-lang.sh)
+if [ "$rev" != "%find_lang_rev" ]; then
+ : Update find_lang_rev define to $rev, and retry
+ exit 1
+fi
+
%{__libtoolize}
%{__autopoint}
%{__aclocal}
%{?with_autoreqdep:--enable-adding-packages-names-in-autogenerated-dependancies} \
--enable-shared \
--enable-static \
- %{?with_python:--with-python=2.5 --with-python-lib-dir=%{py_libdir}} \
+ %{?with_python:--with-python=%{py_ver} --with-python-lib-dir=%{py_sitedir}} \
%{!?with_python:--without-python} \
--with%{!?with_selinux:out}-selinux \
--with-libelf \
--with-db=%{?with_db:external}%{!?with_db:no} \
--with-sqlite=%{?with_sqlite:external}%{!?with_sqlite:no} \
--with-dbapi=%{!?sqlite_dbapi:db}%{?sqlite_dbapi:sqlite} \
- --with-lua=none \
- --with-pcre=external \
+ --with-lua=internal \
+ --with-pcre=no \
--with-keyutils=none \
--without-path-versioned \
- --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.build:%{_rpmlibdir}/%%{_target}/macros:%{_sysconfdir}/macros.*:%{_sysconfdir}/macros:%{_sysconfdir}/%%{_target}/macros:~/etc/rpmmacros:~/etc/.rpmmacros:~/.rpmmacros' \
+ --with-path-macros='%{_rpmlibdir}/macros:%{_rpmlibdir}/macros.pld:%{_rpmlibdir}/macros.build:%{_rpmlibdir}/%%{_target}/macros:%{_sysconfdir}/macros.*:%{_sysconfdir}/macros:%{_sysconfdir}/%%{_target}/macros:~/etc/rpmmacros:~/etc/.rpmmacros:~/.rpmmacros' \
--with-bugreport="http://bugs.pld-linux.org/"
%{__make} \
pkgconfigdir=%{_pkgconfigdir} \
DESTDIR=$RPM_BUILD_ROOT
+# install ARCH macros
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux
+install %{SOURCE105} $RPM_BUILD_ROOT%{_rpmlibdir}/noarch-linux/macros
+
+%ifarch %{ix86}
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{i386,i486,i586,i686,athlon,pentium3,pentium4}-linux
+install %{SOURCE100} $RPM_BUILD_ROOT%{_rpmlibdir}/athlon-linux/macros
+install %{SOURCE101} $RPM_BUILD_ROOT%{_rpmlibdir}/i386-linux/macros
+install %{SOURCE102} $RPM_BUILD_ROOT%{_rpmlibdir}/i486-linux/macros
+install %{SOURCE103} $RPM_BUILD_ROOT%{_rpmlibdir}/i586-linux/macros
+install %{SOURCE104} $RPM_BUILD_ROOT%{_rpmlibdir}/i686-linux/macros
+install %{SOURCE106} $RPM_BUILD_ROOT%{_rpmlibdir}/pentium3-linux/macros
+install %{SOURCE107} $RPM_BUILD_ROOT%{_rpmlibdir}/pentium4-linux/macros
+%endif
+
+%ifarch %{x8664}
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/{x86_64,ia32e,amd64}-linux
+install %{SOURCE109} $RPM_BUILD_ROOT%{_rpmlibdir}/x86_64-linux/macros
+install %{SOURCE110} $RPM_BUILD_ROOT%{_rpmlibdir}/ia32e-linux/macros
+install %{SOURCE111} $RPM_BUILD_ROOT%{_rpmlibdir}/amd64-linux/macros
+%endif
+
+%ifarch %{ppc}
+install -d $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux
+install %{SOURCE108} $RPM_BUILD_ROOT%{_rpmlibdir}/ppc-linux/macros
+%endif
+
# first platform file entry can't contain regexps
echo "%{_target_cpu}-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
echo "amd64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
echo "x86_64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
%endif
-
%ifarch amd64
echo "amd64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
echo "x86_64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
%endif
-
%ifarch ia32e
echo "ia32e-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
echo "x86_64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
echo "i386-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
%endif
-# ppc
+%ifarch alpha
+echo "alpha-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+
+%ifarch ia64
+echo "ia64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+
+%ifarch ppc64
+echo "powerpc64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+echo "ppc64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
%ifarch ppc
-echo "ppc-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
echo "powerpc-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+echo "ppc-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+
+%ifarch s390x
+echo "s390x-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+%ifarch s390 s390x
+echo "s390-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+
+%ifarch sparc64
+echo "sparc64-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+echo "sparcv8-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+echo "sparcv9-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+%ifarch sparcv9
+echo "sparcv8-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+echo "sparcv9-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
+%endif
+%ifarch sparc sparcv9 sparc64
+echo "sparc-[^-]*-linux(-gnu)?" >> $RPM_BUILD_ROOT%{_sysconfdir}/rpm/platform
%endif
# noarch
%{_pkgconfigdir}/*.pc
%attr(755,root,root) %{_libdir}/librpm.so
%attr(755,root,root) %{_libdir}/librpm-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmconstant.so
+%attr(755,root,root) %{_libdir}/librpmconstant-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmio.so
%attr(755,root,root) %{_libdir}/librpmio-%{sover}.so
+%attr(755,root,root) %{_libdir}/librpmmisc.so
+%attr(755,root,root) %{_libdir}/librpmmisc-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmdb.so
%attr(755,root,root) %{_libdir}/librpmdb-%{sover}.so
%attr(755,root,root) %{_libdir}/librpmbuild.so
%attr(755,root,root) %{_rpmlibdir}/pkgconfigdeps.sh
#%attr(755,root,root) %{_rpmlibdir}/rpmb
#%attr(755,root,root) %{_rpmlibdir}/rpmt
-# XXX FIXME FIXME FIXME XXX
-%if 0
%{_rpmlibdir}/noarch-*
%ifarch %{ix86}
%{_rpmlibdir}/i?86*
%{_rpmlibdir}/ia32e*
%{_rpmlibdir}/x86_64*
%endif
-%endif
# must be here for "Requires: rpm-*prov" to work
%{_rpmlibdir}/macros.java
%{_rpmlibdir}/macros.mono