diff --git a/sdk_container/src/third_party/coreos-overlay/changelog/updates/2023-01-12-python-oem-3.9.16.md b/sdk_container/src/third_party/coreos-overlay/changelog/updates/2023-01-12-python-oem-3.9.16.md new file mode 100644 index 0000000000..ef911dfe1b --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/changelog/updates/2023-01-12-python-oem-3.9.16.md @@ -0,0 +1 @@ +- python-oem ([3.9.16](https://www.python.org/downloads/release/python-3916/)) diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/Manifest b/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/Manifest index a7e7c5ade1..9baca72593 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/Manifest @@ -1,3 +1,3 @@ -DIST Python-3.9.12.tar.xz 19740524 BLAKE2B 05f2469aa53ca36221ef4976b17bfde3e5b86afd5a8114e5a7fd899f975a8e55022555ef718d5352ab68de1b7b23865a0bf713768c9c2b30d591438c9a396d25 SHA512 081981901e14149748fd35228db0b3b1d96fef227ae7404f07b8bad0fda4b02649bf31c348c94aefdaf3327565d78f9489437c2c02f647b15d41376a27a23e97 -DIST Python-3.9.12.tar.xz.asc 833 BLAKE2B 33436d0404a643215a8fd2b967ffd216201da24f374941bf65b888159ccfabcbe79b751eca2dd489b06605604338c8bbaab74aa10abbe4bcffaa54236301228e SHA512 dddaa27f8a29034f458edb6739398a5455c87fe37b6349e161865a9deedca118ffe9cb82663cc75bbe60b3b556399c0c6855f5262aac1fe90d36a3694fca65b2 -DIST python-gentoo-patches-3.9.12.tar.xz 12848 BLAKE2B 5dd66fa94b136a463d2c4be3a5b7dfad770c3905467a1d81af02a35b2783ce7d614881c915ee8f8e764c1656963d6886d9c60c6e524f512e1bc496e42d01307b SHA512 07de63e47a8e547724099062239df8fcfd254f19d38be28131e6bbb094ffbab8483861fb6a5905e60d7fa7a1a5dc06785951fa31984ecad89516b0b742c47f91 +DIST Python-3.9.16.tar.xz 19738796 BLAKE2B 70dedeb70d9d8f27e4f6db5106623e087c61d451c7a04639cf8d3503ad02d4d43f1b36d0cdf1131aefc9bf6e677e561227dd4baef2c2c3d2dbf6d3e7dc36bd94 SHA512 b5fd0afe131c82bbce6ddf887c59eef6945910d6a9a2bc87c0927f4e4a096bf9ca4d25bcb729c40f6ebb8a65fbe8bf7b0b97a7c4a8c9e551240eb4f34b878653 +DIST Python-3.9.16.tar.xz.asc 833 BLAKE2B 416b4a4be06e101c5971c12a6f21229c425bcabaea58487e0d1b24d6dea318c58806ee43892fc704df8252670451bd6a4a2610c25672d3983ddb081fed34b92d SHA512 468959c36a3ec6136f57a39475fff4745a25be0cb5d3d58cf3e5faf0b9ce2d2a8b89f1f9fea1479c4c6ad12ac49e97c1cfd4291c978bb3d30df5a582ec315210 +DIST python-gentoo-patches-3.9.16.tar.xz 23348 BLAKE2B 26b66e57530d167776d2aee60fd4620fc8e6c229f371616fdaa74aa2f03fd5a50b61653a5f34e0f2659901ba167af7c2aadbb0d2db773ab08bac8b3125c84b77 SHA512 8260369d96a6328ad8498359ecc56f48cb02015547065cdaec28a6bb2293bef420cb12764fae9fdd13f4a6faa60c4c402e804a22cbed7dca031ac1679032f9f6 diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/README.md b/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/README.md index 3e2e334d9a..8b27d3d896 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/README.md +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/README.md @@ -82,6 +82,3 @@ Modifications made: - Create versionless links (python and python3) to python executable. - Remove installed stuff in `/discard`. - -- Replace the dependency on `virtual/awk` with `app-alternatives/awk`. - The former is gone in favor of the latter. diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/python-oem-3.9.12.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/python-oem-3.9.16.ebuild similarity index 64% rename from sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/python-oem-3.9.12.ebuild rename to sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/python-oem-3.9.16.ebuild index 2e4a1df3ff..8135fb61e4 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/python-oem-3.9.12.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/python-oem/python-oem-3.9.16.ebuild @@ -4,8 +4,8 @@ EAPI="7" WANT_LIBTOOL="none" -inherit autotools check-reqs flag-o-matic multiprocessing \ - python-utils-r1 toolchain-funcs verify-sig +inherit autotools check-reqs flag-o-matic multiprocessing +inherit prefix python-utils-r1 toolchain-funcs verify-sig MY_PV=${PV/_rc/rc} MY_P="Python-${MY_PV%_p*}" @@ -13,19 +13,22 @@ PYVER=$(ver_cut 1-2) PATCHSET="python-gentoo-patches-${MY_PV}" DESCRIPTION="An interpreted, interactive, object-oriented programming language" -HOMEPAGE="https://www.python.org/" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" SRC_URI=" - https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz verify-sig? ( - https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc ) " S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE="hardened" # Do not add a dependency on dev-lang/python to this ebuild. @@ -42,12 +45,12 @@ DEPEND=" virtual/libcrypt:= virtual/libintl " +# autoconf-archive needed to eautoreconf BDEPEND=" + sys-devel/autoconf-archive app-alternatives/awk virtual/pkgconfig - sys-devel/autoconf-archive verify-sig? ( sec-keys/openpgp-keys-python ) - !sys-devel/gcc[libffi(-)] " VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc @@ -65,21 +68,18 @@ src_unpack() { } src_prepare() { - # Ensure that internal copies of zlib are not used. - rm -fr Modules/zlib || die - local PATCHES=( "${WORKDIR}/${PATCHSET}" ) default - sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ - setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die - # force correct number of jobs + # force the correct number of jobs # https://bugs.gentoo.org/737660 - local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + local jobs=$(makeopts_jobs) sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die @@ -87,7 +87,6 @@ src_prepare() { } src_configure() { - local disable # disable automagic bluetooth headers detection export ac_cv_header_bluetooth_bluetooth_h=no disable+=" gdbm" @@ -102,18 +101,9 @@ src_configure() { einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" fi - if [[ "$(gcc-major-version)" -ge 4 ]]; then - append-flags -fwrapv - fi - + append-flags -fwrapv filter-flags -malign-double - # https://bugs.gentoo.org/show_bug.cgi?id=50309 - if is-flagq -O3; then - is-flagq -fstack-protector-all && replace-flags -O3 -O2 - use hardened && replace-flags -O3 -O2 - fi - # https://bugs.gentoo.org/700012 if is-flagq -flto || is-flagq '-flto=*'; then append-cflags $(test-flags-CC -ffat-lto-objects) @@ -126,9 +116,10 @@ src_configure() { fi # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. - tc-export CXX + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG - local dbmliborder + local dbmliborder= local myeconfargs=( # glibc-2.30 removes it; since we can't cleanly force-rebuild @@ -156,12 +147,73 @@ src_configure() { # disable implicit optimization/debugging flags local -x OPT= + + if tc-is-cross-compiler ; then + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS_FOR_BUILD} + local -x LDFLAGS_NODIST=${LDFLAGS_FOR_BUILD} + local -x CFLAGS= LDFLAGS= + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --libdir="${cbuild_libdir:2}" + + # As minimal as possible for the mini CBUILD Python + # we build just for cross. + --without-lto + --disable-optimizations + ) + + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake + popd &> /dev/null || die + fi + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get # propagated to sysconfig for built extensions local -x CFLAGS_NODIST=${CFLAGS} local -x LDFLAGS_NODIST=${LDFLAGS} local -x CFLAGS= LDFLAGS= + hprefixify setup.py econf "${myeconfargs[@]}" if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then @@ -169,6 +221,9 @@ src_configure() { eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." die "Broken sem_open function (bug 496328)" fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die } src_compile() {