Files
MINGW-packages/mingw-w64-python-coverage/PKGBUILD
Dan Yeaw fddd9ee6c6 Use current path prefix to find Python script files to modify
When using pacman to install packages, the --root option can be set to
install them to an alternative location. The current install scripts
don't take this in to account which causes no such file or directory
errors. This modifies the sed command to use the full prefix path
when renaming the shebang.

Signed-off-by: Dan Yeaw <dan@yeaw.me>
2019-03-27 13:02:27 -04:00

101 lines
3.4 KiB
Bash

# Contributor: Frederic Wang <fred.wang@free.fr>
_realname=coverage
pkgbase=mingw-w64-python-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
pkgver=4.5.2
pkgrel=2
pkgdesc="Code coverage measurement for Python (mingw-w64)"
arch=('any')
url='https://coverage.readthedocs.io/'
license=('Apache 2.0')
makedepends=("${MINGW_PACKAGE_PREFIX}-python2"
"${MINGW_PACKAGE_PREFIX}-python3"
"${MINGW_PACKAGE_PREFIX}-python2-setuptools"
"${MINGW_PACKAGE_PREFIX}-python3-setuptools")
_dtoken='fb/af/ce7b0fe063ee0142786ee53ad6197979491ce0785567b6d8be751d2069e8'
source=("https://pypi.org/packages/${_dtoken}/${_realname}-${pkgver}.tar.gz")
sha256sums=('ab235d9fe64833f12d1334d29b558aacedfbca2356dfb9691f2d0d38a8a7bfb4')
prepare() {
cd "${srcdir}"
for builddir in python{2,3}-build-${CARCH}; do
rm -rf ${builddir} | true
cp -r "${_realname}-${pkgver}" "${builddir}"
done
}
build() {
for pver in {2,3}; do
msg "Python ${pver} build for ${CARCH}"
cd "${srcdir}/python${pver}-build-${CARCH}"
${MINGW_PREFIX}/bin/python${pver} setup.py build
done
}
package_python3-coverage() {
depends=("${MINGW_PACKAGE_PREFIX}-python3")
install=${_realname}3-${CARCH}.install
cd "${srcdir}/python3-build-${CARCH}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX} \
--root="${pkgdir}" --optimize=1 --skip-build
install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
# fix python command in files
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do
sed -e "s|/usr/bin/env |${MINGW_PREFIX}|g" \
-e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${_f}
done
}
package_python2-coverage() {
depends=("${MINGW_PACKAGE_PREFIX}-python2")
install=${_realname}2-${CARCH}.install
cd "${srcdir}/python2-build-${CARCH}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX} \
--root="${pkgdir}" --optimize=1 --skip-build
install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
# fix python command in files
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do
sed -e "s|/usr/bin/env |${MINGW_PREFIX}|g" \
-e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${_f}
done
for f in coverage; do
mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe
if [ -f "${pkgdir}${MINGW_PREFIX}"/bin/${f}.exe.manifest ]; then
mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}.exe.manifest
sed -e "s|${f}|${f}2|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/${f}2.exe.manifest
fi
mv "${pkgdir}${MINGW_PREFIX}"/bin/${f}{,2}-script.py
done
}
package_mingw-w64-i686-python2-coverage() {
install=${_realname}2-${CARCH}.install
package_python2-coverage
}
package_mingw-w64-i686-python3-coverage() {
install=${_realname}3-${CARCH}.install
package_python3-coverage
}
package_mingw-w64-x86_64-python2-coverage() {
install=${_realname}2-${CARCH}.install
package_python2-coverage
}
package_mingw-w64-x86_64-python3-coverage() {
install=${_realname}3-${CARCH}.install
package_python3-coverage
}