diff options
author | Sandro Bonazzola <sanchan@gentoo.org> | 2007-02-12 19:44:53 +0000 |
---|---|---|
committer | Sandro Bonazzola <sanchan@gentoo.org> | 2007-02-12 19:44:53 +0000 |
commit | 01590e491cdf951dcbc00bc19e26f73399c6db3a (patch) | |
tree | 3c73325dcea68d9feafbd77df5871375fbe491a2 /app-arch/rpm | |
parent | removal (diff) | |
download | gentoo-2-01590e491cdf951dcbc00bc19e26f73399c6db3a.tar.gz gentoo-2-01590e491cdf951dcbc00bc19e26f73399c6db3a.tar.bz2 gentoo-2-01590e491cdf951dcbc00bc19e26f73399c6db3a.zip |
ebuild bump trying to increase QA level of this package as per bug #162447. Added a workaround trying to fix bug #153292. Thanks to Marti Raudsepp <marti@juffo.org> for reporting. Thanks to Jeff Johnson <n3npq.jbj@gmail.com> and Ken Gilmer <ken@buglabs.net> for their help.
(Portage version: 2.1.2-r9)
Diffstat (limited to 'app-arch/rpm')
-rw-r--r-- | app-arch/rpm/ChangeLog | 29 | ||||
-rw-r--r-- | app-arch/rpm/files/digest-rpm-4.4.6-r4 | 3 | ||||
-rw-r--r-- | app-arch/rpm/files/digest-rpm-4.4.7-r2 | 3 | ||||
-rw-r--r-- | app-arch/rpm/files/digest-rpm-4.4.7-r3 | 6 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.4.6-qa-fix-undefined.patch | 21 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.4.7-qa-fix-undefined.patch | 33 | ||||
-rw-r--r-- | app-arch/rpm/files/rpm-4.4.7-qa-implicit-function-to-pointer.patch | 14 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.4.6-r3.ebuild | 4 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.4.6-r4.ebuild | 106 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.4.7-r1.ebuild | 4 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.4.7-r2.ebuild | 181 | ||||
-rw-r--r-- | app-arch/rpm/rpm-4.4.7-r3.ebuild | 258 |
12 files changed, 485 insertions, 177 deletions
diff --git a/app-arch/rpm/ChangeLog b/app-arch/rpm/ChangeLog index 2f48da7aa9bf..639832227f2d 100644 --- a/app-arch/rpm/ChangeLog +++ b/app-arch/rpm/ChangeLog @@ -1,8 +1,19 @@ # ChangeLog for app-arch/rpm # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/ChangeLog,v 1.78 2007/01/16 22:10:59 sanchan Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/ChangeLog,v 1.79 2007/02/12 19:44:53 sanchan Exp $ - 16 Jan 2007; Sandro Bonazzola <sanchan@gentoo.org> +*rpm-4.4.7-r3 (12 Feb 2007) +*rpm-4.4.6-r4 (12 Feb 2007) + + 12 Feb 2007; Sandro Bonazzola <sanchan@gentoo.org> + +files/rpm-4.4.6-qa-fix-undefined.patch, + +files/rpm-4.4.7-qa-fix-undefined.patch, + +files/rpm-4.4.7-qa-implicit-function-to-pointer.patch, + +rpm-4.4.6-r4.ebuild, rpm-4.4.7-r2.ebuild, +rpm-4.4.7-r3.ebuild: + ebuild bump trying to increase QA level of this package as per bug #162447. + Added a workaround trying to fix bug #153292. Thanks to Marti Raudsepp <marti@juffo.org> + for reporting. Thanks to Jeff Johnson <n3npq.jbj@gmail.com> and Ken Gilmer <ken@buglabs.net> + for their help. *rpm-4.4.7-r2 (16 Jan 2007) @@ -237,7 +248,7 @@ Mark stable on alpha 7 Mar 2003; Stefan Jones <cretin@gentoo.org> rpm-4.2.ebuild : - Added dev-libs/elfutils to DEPEND + Added dev-libs/elfutils to DEPEND 6 Mar 2003; Stefan Jones <cretin@gentoo.org> rpm-4.2.ebuild : Newest rpm available from redhat rawhide. Seems to work fine. @@ -255,7 +266,7 @@ *rpm-4.1 (19 Feb 2003) - 19 Feb 2003; Nick Hadaway <raker@gentoo.org> rpm-4.1.ebuild, + 19 Feb 2003; Nick Hadaway <raker@gentoo.org> rpm-4.1.ebuild, files/digest-rpm-4.1, files/rpm-4.1-system-popt.diff : Package builds. rpm doesn't run. All are -arch. This has been added to portage so people can test and maybe find a @@ -269,19 +280,19 @@ jwarren@cheesefoam.dyndns.org (Jeremy Warren) in bug #13784. 06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords - + 12 Oct 2002; Bruce A. Locke <blocke@shivan.org> rpm-4.0.4-r4.ebuild: Remove dead symlink (bug #8578) and ebuild no longer blindly creates a database if one already exists. *rpm-4.0.4-r3 (23 Jul 2002) - 14 Sep 2002; Maarten Thibaut <murphy@gentoo.org> ChangeLog rpm-4.0.4-r3.ebuild: + 14 Sep 2002; Maarten Thibaut <murphy@gentoo.org> ChangeLog rpm-4.0.4-r3.ebuild: This package can not compile on sparc64 without a --host option to configure, so I added that flag. Revamped ChangeLog layout according to new guidelines. - - 07 Sep 2002; Seemant Kulleen <seemant@gentoo.org> rpm-4.0.4-r3.ebuild: - This package can not compile with autoconf-2.53a, so autoconf-2.1 is forced. + + 07 Sep 2002; Seemant Kulleen <seemant@gentoo.org> rpm-4.0.4-r3.ebuild: + This package can not compile with autoconf-2.53a, so autoconf-2.1 is forced. Thanks to: garion@garion.mnbsyr.com (John Sutherland) in bug #7595 23 Jul 2002; Seemant Kulleen <seemant@gentoo.org> rpm-4.0.4-r3.ebuild: In keeping diff --git a/app-arch/rpm/files/digest-rpm-4.4.6-r4 b/app-arch/rpm/files/digest-rpm-4.4.6-r4 new file mode 100644 index 000000000000..8dae251f56e0 --- /dev/null +++ b/app-arch/rpm/files/digest-rpm-4.4.6-r4 @@ -0,0 +1,3 @@ +MD5 baa6f371446c65b4080d1cd1f194a7ae rpm-4.4.6.tar.gz 17157249 +RMD160 6b433d20a63fb2542244ae62eff0a8b5fe290439 rpm-4.4.6.tar.gz 17157249 +SHA256 1e1da50af2b9dfe34c79315eae7520e7e57087671e17ce26107d779ae2b0b595 rpm-4.4.6.tar.gz 17157249 diff --git a/app-arch/rpm/files/digest-rpm-4.4.7-r2 b/app-arch/rpm/files/digest-rpm-4.4.7-r2 index 2739a8ed4c19..8ad784707d6f 100644 --- a/app-arch/rpm/files/digest-rpm-4.4.7-r2 +++ b/app-arch/rpm/files/digest-rpm-4.4.7-r2 @@ -1,6 +1,3 @@ -MD5 3df07424eb50a8dc9f174acd649746af rpm-4.4.7-patches-1.tar.gz 48537 -RMD160 9baaf952fa105bc2a51241eac89ff28ffd2378a0 rpm-4.4.7-patches-1.tar.gz 48537 -SHA256 1444dc2eb7c07953bd5e0857d6d9db3817a692308729288d3acd84910abdb4a4 rpm-4.4.7-patches-1.tar.gz 48537 MD5 d012c81b5169f7377ea4a36607e1445e rpm-4.4.7.tar.gz 14125623 RMD160 9002eb0fe1d680d8bff447d6918f9726c9a4e34c rpm-4.4.7.tar.gz 14125623 SHA256 18fde4195e4ac21a4290327336948f8c4fc58a680395edbb5f2f31bae67b18b5 rpm-4.4.7.tar.gz 14125623 diff --git a/app-arch/rpm/files/digest-rpm-4.4.7-r3 b/app-arch/rpm/files/digest-rpm-4.4.7-r3 new file mode 100644 index 000000000000..2739a8ed4c19 --- /dev/null +++ b/app-arch/rpm/files/digest-rpm-4.4.7-r3 @@ -0,0 +1,6 @@ +MD5 3df07424eb50a8dc9f174acd649746af rpm-4.4.7-patches-1.tar.gz 48537 +RMD160 9baaf952fa105bc2a51241eac89ff28ffd2378a0 rpm-4.4.7-patches-1.tar.gz 48537 +SHA256 1444dc2eb7c07953bd5e0857d6d9db3817a692308729288d3acd84910abdb4a4 rpm-4.4.7-patches-1.tar.gz 48537 +MD5 d012c81b5169f7377ea4a36607e1445e rpm-4.4.7.tar.gz 14125623 +RMD160 9002eb0fe1d680d8bff447d6918f9726c9a4e34c rpm-4.4.7.tar.gz 14125623 +SHA256 18fde4195e4ac21a4290327336948f8c4fc58a680395edbb5f2f31bae67b18b5 rpm-4.4.7.tar.gz 14125623 diff --git a/app-arch/rpm/files/rpm-4.4.6-qa-fix-undefined.patch b/app-arch/rpm/files/rpm-4.4.6-qa-fix-undefined.patch new file mode 100644 index 000000000000..25537d19b009 --- /dev/null +++ b/app-arch/rpm/files/rpm-4.4.6-qa-fix-undefined.patch @@ -0,0 +1,21 @@ +--- rpm-4.4.6/rpmio/url.c.orig 2007-01-20 16:29:35.471962977 +0100 ++++ rpm-4.4.6/rpmio/url.c 2007-01-20 16:30:34.438967191 +0100 +@@ -28,6 +28,8 @@ + #define IPPORT_PGPKEYSERVER 11371 + #endif + ++#include <neon/ne_session.h> ++ + /** + */ + /*@unchecked@*/ + +--- rpm-4.4.6/lib/rpmfi.c.orig 2007-01-20 18:11:30.186124993 +0100 ++++ rpm-4.4.6/lib/rpmfi.c 2007-01-20 18:13:26.938313715 +0100 +@@ -24,6 +24,7 @@ + + #include "misc.h" /* XXX stripTrailingChar */ + #include "rpmmacro.h" /* XXX rpmCleanPath */ ++#include "legacy.h" /* XXX dodigest */ + + #include "debug.h" diff --git a/app-arch/rpm/files/rpm-4.4.7-qa-fix-undefined.patch b/app-arch/rpm/files/rpm-4.4.7-qa-fix-undefined.patch new file mode 100644 index 000000000000..a5627ebc0599 --- /dev/null +++ b/app-arch/rpm/files/rpm-4.4.7-qa-fix-undefined.patch @@ -0,0 +1,33 @@ +--- rpmio/url.c.orig 2007-01-20 16:29:35.471962977 +0100 ++++ rpmio/url.c 2007-01-20 16:30:34.438967191 +0100 +@@ -28,6 +28,8 @@ + #define IPPORT_PGPKEYSERVER 11371 + #endif + ++#include <neon/ne_session.h> ++ + /** + */ + /*@unchecked@*/ + +--- lib/rpmrc.c.orig 2007-01-20 16:40:21.922342919 +0100 ++++ lib/rpmrc.c 2007-01-20 16:42:11.185674112 +0100 +@@ -13,7 +13,7 @@ + #else + #define __power_pc() 0 + #endif +- ++#include <rpmio_internal.h> + #include <rpmcli.h> + #include <rpmmacro.h> + #include <rpmlua.h> + +--- lib/rpmfi.c.orig 2007-01-20 18:11:30.186124993 +0100 ++++ lib/rpmfi.c 2007-01-20 18:13:26.938313715 +0100 +@@ -24,6 +24,7 @@ + + #include "misc.h" /* XXX stripTrailingChar */ + #include "rpmmacro.h" /* XXX rpmCleanPath */ ++#include "legacy.h" /* XXX dodigest */ + + #include "debug.h" diff --git a/app-arch/rpm/files/rpm-4.4.7-qa-implicit-function-to-pointer.patch b/app-arch/rpm/files/rpm-4.4.7-qa-implicit-function-to-pointer.patch new file mode 100644 index 000000000000..96f7afbf1eab --- /dev/null +++ b/app-arch/rpm/files/rpm-4.4.7-qa-implicit-function-to-pointer.patch @@ -0,0 +1,14 @@ +Fix QA Notice: Function `dbiFreeIndexSet' implicitly converted to pointer at transaction.c:2086 +that will almost certainly crash on 64bit architectures. +Patch provided by Jeff Johnson <n3npq.jbj@gmail.com> on Rpm-devel list. +--- rpm-4.4.7/lib/transaction.c.orig 2007-01-20 15:44:30.275657635 +0100 ++++ rpm-4.4.7/lib/transaction.c 2007-01-20 15:45:09.818625107 +0100 +@@ -2083,7 +2083,7 @@ + shared->isRemoved = (knownBad == ro); + shared++; + } +- matches[i] = dbiFreeIndexSet(matches[i]); ++ (void) dbiFreeIndexSet(matches[i]); + } + numShared = shared - sharedList; + shared->otherPkg = -1; diff --git a/app-arch/rpm/rpm-4.4.6-r3.ebuild b/app-arch/rpm/rpm-4.4.6-r3.ebuild index b67487186a0c..0b6ac16a7ca6 100644 --- a/app-arch/rpm/rpm-4.4.6-r3.ebuild +++ b/app-arch/rpm/rpm-4.4.6-r3.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2006 Gentoo Foundation +# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.6-r3.ebuild,v 1.1 2006/11/06 21:11:24 sanchan Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.6-r3.ebuild,v 1.2 2007/02/12 19:44:53 sanchan Exp $ WANT_AUTOCONF="latest" WANT_AUTOMAKE="latest" diff --git a/app-arch/rpm/rpm-4.4.6-r4.ebuild b/app-arch/rpm/rpm-4.4.6-r4.ebuild new file mode 100644 index 000000000000..9dd6bd0198e8 --- /dev/null +++ b/app-arch/rpm/rpm-4.4.6-r4.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.6-r4.ebuild,v 1.1 2007/02/12 19:44:53 sanchan Exp $ + +inherit eutils autotools distutils perl-module flag-o-matic + +DESCRIPTION="Red Hat Package Management Utils" +HOMEPAGE="http://www.rpm.org/" +SRC_URI="http://wraptastic.org/pub/rpm-4.4.x/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="nls python perl doc sqlite" + +RDEPEND="=sys-libs/db-3.2* + >=sys-libs/zlib-1.1.3 + >=app-arch/bzip2-1.0.1 + >=dev-libs/popt-1.7 + >=app-crypt/gnupg-1.2 + dev-libs/elfutils + virtual/libintl + >=dev-libs/beecrypt-3.1.0-r1 + python? ( >=dev-lang/python-2.2 ) + perl? ( >=dev-lang/perl-5.8.8 ) + nls? ( virtual/libintl ) + sqlite? ( >=dev-db/sqlite-3.3.5 ) + net-misc/neon" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext ) + doc? ( app-doc/doxygen )" + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${P}-with-sqlite.patch + epatch "${FILESDIR}"/${P}-stupidness.patch + epatch "${FILESDIR}"/${P}-autotools.patch + epatch "${FILESDIR}"/${P}-buffer-overflow.patch + epatch "${FILESDIR}"/${P}-qa-fix-undefined.patch + + # rpm uses AM_GNU_GETTEXT() but fails to actually + # include any of the required gettext files + cp /usr/share/gettext/config.rpath . || die + + # the following are additional libraries that might be packaged with + # the rpm sources. grep for "test -d" in configure.ac + cp file/src/{file,patchlevel}.h tools/ + rm -rf beecrypt elfutils neon popt sqlite zlib intl file + + sed -i -e "s:intl ::" Makefile.am + sed -i -e "s:intl/Makefile ::" configure.ac + AT_NO_RECURSIVE="yes" eautoreconf + # TODO Get rid of internal copies of lua, db and db3 +} + +src_compile() { + # Until strict aliasing is porperly fixed... + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + python_version + econf \ + --enable-posixmutexes \ + --without-javaglue \ + --without-selinux \ + $(use_with python python ${PYVER}) \ + $(use_with doc apidocs) \ + $(use_with perl) \ + $(use_with sqlite) \ + $(use_enable nls) \ + || die "econf failed" + emake || die "emake failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + + mv "${D}"/bin/rpm "${D}"/usr/bin + rmdir "${D}"/bin + + use nls || rm -rf "${D}"/usr/share/man/?? + + keepdir /usr/src/rpm/{SRPMS,SPECS,SOURCES,RPMS,BUILD} + + dodoc CHANGES CREDITS GROUPS README* RPM* + use doc && dohtml -r apidocs/html/* + + # Fix perllocal.pod file collision + use perl && fixlocalpod + + for magic_file in "magic.mime.mgc" "magic.mgc" "magic.mime" "magic"; do + dosym /usr/share/misc/file/${magic_file} /usr/lib/rpm/${magic_file} + done +} + +pkg_postinst() { + if [[ -f ${ROOT}/var/lib/rpm/Packages ]] ; then + einfo "RPM database found... Rebuilding database (may take a while)..." + "${ROOT}"/usr/bin/rpm --rebuilddb --root=${ROOT} + else + einfo "No RPM database found... Creating database..." + "${ROOT}"/usr/bin/rpm --initdb --root=${ROOT} + fi + + distutils_pkg_postinst +} diff --git a/app-arch/rpm/rpm-4.4.7-r1.ebuild b/app-arch/rpm/rpm-4.4.7-r1.ebuild index 2a63e1692ebb..b7d95e094be1 100644 --- a/app-arch/rpm/rpm-4.4.7-r1.ebuild +++ b/app-arch/rpm/rpm-4.4.7-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2006 Gentoo Foundation +# Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.7-r1.ebuild,v 1.1 2006/11/06 21:11:24 sanchan Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.7-r1.ebuild,v 1.2 2007/02/12 19:44:53 sanchan Exp $ WANT_AUTOCONF="latest" WANT_AUTOMAKE="latest" diff --git a/app-arch/rpm/rpm-4.4.7-r2.ebuild b/app-arch/rpm/rpm-4.4.7-r2.ebuild index 0d1a0657b7bf..8538189a621f 100644 --- a/app-arch/rpm/rpm-4.4.7-r2.ebuild +++ b/app-arch/rpm/rpm-4.4.7-r2.ebuild @@ -1,48 +1,35 @@ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.7-r2.ebuild,v 1.1 2007/01/16 22:10:59 sanchan Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.7-r2.ebuild,v 1.2 2007/02/12 19:44:53 sanchan Exp $ -WANT_AUTOCONF="latest" -WANT_AUTOMAKE="latest" -inherit eutils autotools distutils perl-module gnuconfig toolchain-funcs +inherit eutils autotools distutils perl-module flag-o-matic DESCRIPTION="Red Hat Package Management Utils" HOMEPAGE="http://www.rpm.org/" -SRC_URI="http://wraptastic.org/pub/rpm-4.4.x/${P}.tar.gz - http://dev.gentoo.org/~sanchan/patches/rpm-4.4.7-patches-1.tar.gz" +SRC_URI="http://wraptastic.org/pub/rpm-4.4.x/${P}.tar.gz" LICENSE="GPL-2 LGPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" -IUSE="berkdb doc elibc_uclibc java lua minimal nls perl python sqlite threads" -GUID="37" +IUSE="nls python perl doc sqlite" -RDEPEND="berkdb? ( >sys-libs/db-4 ) +RDEPEND="=sys-libs/db-3.2* >=sys-libs/zlib-1.2.3-r1 >=app-arch/bzip2-1.0.1 >=dev-libs/popt-1.7 >=app-crypt/gnupg-1.2 - elibc_glibc? ( dev-libs/elfutils ) + dev-libs/elfutils virtual/libintl - >=dev-libs/beecrypt-4.1.2 + >=dev-libs/beecrypt-3.1.0-r1 python? ( >=dev-lang/python-2.2 ) perl? ( >=dev-lang/perl-5.8.8 ) - nls? ( sys-devel/gettext ) + nls? ( virtual/libintl ) sqlite? ( >=dev-db/sqlite-3.3.5 ) net-misc/neon" -# lua? ( dev-lang/lua ) DEPEND="${RDEPEND} nls? ( sys-devel/gettext ) doc? ( app-doc/doxygen )" -pkg_setup() { - if ! (use berkdb || use sqlite) ; then - ewarn "Haven't chosen any database format, either berkdb or sqlite" - ewarn "have to be used!" - die - fi -} - src_unpack() { unpack ${A} cd "${S}" @@ -50,103 +37,36 @@ src_unpack() { epatch "${FILESDIR}"/rpm-4.4.7-stupidness.patch epatch "${FILESDIR}"/rpm-4.4.6-autotools.patch epatch "${FILESDIR}"/rpm-4.4.6-buffer-overflow.patch - epatch "${WORKDIR}"/${P}-openpkg.bugfix.patch - epatch "${WORKDIR}"/${P}-openpkg.porting.patch - epatch "${WORKDIR}"/${P}-openpkg.feature.patch - epatch "${WORKDIR}"/${P}-libintl.patch - epatch "${FILESDIR}"/rpm-4.0.4-sandbox.patch - epatch "${WORKDIR}"/${P}-zdefs.patch - epatch "${WORKDIR}"/${P}-zdefs-x_functions.patch - epatch "${WORKDIR}"/${P}-uclibc-nolibio.patch - epatch "${WORKDIR}"/${P}-uclibc-no__fxstat64.patch - epatch "${WORKDIR}"/${P}-fix-exec_prefix.patch - - epatch "${WORKDIR}"/${P}-no_threads.patch - epatch "${WORKDIR}"/${P}-no_threads2.patch - epatch "${WORKDIR}"/${P}-with-threads.patch - - epatch "${WORKDIR}"/${P}-gentoo.patch - epatch "${WORKDIR}"/${P}-fix-redhat.patch - epatch "${FILESDIR}"/rpm-4.0.4-gentoo-uclibc.patch - - epatch "${WORKDIR}"/${P}-external_db.patch - epatch "${WORKDIR}"/${P}-external_db2.patch - epatch "${WORKDIR}"/${P}-external_db3.patch - - epatch "${WORKDIR}"/${P}-no_lua.patch - - cp autodeps/linux.req autodeps/linux-uclibc.req - cp autodeps/linux.prov autodeps/linux-uclibc.prov + epatch "${FILESDIR}"/${P}-qa-implicit-function-to-pointer.patch + epatch "${FILESDIR}"/${P}-qa-fix-undefined.patch # rpm uses AM_GNU_GETTEXT() but fails to actually # include any of the required gettext files - # the gettext files exist only if gettext is installed (not on uClibc) - if use nls ; then - cp /usr/share/gettext/config.rpath . || die - else - epatch "${FILESDIR}"/${P}-config.rpath.patch - sed -i -e '/AM_GNU_GETTEXT/d' configure.ac - sed -i -e '/^SUBDIRS/s:po::' Makefile.am - fi - if use elibc_uclibc ; then - sed -i 's:--enable-rpc:--disable-rpc:' db3/configure - sed -i 's:rpmdb_svc rpmdb_stat:rpmdb_stat:' rpmdb/Makefile.am - fi + cp /usr/share/gettext/config.rpath . || die # the following are additional libraries that might be packaged with # the rpm sources. grep for "test -d" in configure.ac cp file/src/{file,patchlevel}.h tools/ - rm -rf beecrypt elfutils neon popt sqlite zlib intl file syck tools - use lua || rm -rf lua - use berkdb && rm -rf db db3 - #use sqlite && rm -rf db db3 + rm -rf beecrypt elfutils neon popt sqlite zlib intl file sed -i -e "s:intl ::" Makefile.am sed -i -e "s:intl/Makefile ::" configure.ac - use nls || sed -i -e "s:@INTLLIBS@::" lib/Makefile.am - sed -i -e '/lua\/Makefile/d' configure.ac - sed -i -e '/syck\/Makefile/d' -e '/syck\/lib\/Makefile/d' configure.ac - sed -i -e '/tools\/Makefile/d' configure.ac - sed -i -e '/^SUBDIRS/s:tools scripts:scripts:' Makefile.am - - gnuconfig_update AT_NO_RECURSIVE="yes" eautoreconf - # TODO: make it work with external lua too + # TODO Get rid of internal copies of lua, db and db3 } src_compile() { - # we use arch-gentoo-linux-{gnu,uclibc} tuple - export CHOST="${CHOST//-pc-/-gentoo-}" - export CHOST="${CHOST//-unknown-/-gentoo-}" - - local myconf - if use threads ; then - myconf="--with-threads --enable-posixmutexes" - else - myconf="--without-threads --disable-posixmutexes --with-mutex=\"UNIX/fcntl\"" - fi - if use minimal ; then - # it does not work with berkdb, hash method is missing - if use berkdb ; then - myconf="${myconf} --disable-cryptography --disable-queue - --disable-replication --disable-verify" - else - myconf="${myconf} --enable-smallbuild" - fi - fi - - -#$(use_with perl) \ + # Until strict aliasing is porperly fixed... + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing python_version - econf ${myconf} \ + econf \ + --enable-posixmutexes \ --without-javaglue \ --without-selinux \ - --without-syck \ - $(use_with lua) \ $(use_with python python ${PYVER}) \ $(use_with doc apidocs) \ - --without-perl \ - $(use_with db) \ + $(use_with perl) \ $(use_with sqlite) \ $(use_enable nls) \ || die "econf failed" @@ -161,76 +81,16 @@ src_install() { use nls || rm -rf "${D}"/usr/share/man/?? - keepdir /etc/rpm - keepdir /var/spool/repackage - keepdir /var/lib/rpm - local dbi - for dbi in \ - Basenames Conflictname Dirnames Group Installtid Name Packages \ - Providename Provideversion Requirename Requireversion Triggername \ - Filemd5s Pubkeys Sha1header Sigmd5 Depends \ - __db.001 __db.002 __db.003 __db.004 __db.006 __db.007 \ - __db.008 __db.009 - do - touch "${D}"/var/lib/rpm/${dbi} - done - keepdir /usr/src/gentoo/{SRPMS,SPECS,SOURCES,RPMS,BUILD} - keepdir /usr/src/gentoo/RPMS/noarch - keepdir /usr/src/gentoo/RPMS/$(tc-arch) - local x - if [[ $(tc-arch) == "x86" ]] ; then - for x in athlon i386 i486 i586 i686 pentium3 pentium4 ; do - keepdir /usr/src/gentoo/RPMS/${x} - done - #else - #[[ $(tc-arch) == "ppc64" ]] && keepdir /usr/src/gentoo/RPMS/ppc - fi + keepdir /usr/src/rpm/{SRPMS,SPECS,SOURCES,RPMS,BUILD} dodoc CHANGES CREDITS GROUPS README* RPM* use doc && dohtml -r apidocs/html/* # Fix perllocal.pod file collision use perl && fixlocalpod - - # remove development stuff - rm -rf "${D}"/usr/include - rm -f "${D}"/usr/lib/lib*.*a - rm -f "${D}"/usr/lib/rpm/rpmcache - rm -f "${D}"/usr/bin/rpmgraph - rm -f "${D}"/usr/share/man/man*/rpmcache* - rm -f "${D}"/usr/share/man/man*/rpmgraph* - # remove unneeded links - rm -f "${D}"/usr/bin/rpm? - # remove unused utilities/files - #rm -f "${D}"/usr/lib/rpm/rpm.{daily,log,xinetd} - rm -f "${D}"/usr/lib/rpm/rpm.xinetd - [[ $(tc-arch) != "sparc64" ]] && rm -f "${D}"/usr/lib/rpm/*sparc64* - use java || rm -f "${D}"/usr/lib/rpm/*java* - dodir /etc/logrotate.d - mv "${D}"/usr/lib/rpm/rpm.log "${D}"/etc/logrotate.d/rpm - dodir /etc/cron.daily - mv "${D}"/usr/lib/rpm/rpm.daily "${D}"/etc/cron.daily/rpm - # remove unused requirement checks - rm -f "${D}"/usr/lib/rpm/{tcl,sql}.* - # misc - rm -f "${D}"/usr/lib/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi} - # disable automatic perl requirements - # puts too much info into db - chmod 644 "${D}"/usr/lib/rpm/perl.req - - dodir /etc/env.d - echo 'CONFIG_PROTECT_MASK="/var/lib/rpm"' > "${D}"/etc/env.d/50rpm -} - -pkg_preinst() { - enewgroup ${PN} ${GUID} - enewuser ${PN} ${GUID} /bin/bash /var/lib/rpm rpm } pkg_postinst() { - chown -R rpm:rpm ${ROOT}/usr/lib/rpm - chown -R rpm:rpm ${ROOT}/var/lib/rpm - chown rpm:rpm ${ROOT}/usr/bin/rpm{,2cpio,build,db,query,sign,verify} if [[ -f ${ROOT}/var/lib/rpm/Packages ]] ; then einfo "RPM database found... Rebuilding database (may take a while)..." "${ROOT}"/usr/bin/rpm --rebuilddb --root=${ROOT} @@ -238,7 +98,6 @@ pkg_postinst() { einfo "No RPM database found... Creating database..." "${ROOT}"/usr/bin/rpm --initdb --root=${ROOT} fi - chown rpm:rpm ${ROOT}/var/lib/rpm/* distutils_pkg_postinst } diff --git a/app-arch/rpm/rpm-4.4.7-r3.ebuild b/app-arch/rpm/rpm-4.4.7-r3.ebuild new file mode 100644 index 000000000000..6f5649e06220 --- /dev/null +++ b/app-arch/rpm/rpm-4.4.7-r3.ebuild @@ -0,0 +1,258 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm/rpm-4.4.7-r3.ebuild,v 1.1 2007/02/12 19:44:53 sanchan Exp $ + +inherit eutils autotools distutils gnuconfig toolchain-funcs flag-o-matic + +DESCRIPTION="Red Hat Package Management Utils" +HOMEPAGE="http://www.rpm.org/" +SRC_URI="http://wraptastic.org/pub/rpm-4.4.x/${P}.tar.gz + http://dev.gentoo.org/~sanchan/patches/rpm-4.4.7-patches-1.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="berkdb doc elibc_uclibc java lua minimal nls perl python sqlite threads debug" +GUID="37" + +RDEPEND="berkdb? ( >sys-libs/db-4 ) + >=sys-libs/zlib-1.2.3-r1 + >=app-arch/bzip2-1.0.1 + >=dev-libs/popt-1.7 + >=app-crypt/gnupg-1.2 + elibc_glibc? ( dev-libs/elfutils ) + virtual/libintl + >=dev-libs/beecrypt-4.1.2 + python? ( >=dev-lang/python-2.2 ) + perl? ( >=dev-lang/perl-5.8.8 ) + nls? ( sys-devel/gettext ) + sqlite? ( >=dev-db/sqlite-3.3.5 ) + net-misc/neon" +# lua? ( dev-lang/lua ) +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext ) + doc? ( app-doc/doxygen )" + +pkg_setup() { + if use perl; then + ewarn "Perl bindings are provided by perl module RPM2. Just run:" + ewarn "emerge app-portage/g-cpan" + ewarn "g-cpan -i RPM2" + ewarn "or if you prefer:" + ewarn "g-cpan -i RPM4" + fi + if ! (use berkdb || use sqlite) ; then + ewarn "Haven't chosen any database format, either berkdb or sqlite" + ewarn "have to be used!" + die + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/rpm-4.4.6-with-sqlite.patch + epatch "${FILESDIR}"/rpm-4.4.7-stupidness.patch + epatch "${FILESDIR}"/rpm-4.4.6-autotools.patch + epatch "${FILESDIR}"/rpm-4.4.6-buffer-overflow.patch + epatch "${WORKDIR}"/${P}-openpkg.bugfix.patch + epatch "${WORKDIR}"/${P}-openpkg.porting.patch + epatch "${WORKDIR}"/${P}-openpkg.feature.patch + epatch "${WORKDIR}"/${P}-libintl.patch + epatch "${FILESDIR}"/rpm-4.0.4-sandbox.patch + epatch "${WORKDIR}"/${P}-zdefs.patch + epatch "${WORKDIR}"/${P}-zdefs-x_functions.patch + epatch "${WORKDIR}"/${P}-uclibc-nolibio.patch + epatch "${WORKDIR}"/${P}-uclibc-no__fxstat64.patch + epatch "${WORKDIR}"/${P}-fix-exec_prefix.patch + + epatch "${WORKDIR}"/${P}-no_threads.patch + epatch "${WORKDIR}"/${P}-no_threads2.patch + epatch "${WORKDIR}"/${P}-with-threads.patch + + epatch "${WORKDIR}"/${P}-gentoo.patch + epatch "${WORKDIR}"/${P}-fix-redhat.patch + epatch "${FILESDIR}"/rpm-4.0.4-gentoo-uclibc.patch + + #epatch "${WORKDIR}"/${P}-external_db.patch + #epatch "${WORKDIR}"/${P}-external_db2.patch + #epatch "${WORKDIR}"/${P}-external_db3.patch + + epatch "${WORKDIR}"/${P}-no_lua.patch + epatch "${FILESDIR}"/${P}-qa-implicit-function-to-pointer.patch + epatch "${FILESDIR}"/${P}-qa-fix-undefined.patch + + cp autodeps/linux.req autodeps/linux-uclibc.req + cp autodeps/linux.prov autodeps/linux-uclibc.prov + + # rpm uses AM_GNU_GETTEXT() but fails to actually + # include any of the required gettext files + # the gettext files exist only if gettext is installed (not on uClibc) + if use nls ; then + cp /usr/share/gettext/config.rpath . || die + else + epatch "${FILESDIR}"/${P}-config.rpath.patch + sed -i -e '/AM_GNU_GETTEXT/d' configure.ac + sed -i -e '/^SUBDIRS/s:po::' Makefile.am + fi + if use elibc_uclibc ; then + sed -i 's:--enable-rpc:--disable-rpc:' db3/configure + sed -i 's:rpmdb_svc rpmdb_stat:rpmdb_stat:' rpmdb/Makefile.am + fi + + # the following are additional libraries that might be packaged with + # the rpm sources. grep for "test -d" in configure.ac + cp file/src/{file,patchlevel}.h tools/ + rm -rf beecrypt elfutils neon popt sqlite zlib intl file syck tools perl + use lua || rm -rf lua + + sed -i -e "s:intl ::" Makefile.am + sed -i -e "s:intl/Makefile ::" configure.ac + use nls || sed -i -e "s:@INTLLIBS@::" lib/Makefile.am + sed -i -e '/lua\/Makefile/d' configure.ac + sed -i -e '/syck\/Makefile/d' -e '/syck\/lib\/Makefile/d' configure.ac + sed -i -e '/tools\/Makefile/d' configure.ac + sed -i -e '/^SUBDIRS/s:tools scripts:scripts:' Makefile.am + + gnuconfig_update + AT_NO_RECURSIVE="yes" eautoreconf + # TODO: make it work with external lua too +} + +src_compile() { + # Until strict aliasing is porperly fixed... + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + use debug && append-flags -g2 -ggdb && filter-flags -fomit-frame-pointer + + # we use arch-gentoo-linux-{gnu,uclibc} tuple + export CHOST="${CHOST//-pc-/-gentoo-}" + export CHOST="${CHOST//-unknown-/-gentoo-}" + + local myconf + if use threads ; then + myconf="--with-threads --enable-posixmutexes" + else + #myconf="--without-threads --disable-posixmutexes --with-mutex=\"UNIX/fcntl\"" + myconf="--without-threads --disable-posixmutexes" + fi + if use berkdb ; then + myconf="${myconf} --with-db" + else + myconf="${myconf} --without-db" + fi + if use minimal ; then + # it does not work with berkdb, hash method is missing + if use berkdb ; then + myconf="${myconf} --disable-cryptography --disable-queue --disable-replication --disable-verify" + else + myconf="${myconf} --enable-smallbuild" + fi + fi + + + python_version + econf ${myconf} \ + --without-javaglue \ + --without-selinux \ + --without-syck \ + --without-perl \ + $(use_with lua) \ + $(use_with python python ${PYVER}) \ + $(use_with doc apidocs) \ + $(use_with sqlite) \ + $(use_enable nls) \ + || die "econf failed" + emake -j1 || die "emake failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + + mv "${D}"/bin/rpm "${D}"/usr/bin + rmdir "${D}"/bin + + use nls || rm -rf "${D}"/usr/share/man/?? + + keepdir /etc/rpm + keepdir /var/spool/repackage + keepdir /var/lib/rpm + local dbi + for dbi in \ + Basenames Conflictname Dirnames Group Installtid Name Packages \ + Providename Provideversion Requirename Requireversion Triggername \ + Filemd5s Pubkeys Sha1header Sigmd5 Depends \ + __db.001 __db.002 __db.003 __db.004 __db.006 __db.007 \ + __db.008 __db.009 + do + touch "${D}"/var/lib/rpm/${dbi} + done + keepdir /usr/src/gentoo/{SRPMS,SPECS,SOURCES,RPMS,BUILD} + keepdir /usr/src/gentoo/RPMS/noarch + keepdir /usr/src/gentoo/RPMS/$(tc-arch) + local x + if [[ $(tc-arch) == "x86" ]] ; then + for x in athlon i386 i486 i586 i686 pentium3 pentium4 ; do + keepdir /usr/src/gentoo/RPMS/${x} + done + #else + #[[ $(tc-arch) == "ppc64" ]] && keepdir /usr/src/gentoo/RPMS/ppc + fi + + dodoc CHANGES CREDITS GROUPS README* RPM* + use doc && dohtml -r apidocs/html/* + + # remove development stuff + rm -rf "${D}"/usr/include + rm -f "${D}"/usr/lib/lib*.*a + rm -f "${D}"/usr/lib/rpm/rpmcache + rm -f "${D}"/usr/bin/rpmgraph + rm -f "${D}"/usr/share/man/man*/rpmcache* + rm -f "${D}"/usr/share/man/man*/rpmgraph* + # remove unneeded links + rm -f "${D}"/usr/bin/rpm? + # remove unused utilities/files + #rm -f "${D}"/usr/lib/rpm/rpm.{daily,log,xinetd} + rm -f "${D}"/usr/lib/rpm/rpm.xinetd + [[ $(tc-arch) != "sparc64" ]] && rm -f "${D}"/usr/lib/rpm/*sparc64* + use java || rm -f "${D}"/usr/lib/rpm/*java* + dodir /etc/logrotate.d + mv "${D}"/usr/lib/rpm/rpm.log "${D}"/etc/logrotate.d/rpm + dodir /etc/cron.daily + mv "${D}"/usr/lib/rpm/rpm.daily "${D}"/etc/cron.daily/rpm + # remove unused requirement checks + rm -f "${D}"/usr/lib/rpm/{tcl,sql}.* + # misc + rm -f "${D}"/usr/lib/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi} + # disable automatic perl requirements + # puts too much info into db + chmod 644 "${D}"/usr/lib/rpm/perl.req + + for magic_file in "magic.mime.mgc" "magic.mgc" "magic.mime" "magic"; do + dosym /usr/share/misc/file/${magic_file} /usr/lib/rpm/${magic_file} + done + + dodir /etc/env.d + echo 'CONFIG_PROTECT_MASK="/var/lib/rpm"' > "${D}"/etc/env.d/50rpm +} + +pkg_preinst() { + enewgroup ${PN} ${GUID} + enewuser ${PN} ${GUID} /bin/bash /var/lib/rpm rpm +} + +pkg_postinst() { + chown -R rpm:rpm ${ROOT}/usr/lib/rpm + chown -R rpm:rpm ${ROOT}/var/lib/rpm + chown rpm:rpm ${ROOT}/usr/bin/rpm{,2cpio,build,db,query,sign,verify} + if [[ -f ${ROOT}/var/lib/rpm/Packages ]] ; then + einfo "RPM database found... Rebuilding database (may take a while)..." + "${ROOT}"/usr/bin/rpm --rebuilddb --root=${ROOT} + else + einfo "No RPM database found... Creating database..." + "${ROOT}"/usr/bin/rpm --initdb --root=${ROOT} + fi + chown rpm:rpm ${ROOT}/var/lib/rpm/* + + distutils_pkg_postinst +} |