Cross-Platform build scripts for audio plugins
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

557 lines
26KB

  1. # Maintainer: Alexey Pavlov <alexpux@gmail.com>
  2. # Maintainer: Ray Donnelly <mingw.android@gmail.com>
  3. # Contributor: Saul Ibarra Corretge <saghul@gmail.com>
  4. # Contributor: Frode Solheim <frode@fs-uae.net>
  5. # TODO :: subprocess.Popen .. specifically list2cmdline in subprocess.py
  6. # needs a fix so it can handle running MSYS2 executables better.
  7. # Arguments should not be quoted in the Windows fashion as-per:
  8. # http://www.daviddeley.com/autohotkey/parameters/parameters.htm
  9. # but instead how Cygwin expects them to be quoted. Checking for
  10. # {cygwin,msys-2.0}.dll in the executable is the only way that I
  11. # can think to do this at present.
  12. # Any double quoted string will cause problems, e.g.
  13. # -DGNOMELOCALEDIR=\"/mingw64/share/locale\"
  14. _realname=python
  15. pkgbase="mingw-w64-${_realname}"
  16. pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
  17. _pybasever=3.8
  18. pkgver=${_pybasever}.7
  19. pkgrel=3
  20. provides=("${MINGW_PACKAGE_PREFIX}-python3=${pkgver}")
  21. conflicts=("${MINGW_PACKAGE_PREFIX}-python3"
  22. "${MINGW_PACKAGE_PREFIX}-python2<2.7.16-7")
  23. replaces=("${MINGW_PACKAGE_PREFIX}-python3")
  24. pkgdesc="A high-level scripting language (mingw-w64)"
  25. arch=('any')
  26. license=('PSF')
  27. url="https://www.python.org/"
  28. depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
  29. "${MINGW_PACKAGE_PREFIX}-expat"
  30. "${MINGW_PACKAGE_PREFIX}-bzip2"
  31. "${MINGW_PACKAGE_PREFIX}-libffi"
  32. "${MINGW_PACKAGE_PREFIX}-mpdecimal"
  33. "${MINGW_PACKAGE_PREFIX}-ncurses"
  34. "${MINGW_PACKAGE_PREFIX}-openssl"
  35. "${MINGW_PACKAGE_PREFIX}-sqlite3"
  36. "${MINGW_PACKAGE_PREFIX}-tcl"
  37. "${MINGW_PACKAGE_PREFIX}-tk"
  38. "${MINGW_PACKAGE_PREFIX}-zlib"
  39. "${MINGW_PACKAGE_PREFIX}-xz")
  40. makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
  41. options=('makeflags') # 'debug' '!strip' )
  42. source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz"
  43. 0000-make-_sysconfigdata.py-relocatable.patch
  44. 0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch
  45. 0002-restore-setup-config.patch
  46. 0100-MINGW-BASE-use-NT-thread-model.patch
  47. 0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch
  48. 0130-MINGW-configure-MACHDEP-and-platform-for-build.patch
  49. 0140-MINGW-preset-configure-defaults.patch
  50. 0150-MINGW-configure-largefile-support-for-windows-builds.patch
  51. 0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch
  52. 0180-MINGW-init-system-calls.patch
  53. 0200-MINGW-build-in-windows-modules-winreg.patch
  54. 0210-MINGW-determine-if-pwdmodule-should-be-used.patch
  55. 0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch
  56. 0260-MINGW-compiler-enable-new-dtags.patch
  57. 0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch
  58. 0300-MINGW-configure-for-shared-build.patch
  59. 0310-MINGW-dynamic-loading-support.patch
  60. 0330-MINGW-ignore-main-program-for-frozen-scripts.patch
  61. 0350-MINGW-setup-_multiprocessing-module.patch
  62. 0360-MINGW-setup-select-module.patch
  63. 0370-MINGW-setup-_ctypes-module-with-system-libffi.patch
  64. 0380-MINGW-defect-winsock2-and-setup-_socket-module.patch
  65. 0390-MINGW-exclude-unix-only-modules.patch
  66. 0400-MINGW-setup-msvcrt-and-_winapi-modules.patch
  67. 0410-MINGW-build-extensions-with-GCC.patch
  68. 0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch
  69. 0430-MINGW-find-import-library.patch
  70. 0440-MINGW-setup-_ssl-module.patch
  71. 0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch
  72. 0462-MINGW-support-stdcall-without-underscore.patch
  73. 0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch
  74. 0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch
  75. 0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch
  76. 0490-MINGW-customize-site.patch
  77. 0500-add-python-config-sh.patch
  78. 0510-cross-darwin-feature.patch
  79. 0520-py3k-mingw-ntthreads-vs-pthreads.patch
  80. 0530-mingw-system-libffi.patch
  81. 0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch
  82. 0560-mingw-use-posix-getpath.patch
  83. 0565-mingw-add-ModuleFileName-dir-to-PATH.patch
  84. 0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch
  85. 0610-msys-cygwin-semi-native-build-sysconfig.patch
  86. 0620-mingw-sysconfig-like-posix.patch
  87. 0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch
  88. 0640-mingw-x86_64-size_t-format-specifier-pid_t.patch
  89. 0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch
  90. 0660-mingw-use-backslashes-in-compileall-py.patch
  91. 0670-msys-convert_path-fix-and-root-hack.patch
  92. 0690-allow-static-tcltk.patch
  93. 0720-mingw-pdcurses_ISPAD.patch
  94. 0740-grammar-fixes.patch
  95. 0750-builddir-fixes.patch
  96. 0760-msys-monkeypatch-os-system-via-sh-exe.patch
  97. 0770-msys-replace-slashes-used-in-io-redirection.patch
  98. 0800-mingw-install-layout-as-posix.patch
  99. 0810-remove_path_max.default.patch
  100. 0820-dont-link-with-gettext.patch
  101. 0830-ctypes-python-dll.patch
  102. 0840-gdbm-module-includes.patch
  103. 0850-use-gnu_printf-in-format.patch
  104. 0870-mingw-fix-ssl-dont-use-enum_certificates.patch
  105. 0890-mingw-build-optimized-ext.patch
  106. 0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch
  107. 0910-fix-using-dllhandle-and-winver-mingw.patch
  108. 0920-mingw-add-LIBPL-to-library-dirs.patch
  109. 0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch
  110. 0990-MINGW-link-with-additional-library.patch
  111. 1010-install-msilib.patch
  112. 1060-dont-include-system-ncurses-path.patch
  113. 1620-fix-signal-module-build.patch
  114. 1630-build-winconsoleio.patch
  115. 1650-expose-sem_unlink.patch
  116. 1700-cygpty-isatty.patch
  117. 1701-disable-broken-gdbm-module.patch
  118. 1800-link-win-resource-files-and-build-pythonw.patch
  119. 1810-3.7-mpdec-mingw.patch
  120. 1850-disable-readline.patch
  121. 1860-fix-isselectable.patch
  122. 1870-use-_wcsnicmp-instead-wcsncasecmp.patch
  123. 1890-_xxsubinterpretersmodule.patch
  124. 2010-configure-have-inet-pton.patch
  125. 2030-fix-msvc9-import.patch
  126. 2051-set-venv-activate-path-unix.patch
  127. 2052-venv-creation-fixes.patch
  128. 2060-pass-gen-profile-ldflags.patch
  129. 2070-distutils-add-windmc-to-cygwinccompiler.patch
  130. 2080-pkg-config-windows-must-link-ext-with-python-lib.patch
  131. 3000-importlib-bootstrap-path-sep.patch
  132. 3001-pathlib-path-sep.patch
  133. 3010-workaround-missing-lconv-members-mingw.patch
  134. 3011-fix-build-testinternalcapi.patch
  135. 5000-warnings-fixes.patch
  136. smoketests.py)
  137. # Helper macros to help make tasks easier #
  138. apply_patch_with_msg() {
  139. for _patch in "$@"
  140. do
  141. msg2 "Applying ${_patch}"
  142. patch -Nbp1 -i "${srcdir}/${_patch}"
  143. done
  144. }
  145. del_file_exists() {
  146. for _fname in "$@"
  147. do
  148. if [ -f ${_fname} ]; then
  149. rm -rf ${_fname}
  150. fi
  151. done
  152. }
  153. # =========================================== #
  154. prepare() {
  155. cd "${srcdir}/Python-${pkgver}"
  156. plain "Apply Ray Donnelly's should-be-upstreamed patches"
  157. apply_patch_with_msg \
  158. 0000-make-_sysconfigdata.py-relocatable.patch \
  159. 0001-fix-_nt_quote_args-using-subprocess-list2cmdline.patch \
  160. 0002-restore-setup-config.patch
  161. plain "Apply Roumen Petrov's core patches (10)"
  162. apply_patch_with_msg \
  163. 0100-MINGW-BASE-use-NT-thread-model.patch \
  164. 0110-MINGW-translate-gcc-internal-defines-to-python-platf.patch \
  165. 0130-MINGW-configure-MACHDEP-and-platform-for-build.patch \
  166. 0140-MINGW-preset-configure-defaults.patch \
  167. 0150-MINGW-configure-largefile-support-for-windows-builds.patch \
  168. 0170-MINGW-add-srcdir-PC-to-CPPFLAGS.patch \
  169. 0180-MINGW-init-system-calls.patch \
  170. 0200-MINGW-build-in-windows-modules-winreg.patch \
  171. 0210-MINGW-determine-if-pwdmodule-should-be-used.patch
  172. plain "Apply Roumen Petrov's compiler patch (2)"
  173. apply_patch_with_msg \
  174. 0250-MINGW-compiler-customize-mingw-cygwin-compilers.patch \
  175. 0260-MINGW-compiler-enable-new-dtags.patch
  176. plain "Apply Roumen Petrov's extensions patches (21)"
  177. apply_patch_with_msg \
  178. 0290-issue6672-v2-Add-Mingw-recognition-to-pyport.h-to-al.patch \
  179. 0300-MINGW-configure-for-shared-build.patch \
  180. 0310-MINGW-dynamic-loading-support.patch \
  181. 0330-MINGW-ignore-main-program-for-frozen-scripts.patch \
  182. 0350-MINGW-setup-_multiprocessing-module.patch \
  183. 0360-MINGW-setup-select-module.patch \
  184. 0370-MINGW-setup-_ctypes-module-with-system-libffi.patch \
  185. 0380-MINGW-defect-winsock2-and-setup-_socket-module.patch \
  186. 0390-MINGW-exclude-unix-only-modules.patch \
  187. 0400-MINGW-setup-msvcrt-and-_winapi-modules.patch \
  188. 0410-MINGW-build-extensions-with-GCC.patch \
  189. 0420-MINGW-use-Mingw32CCompiler-as-default-compiler-for-m.patch \
  190. 0430-MINGW-find-import-library.patch \
  191. 0440-MINGW-setup-_ssl-module.patch \
  192. 0460-MINGW-generalization-of-posix-build-in-sysconfig.py.patch \
  193. 0462-MINGW-support-stdcall-without-underscore.patch \
  194. 0464-use-replace-instead-rename-to-avoid-failure-on-windo.patch \
  195. 0470-MINGW-avoid-circular-dependency-from-time-module-dur.patch \
  196. 0480-MINGW-generalization-of-posix-build-in-distutils-sys.patch \
  197. 0490-MINGW-customize-site.patch
  198. plain "Apply Ray Donnelly's general/cross patches (42)"
  199. apply_patch_with_msg \
  200. 0500-add-python-config-sh.patch \
  201. 0510-cross-darwin-feature.patch \
  202. 0520-py3k-mingw-ntthreads-vs-pthreads.patch \
  203. 0530-mingw-system-libffi.patch \
  204. 0555-msys-mingw-prefer-unix-sep-if-MSYSTEM.patch \
  205. 0560-mingw-use-posix-getpath.patch \
  206. 0565-mingw-add-ModuleFileName-dir-to-PATH.patch \
  207. 0570-mingw-add-BUILDIN_WIN32_MODULEs-time-msvcrt.patch
  208. apply_patch_with_msg \
  209. 0610-msys-cygwin-semi-native-build-sysconfig.patch \
  210. 0620-mingw-sysconfig-like-posix.patch \
  211. 0630-mingw-_winapi_as_builtin_for_Popen_in_cygwinccompiler.patch \
  212. 0640-mingw-x86_64-size_t-format-specifier-pid_t.patch \
  213. 0650-cross-dont-add-multiarch-paths-if-cross-compiling.patch \
  214. 0660-mingw-use-backslashes-in-compileall-py.patch \
  215. 0670-msys-convert_path-fix-and-root-hack.patch \
  216. 0690-allow-static-tcltk.patch
  217. apply_patch_with_msg \
  218. 0720-mingw-pdcurses_ISPAD.patch \
  219. 0740-grammar-fixes.patch \
  220. 0750-builddir-fixes.patch \
  221. 0760-msys-monkeypatch-os-system-via-sh-exe.patch \
  222. 0770-msys-replace-slashes-used-in-io-redirection.patch \
  223. 0800-mingw-install-layout-as-posix.patch \
  224. 0810-remove_path_max.default.patch \
  225. 0820-dont-link-with-gettext.patch \
  226. 0830-ctypes-python-dll.patch \
  227. 0840-gdbm-module-includes.patch \
  228. 0850-use-gnu_printf-in-format.patch \
  229. 0870-mingw-fix-ssl-dont-use-enum_certificates.patch \
  230. 0890-mingw-build-optimized-ext.patch \
  231. 0900-cygwinccompiler-dont-strip-modules-if-pydebug.patch \
  232. 0910-fix-using-dllhandle-and-winver-mingw.patch \
  233. 0920-mingw-add-LIBPL-to-library-dirs.patch \
  234. 0970-Add-AMD64-to-sys-config-so-msvccompiler-get_build_version-works.patch \
  235. 0990-MINGW-link-with-additional-library.patch \
  236. 1010-install-msilib.patch \
  237. 1060-dont-include-system-ncurses-path.patch
  238. plain "New patches added for the update from 3.5.3 to 3.6.1"
  239. apply_patch_with_msg \
  240. 1620-fix-signal-module-build.patch \
  241. 1630-build-winconsoleio.patch \
  242. 1650-expose-sem_unlink.patch
  243. # Extend some isatty calls to check for mintty when checking for
  244. # a terminal output.
  245. # https://github.com/Alexpux/MINGW-packages/issues/2645
  246. apply_patch_with_msg \
  247. 1700-cygpty-isatty.patch
  248. # gdbm is broken and as a result breaks dbm/shelve.
  249. # Don't include it so the dbm.dumb backend is used instead,
  250. # like with the official CPython build.
  251. apply_patch_with_msg \
  252. 1701-disable-broken-gdbm-module.patch
  253. # https://github.com/Alexpux/MINGW-packages/issues/3139
  254. apply_patch_with_msg \
  255. 1800-link-win-resource-files-and-build-pythonw.patch
  256. apply_patch_with_msg \
  257. 1810-3.7-mpdec-mingw.patch \
  258. 1850-disable-readline.patch \
  259. 1860-fix-isselectable.patch \
  260. 1870-use-_wcsnicmp-instead-wcsncasecmp.patch \
  261. 1890-_xxsubinterpretersmodule.patch
  262. # https://github.com/msys2/MINGW-packages/issues/5184
  263. apply_patch_with_msg 2010-configure-have-inet-pton.patch
  264. # https://github.com/msys2/MINGW-packages/issues/5155
  265. apply_patch_with_msg 2030-fix-msvc9-import.patch
  266. # https://github.com/msys2/MINGW-packages/issues/5001
  267. apply_patch_with_msg 2051-set-venv-activate-path-unix.patch
  268. apply_patch_with_msg 2052-venv-creation-fixes.patch
  269. apply_patch_with_msg 2060-pass-gen-profile-ldflags.patch
  270. apply_patch_with_msg 2070-distutils-add-windmc-to-cygwinccompiler.patch
  271. apply_patch_with_msg 2080-pkg-config-windows-must-link-ext-with-python-lib.patch
  272. # https://github.com/msys2/MINGW-packages/issues/6035
  273. apply_patch_with_msg 3000-importlib-bootstrap-path-sep.patch
  274. apply_patch_with_msg 3001-pathlib-path-sep.patch
  275. apply_patch_with_msg 5000-warnings-fixes.patch
  276. # https://sourceforge.net/p/mingw-w64/bugs/870/
  277. # This can be skipped with a newer msvcrt
  278. apply_patch_with_msg 3010-workaround-missing-lconv-members-mingw.patch
  279. apply_patch_with_msg 3011-fix-build-testinternalcapi.patch
  280. autoreconf -vfi
  281. }
  282. check() {
  283. cd "${srcdir}/build-${CARCH}"
  284. # Some basic tests to ensure nothing major or MSYS2 specific features are
  285. # broken
  286. ./python.exe "${srcdir}/smoketests.py"
  287. MSYSTEM= ./python.exe "${srcdir}/smoketests.py"
  288. # make test EXTRATESTOPTS="-v"
  289. }
  290. build() {
  291. local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
  292. CFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 -D_WIN32_WINNT=0x0601"
  293. CXXFLAGS+=" -fwrapv -D__USE_MINGW_ANSI_STDIO=1 -D_WIN32_WINNT=0x0601"
  294. CPPFLAGS+=" -I${PREFIX_WIN}/include/ncurses "
  295. declare -a _extra_config
  296. if check_option "strip" "y"; then
  297. LDFLAGS+=" -s "
  298. fi
  299. if check_option "debug" "n"; then
  300. CFLAGS+=" -DNDEBUG "
  301. CXXFLAGS+=" -DNDEBUG "
  302. _extra_config+=("--enable-optimizations")
  303. _extra_config+=("--with-lto")
  304. else
  305. CFLAGS+=" -O0 -ggdb"
  306. CXXFLAGS+=" -O0 -ggdb"
  307. _extra_config+=("--with-pydebug")
  308. fi
  309. # Workaround for conftest error on 64-bit builds
  310. export ac_cv_working_tzset=no
  311. # Workaround for when dlfcn exists on Windows, which causes
  312. # some conftests to succeed when they shouldn't (we don't use dlfcn).
  313. export ac_cv_header_dlfcn_h=no
  314. export ac_cv_lib_dl_dlopen=no
  315. export ac_cv_have_decl_RTLD_GLOBAL=no
  316. export ac_cv_have_decl_RTLD_LAZY=no
  317. export ac_cv_have_decl_RTLD_LOCAL=no
  318. export ac_cv_have_decl_RTLD_NOW=no
  319. export ac_cv_have_decl_RTLD_DEEPBIND=no
  320. export ac_cv_have_decl_RTLD_MEMBER=no
  321. export ac_cv_have_decl_RTLD_NODELETE=no
  322. export ac_cv_have_decl_RTLD_NOLOAD=no
  323. [[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}"
  324. mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}"
  325. MSYSTEM=MINGW ../Python-${pkgver}/configure \
  326. --prefix=${MINGW_PREFIX} \
  327. --host=${MINGW_CHOST} \
  328. --build=${MINGW_CHOST} \
  329. --enable-shared \
  330. --with-nt-threads \
  331. --with-system-expat \
  332. --with-system-ffi \
  333. --with-system-libmpdec \
  334. --without-ensurepip \
  335. --without-c-locale-coercion \
  336. --enable-loadable-sqlite-extensions \
  337. "${_extra_config[@]}" \
  338. OPT=""
  339. # We patch importlib which is embedded in C headers, so regenerate them
  340. make regen-importlib
  341. make
  342. # Add missing venvlauncher files (issue #7014)
  343. # FIXME: build these from PC/launcher.c instead
  344. cp python.exe venvlauncher.exe
  345. cp pythonw.exe venvwlauncher.exe
  346. }
  347. package() {
  348. cd "${srcdir}/build-${CARCH}"
  349. local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
  350. MSYSTEM=MINGW \
  351. MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
  352. make -j1 install DESTDIR="${pkgdir}"
  353. if check_option "debug" "n"; then
  354. VERABI=${_pybasever}
  355. else
  356. VERABI=${_pybasever}d
  357. fi
  358. # gdb pretty printers for debugging Python itself; to use:
  359. # python
  360. # sys.path.append('C:/msys64/mingw64/share/gdb/python3')
  361. # import python_gdb
  362. # reload(python_gdb)
  363. # end
  364. [[ -d "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/ ]] || mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/
  365. cp -f python.exe-gdb.py "${pkgdir}${MINGW_PREFIX}"/share/gdb/python3/python_gdb.py
  366. rm "${pkgdir}${MINGW_PREFIX}"/bin/2to3
  367. cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${VERABI}.dll.a
  368. # Need for building boost python module
  369. cp -f "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/libpython${VERABI}.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/libpython${_pybasever}.dll.a
  370. # some useful "stuff"
  371. install -dm755 "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/{i18n,scripts}
  372. install -m755 "${srcdir}/Python-${pkgver}"/Tools/i18n/{msgfmt,pygettext}.py "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/i18n/
  373. install -m755 "${srcdir}/Python-${pkgver}"/Tools/scripts/{README,*py} "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/Tools/scripts/
  374. # clean up #!s
  375. find "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/ -name '*.py' | \
  376. xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python|"
  377. # clean-up reference to build directory
  378. sed -i "s#${srcdir}/Python-${pkgver}:##" "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/config-${VERABI}/Makefile
  379. for fscripts in 2to3-${_pybasever} idle3 idle${_pybasever} pydoc3 pydoc${_pybasever}; do
  380. sed -i "s|$(cygpath -w ${MINGW_PREFIX} | sed 's|\\|\\\\|g')/bin/python${_pybasever}.exe|/usr/bin/env python${_pybasever}.exe|g" "${pkgdir}${MINGW_PREFIX}"/bin/${fscripts}
  381. done
  382. # Default names are aliases for Python now
  383. cp "${pkgdir}${MINGW_PREFIX}"/bin/python3.exe "${pkgdir}${MINGW_PREFIX}"/bin/python.exe
  384. cp "${pkgdir}${MINGW_PREFIX}"/bin/python3w.exe "${pkgdir}${MINGW_PREFIX}"/bin/pythonw.exe
  385. cp "${pkgdir}${MINGW_PREFIX}"/bin/python3-config "${pkgdir}${MINGW_PREFIX}"/bin/python-config
  386. cp "${pkgdir}${MINGW_PREFIX}"/bin/idle3 "${pkgdir}${MINGW_PREFIX}"/bin/idle
  387. cp "${pkgdir}${MINGW_PREFIX}"/bin/pydoc3 "${pkgdir}${MINGW_PREFIX}"/bin/pydoc
  388. cp "${pkgdir}${MINGW_PREFIX}"/bin/2to3-${_pybasever} "${pkgdir}${MINGW_PREFIX}"/bin/2to3
  389. 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
  390. # fix permissons
  391. find ${pkgdir}${MINGW_PREFIX} -type f \( -name "*.dll" -o -name "*.exe" \) | xargs chmod 0755
  392. # Fix up two instances of MSYS2 paths in python-config.sh in-case the final consumer of the results are native executables.
  393. sed -e "s|${MINGW_PREFIX}|${PREFIX_WIN}|" \
  394. -i "${pkgdir}${MINGW_PREFIX}"/bin/python${VERABI}-config \
  395. -i "${pkgdir}${MINGW_PREFIX}"/bin/python3-config \
  396. -i "${pkgdir}${MINGW_PREFIX}"/bin/python-config
  397. # replace paths in sysconfig
  398. sed -i "s|${pkgdir}${MINGW_PREFIX}|${MINGW_PREFIX}|g" \
  399. "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/lib-dynload/_sysconfigdata*.py \
  400. "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/smtpd.py
  401. # install venv launchers
  402. mkdir -p "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/venv/scripts/nt
  403. cp venvlauncher.exe "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/venv/scripts/nt/python.exe
  404. cp venvwlauncher.exe "${pkgdir}${MINGW_PREFIX}"/lib/python${_pybasever}/venv/scripts/nt/pythonw.exe
  405. }
  406. sha256sums=('ddcc1df16bb5b87aa42ec5d20a5b902f2d088caa269b28e01590f97a798ec50a'
  407. '0ee1acf745d38d41fd098487b9595705fd8f6666d7b154d54ddba32d14f1253b'
  408. '0d27f52bc514dbf2b730f62fa6c18c797a2f4cbad8698d95b15e2774d68e483d'
  409. 'd2d73d9fb9db48fecb3a6856e4606f444eaac7637fd4f65e192701e53ac422eb'
  410. 'abed03b63e0b498804b44d1cdf8b1ff0c3c4329d3ea9c0323b2512adcacb9b57'
  411. 'c2fb01aacfc5d96bdb69ef37282f300ecd8bfa3e11921caa1fce8e871f5a31f8'
  412. '6446e0a5255d317d93c5c55094d4c797cf68fbd14bb08d38c94d7080837d1380'
  413. '8e90c38ac27316781f8853fcbce300526d92732edf4cd08d1dc2a0438fd2d694'
  414. '36f6e8b4320ee79b6ff7e84aefec3aec57293bcbacf08ea7847f3147d459b4a9'
  415. '0a6a1ee72f3aa050f1ff0b8ff88845189309163ef1a5f70808f1ab351348cdae'
  416. '56bdf305a3786ae50871045373e89f2e20df3055e1033197f122ee2c6c8b0966'
  417. '910c84eb01cfe2207ee7fd8549247d9498be8b58c4dbbb6eaa2118037e77730e'
  418. 'da5057e58a4866e20c3c604153febb2b57a089d327a954ee5b51830af8204e17'
  419. '265a3c99923b76210e0401bc0cafa88b99328343aec43d64aa94cb84fcdda6d8'
  420. '4f1db216d6a2dad137b07ccdd4b2d71c37169083706addf90c3b0b850312632a'
  421. 'f07fc8cc9030c2adf9d7c301eadb8b182aad7f1f2cde102cce730f51a093bbdd'
  422. '9f05613753a8b4ad8c5a6b32c257a318e9ff416345f4ebef3e69f56cf9a51578'
  423. '9269a4d4dab6a0e93b8a0b5ed84c3e93bdfbaf99148e467daf993f6f767c8d45'
  424. '1e89597d37838ad7c18463b83476b3cc6bec1480a052e757b9fbfb3264d4d890'
  425. '03891c0fe4ad90a9926c0e04dc7bb0efbf0022cd6d7746cf2d173dbd739f6142'
  426. '3b85b18922d21e8fc6e07a12e1c8d79c7ec271dddb75ed0fb4f44148b030b360'
  427. '6d0119cd216b944927254598cfec1b85757000ab39f5ba987a86ed2216d6351b'
  428. 'ee3f515a3e4060b08b106d788039aa0abfb0424fdf09b613dbab06256405b7ef'
  429. '9c6e64ba27d72e912be3486a0cc65d9f59f5d7ba71fb634fef0860a00311d12c'
  430. '3842234d2c3aeece0416a670c789801ef76ce31841a9c1bfcbb26340aa346712'
  431. '194ef359356d4d58bb15bafe8738c0586350d26e85cc39f5db833f428d67b41d'
  432. 'ce63ec2ec57db5fcfae332f8bb413d6c2f8888d29e449b8ae674cbcbe01a5f95'
  433. 'f7729d39c8eadce379b2b21cd253c604bfe3e4293945b4d6def9bf0c9b3c8f4f'
  434. 'be165a89d087dcc1d06b78031d441e7dd1f5d5c2a0a73de49c4c9e211132b97a'
  435. '85ec670b8c0a8fc7a5dcafc19aa697d358c5bfe67cb3d7e17ec8070d4edb16f3'
  436. '4804d854bb9fb3e6ff11c23e420b6ff34266bbc93ce33115129bf838171d49ee'
  437. 'a26997445938dd01a03a16a622d19adbc270e679df195407436c97246c96f99a'
  438. '269fc7d93aeefc286009612604385ac2ec1d0304b97c858ffe123c282be8d94c'
  439. '17341d1d4f654f8fbaea905dcf0f4091c66eefa6725b592632413fc77498b6c3'
  440. '47613ba1b262d7c3dbe96ecff5543d0923ad874eec7aa7451e17b0b414691f83'
  441. '1b3a27ea33b66efe3131dcb9951030aa7d4c18f9ec851e89a4582b69f8e673e7'
  442. '90719b6f11be4be6e6df37a9699d87da9f5200090baf0276f0d6aeb717b9e06c'
  443. '840cbf8fafa2cc230dd8a9f667dbad80d54ad573f929f9970252722b9183688b'
  444. 'fbae2e8121a027713ce9cf2197b4d702f512e65d028a2a71d4229a4c70f8410d'
  445. '95cf0d30ad7f0f171da79187f1564b8b2796e9d76551cfb442c26ae4d9f1aafe'
  446. '6b37b7d4ecd269abcf92ada988d4be48e0fee1473d6a2cc7d6562812c579095d'
  447. '4bb617a956b783edfb1a4246580172c4f9eb2728ff14730618854a3be7840dad'
  448. '65aff7e831f3bb4b37ed5d4db5dfa75ab6bd582d132dd197e658ccb699dbfac7'
  449. 'f2a7b6dce11311e3d318d5729258935a520dcb7ce4dc879ecb1738a2f8bfe434'
  450. '0a81aa7fd5fa0b511fda81ce3345f3199d3be1c83fc660f7f365ef4ede88f3f7'
  451. '27122f9db1be8b1efbccd6ab263313aa66c97dfcd0acb9499434a1fa4ecbb2bd'
  452. '0c93d28bec11968da47b300fe8049d7e32c07c27ccde36ce5f1701306f3cbaf5'
  453. 'cef46c7e1afcaf9b6bacf723d5ae22f3f42045eb93bbd9bf5d2b1dba7638028a'
  454. '819bd305734a8fe190afdd399e6158c041c5b9912b436375b2d8dc520f7376ba'
  455. 'f33d70071a232a2a3930aa0a2b3f032ef6a17e07acc7412000ceb25bdd339ade'
  456. '5c56aa13fd3f18bd4b327d8cd540ff7fd9e0145e6358d6330103938655d3dfd7'
  457. 'ca3eea7fac20d160d9aa3a8e17c0b9ab169cfe16a685f78d2c4d1fd52f8f6784'
  458. '7f2b4c0fcf4a78b983ae3c3a57c47748470370aa4bf17ea9b3ad53802d201afd'
  459. 'a55bd3b222d08dc6bb68d4e30ec3e544b303d93330131a310f3a2e20ca93f4b9'
  460. '2b4e223aed8ec9df431806c54bd3df923dbd34805e311006aba3f62682eeca56'
  461. '882d3ac8739184368a30991843db8581e3fd1aee639ddc110ac8cd9e8a89ea1f'
  462. '5d1a85e93b4c7626aa2cfa68201c2d93574647ab6ef0679d3ff4b4cc5c2ba042'
  463. 'd06065357943599d515b7ea081da99981b68c4c6a9a5e6bb5e0f1019fea80104'
  464. 'b323e44874873591b763b1926cac00d354323d32ff06941eefa415dbdb643cfb'
  465. '26fe3548c0e3997aa09077a5f4d1b4152c98c6c6e7ed64e26557704cc4758f73'
  466. '2b33a669fc281b69d6d3683402ea8d83a86f6bf625a14944d0ac553f414688d3'
  467. '86223efa8b47df1aec5bdecbe5321b29cfbba46e49bf268cf2d646423d8990c2'
  468. 'd817ee8eeb04450de6c313db4cde76cca92236e14b60fb0fdb30014250b76fdb'
  469. 'a8d7416f819963fb7d2e6800d51d27f5fdc74d804d2b559528eb6867c9e3b88a'
  470. 'a492d1366f130122e4e54bee722b65a3d8a2afb30768026e2922edec0d11c9e4'
  471. '16ab24a074e2e06e6cee4bc06373b2b71e5d7990b71f60fa613a6e9bf55d6c12'
  472. '3245dc7c2e65e15c981b5a9c6372210dae582e7c7dfee632ec92a40868f3a63b'
  473. '168172f22ea13879b958179fee20d0b2d78136bc755501f108840a14a0b521f6'
  474. '5f6de8a7646cf755df9f8666346dbcff1005b5165b7b9aea75921344b3eceee6'
  475. '84d2457f89057d1f4c48cfe85a1fe4f397eaa6a4f2dd0bad36beccf9dfdb5819'
  476. '8fe0d9cb7b36faa27d2bb41661f4f9ea0298901d261c5daf702e29e97e46bd4c'
  477. '7e2652a26a8e7198b9b6fd2bfd476c514362f347ba75b1dd014faac443266fd7'
  478. '8ea5b335b10bfb4e492646902db043aee06c953941b3eca7fe24603a3238abf8'
  479. 'a9977459a8e6c31f1643da7ede6ac7199dee96559d74188f5c9d3799787ac4fa'
  480. '7bab1dfb1d5b288e3270a61f9b1892c151f1dd1f8e32c07ae6adc37ef14844bb'
  481. '551047905350e113384f99e0e929e9381dc0a4ed514ca4ebe279dcdad798edce'
  482. '1da319664d39427156488b9b39ff39e33c53ef608f66319fdf9fb9bcdb29020d'
  483. 'fc6164a90f0ca2a9341aaf4448b4334c3393459ca5cbad6d7149f8bcf70da5fe'
  484. '181672743d9e2449064a1b18764fa400af5d3cd268098e7b7e5069d0b128caa2'
  485. '6f2032347bb40e2ebe9b3a03062147ffa2f656d47c87821623c3b7d46dc15ddb'
  486. 'c4670070e546317295071350872e1a00918fd3284609620f84beb44ed54c1ebd'
  487. '17bf1ea04f476ee66555bc4386ffbebfe6be6f75e67947b7f85511241ac46407'
  488. '0ded9e2792b95902d898aba91020103875f2987a9566b353f3e6988b08848f4a'
  489. 'd3a0669c83e4df5d33606b4c3443d2c6c71b76cb4f6421d6d54ee630023be6c2'
  490. 'a7fbf65a86889f95138360ca4dbd4e51de2e214384ee39740d9c6c381ff997d9'
  491. 'ac0400fd7c9ceada1356fe4b7eae3892f35652f09f488b31fd011e0642d373a3'
  492. '6f1a48380445406709ba5c6b4b9c6f0301ea645324feb429f3719dc29b8f28ff'
  493. 'b2f4083ada35c18876edf38220d84ca757cf710bc5c2d80ee8b5083dc6c2609f'
  494. '487c92837717975ad6c63fe2a1f8e8c5c9e0554e96000102d83c82f4a77fd9bd'
  495. 'f6ecf2edc9468210111d77e396853af49cb8a43d9bc0d20212f88cf2bc33685d'
  496. '6efc39323d14239f2a55576a8b3f32cb79eeefdd5881ba813493c14be2939f3c'
  497. 'd7bbac08482c68d7c45afb5ab7b76832e93ab0490524238eae5886535f35cb4a'
  498. '005381222cfef42ccc21151845b6d43d25c861f35c2192e5e23c2a14df7938f0'
  499. '24151631c3e70306ae92ffb8fea38992a752cd0a76771a5e53445f56c2be1f00'
  500. '589ad07c257aba8296df4de7f181a91bd498615f02ce5bc85231535cd25ebf3f')