diff options
author | Brian Harring <ferringb@gentoo.org> | 2011-12-02 10:11:43 +0000 |
---|---|---|
committer | Brian Harring <ferringb@gentoo.org> | 2011-12-02 10:11:43 +0000 |
commit | 1b7d77e5175fa43e9ce23677ced0f5c59fefc196 (patch) | |
tree | f0f1ca1e8b1e973cb984d54688e52591fd9db7ad /sys-apps/pkgcore | |
parent | Drop no-herd. (diff) | |
download | historical-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/ChangeLog | 8 | ||||
-rw-r--r-- | sys-apps/pkgcore/Manifest | 10 | ||||
-rw-r--r-- | sys-apps/pkgcore/files/pkgcore-0.7.7-IFS-manipulation.patch | 111 | ||||
-rw-r--r-- | sys-apps/pkgcore/pkgcore-0.7.7-r1.ebuild | 56 |
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 +} |