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>
113 lines
4.0 KiB
Bash
113 lines
4.0 KiB
Bash
# Maintainer: Kyle Kauffman <kyle.j.kauffman@gmail.com>
|
|
|
|
_realname=ipython
|
|
pkgbase=mingw-w64-python2-${_realname}
|
|
pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}")
|
|
pkgver=5.3.0
|
|
pkgrel=10
|
|
pkgdesc="An enhanced Interactive Python shell (mingw-w64)"
|
|
arch=('any')
|
|
url="https://ipython.org/"
|
|
license=('BSD')
|
|
install=${_realname}2-${CARCH}.install
|
|
depends=('winpty'
|
|
"${MINGW_PACKAGE_PREFIX}-sqlite3"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-traitlets"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-simplegeneric"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-pickleshare"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-prompt_toolkit1"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-backports.shutil_get_terminal_size"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-jedi"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-win_unicode_console")
|
|
optdepends=("${MINGW_PACKAGE_PREFIX}-python2-nose: for IPython's test suite"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-pyqt4: for ipython qtconsole"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-sip: for ipython qtconsole"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-pygments: for ipython qtconsole"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-jinja: for ipython notebook"
|
|
"${MINGW_PACKAGE_PREFIX}-python2-pyzmq: ipython notebook and ipython qtconcole")
|
|
makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools")
|
|
source=("${_realname}-${pkgver}.tar.gz::https://github.com/ipython/ipython/archive/${pkgver}.tar.gz"
|
|
0001-unimplemented-readline-calls.patch)
|
|
sha256sums=('8c6e0be8d11b85641eb6e738975e4c91a03db08702f39c45c4ff42c6e43b8754'
|
|
'cd6dac2442a2477c28096d87cdb7f38ef46b9d3341920d9e88396288a81bfbe2')
|
|
|
|
# Helper macros to help make tasks easier #
|
|
apply_patch_with_msg() {
|
|
for _patch in "$@"
|
|
do
|
|
msg2 "Applying $_patch"
|
|
patch -Nbp1 -i "${srcdir}/$_patch"
|
|
done
|
|
}
|
|
# end helper functions
|
|
|
|
prepare() {
|
|
cd "${srcdir}"
|
|
pushd "${_realname}-${pkgver}"
|
|
apply_patch_with_msg 0001-unimplemented-readline-calls.patch
|
|
find ./ -type f -exec sed -i -e 's/prompt_toolkit/prompt_toolkit1/g' {} \;
|
|
popd
|
|
|
|
rm -rf "python2-build-${CARCH}" | true
|
|
cp -r "${_realname}-${pkgver}" "python2-build-${CARCH}"
|
|
# Set version for setuptools_scm
|
|
export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
|
|
}
|
|
|
|
build() {
|
|
msg "Python 2 build for ${CARCH}"
|
|
cd "${srcdir}/python2-build-${CARCH}"
|
|
${MINGW_PREFIX}/bin/python2 setup.py build
|
|
}
|
|
|
|
|
|
package() {
|
|
cd "${srcdir}/python2-build-${CARCH}"
|
|
|
|
# see https://github.com/ipython/ipython/issues/2057
|
|
#export LC_ALL=en_US.UTF-8
|
|
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
|
|
|
|
find "${pkgdir}/" -name "*.pyc" -delete
|
|
find "${pkgdir}/" -type d -empty -delete
|
|
|
|
# setuptools doesnt see mingw-w64-python's readline
|
|
find "${pkgdir}/" -name 'requires.txt' -delete
|
|
|
|
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
|
|
# fix python command in files
|
|
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*.cmd; do
|
|
sed -e "s|${PREFIX_WIN}/bin/||g" -i ${_f}
|
|
done
|
|
|
|
# For the command to work on the bash prompt, you must use
|
|
# winpty so include that in the Shebang before the python command.
|
|
# I don't like this but what I like really doesn't matter.
|
|
for _f in iptest iptest2 ipython ipython2; do
|
|
sed -e "s|/usr/bin/env |${MINGW_PREFIX}/|g" \
|
|
-e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" \
|
|
-e "s|#!|#!winpty |" -i "${pkgdir}${MINGW_PREFIX}/bin/${_f}"
|
|
done
|
|
|
|
|
|
for file_script in iptest ipython; do
|
|
rm ${pkgdir}${MINGW_PREFIX}/bin/${file_script}{,.cmd}
|
|
done
|
|
|
|
install -Dm644 docs/source/about/license_and_copyright.rst "${pkgdir}${MINGW_PREFIX}/share/licenses/ipython2/LICENSE"
|
|
|
|
# Fix bin collisions
|
|
find "${pkgdir}${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe$' -delete
|
|
find "${pkgdir}${MINGW_PREFIX}/bin/" -type f -regex '.*[^2]-script.py$' -delete
|
|
find "${pkgdir}${MINGW_PREFIX}/bin/" -type f -regex '.*[^2].exe.manifest$' -delete
|
|
|
|
# Fix manpage collisions
|
|
cd "${pkgdir}${MINGW_PREFIX}/share/man/man1/"
|
|
for i in *; do
|
|
mv ${i} ${i/%.1/2.1}
|
|
done
|
|
|
|
}
|