Skip to content

Conversation

@jefferyto
Copy link
Member

Maintainer: me
Compile tested: armvirt-32, 22.03.5 sdk
Run tested: armvirt-32 (qemu), 22.03.5

Description:

  • Cherry pick of d09844e; this applies to 22.03 as well but unsure why it was not backported earlier
  • Cherry pick most fixes from python3: Update to 3.11.3, refresh/redo patches #21030 (except fix for host Python hashlib)
  • A slightly different "python3: Fix hashlib module not compiled for host Python" to account for LibreSSL 3.4 in 22.03
  • Update to 3.10.11

neheb and others added 9 commits May 24, 2023 13:01
Oversight from when the expat host build was removed.

Signed-off-by: Rosen Penev <[email protected]>
(cherry picked from commit d09844e)
Signed-off-by: Jeffery To <[email protected]>
--without-pymalloc was added in 7bf1ae6
because leaving it enabled added an "m" flag/suffix to file names.

This flag/suffix was removed in Python 3.8[1], so disabling pymalloc is
no longer necessary.

[1]: https://docs.python.org/3.8/whatsnew/3.8.html#build-and-c-api-changes

Signed-off-by: Jeffery To <[email protected]>
(cherry picked from commit 3032e70,
adjusted PKG_RELEASE)
Signed-off-by: Jeffery To <[email protected]>
003-do-not-run-distutils-tests.patch was removed in
4e05541. This patch stopped "make
install" from, among other things, running compileall.

When this patch was removed, "make install" ran compileall as normal and
created bytecode files in __pycache__ directories. These files were then
packaged in python3-light.

This adds a patch to stop compileall from being run during "make
install".

Fixes: 4e05541 ("python3: bump to version 3.10.0")
Signed-off-by: Jeffery To <[email protected]>
(cherry picked from commit 8a4da01,
adjusted PKG_RELEASE, refreshed patches)
Signed-off-by: Jeffery To <[email protected]>
The Makefile lines to add READELF to TARGET_CONFIGURE_OPTS was removed
in 4e05541.

Without setting READELF, configure finds the symlink to
$(TARGET_CROSS)readelf (e.g. arm-openwrt-linux-readelf) instead of
$(TARGET_CROSS)readelf (e.g. arm-openwrt-linux-muslgnueabi-readelf).

This leads to the symlink name being saved to _sysconfigdata.py, and so
the readelf name is not replaced correctly (in
Py3Package/python3-base/install).

This restores the removed Makefile lines.

Fixes: 4e05541 ("python3: bump to version 3.10.0")
Signed-off-by: Jeffery To <[email protected]>
(cherry picked from commit e1a9578,
adjusted PKG_RELEASE)
Signed-off-by: Jeffery To <[email protected]>
When doing parallel builds, host Python can install the python3 symlink
before the Python standard library is installed completely.

When this occurs, it is possible for other packages to detect the
python3 symlink and try to use host Python before it is fully installed.

This adds a patch to make commoninstall (where the standard library is
installed) a prerequisite of bininstall (where the python3 symlink is
installed), so that commoninstall is fully completed before bininstall
begins.

Patch has been submitted upstream:
python/cpython#104693

Fixes: openwrt#19241

Signed-off-by: Jeffery To <[email protected]>
(cherry picked from commit 67e47f1)
Signed-off-by: Jeffery To <[email protected]>
By default, the Python build process will add /usr/local/{lib,include},
and multiarch paths (e.g. /usr/{lib,include}/x86_64-linux-gnu) if
building on Debian/Ubuntu, to its library and includes paths.

006-remove-multi-arch-and-local-paths.patch was added in
84202f1 to stop the Python build
process from adding these paths.

006-remove-multi-arch-and-local-paths.patch was removed in
48277ec.

006-do-not-add-multiarch-paths-when-cross-compiling.patch was added in
0c8b0b0 to stop the Python build
process from adding these paths for target Python.

These paths are still added by the Python build process when building
host Python.

This replaces the cross-compiling-only patch with the original patch,
renamed slightly and adapted for Python 3.10.

Fixes: 48277ec ("python3: bump to version 3.8")
Signed-off-by: Jeffery To <[email protected]>
(cherry picked from commit f006d0e,
adjusted PKG_RELEASE)
Signed-off-by: Jeffery To <[email protected]>
This adds $(STAGING_DIR_HOST)/include/e2fsprogs to HOST_CFLAGS and
HOST_CPPFLAGS so that configure can find uuid/uuid.h.

Signed-off-by: Jeffery To <[email protected]>
(cherry picked from commit 44fb492,
adjusted PKG_RELEASE)
Signed-off-by: Jeffery To <[email protected]>
This updates 026-openssl-feature-flags.patch with a newer version from
OpenBSD[1].

This also adds 029-no-FIPS_mode.patch to patch out a call to
FIPS_mode(). LibreSSL 3.4 does not have a function definition for
FIPS_mode.

[1]: https://github.com/openbsd/ports/blob/26a04435bf2a09dcbe22b718bfee08997617a906/lang/python/3.10/patches/patch-Modules__hashopenssl_c

Signed-off-by: Jeffery To <[email protected]>
This also restores (and updates) a patch for pip that was removed
earlier but is still necessary.

Fixes: 7a756db ("python3: bump to version 3.10.9")
Signed-off-by: Jeffery To <[email protected]>
@mhei mhei added the OpenWrt 22.03 (end-of-support) Issue/PR on branch 22.03 label May 24, 2023
@commodo commodo merged commit 49a7b86 into openwrt:openwrt-22.03 May 27, 2023
@jefferyto jefferyto deleted the python-3.10.11-openwrt-22.03 branch May 28, 2023 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OpenWrt 22.03 (end-of-support) Issue/PR on branch 22.03

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants