2019-03-26 15:59:06 +00:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
2018-07-16 20:45:36 +02:00
|
|
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
2017-10-08 23:50:38 +01:00
|
|
|
|
|
|
|
|
PKG_NAME="Python3"
|
2018-09-11 08:11:09 +01:00
|
|
|
# When changing PKG_VERSION remember to sync PKG_PYTHON_VERSION!
|
2024-10-08 11:31:15 +00:00
|
|
|
PKG_VERSION="3.13.5"
|
|
|
|
|
PKG_SHA256="93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640"
|
2017-10-08 23:50:38 +01:00
|
|
|
PKG_LICENSE="OSS"
|
2021-05-03 16:34:38 +00:00
|
|
|
PKG_SITE="https://www.python.org/"
|
|
|
|
|
PKG_URL="https://www.python.org/ftp/python/${PKG_VERSION}/${PKG_NAME::-1}-${PKG_VERSION}.tar.xz"
|
2025-02-17 07:38:45 +00:00
|
|
|
PKG_DEPENDS_HOST="zlib:host bzip2:host libffi:host util-linux:host autoconf-archive:host openssl:host"
|
2024-07-02 22:32:37 -04:00
|
|
|
PKG_DEPENDS_TARGET="autotools:host gcc:host Python3:host sqlite expat zlib bzip2 xz openssl libffi readline ncurses util-linux"
|
2018-10-22 15:06:12 +02:00
|
|
|
PKG_LONGDESC="Python3 is an interpreted object-oriented programming language."
|
2024-10-10 11:22:05 +00:00
|
|
|
PKG_BUILD_FLAGS="-cfg-libs -cfg-libs:host"
|
2017-10-24 23:23:02 +02:00
|
|
|
PKG_TOOLCHAIN="autotools"
|
2017-10-08 23:50:38 +01:00
|
|
|
|
2024-10-08 11:31:15 +00:00
|
|
|
PKG_PYTHON_VERSION="python3.13"
|
2019-10-24 22:51:28 +01:00
|
|
|
|
2017-10-08 23:50:38 +01:00
|
|
|
PKG_CONFIGURE_OPTS_HOST="ac_cv_prog_HAS_HG=/bin/false
|
|
|
|
|
ac_cv_prog_SVNVERSION=/bin/false
|
2024-08-21 22:21:57 +02:00
|
|
|
py_cv_module_unicodedata=yes
|
2024-09-20 10:22:32 +00:00
|
|
|
py_cv_module__bz2=n/a
|
2024-08-21 22:21:57 +02:00
|
|
|
py_cv_module__codecs_cn=n/a
|
|
|
|
|
py_cv_module__codecs_hk=n/a
|
|
|
|
|
py_cv_module__codecs_iso2022=n/a
|
|
|
|
|
py_cv_module__codecs_jp=n/a
|
|
|
|
|
py_cv_module__codecs_kr=n/a
|
|
|
|
|
py_cv_module__codecs_tw=n/a
|
2024-09-20 10:22:32 +00:00
|
|
|
py_cv_module__decimal=n/a
|
2024-09-20 11:19:29 +00:00
|
|
|
py_cv_module__lzma=n/a
|
2024-08-21 22:21:57 +02:00
|
|
|
py_cv_module_nis=n/a
|
|
|
|
|
py_cv_module_ossaudiodev=n/a
|
|
|
|
|
py_cv_module__dbm=n/a
|
|
|
|
|
py_cv_module__gdbm=n/a
|
2017-10-08 23:50:38 +01:00
|
|
|
--disable-pyc-build
|
|
|
|
|
--disable-sqlite3
|
2024-09-20 10:22:32 +00:00
|
|
|
--without-readline
|
2017-10-08 23:50:38 +01:00
|
|
|
--disable-tk
|
|
|
|
|
--disable-curses
|
|
|
|
|
--disable-pydoc
|
|
|
|
|
--disable-test-modules
|
|
|
|
|
--disable-idle3
|
|
|
|
|
--with-expat=builtin
|
|
|
|
|
--with-doc-strings
|
|
|
|
|
--without-pymalloc
|
2023-07-29 15:28:49 +00:00
|
|
|
--with-ensurepip=no
|
2024-10-10 11:22:05 +00:00
|
|
|
--enable-shared
|
2017-10-08 23:50:38 +01:00
|
|
|
"
|
|
|
|
|
|
|
|
|
|
PKG_CONFIGURE_OPTS_TARGET="ac_cv_prog_HAS_HG=/bin/false
|
|
|
|
|
ac_cv_prog_SVNVERSION=/bin/false
|
|
|
|
|
ac_cv_file__dev_ptmx=no
|
|
|
|
|
ac_cv_file__dev_ptc=no
|
|
|
|
|
ac_cv_have_long_long_format=yes
|
|
|
|
|
ac_cv_working_tzset=yes
|
|
|
|
|
ac_cv_func_lchflags_works=no
|
|
|
|
|
ac_cv_func_chflags_works=no
|
|
|
|
|
ac_cv_func_printf_zd=yes
|
|
|
|
|
ac_cv_buggy_getaddrinfo=no
|
|
|
|
|
ac_cv_header_bluetooth_bluetooth_h=no
|
|
|
|
|
ac_cv_header_bluetooth_h=no
|
2024-08-21 22:21:57 +02:00
|
|
|
py_cv_module_unicodedata=yes
|
|
|
|
|
py_cv_module__codecs_cn=n/a
|
|
|
|
|
py_cv_module__codecs_hk=n/a
|
|
|
|
|
py_cv_module__codecs_iso2022=n/a
|
|
|
|
|
py_cv_module__codecs_jp=n/a
|
|
|
|
|
py_cv_module__codecs_kr=n/a
|
|
|
|
|
py_cv_module__codecs_tw=n/a
|
2024-09-20 10:22:32 +00:00
|
|
|
py_cv_module__decimal=n/a
|
2024-08-21 22:21:57 +02:00
|
|
|
py_cv_module_nis=n/a
|
|
|
|
|
py_cv_module_ossaudiodev=n/a
|
|
|
|
|
py_cv_module__dbm=n/a
|
2017-10-08 23:50:38 +01:00
|
|
|
--disable-pyc-build
|
|
|
|
|
--enable-sqlite3
|
2024-09-20 10:22:32 +00:00
|
|
|
--with-readline
|
2017-10-08 23:50:38 +01:00
|
|
|
--disable-tk
|
|
|
|
|
--enable-curses
|
|
|
|
|
--disable-pydoc
|
|
|
|
|
--disable-test-modules
|
|
|
|
|
--disable-idle3
|
|
|
|
|
--with-expat=system
|
|
|
|
|
--with-doc-strings
|
|
|
|
|
--without-pymalloc
|
|
|
|
|
--without-ensurepip
|
|
|
|
|
--enable-ipv6
|
2022-10-30 07:39:00 +00:00
|
|
|
--with-build-python=${TOOLCHAIN}/bin/python
|
2024-10-10 11:22:05 +00:00
|
|
|
--enable-shared
|
2017-10-08 23:50:38 +01:00
|
|
|
"
|
|
|
|
|
|
2019-10-24 22:51:28 +01:00
|
|
|
pre_configure_host() {
|
2023-08-01 08:48:12 +00:00
|
|
|
# control patch Python3-0300-generate-legacy-pyc-bytecode
|
|
|
|
|
# this needs to be set when building host based py file
|
|
|
|
|
# do not set this for py compiles being done for target use
|
|
|
|
|
export DONT_BUILD_LEGACY_PYC=1
|
2019-10-24 22:51:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
post_make_host() {
|
2021-01-19 19:33:55 +00:00
|
|
|
# python distutils per default adds -L${LIBDIR} when linking binary extensions
|
|
|
|
|
sed -e "s|^ 'LIBDIR':.*| 'LIBDIR': '/usr/lib',|g" -i $(find ${PKG_BUILD}/.${HOST_NAME} -not -path '*/__pycache__/*' -name '_sysconfigdata__*.py')
|
2017-10-08 23:50:38 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
post_makeinstall_host() {
|
2021-01-19 19:33:55 +00:00
|
|
|
ln -sf ${PKG_PYTHON_VERSION} ${TOOLCHAIN}/bin/python
|
2019-10-24 22:51:28 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
rm -fr ${PKG_BUILD}/.${HOST_NAME}/build/temp.*
|
2019-10-24 22:51:28 +01:00
|
|
|
}
|
|
|
|
|
|
2024-08-20 21:23:46 +02:00
|
|
|
post_make_target() {
|
|
|
|
|
# fix sysconfig paths for cross compiling
|
|
|
|
|
PKG_SYSCONFIG_FILE=$(find ${PKG_BUILD}/.${TARGET_NAME} -not -path '*/__pycache__/*' -name '_sysconfigdata__*.py')
|
|
|
|
|
sed -e "s,\([\'|\ ]\)/usr/include,\1${SYSROOT_PREFIX}/usr/include,g" -i ${PKG_SYSCONFIG_FILE}
|
|
|
|
|
sed -e "s,\([\'|\ ]\)/usr/lib,\1${SYSROOT_PREFIX}/usr/lib,g" -i ${PKG_SYSCONFIG_FILE}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-30 03:41:08 +00:00
|
|
|
pre_configure_target() {
|
|
|
|
|
export PYTHON_MODULES_INCLUDE="${TARGET_INCDIR}"
|
|
|
|
|
export PYTHON_MODULES_LIB="${TARGET_LIBDIR}"
|
|
|
|
|
export DISABLED_EXTENSIONS="${PKG_PY_DISABLED_MODULES}"
|
|
|
|
|
export PKG_CONFIG_PATH="$(get_install_dir xz)/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
|
|
|
|
}
|
|
|
|
|
|
2017-10-08 23:50:38 +01:00
|
|
|
post_makeinstall_target() {
|
2021-01-19 19:33:55 +00:00
|
|
|
ln -sf ${PKG_PYTHON_VERSION} ${INSTALL}/usr/bin/python
|
2019-10-24 22:51:28 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
rm -fr ${PKG_BUILD}/.${TARGET_NAME}/build/temp.*
|
2018-04-02 10:09:11 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_INSTALL_PATH_LIB=${INSTALL}/usr/lib/${PKG_PYTHON_VERSION}
|
2017-10-08 23:50:38 +01:00
|
|
|
|
2024-10-08 11:31:15 +00:00
|
|
|
for dir in config compiler sysconfigdata lib-dynload/sysconfigdata test; do
|
2021-01-19 19:33:55 +00:00
|
|
|
rm -rf ${PKG_INSTALL_PATH_LIB}/${dir}
|
2017-10-08 23:50:38 +01:00
|
|
|
done
|
|
|
|
|
|
2024-08-21 22:21:57 +02:00
|
|
|
safe_remove ${INSTALL}/usr/bin/python*-config
|
2017-10-08 23:50:38 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
find ${INSTALL} -name '*.o' -delete
|
2020-02-09 03:00:14 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
python_compile ${PKG_INSTALL_PATH_LIB}
|
2017-10-08 23:50:38 +01:00
|
|
|
|
|
|
|
|
# strip
|
2021-01-19 19:33:55 +00:00
|
|
|
chmod u+w ${INSTALL}/usr/lib/libpython*.so.*
|
|
|
|
|
debug_strip ${INSTALL}/usr
|
2017-10-08 23:50:38 +01:00
|
|
|
}
|