commit:     43b8975d7d1004d9d290d399334d3779fe02cf7e
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Mon Jun 19 01:47:27 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jun 21 10:34:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=43b8975d

dev-python/virtualenvwrapper: new snapshot, 4.8.4_p20230121

* Enable tests.

* Enforce the implementation installed with as the default for
  VIRTUALENVWRAPPER_PYTHON. It can still be overidden normally.

Closes: https://bugs.gentoo.org/908533
Signed-off-by: Alfred Wingate <parona <AT> protonmail.com>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/virtualenvwrapper/Manifest              |   1 +
 ...apper-4.8.4_p20230121-remove-use-of-which.patch | 116 +++++++++++++++++++++
 .../virtualenvwrapper-4.8.4_p20230121.ebuild       |  74 +++++++++++++
 3 files changed, 191 insertions(+)

diff --git a/dev-python/virtualenvwrapper/Manifest 
b/dev-python/virtualenvwrapper/Manifest
index 0b660b17d635..a56ec3af4d12 100644
--- a/dev-python/virtualenvwrapper/Manifest
+++ b/dev-python/virtualenvwrapper/Manifest
@@ -1 +1,2 @@
 DIST virtualenvwrapper-4.8.4.tar.gz 334920 BLAKE2B 
cd790b1e98cca7d09ea9c80df5d52380335d4a0ea4e6d95f7bd48d78583e0d842e1145ea08d8d8c73516adbe8d6c75bd53c17943723f859860a0cad105a2b058
 SHA512 
461938100061e11af0ee9b17405d991ae34e5ec9c79cc12614962d3178b588a2da710baa15ac626960b09177c1b5b10c7bc590cb4c126ebd2f719d0f1527c9c4
+DIST virtualenvwrapper-4.8.4_p20230121.gh.tar.gz 72852 BLAKE2B 
2996b88f93790587ffbeed936334bb1f12a9d6d952eb7c9b728a6644c9b7c7e0953bc7c71201fbd590f6258eb163af1aa6494f476decfa54f095ca215e4e13e1
 SHA512 
9df8b20dd8d50fe7891b845c8112edc165b08cc231ebb4010aed8ec50a22005207a9a3c9c9941daa2b958022f0edf993425bf95692f7032d1e5c5719a552d3b4

diff --git 
a/dev-python/virtualenvwrapper/files/virtualenvwrapper-4.8.4_p20230121-remove-use-of-which.patch
 
b/dev-python/virtualenvwrapper/files/virtualenvwrapper-4.8.4_p20230121-remove-use-of-which.patch
new file mode 100644
index 000000000000..875542cf17f6
--- /dev/null
+++ 
b/dev-python/virtualenvwrapper/files/virtualenvwrapper-4.8.4_p20230121-remove-use-of-which.patch
@@ -0,0 +1,116 @@
+https://bugs.gentoo.org/646588
+https://github.com/parona-source/virtualenvwrapper/commit/d7dd99ca8e4ebdf5668708634cf793acee5d35b3
+
+From d7dd99ca8e4ebdf5668708634cf793acee5d35b3 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <[email protected]>
+Date: Wed, 21 Jun 2023 11:35:04 +0300
+Subject: [PATCH] Remove use of which, use command -v or built-ins instead
+
+* which isn't a POSIX tool and some distributions have or are still
+  considering dropping it in favour of using commands included by
+  POSIX or shell built-ins.
+* Used command built-in where applicable, but type and whence for bash
+  and zsh respectively in virtualenvwrapper_verify_resource to preserve
+  previous behaviour with which when programs also have built-ins
+  with the same name. command -v outputs just the name and not the path
+  in those cases.
+
+https://lwn.net/Articles/874049/
+https://bugs.gentoo.org/646588
+
+Signed-off-by: Alfred Wingate <[email protected]>
+---
+ tests/run_tests            |  2 +-
+ tests/test_cp.sh           |  2 +-
+ tests/test_mkvirtualenv.sh |  4 +---
+ virtualenvwrapper.sh       | 10 ++++++++--
+ virtualenvwrapper_lazy.sh  |  2 +-
+ 5 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/tests/run_tests b/tests/run_tests
+index 68cb362..c9a81d6 100755
+--- a/tests/run_tests
++++ b/tests/run_tests
+@@ -62,7 +62,7 @@ do
+     echo "  BASH_VERSION=$BASH_VERSION"
+     echo "  ZSH_VERSION=$ZSH_VERSION"
+     echo "  KSH_VERSION=$KSH_VERSION"
+-    echo "  virtualenv=$(which virtualenv)"
++    echo "  virtualenv=$(command -v virtualenv)"
+     echo "  test_shell_opts=$test_shell_opts"
+     echo "  ZSH=$ZSH_NAME $ZSH_EVAL_CONTEXT"
+     echo "  TMPDIR=$TMPDIR"
+diff --git a/tests/test_cp.sh b/tests/test_cp.sh
+index 3bd9196..3227c7a 100755
+--- a/tests/test_cp.sh
++++ b/tests/test_cp.sh
+@@ -26,7 +26,7 @@ test_new_env_activated () {
+     (cd tests/testpackage && python setup.py install) >/dev/null 2>&1
+     cpvirtualenv "source" "destination" >/dev/null 2>&1
+     rmvirtualenv "source" >/dev/null 2>&1
+-    testscript="$(which testscript.py)"
++    testscript="$(command -v testscript.py)"
+     assertTrue "Environment test script not found in path" "[ 
$WORKON_HOME/destination/bin/testscript.py -ef $testscript ]"
+     testscriptcontent="$(cat $testscript)"
+     assertTrue "No cpvirtualenvtest in $testscriptcontent" "echo 
$testscriptcontent | grep cpvirtualenvtest"
+diff --git a/tests/test_mkvirtualenv.sh b/tests/test_mkvirtualenv.sh
+index 3c37dfe..47b603a 100755
+--- a/tests/test_mkvirtualenv.sh
++++ b/tests/test_mkvirtualenv.sh
+@@ -68,11 +68,9 @@ GLOBAL postmkvirtualenv"
+ }
+ 
+ test_no_virtualenv () {
+-      # Find "which" before we change the path
+-      which=$(which which)
+     old_path="$PATH"
+     PATH="/bin:/usr/sbin:/sbin"
+-    venv=$($which virtualenv 2>/dev/null)
++    venv=$(command -v virtualenv)
+       if [ ! -z "$venv" ]
+       then
+         echo "FOUND \"$venv\" in PATH so skipping this test"
+diff --git a/virtualenvwrapper.sh b/virtualenvwrapper.sh
+index b8e4a42..469fa35 100644
+--- a/virtualenvwrapper.sh
++++ b/virtualenvwrapper.sh
+@@ -47,7 +47,7 @@
+ # Locate the global Python where virtualenvwrapper is installed.
+ if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
+ then
+-    _virtualenvwrapper_python_executable="$(which python3 2>/dev/null)"
++    _virtualenvwrapper_python_executable="$(command -v python3)"
+     if [ -n "$_virtualenvwrapper_python_executable" ] && 
$_virtualenvwrapper_python_executable -m 'virtualenvwrapper.hook_loader' --help 
>/dev/null 2>&1
+     then
+         VIRTUALENVWRAPPER_PYTHON=$_virtualenvwrapper_python_executable
+@@ -330,7 +330,13 @@ function virtualenvwrapper_initialize {
+ 
+ # Verify that the passed resource is in path and exists
+ function virtualenvwrapper_verify_resource {
+-    typeset exe_path="$(command \which "$1" | (unset GREP_OPTIONS; command 
\grep -v "not found"))"
++    if [ -n "${ZSH_VERSION}" ]
++    then
++        typeset exe_path="$(whence -p "${1}")"
++    else
++        typeset exe_path="$(type -P "${1}")"
++    fi
++
+     if [ "$exe_path" = "" ]
+     then
+         echo "ERROR: virtualenvwrapper could not find $1 in your path" >&2
+diff --git a/virtualenvwrapper_lazy.sh b/virtualenvwrapper_lazy.sh
+index 3902d08..9016b6c 100644
+--- a/virtualenvwrapper_lazy.sh
++++ b/virtualenvwrapper_lazy.sh
+@@ -5,7 +5,7 @@ export _VIRTUALENVWRAPPER_API="$_VIRTUALENVWRAPPER_API 
mkvirtualenv rmvirtualenv
+ 
+ if [ -z "$VIRTUALENVWRAPPER_SCRIPT" ]
+ then
+-    export VIRTUALENVWRAPPER_SCRIPT="$(command \which virtualenvwrapper.sh)"
++    export VIRTUALENVWRAPPER_SCRIPT="$(command -v virtualenvwrapper.sh)"
+ fi
+ if [ -z "$VIRTUALENVWRAPPER_SCRIPT" ]
+ then
+-- 
+2.41.0
+

diff --git 
a/dev-python/virtualenvwrapper/virtualenvwrapper-4.8.4_p20230121.ebuild 
b/dev-python/virtualenvwrapper/virtualenvwrapper-4.8.4_p20230121.ebuild
new file mode 100644
index 000000000000..106b7a037d89
--- /dev/null
+++ b/dev-python/virtualenvwrapper/virtualenvwrapper-4.8.4_p20230121.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit distutils-r1
+
+DESCRIPTION="Set of extensions to Ian Bicking's virtualenv tool"
+HOMEPAGE="
+       https://github.com/python-virtualenvwrapper/virtualenvwrapper
+       https://pypi.org/project/virtualenvwrapper/
+"
+
+COMMIT="e63d2c389ed276aa161bb50a27c77af94d96a50c"
+SRC_URI="
+       
https://github.com/python-virtualenvwrapper/virtualenvwrapper/archive/${COMMIT}.tar.gz
+               -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+export PBR_VERSION="${PV/_p/.post}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+RDEPEND="
+       $(python_gen_cond_dep '
+               dev-python/virtualenv[${PYTHON_USEDEP}]
+               dev-python/stevedore[${PYTHON_USEDEP}]
+               dev-python/virtualenv-clone[${PYTHON_USEDEP}]
+       ')
+"
+BDEPEND="
+       ${RDEPEND}
+       $(python_gen_cond_dep '
+               dev-python/pbr[${PYTHON_USEDEP}]
+       ')
+"
+
+PATCHES=(
+       "${FILESDIR}/virtualenvwrapper-${PV}-remove-use-of-which.patch"
+)
+
+src_prepare() {
+       default
+
+       # specify default python interpeter to align with PYTHON_SINGLE_TARGET
+       sed -i -e \
+               
"s|\(_virtualenvwrapper_python_executable=\"\)\$(.*)\(\"\)|\1${EPYTHON}\2|" \
+               virtualenvwrapper.sh || die
+
+       # remove tests which require an internet connection
+       rm tests/test_mkvirtualenv_install.sh || die
+       rm tests/test_mkvirtualenv_requirements.sh || die
+
+       # remove tests which require functional git repos with remotes
+       sed -i -e '/test_wipeenv_\(pip_e\|develop\) () {/,/}/ d' 
tests/test_wipeenv.sh || die
+}
+
+python_test() {
+       # tests have unusual expectations
+       local -x HOME="${HOME%/}"
+       local -x USER="${USER}"
+
+       cp -a "${BUILD_DIR}"/{install/usr,test} || die
+       local -x VIRTUAL_ENV="${BUILD_DIR}/test"
+
+       bash ./tests/run_tests "${VIRTUAL_ENV}" || die "Tests failed under 
${EPYTHON}"
+}

Reply via email to