Files
MINGW-packages/mingw-w64-python3/PKGBUILD
2016-09-24 09:18:47 +03:00

479 lines
27 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Maintainer: Ray Donnelly <mingw.android@gmail.com>
# Contributor: Saul Ibarra Corretge <saghul@gmail.com>
# Contributor: Frode Solheim <frode@fs-uae.net>
# TODO :: subprocess.Popen .. specifically list2cmdline in subprocess.py
# needs a fix so it can handle running MSYS2 executables better.
# Arguments should not be quoted in the Windows fashion as-per:
# http://www.daviddeley.com/autohotkey/parameters/parameters.htm
# but instead how Cygwin expects them to be quoted. Checking for
# {cygwin,msys-2.0}.dll in the executable is the only way that I
# can think to do this at present.
# Any double quoted string will cause problems, e.g.
# -DGNOMELOCALEDIR=\"/mingw64/share/locale\"
_realname=python3
pkgbase="mingw-w64-${_realname}"
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
_pybasever=3.5
pkgver=${_pybasever}.2
pkgrel=2
pkgdesc="A high-level scripting language (mingw-w64)"
arch=('any')
license=('PSF')
url="https://www.python.org/"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-bzip2"
"${MINGW_PACKAGE_PREFIX}-gdbm"
"${MINGW_PACKAGE_PREFIX}-libffi"
"${MINGW_PACKAGE_PREFIX}-ncurses"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-readline"
"${MINGW_PACKAGE_PREFIX}-tcl"
"${MINGW_PACKAGE_PREFIX}-tk"
"${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-xz"
)
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
options=('!makeflags') # '!strip' 'debug')
source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz"
0000-make-_sysconfigdata.py-relocatable.patch
0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch
0100-MINGW-BASE-use-NT-thread-model.patch
0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch
0130-MINGW-configure-MACHDEP-and-platform-for-build.patch
0140-MINGW-preset-configure-defaults.patch
0150-MINGW-configure-largefile-support-for-windows-builds.patch
0160-MINGW-add-wincrypt.h-in-Python-random.c.patch
0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch
0180-MINGW-init-system-calls.patch
0190-MINGW-detect-REPARSE_DATA_BUFFER.patch
0200-MINGW-build-in-windows-modules-winreg.patch
0210-MINGW-determine-if-pwdmodule-should-be-used.patch
0220-MINGW-default-sys.path-calculations-for-windows-plat.patch
0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch
0240-MINGW-use-main-to-start-execution.patch
0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch
0260-MINGW-compiler-enable-new-dtags.patch
0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch
0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch
0300-MINGW-configure-for-shared-build.patch
0310-MINGW-dynamic-loading-support.patch
0320-MINGW-implement-exec-prefix.patch
0330-MINGW-ignore-main-program-for-frozen-scripts.patch
0340-MINGW-setup-exclude-termios-module.patch
0350-MINGW-setup-_multiprocessing-module.patch
0360-MINGW-setup-select-module.patch
0370-MINGW-setup-_ctypes-module-with-system-libffi.patch
0380-MINGW-defect-winsock2-and-setup-_socket-module.patch
0390-MINGW-exclude-unix-only-modules.patch
0400-MINGW-setup-msvcrt-and-_winapi-modules.patch
0410-MINGW-build-extensions-with-GCC.patch
0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch
0430-MINGW-find-import-library.patch
0440-MINGW-setup-_ssl-module.patch
0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch
0462-MINGW-support-stdcall-without-underscore.patch
0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch
0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch
0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch
0490-MINGW-customize-site.patch
0500-add-python-config-sh.patch
0510-cross-darwin-feature.patch
0520-py3k-mingw-ntthreads-vs-pthreads.patch
0530-mingw-system-libffi.patch
0540-mingw-semicolon-DELIM.patch
0550-mingw-regen-use-stddef_h.patch
0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch
0560-mingw-use-posix-getpath.patch
0565-mingw-add-ModuleFileName-dir-to-PATH.patch
0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch
0610-msys-cygwin-semi-native-build-sysconfig.patch
0620-mingw-sysconfig-like-posix.patch
0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch
0640-mingw-x86_64-size_t-format-specifier-pid_t.patch
0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch
0660-mingw-use-backslashes-in-compileall-py.patch
0670-msys-convert_path-fix-and-root-hack.patch
0690-allow-static-tcltk.patch
0700-CROSS-avoid-ncursesw-include-path-hack.patch
0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch
0720-mingw-pdcurses_ISPAD.patch
0730-mingw-fix-ncurses-module.patch
0740-grammar-fixes.patch
0750-builddir-fixes.patch
0760-msys-monkeypatch-os-system-via-sh-exe.patch
0770-msys-replace-slashes-used-in-io-redirection.patch
0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch
0800-mingw-install-layout-as-posix.patch
0810-remove_path_max.default.patch
0820-dont-link-with-gettext.patch
0830-ctypes-python-dll.patch
0840-gdbm-module-includes.patch
0850-use-gnu_printf-in-format.patch
0860-fix-_Py_CheckPython3-prototype.patch
0870-mingw-fix-ssl-dont-use-enum_certificates.patch
0890-mingw-build-optimized-ext.patch
0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch
0910-fix-using-dllhandle-and-winver-mingw.patch
0920-mingw-add-LIBPL-to-library-dirs.patch
0930-mingw-w64-build-overlapped-module.patch
0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch
0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch
0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch
0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch
0980-mingw-readline-features-skip.patch
1010-install-msilib.patch
1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch)
prepare() {
cd "${srcdir}/Python-${pkgver}"
# these are created by patches
rm -f Misc/config_mingw Misc/cross_mingw32 Python/fileblocks.c
plain "Apply Ray Donnelly's should-be-upstreamed patches"
patch -Np1 -i "${srcdir}"/0000-make-_sysconfigdata.py-relocatable.patch
patch -Np1 -i "${srcdir}"/0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch
plain "Apply Roumen Petrov's core patches (14)"
patch -Np1 -i "${srcdir}"/0100-MINGW-BASE-use-NT-thread-model.patch
patch -Np1 -i "${srcdir}"/0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch
patch -Np1 -i "${srcdir}"/0130-MINGW-configure-MACHDEP-and-platform-for-build.patch
patch -Np1 -i "${srcdir}"/0140-MINGW-preset-configure-defaults.patch
patch -Np1 -i "${srcdir}"/0150-MINGW-configure-largefile-support-for-windows-builds.patch
patch -Np1 -i "${srcdir}"/0160-MINGW-add-wincrypt.h-in-Python-random.c.patch
patch -Np1 -i "${srcdir}"/0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch
patch -Np1 -i "${srcdir}"/0180-MINGW-init-system-calls.patch
patch -Np1 -i "${srcdir}"/0190-MINGW-detect-REPARSE_DATA_BUFFER.patch
patch -Np1 -i "${srcdir}"/0200-MINGW-build-in-windows-modules-winreg.patch
patch -Np1 -i "${srcdir}"/0210-MINGW-determine-if-pwdmodule-should-be-used.patch
patch -Np1 -i "${srcdir}"/0220-MINGW-default-sys.path-calculations-for-windows-plat.patch
patch -Np1 -i "${srcdir}"/0230-MINGW-AC_LIBOBJ-replacement-of-fileblocks.patch
patch -Np1 -i "${srcdir}"/0240-MINGW-use-main-to-start-execution.patch
plain "Apply Roumen Petrov's compiler patch (2)"
patch -Np1 -i "${srcdir}"/0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch
patch -Np1 -i "${srcdir}"/0260-MINGW-compiler-enable-new-dtags.patch
plain "Apply Roumen Petrov's extensions patches (23)"
patch -Np1 -i "${srcdir}"/0270-CYGWIN-issue13756-Python-make-fail-on-cygwin.patch
patch -Np1 -i "${srcdir}"/0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch
patch -Np1 -i "${srcdir}"/0300-MINGW-configure-for-shared-build.patch
patch -Np1 -i "${srcdir}"/0310-MINGW-dynamic-loading-support.patch
patch -Np1 -i "${srcdir}"/0320-MINGW-implement-exec-prefix.patch
patch -Np1 -i "${srcdir}"/0330-MINGW-ignore-main-program-for-frozen-scripts.patch
patch -Np1 -i "${srcdir}"/0340-MINGW-setup-exclude-termios-module.patch
patch -Np1 -i "${srcdir}"/0350-MINGW-setup-_multiprocessing-module.patch
patch -Np1 -i "${srcdir}"/0360-MINGW-setup-select-module.patch
patch -Np1 -i "${srcdir}"/0370-MINGW-setup-_ctypes-module-with-system-libffi.patch
patch -Np1 -i "${srcdir}"/0380-MINGW-defect-winsock2-and-setup-_socket-module.patch
patch -Np1 -i "${srcdir}"/0390-MINGW-exclude-unix-only-modules.patch
patch -Np1 -i "${srcdir}"/0400-MINGW-setup-msvcrt-and-_winapi-modules.patch
patch -Np1 -i "${srcdir}"/0410-MINGW-build-extensions-with-GCC.patch
patch -Np1 -i "${srcdir}"/0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch
patch -Np1 -i "${srcdir}"/0430-MINGW-find-import-library.patch
patch -Np1 -i "${srcdir}"/0440-MINGW-setup-_ssl-module.patch
patch -Np1 -i "${srcdir}"/0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch
patch -Np1 -i "${srcdir}"/0462-MINGW-support-stdcall-without-underscore.patch
patch -Np1 -i "${srcdir}"/0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch
patch -Np1 -i "${srcdir}"/0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch
patch -Np1 -i "${srcdir}"/0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch
patch -Np1 -i "${srcdir}"/0490-MINGW-customize-site.patch
plain "Apply Ray Donnelly's general/cross patches (42)"
patch -Np1 -i "${srcdir}"/0500-add-python-config-sh.patch
patch -Np1 -i "${srcdir}"/0510-cross-darwin-feature.patch
patch -Np1 -i "${srcdir}"/0520-py3k-mingw-ntthreads-vs-pthreads.patch
patch -Np1 -i "${srcdir}"/0530-mingw-system-libffi.patch
patch -Np1 -i "${srcdir}"/0540-mingw-semicolon-DELIM.patch
patch -Np1 -i "${srcdir}"/0550-mingw-regen-use-stddef_h.patch
patch -Np1 -i "${srcdir}"/0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch
patch -Np1 -i "${srcdir}"/0560-mingw-use-posix-getpath.patch
patch -Np1 -i "${srcdir}"/0565-mingw-add-ModuleFileName-dir-to-PATH.patch
patch -Np1 -i "${srcdir}"/0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch
# 0610- changed to not using -DVPATH='"$(VPATH_b2h)"' anymore since VPATH is
# relative, therefore getpath.c:355: joinpath(prefix, vpath) works naturally
patch -Np1 -i "${srcdir}"/0610-msys-cygwin-semi-native-build-sysconfig.patch
patch -Np1 -i "${srcdir}"/0620-mingw-sysconfig-like-posix.patch
patch -Np1 -i "${srcdir}"/0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch
patch -Np1 -i "${srcdir}"/0640-mingw-x86_64-size_t-format-specifier-pid_t.patch
patch -Np1 -i "${srcdir}"/0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch
patch -Np1 -i "${srcdir}"/0660-mingw-use-backslashes-in-compileall-py.patch
patch -Np1 -i "${srcdir}"/0670-msys-convert_path-fix-and-root-hack.patch
patch -Np1 -i "${srcdir}"/0690-allow-static-tcltk.patch
patch -Np1 -i "${srcdir}"/0700-CROSS-avoid-ncursesw-include-path-hack.patch
patch -Np1 -i "${srcdir}"/0710-CROSS-properly-detect-WINDOW-_flags-for-different-nc.patch
patch -Np1 -i "${srcdir}"/0720-mingw-pdcurses_ISPAD.patch
patch -Np1 -i "${srcdir}"/0730-mingw-fix-ncurses-module.patch
patch -Np1 -i "${srcdir}"/0740-grammar-fixes.patch
patch -Np1 -i "${srcdir}"/0750-builddir-fixes.patch
patch -Np1 -i "${srcdir}"/0760-msys-monkeypatch-os-system-via-sh-exe.patch
patch -Np1 -i "${srcdir}"/0770-msys-replace-slashes-used-in-io-redirection.patch
patch -Np1 -i "${srcdir}"/0790-mingw-add-_exec_prefix-for-tcltk-dlls.patch
patch -Np1 -i "${srcdir}"/0800-mingw-install-layout-as-posix.patch
patch -Np1 -i "${srcdir}"/0810-remove_path_max.default.patch
patch -Np1 -i "${srcdir}"/0820-dont-link-with-gettext.patch
patch -Np1 -i "${srcdir}"/0830-ctypes-python-dll.patch
patch -Np1 -i "${srcdir}"/0840-gdbm-module-includes.patch
patch -Np1 -i "${srcdir}"/0850-use-gnu_printf-in-format.patch
patch -Np1 -i "${srcdir}"/0860-fix-_Py_CheckPython3-prototype.patch
patch -Np1 -i "${srcdir}"/0870-mingw-fix-ssl-dont-use-enum_certificates.patch
patch -Np1 -i "${srcdir}"/0890-mingw-build-optimized-ext.patch
patch -Np1 -i "${srcdir}"/0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch
patch -Np1 -i "${srcdir}"/0910-fix-using-dllhandle-and-winver-mingw.patch
patch -Np1 -i "${srcdir}"/0920-mingw-add-LIBPL-to-library-dirs.patch
patch -Np1 -i "${srcdir}"/0930-mingw-w64-build-overlapped-module.patch
patch -Np1 -i "${srcdir}"/0940-mingw-w64-Also-define-_Py_BEGIN_END_SUPPRESS_IPH-when-Py_BUILD_CORE_MODULE.patch
patch -Np1 -i "${srcdir}"/0950-mingw-w64-XP3-compat-GetProcAddress-GetTickCount64.patch
patch -Np1 -i "${srcdir}"/0960-mingw-w64-XP3-compat-GetProcAddress-GetFinalPathNameByHandleW.patch
patch -Np1 -i "${srcdir}"/0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch
patch -Np1 -i "${srcdir}"/0980-mingw-readline-features-skip.patch
patch -Np1 -i "${srcdir}"/1010-install-msilib.patch
plain "Apply patch contributed by Frode Solheim from FS-UAE project (1)"
patch -Np1 -i "${srcdir}"/1500-mingw-w64-dont-look-in-DLLs-folder-for-python-dll.patch
autoreconf -vfi
# Temporary workaround for FS#22322
# See https://bugs.python.org/issue10835 for upstream report
#sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
touch Include/graminit.h
touch Python/graminit.c
touch Parser/Python.asdl
touch Parser/asdl.py
touch Parser/asdl_c.py
touch Include/Python-ast.h
touch Python/Python-ast.c
echo \"\" > Parser/pgen.stamp
# Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
# rather than copies shipped in the tarball
rm -r Modules/expat
rm -r Modules/zlib
rm -r Modules/_ctypes/{darwin,libffi}*
}
# check() {
# cd "${srcdir}/build-${CARCH}"
# make test EXTRATESTOPTS="-v"
# }
build() {
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
CFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 "
CXXFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1"
CPPFLAGS+=" -I${PREFIX_WIN}/include/ncursesw "
declare -a _extra_config
if check_option "strip" "y"; then
LDFLAGS+=" -s "
fi
if check_option "debug" "n"; then
CFLAGS+=" -DNDEBUG "
CXXFLAGS+=" -DNDEBUG "
else
plain " -DDEBUG -DPy_DEBUG -D_DEBUG does not work unfortunately .."
# CFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG "
# CXXFLAGS+=" -DDEBUG -DPy_DEBUG -D_DEBUG "
CFLAGS+=" -O0 -ggdb"
CXXFLAGS+=" -O0 -ggdb"
_extra_config+=("--with-pydebug")
fi
# Workaround for conftest error on 64-bit builds
export ac_cv_working_tzset=no
[ -d "${srcdir}/build-${CARCH}" ] && rm -rf "${srcdir}/build-${CARCH}"
mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}"
MSYSTEM=MINGW ../Python-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--host=${MINGW_CHOST} \
--build=${MINGW_CHOST} \
--enable-shared \
--with-threads \
--with-system-expat \
--with-system-ffi \
--without-ensurepip \
"${_extra_config[@]}" \
OPT=""
#--with-dbmliborder='gdbm:ndbm'
make
}
package() {
cd "${srcdir}/build-${CARCH}"
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
MSYSTEM=MINGW \
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
make install DESTDIR="$pkgdir"
if check_option "debug" "n"; then
VERABI=${_pybasever}m
else
VERABI=${_pybasever}dm
fi
# gdb pretty printers for debugging Python itself; to use:
# python
# sys.path.append('C:/msys64/mingw64/share/gdb/python3')
# import python_gdb
# reload(python_gdb)
# end
[[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/
cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/python_gdb.py
rm "${pkgdir}${MINGW_PREFIX}"/bin/2to3
cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${VERABI}.dll.a
# Need for building boost python3 module
cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${_pybasever}.dll.a
cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${_pybasever}.dll.a
# some useful "stuff"
install -dm755 "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/{i18n,scripts}
install -m755 "${srcdir}/Python-${pkgver}"/Tools/i18n/{msgfmt,pygettext}.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/i18n/
install -m755 "${srcdir}/Python-${pkgver}"/Tools/scripts/{README,*py} "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/scripts/
# clean up #!s
find "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/ -name '*.py' | \
xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python3|"
# clean-up reference to build directory
sed -i "s#${srcdir}/Python-${pkgver}:##" "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/Makefile
for fscripts in 2to3-${_pybasever} idle3 idle${_pybasever} pydoc3 pydoc${_pybasever} pyvenv pyvenv-${_pybasever}; do
sed -e "s|${MINGW_PREFIX}/bin/python${_pybasever}.exe|/usr/bin/env python${_pybasever}.exe|g" -i "${pkgdir}${MINGW_PREFIX}"/bin/$fscripts
done
sed -i "s|#!${pkgdir}${MINGW_PREFIX}/bin/python${VERABI}.exe|#!/usr/bin/env python${_pybasever}.exe|" "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/python-config.py
# fix permissons
find ${pkgdir}${MINGW_PREFIX} -type f \( -name "*.dll" -o -name "*.exe" \) | xargs chmod 0755
# Fix up two instances of MSYS2 paths in python-config.sh in-case the final consumer of the results are native executables.
sed -e "s|${MINGW_PREFIX}|${PREFIX_WIN}|" \
-i "${pkgdir}${MINGW_PREFIX}"/bin/python${VERABI}-config \
-i "${pkgdir}${MINGW_PREFIX}"/bin/python${_pybasever}-config \
-i "${pkgdir}${MINGW_PREFIX}"/bin/python3-config
# replace paths in sysconfig
sed -i "s|${pkgdir}${MINGW_PREFIX}|${MINGW_PREFIX}|g" \
"${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/_sysconfigdata.py \
"${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/smtpd.py
# Create python executable with windows subsystem
cp -f "${pkgdir}${MINGW_PREFIX}"/bin/python3.exe "${pkgdir}${MINGW_PREFIX}"/bin/python3w.exe
${MINGW_PREFIX}/bin/objcopy --subsystem windows "${pkgdir}${MINGW_PREFIX}"/bin/python3w.exe
# Add a wrapper script to force -i when invoking python. Please don't move this into a patch as
# hopefully one day we won't need this hack (when we replace mintty with a real console).
_exename="python3"
mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe
echo "#!/usr/bin/env bash" > "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}
echo "if [ \$# -eq 0 ]; then" >> "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}
echo ' "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" -i "$@"' >> "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}
echo "else" >> "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}
echo ' "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}
echo "fi" >> "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}
mv "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}_exe "${pkgdir}"${MINGW_PREFIX}/bin/${_exename}.exe
}
sha256sums=('0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40'
'4cc654f8caef73b385a57278d4a57578941ec48a5a69bcf7f100f85a5c9e5ac0'
'166e45a247f440df92c97d3e4392daf67c79d086b3de8ff4f4698d113bad4172'
'010639b0e250a5aa8ece1f44a30c29e4a8d2e38bc48345c53a2f1f216bac668f'
'249ae89279ecace5c522279f613a9f5edbb76fe89811e376a195df51c2dc263e'
'f63b7213ef0c360969ce84bb4e91f95f98a360451688f1193b30cd8a2073dbd1'
'04798443a7b121d3098684e05a815e9a6f501106b02f8a21e4dc043d7a297678'
'2d70d39c557f455d3a4d96272886fa1c8b1fadf2da3ece72f76e53a751d23661'
'aa8f63c82a39f6bf4dc3b1c74e6dab999f38b978de690fcd5bef43bc2a582025'
'889bb9291457f6fcab8e27793cf4abd6ceae59898594580174e26287a0118237'
'3394c37ea4182786095216092c49bfd3d4418fb5c1598686c93d8515624b5cbd'
'32b1a3a6ffa3eda9840c67a29fd6098caba530a92f19d56128fa61aaa83a4f6a'
'6c367976c39dba142323f005841843cba52475cc99bfc741843f0faaa6cc86e9'
'711b45588efa31313564e2d784b1eeddcfc2468da7b7dd14583a0f45ff2060fb'
'3aca98254267c1fa48297e231c4efaf038a2cfa29cb555af623ca6c67fdb2b74'
'4157c6ac294b49d34f1c122cd4ecd3afe78573615986d175b2234af5e801db0c'
'83bf053e9bbea0f5cc116ebc478e92948df4019a4ab7241ff2aa6c880770af72'
'6250565f6f1a1e907a1778f1fdc033f78cca0770d4ff0451aa5de10e32f9297d'
'360980a89a2fcc7b13ac1a6ce8425bb37fefe768a89de6cdc8aa91aa17d16942'
'a54870ec01b827b2fad052a3aad5bcf29db45556799dc15773a66b0aacec3a11'
'060bf30d475522dbb3d40d20da9bf1e3dfa0806c8d436cdc8a73480c5900963d'
'af51615b98a7f96ca4639cbc80e9c3725fcbbbe2cd9951fafa7ad523ee173228'
'74087a1c409ab24403079d7989efe887f04b1072fd1cfa834d5815067e11fea3'
'a91e12c6cb1be70355f2108388291f56ce5e1ac22fde92a2c1cb2c2cb1f1fe2e'
'd4ae0fdf5ba2c0d1994e2c2b5377d423854033243e874649e1eba6a2ab9f679d'
'd62ed216701bf082b91a673f0ed354e6af8fd2b88ff9f568e98a1199bef51635'
'1bf3e3f0d0cfa4b711570e01d4f5720caa050fcfff0f41b023604db0bfcc00ae'
'e5015d0dc5983a56ce3deb08b75c78210cfe207077f8e470fa70c0c33b352c95'
'530f69c113aeb0c9931c409a55083726d6ad48b7cce5535b762121b894a15312'
'7d24d510b5a8ef980cb44cdd0ef8bb838f3e73d2b4c41017b2f5b7802c2e72d0'
'8557962bf70d3c913495d07a22b801fed075b5ecbb487261b26a4214247356de'
'4f3e05d6e0524fcb165ff7992075bc7da90fbe345a1ef3310f0b7b529026dbbc'
'12822e67b10922d0f718da2acd693bd566ce53df0b475c5dcb9029da2535d8c1'
'e1ffde6ec0cfcc45db91cd16a519394efb4ad84623b94edddce18ceb90d7a1ac'
'705596440ecc67a35ec18d536afc4318d28bdaddb38c508736d8916598cb372f'
'85a2da84ceabc8093f927377514f3823c1c9a6b54dfd5a6a11ce95dbf1c67324'
'b51406cb38f70b4e812c3b015d7102a6b11255e302d57da7c4198dffe875d07e'
'64f9b871b980a43f302d2b225b4ce08530b2d734c9199185563e100b1a7fb7bc'
'ec6a51890d51da924544f26f055e01040111e9847b0c40448a7e4e017493e9a0'
'78dc2ac8eaaccf19fc42551e784f01f2f147785814bfc68d891957ba35b5d866'
'5c181aaa52d1cbe42d7538af85f08362bca969678c2c83cd1855fdaf1bb401fd'
'fb874e1a19b2c8f9498896796d20cc472e2e93bdc6ad8c9c2af2b0367a7d160f'
'fd5a7ae2860b98086875d3a61ced283333b47b1d64765624fb75167718ad5b33'
'1bcc89ed500f114be330721ad0dbb9a213a2f959ab942375ddecb08f142a196c'
'fe4a73c72e29dc508ecdc8467778392f751504b68be8217c8ce95c898db5ab77'
'ab6d2450495212d7c402bd5a9a4fc64527ee54a9509825ba62312f13e1252a8a'
'7ab2a3a15148a4f90d45f4dbc8181f2433e0354f25b7a0de87e4cdfc06a3ed83'
'93e051997b9fe8417628ffb3c2b90a4e8aa7e38aa5f397a0f93922ff0888d760'
'a04d79ede2d44eed7ab524b3792348536bd8ef6bf9758fca8e41637cdd2be8c1'
'5a70e1dbf5c976635b35576544a33d2e69037c225c4548d51d61077f58228b18'
'faa3389ddc8d927eb08b447066e3cc21486376e517ccad4a5e2f0300daa9f15a'
'32c28c540d641d2d796582352507fc8377b8b757a794a293cc961148c2412bb1'
'863c702bb201c38241738758dcbe94b989d043917956e8af38035210da1a47b3'
'23dbf79f9c0780d175f5c23bdc2d6d891ab354f4432dee14a2806c3cd546a90a'
'6f8c7dd8f690de30f7219b23823bcf7a1289e8163e174c1cd135f70d746eb2d1'
'2c7ecd5eb38cef54e64d5cf5e34d61451f0ed437d776a978b7a4a4c2f88eb206'
'ac10b20ffcf652e26575c376825ee41d94dae1c9ea36fd9e0106122e6ebc3f4f'
'315c357dcd91fb1f34dcaf1c6d4cf2a23e7101931e55f4cb0793936bf7dbb606'
'bc440ca4748fd2559c39c516b3e0d70d5e58d0e9a2af995f019ddbd6d61fcd88'
'a4053159e3b64517c1006ec0ecc43588e8d28111e8251b9b7348cf696dbc1afa'
'66db319cdba1ee487e3f402c0cd47491dc4935f2386d612f755ef0718003b2ac'
'f643831842e9c2c15f1ecb3ec96022f6f32af2a88e0e4501e56b20d86905995d'
'faf18878d93b71c9b3034b2e0be7e75d0a105734726872f1353e2afa8664e7aa'
'8e1a66af0edb1207a27af05c8e4250bc3b02a6dc39bae2c36a313b48fae3c4e6'
'81a88720512c311515107607447d2c8faa8a7158ebc28232a8d19fe27b905836'
'15c0e054789e54794f1f7a13e7da844e392e42327f57d960665409503647ec28'
'ceea443a47860778d096a4b1c644467f61f3afb135b20c9a8019242d1fc6c175'
'70db4d3c3c05926d2460b6cb671f0f39819fa1a2e3af7a17fb58df00156872e1'
'389872855584a1a912f3833c99a318bd924bee25ed806f5769c0b1c7feda1cf9'
'10ec6c64fa8ce81f61990de03ed1dcdae8d2ddd116a394fc8ff87f6dca2e0173'
'043568001a1717cb4e16e318001e2f707a6814b4ca223ce4bfeaccea4a565f73'
'a56d05880a32025f9a1fc93e2b56086ff0faf7555a98d1ff80c3b641c0d65d22'
'ef7032bc5051152e423abdb71fb26f4a33001f2167989387935af854e85e4942'
'2ac3a4f2b6ffafb11514f7595fd9283df2cfe201abceb527baaf210bdceeafb7'
'15c3a30def78c79ef89c611ae367e3fc2ad6d42db14275ddc897580aa0b06886'
'3505bf06fb1ea3ef587195e01eecac8aaef803713b261066f00727dfe078b673'
'64402d30c686d84be75800ee295c7fe37523d741403ee0cb0df5058aeab6dfa5'
'a6334a512fd4060d534a23e9c92b9b548117832fb551ec2a4a5727e3d3fcebdd'
'fb1d4be936d2def610a30f7a3eaeb06ef93d7734b26190ab28adee5bec81d549'
'0e79afe46fa6f2b6f225ae06c9e849722b598946af60a62b071260458f693077'
'2d5a5a8096854c8a568d909a93894d715b35cf16e2ec97660d24f18492d567bc'
'0131e1e874052db20704cb20a96cd3c8bc2e6486bdf6ef1ffcff8a114ea8547e'
'9f927224573db9e029c233f2684314dc25c65495902400f862b583c4af460893'
'2eba5c2ae3cfa777b19d2b4db32ddee5509516f4875ce09e3ee59773e81868b2'
'517001708adbde15fa95ed85f38b09d45bcfe3674081d0d3897356342b202145'
'3cd8deca90db93a1087d551e37954bd7698f56e9b9b4845faa62142639327f09'
'307aed5ea8525b41eccc15afef839519930b6d4231c1d31118ae9cceba81df95'
'0a37c3bd9542f85b3a5e946b2c5928c3334faafa374b50bc9016a26c192a7f33'
'66219146773e44967c1971cd6631f8f76ed2ed13c527a610c398b506d2256fa7')