#/*************************************************************************** # * Copyright (C) 2017-2018,2021 Daniel Mueller (deso@posteo.net) * # * * # * This program is free software: you can redistribute it and/or modify * # * it under the terms of the GNU General Public License as published by * # * the Free Software Foundation, either version 3 of the License, or * # * (at your option) any later version. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU General Public License for more details. * # * * # * You should have received a copy of the GNU General Public License * # * along with this program. If not, see . * # ***************************************************************************/ EAPI=8 DESCRIPTION="A default Python venv scaffolding to be shared globally." HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage" LICENSE="GPL-3+" SLOT="0" KEYWORDS="amd64 amd64-linux" inherit python-single-no-clowntown RDEPEND="${PYTHON_DEPS}" DEPEND="${RDEPEND}" src_unpack() { mkdir "${S}" } src_prepare() { eapply_user ${PYTHON} -m venv --without-pip --symlinks "${S}/pyvenv" || die pushd "${S}/pyvenv" > /dev/null || die rmdir include rm bin/activate.csh rm bin/activate.fish rm --recursive lib rm --recursive lib64 # We have a bunch of problems here. First, we want to patch a file # that is created by the pyvenv module. The file contains an absolute # path that effectively can be configured by the user (through portage # variables). So the patch we have prepared has the literal string # ${S} in it, which we replace with the actual source directory here. # Second, in order for this replacement to work we need to copy over # the patch into the source directory. The reason is that sed attempts # to create a temporary file and the sandboxing mechanism prohibits # that from happening in the files directory. cp "${FILESDIR}/pyvenv-shared-activate.patch" "${S}/" sed --in-place "s!\${S}!${S}!" "${S}/pyvenv-shared-activate.patch" epatch "${S}/pyvenv-shared-activate.patch" popd > /dev/null || die cat > "${S}/pyvenv-shared" <" exit 1 fi for file in /usr/share/pyvenv-shared/*; do ln --force --symbolic "\${file}" "\${1}/" done EOF } src_install() { insinto "/usr/share/pyvenv-shared/" || die doins -r "${S}/pyvenv"/* || die exeinto "/usr/bin/" || die doexe "${S}/pyvenv-shared" || die }