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>
132 lines
4.2 KiB
Bash
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
|
|
}
|