Files
MINGW-packages/mingw-w64-python-pycodestyle/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

132 lines
4.2 KiB
Bash

# Maintainer: J. Peter Mugaas <jpmugaas@suddenlink.net>
#This value is here because some python package names have capital letters
#while there is a strong preference for lowercase letters in ArchLinux and
#MSYS packages.
_realname=pycodestyle
pkgbase=mingw-w64-python-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
pkgver=2.5.0
pkgrel=2
pkgdesc="Python style guide checker (mingw-w64)"
arch=('any')
url='https://github.com/PyCQA/pycodestyle'
license=('custom:Expat')
makedepends=("${MINGW_PACKAGE_PREFIX}-python2"
"${MINGW_PACKAGE_PREFIX}-python3"
"${MINGW_PACKAGE_PREFIX}-python3-setuptools"
"${MINGW_PACKAGE_PREFIX}-python2-setuptools")
options=('staticlibs' 'strip' '!debug')
source=("${_realname}-${pkgver}.tar.gz"::"https://github.com/PyCQA/pycodestyle/archive/${pkgver}.tar.gz")
sha256sums=('a603453c07e8d8e15a43cf062aa7174741b74b4a27b110f9ad03d74d519173b5')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying $_patch"
patch -Nbp1 -i "${srcdir}/$_patch"
done
}
del_file_exists() {
for _fname in "$@"
do
if [ -f $_fname ]; then
rm -rf $_fname
fi
done
}
# =========================================== #
prepare() {
cd "${srcdir}"
for builddir in python{2,3}-build-${CARCH}; do
rm -rf ${builddir} | true
cp -r "${_realname}-${pkgver}" "${builddir}"
done
}
# Note that build() is sometimes skipped because it's done in
# the packages setup.py install for simplicity if you can do so.
# but sometimes, you want to do a check before install which would
# also trigger the build.
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
}
check() {
for pver in {2,3}; do
msg "Python ${pver} test for ${CARCH}"
cd "${srcdir}/python${pver}-build-${CARCH}"
# two of these tests are known to fail in Windows
${MINGW_PREFIX}/bin/python${pver} setup.py test || true
done
}
package_python3-pycodestyle() {
depends=("${MINGW_PACKAGE_PREFIX}-python3")
replaces=("${MINGW_PACKAGE_PREFIX}-pep8-python3" "${MINGW_PACKAGE_PREFIX}-python3-pep8")
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 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/COPYING"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
# fix python command in files
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do
sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${_f}
done
}
package_python2-pycodestyle() {
depends=("${MINGW_PACKAGE_PREFIX}-python2")
replaces=("${MINGW_PACKAGE_PREFIX}-pep8-python2" "${MINGW_PACKAGE_PREFIX}-python2-pep8")
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 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/COPYING"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
# fix python command in files
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.py; do
sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${_f}
done
for f in pycodestyle; 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-pycodestyle() {
package_python2-pycodestyle
}
package_mingw-w64-i686-python3-pycodestyle() {
package_python3-pycodestyle
}
package_mingw-w64-x86_64-python2-pycodestyle() {
package_python2-pycodestyle
}
package_mingw-w64-x86_64-python3-pycodestyle() {
package_python3-pycodestyle
}