summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Harring <ferringb@gentoo.org>2011-12-02 10:11:43 +0000
committerBrian Harring <ferringb@gentoo.org>2011-12-02 10:11:43 +0000
commit1b7d77e5175fa43e9ce23677ced0f5c59fefc196 (patch)
treef0f1ca1e8b1e973cb984d54688e52591fd9db7ad /sys-apps/pkgcore
parentDrop no-herd. (diff)
downloadhistorical-1b7d77e5175fa43e9ce23677ced0f5c59fefc196.tar.gz
historical-1b7d77e5175fa43e9ce23677ced0f5c59fefc196.tar.bz2
historical-1b7d77e5175fa43e9ce23677ced0f5c59fefc196.zip
fix IFS manipulation bug reported in IRC
Package-Manager: portage-2.1.10.37/cvs/Linux x86_64
Diffstat (limited to 'sys-apps/pkgcore')
-rw-r--r--sys-apps/pkgcore/ChangeLog8
-rw-r--r--sys-apps/pkgcore/Manifest10
-rw-r--r--sys-apps/pkgcore/files/pkgcore-0.7.7-IFS-manipulation.patch111
-rw-r--r--sys-apps/pkgcore/pkgcore-0.7.7-r1.ebuild56
4 files changed, 180 insertions, 5 deletions
diff --git a/sys-apps/pkgcore/ChangeLog b/sys-apps/pkgcore/ChangeLog
index eb2e089b3474..e6d64c4e14d4 100644
--- a/sys-apps/pkgcore/ChangeLog
+++ b/sys-apps/pkgcore/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sys-apps/pkgcore
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/pkgcore/ChangeLog,v 1.135 2011/12/02 08:50:07 ferringb Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/pkgcore/ChangeLog,v 1.136 2011/12/02 10:11:43 ferringb Exp $
+
+*pkgcore-0.7.7-r1 (02 Dec 2011)
+
+ 02 Dec 2011; Brian Harring <ferringb@gentoo.org> +pkgcore-0.7.7-r1.ebuild,
+ +files/pkgcore-0.7.7-IFS-manipulation.patch:
+ Fix IFS manipulation bug in helpers reported in irc
*pkgcore-0.7.7 (02 Dec 2011)
diff --git a/sys-apps/pkgcore/Manifest b/sys-apps/pkgcore/Manifest
index 2bbeb7f77ba2..3dfe619427ac 100644
--- a/sys-apps/pkgcore/Manifest
+++ b/sys-apps/pkgcore/Manifest
@@ -3,19 +3,21 @@ Hash: SHA1
AUX pkgcore-0.7.5-dosym.patch 1165 RMD160 a5d7bcb6fac18150ecb298d8c2acc34b601af4d7 SHA1 1728cc16c276c7731ede940db98fcd2166265889 SHA256 ecc8923d4d6419c740f6f0ca8d533de949f224767b15fa58beab06006e5e38f1
AUX pkgcore-0.7.5-force-python-binary.patch 1238 RMD160 dc03e2dca5222268d63f6a63b9bd4ec8ac49f50f SHA1 82e1ecb996020c519bdf8e24077a40e1d98aafa8 SHA256 0186632d3758ee2f625de16b8287042d9c937af274ea56b2f99d83770d7007c4
+AUX pkgcore-0.7.7-IFS-manipulation.patch 3690 RMD160 08a6f576c3afcb6a82caefe915b674830150b1a6 SHA1 b28dcbaee818b5323f8ba4dad5ea8f71c29d26ae SHA256 d17ca6a9286c3415e4e02264b2391945c78648a7fd992107eb1d1266e317ed9e
DIST pkgcore-0.7.5.tar.bz2 429564 RMD160 08f24ccab29d8e9b319cd1eadc62c3bdf25731e0 SHA1 645dcd292d6cb832671cd7d0884fe33bcfef00a1 SHA256 9d6172ce5eef9c5818946dd52ddc3be61b59e57df227d6d76fb918653ab5daf2
DIST pkgcore-0.7.6.1.tar.bz2 431625 RMD160 a82e211415eb583f89897efb4e05cdb07dabdf0f SHA1 eb5b850bbc801e2f5865a7e79a8f86c86b2b14fa SHA256 d0a91f5f97c8fe121735dda056fe8d0a208099e72e8258b3a3b1cf1fc26328d2
DIST pkgcore-0.7.7.tar.bz2 432017 RMD160 989fd06824da93cd17e8d5f36d7b8eac7d98d1ca SHA1 6ecfdabf2afb2651b6c47fc084e953e08af8fa8c SHA256 0651c063a3acf94f70ea0dad23abd9fd79e4feddfa3846f5ef94dbb57e2f74be
EBUILD pkgcore-0.7.5-r2.ebuild 1870 RMD160 948037c5bd6ad9e75b4253c11a530bc036ce4862 SHA1 00dcf7567987eab28a1de1f1cd73d52946bbf55f SHA256 ae59abec5f538230e4742873275231fd3a151806f831b009f0cdf7f4b93f2028
EBUILD pkgcore-0.7.6.1.ebuild 1756 RMD160 fd649053252b869717313b2b994d2ba020eb0a87 SHA1 078898c38a66047c18679a3e8d70d0a022f12289 SHA256 a1e5716a11d4de33539033a3d9915acac946d7bec63d5efa8ae646e4ed5ac8d3
+EBUILD pkgcore-0.7.7-r1.ebuild 1200 RMD160 f1d89ab5823539b2902ea89220694f4e2179359f SHA1 80a0221c67e1aa8a36b9375a47c3f3c8b13235d0 SHA256 023f2eb7d91bbff6a3e67f8f1541140cef3857ff66e46a859800763be8095fdd
EBUILD pkgcore-0.7.7.ebuild 1121 RMD160 35d647c66c9791c956d7de618e7a60f90491910c SHA1 8e6705d4da580f782deb27b3d00ddeb8a430f273 SHA256 17d07a2a3bcf00c8b7ebc6b38fa679837270dc5e4fd9965aeb3ac4044373a816
EBUILD pkgcore-9999.ebuild 1120 RMD160 3f17d12712993acf80fea044af7a1db0bd3ee0ba SHA1 ea64eec34de872efa6b5f4338c406ca087faab2a SHA256 37280a21a96e176edf421098b8b1aa299038fdb3976a38b6b5386afb5beeea61
-MISC ChangeLog 22340 RMD160 4fc36264094aa8e2c0ffc5a1ba14db1343267d42 SHA1 5bc254fde769a030d600ae9b463e6839e73c7a2f SHA256 0be435aa80f9d5c106b1025d978fd1620bd004183c8929f0c5d5e9dd3a754d92
+MISC ChangeLog 22552 RMD160 78abe56809ac6ed3e23a123d087b9dae76f0083c SHA1 eb79e5b1e39b8f111ae3840388a88a997e905f08 SHA256 a3d67762efe9e2d49f01ab968ea263d8fa5486ebcf542311592fadf2f6baa27c
MISC metadata.xml 234 RMD160 7f7e4ec7da60203d4fc0d59ea9b7001ca84fd88c SHA1 fc54601f1382d43dd16625b242d7a52ff36f3782 SHA256 f036ed153de912a1bb1466478e9ce0c9d4ecae55929f6b13490c3f47a242fc0d
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iEYEARECAAYFAk7YkUQACgkQsiLx3HvNzgfwAgCfTQqOK1BkyYTV9JbsIt2wnejY
-mE0AoMVkdrSYRrixnLNoWe34jJx4q1ON
-=R/AB
+iEYEARECAAYFAk7YpGQACgkQsiLx3HvNzgeuswCfdjL5z4Udzju0DyPSmaydCMRd
+FcIAnAlVGEYa87yRBq3F6hjnb7t8L+Hl
+=yBgI
-----END PGP SIGNATURE-----
diff --git a/sys-apps/pkgcore/files/pkgcore-0.7.7-IFS-manipulation.patch b/sys-apps/pkgcore/files/pkgcore-0.7.7-IFS-manipulation.patch
new file mode 100644
index 000000000000..eee2ed516ac4
--- /dev/null
+++ b/sys-apps/pkgcore/files/pkgcore-0.7.7-IFS-manipulation.patch
@@ -0,0 +1,111 @@
+From 5c362279c739ff4c6b2cd0e54e8c978462809e28 Mon Sep 17 00:00:00 2001
+From: Brian Harring <ferringb@gmail.com>
+Date: Fri, 2 Dec 2011 02:06:07 -0800
+Subject: [PATCH] shift IFS manipulation into isolated-functions, since has
+ relies on it.
+
+---
+ pkgcore/ebuild/eapi-bash/ebuild-daemon.bash | 30 ++++------------------
+ pkgcore/ebuild/eapi-bash/ebuild.lib | 1 -
+ pkgcore/ebuild/eapi-bash/isolated-functions.lib | 25 ++++++++++++++++++-
+ 3 files changed, 30 insertions(+), 26 deletions(-)
+
+diff --git a/pkgcore/ebuild/eapi-bash/ebuild-daemon.bash b/pkgcore/ebuild/eapi-bash/ebuild-daemon.bash
+index 2260fa0..0a1c4be 100755
+--- a/pkgcore/ebuild/eapi-bash/ebuild-daemon.bash
++++ b/pkgcore/ebuild/eapi-bash/ebuild-daemon.bash
+@@ -3,30 +3,6 @@
+ # Copyright 2004-2011 Brian Harring <ferringb@gmail.com>
+ # License: BSD/GPL2
+
+-declare -a PKGCORE_SAVED_IFS
+-
+-pkgcore_push_IFS()
+-{
+- PKGCORE_SAVED_IFS[${#PKGCORE_SAVED_IFS[@]}]="${IFS-unset}"
+- if [[ $1 == unset ]]; then
+- unset IFS
+- else
+- IFS="$1"
+- fi
+- :
+-}
+-
+-pkgcore_pop_IFS()
+-{
+- if [[ ${#PKGCORE_SAVED_IFS[@]} == 0 ]]; then
+- die "pkgcore_pop_IFS invoked with nothing on the stack..."
+- fi
+- IFS=${PKGCORE_SAVED_IFS[$(( ${#PKGCORE_SAVED_IFS[@]} -1 ))]}
+- [[ ${IFS} == unset ]] && unset IFS
+- unset PKGCORE_SAVED_IFS[$(( ${#PKGCORE_SAVED_IFS[@]} -1 ))]
+- :
+-}
+-
+ # use ebd_read/ebd_write for talking to the running portage instance instead of echo'ing to the fd yourself.
+ # this allows us to move the open fd's w/out issues down the line.
+ ebd_read_line()
+@@ -131,6 +107,12 @@ pkgcore_ebd_exec_main()
+ exit 2;
+ fi
+
++ # get our die functionality now.
++ if ! source "${PKGCORE_BIN_PATH}/isolated-functions.lib"; then
++ ebd_write_line "failed sourcing isolated-functions.lib"
++ exit 2;
++ fi
++
+ ebd_read_line PKGCORE_PYTHON_BINARY
+ [ -z "$PKGCORE_PYTHON_BINARY" ] && die "empty PKGCORE_PYTHON_BINARY, bailing"
+ ebd_read_line PKGCORE_PYTHONPATH
+diff --git a/pkgcore/ebuild/eapi-bash/ebuild.lib b/pkgcore/ebuild/eapi-bash/ebuild.lib
+index 0ae3ed5..ff13300 100644
+--- a/pkgcore/ebuild/eapi-bash/ebuild.lib
++++ b/pkgcore/ebuild/eapi-bash/ebuild.lib
+@@ -234,7 +234,6 @@ load_ebuild()
+ # note that exit-handling loads the die functions, thus the custom failure there.
+ source "${PKGCORE_BIN_PATH}/exit-handling.lib" >&2 || { echo "ERROR: failed sourcing exit-handling.lib"; exit -1; }
+ source "${PKGCORE_BIN_PATH}/ebuild-default-functions.lib" >&2 || die "failed sourcing ebuild-default-functions.lib"
+-source "${PKGCORE_BIN_PATH}/isolated-functions.lib" >&2 || die "failed sourcing stripped down functions.lib"
+ source "${PKGCORE_BIN_PATH}/ebuild-env-utils.lib" >&2 || die "failed sourcing ebuild-env-utils.lib"
+
+ pkgcore_run_ebuild_phase()
+diff --git a/pkgcore/ebuild/eapi-bash/isolated-functions.lib b/pkgcore/ebuild/eapi-bash/isolated-functions.lib
+index faee73d..b589dfb 100644
+--- a/pkgcore/ebuild/eapi-bash/isolated-functions.lib
++++ b/pkgcore/ebuild/eapi-bash/isolated-functions.lib
+@@ -126,7 +126,30 @@ pkgcore_shopt_pop()
+ :
+ } &> /dev/null
+
++declare -a PKGCORE_SAVED_IFS
++
++pkgcore_push_IFS()
++{
++ PKGCORE_SAVED_IFS[${#PKGCORE_SAVED_IFS[@]}]="${IFS-unset}"
++ if [[ $1 == unset ]]; then
++ unset IFS
++ else
++ IFS="$1"
++ fi
++ :
++}
++
++pkgcore_pop_IFS()
++{
++ if [[ ${#PKGCORE_SAVED_IFS[@]} == 0 ]]; then
++ die "pkgcore_pop_IFS invoked with nothing on the stack..."
++ fi
++ IFS=${PKGCORE_SAVED_IFS[$(( ${#PKGCORE_SAVED_IFS[@]} -1 ))]}
++ [[ ${IFS} == unset ]] && unset IFS
++ unset PKGCORE_SAVED_IFS[$(( ${#PKGCORE_SAVED_IFS[@]} -1 ))]
++ :
++}
++
+ unset_colors
+-DONT_EXPORT_VARS="${DONT_EXPORT_VARS} PKGCORE_RC_.* PKGCORE_ESHOPT_STATE"
+
+ :
+--
+1.7.8.rc3
+
diff --git a/sys-apps/pkgcore/pkgcore-0.7.7-r1.ebuild b/sys-apps/pkgcore/pkgcore-0.7.7-r1.ebuild
new file mode 100644
index 000000000000..4ca8d0a32197
--- /dev/null
+++ b/sys-apps/pkgcore/pkgcore-0.7.7-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/pkgcore/pkgcore-0.7.7-r1.ebuild,v 1.1 2011/12/02 10:11:43 ferringb Exp $
+
+EAPI="3"
+DISTUTILS_SRC_TEST="setup.py"
+
+inherit distutils eutils
+
+DESCRIPTION="pkgcore package manager"
+HOMEPAGE="http://pkgcore.googlecode.com/"
+SRC_URI="http://pkgcore.googlecode.com/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="-doc build"
+
+RDEPEND=">=dev-lang/python-2.4
+ >=dev-python/snakeoil-0.4.4
+ || ( >=dev-lang/python-2.5 dev-python/pycrypto )"
+DEPEND="${RDEPEND}
+ doc? ( dev-python/sphinx dev-python/pyparsing )"
+
+DOCS="AUTHORS NEWS"
+
+pkg_setup() {
+ # disable snakeoil 2to3 caching...
+ unset PY2TO3_CACHEDIR
+ python_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-${PV}-IFS-manipulation.patch"
+}
+
+src_compile() {
+ distutils_src_compile
+
+ if use doc; then
+ python setup.py build_docs || die "doc building failed"
+ fi
+}
+
+src_install() {
+ distutils_src_install
+
+ if use doc; then
+ dohtml -r build/sphinx/html/*
+ fi
+}
+
+pkg_postinst() {
+ distutils_pkg_postinst
+ pplugincache
+}