summaryrefslogtreecommitdiff
path: root/lang/python/python3
Commit message (Collapse)AuthorAgeFilesLines
* python: Add proper support for pyproject.toml-based buildsJeffery To2023-10-311-2/+2
| | | | | | | | | | | | | | This removes the changes made in 61f202c0170785addbbc449e4de61cc5886f0833 and adds actual support for pyproject.toml-based (PEP 517) builds of Python packages. Packages can force the use of the old build process by setting PYTHON3_PKG_FORCE_DISTUTILS_SETUP:=1; this should only be a temporary workaround until the package can be updated/fixed to use the new build process. Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit 5156c0c82bcb18481bf588ba4b1ff67c12422a80)
* python: Better host pip optionsJeffery To2023-10-131-4/+4
| | | | | | | | | | | | | | | | | | | pip by default will read system-wide and per-user configuration files[1]. Setting PIP_CONFIG_FILE=/dev/null instructs pip to not read any config files[2]. pip will spawn child processes of itself to do work, but not all options are passed down to the child processes[3]. Setting global options as environment variables[4] ensures they are passed down to any child processes. [1]: https://pip.pypa.io/en/stable/topics/configuration/#configuration-files [2]: https://pip.pypa.io/en/stable/topics/configuration/#pip-config-file [3]: https://github.com/pypa/pip/issues/9081#issue-733819665 [4]: https://pip.pypa.io/en/stable/topics/configuration/#environment-variables Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit 8c2abb74031e2403dde83536a8e7f13c63cdd4ab)
* python3: avoid unnecessary rebuildsEneas U de Queiroz2023-10-071-6/+6
| | | | | | | | | | | | | | Move the order in which BuildPackage is called, so that the libpython package is built ahead of the module packages, to avoid forcing a clean-build of the package when 'make package/python3/compile' is called a second time without changes. The library must be built first, so that when the buildsystem checks for ABI version changes using libpython3.version, its timestamp should be older than the dependent package's STAMP_PREPARED file. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com> (cherry picked from commit c230d7bd7f8a794032d2414588f1cdfc1a5ec74e)
* python3: Update to 3.10.13Jeffery To2023-09-081-1/+1
| | | | | | | Includes fix for CVE-2023-40217 (Bypass TLS handshake on closed sockets). Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Update to 3.10.12Jeffery To2023-06-121-1/+1
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Update to 3.10.11, refresh/restore patchesJeffery To2023-05-244-8/+28
| | | | | | | | This also restores (and updates) a patch for pip that was removed earlier but is still necessary. Fixes: 7a756db00249 ("python3: bump to version 3.10.9") Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Fix hashlib module not compiled for host PythonJeffery To2023-05-243-3/+67
| | | | | | | | | | | | | 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 <jeffery.to@gmail.com>
* python3: Fix uuid module not compiled for host PythonJeffery To2023-05-241-1/+8
| | | | | | | | | | 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 <jeffery.to@gmail.com> (cherry picked from commit 44fb4927f11add18baa11617e67c8a697a3f528d, adjusted PKG_RELEASE) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Fix multiarch/local paths added when building host PythonJeffery To2023-05-243-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 84202f17e1aac6faf66b8d186f7c5c62b6f72ffb to stop the Python build process from adding these paths. 006-remove-multi-arch-and-local-paths.patch was removed in 48277ec9158151763239461c6f60808e38a99c2f. 006-do-not-add-multiarch-paths-when-cross-compiling.patch was added in 0c8b0b0bf727a57b0138a1425d2f32786dddd146 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: 48277ec91581 ("python3: bump to version 3.8") Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit f006d0ea23f76a1846c93d0ec3b1ea60ba36d093, adjusted PKG_RELEASE) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Fix race condition when doing parallel buildsJeffery To2023-05-241-0/+11
| | | | | | | | | | | | | | | | | | | | | | 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: https://github.com/python/cpython/pull/104693 Fixes: https://github.com/openwrt/packages/issues/19241 Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit 67e47f11962c4ea0b1b734913f64c32fbba9edf2) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Fix readelf program name not replaced in _sysconfigdata.pyJeffery To2023-05-241-1/+6
| | | | | | | | | | | | | | | | | | | | | The Makefile lines to add READELF to TARGET_CONFIGURE_OPTS was removed in 4e05541782edeb06b51d691dadf52648df24c940. 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: 4e05541782ed ("python3: bump to version 3.10.0") Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit e1a95786358c64483fc16d52eac6746267f0abec, adjusted PKG_RELEASE) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Fix __pycache__ files included in python3-lightJeffery To2023-05-244-3/+21
| | | | | | | | | | | | | | | | | | | 003-do-not-run-distutils-tests.patch was removed in 4e05541782edeb06b51d691dadf52648df24c940. 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: 4e05541782ed ("python3: bump to version 3.10.0") Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit 8a4da017902d21ac6cada21a3bb23caa5b39af0b, adjusted PKG_RELEASE, refreshed patches) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Remove --without-pymallocJeffery To2023-05-241-3/+1
| | | | | | | | | | | | | | | --without-pymalloc was added in 7bf1ae65a89e380ce20ef5ab13b1a7276d6f7047 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 <jeffery.to@gmail.com> (cherry picked from commit 3032e7063f5a215a4a2b15f79be8d54aace6b614, adjusted PKG_RELEASE) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: use tools/expat for host buildRosen Penev2023-05-241-1/+1
| | | | | | | | Oversight from when the expat host build was removed. Signed-off-by: Rosen Penev <rosenp@gmail.com> (cherry picked from commit d09844e395560a402a7b8c71ac03e0370066ec51) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: bump to version 3.10.9Alexandru Ardelean2023-01-277-29/+9
| | | | | | | | | | | Refresh patches. Bump setuptools to 65.5.0 Bump pip to 22.3.1 Removed patch: patches-pip/001-pep517-pyc-fix.patch No longer needed as per: https://github.com/pypa/pip/commit/fa4b2efbabffb96536c10bfb94477912a0f20e7f Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
* python3: update to 3.10.7Michal Vasilek2022-10-113-3/+3
| | | | | | | | | * fixes CVE-2021-28861 * adjust pip and setuptools versions * refresh patches Signed-off-by: Michal Vasilek <michal.vasilek@nic.cz> (cherry picked from commit e9ddc479f9a77b9d173081bbc57cd805b24942d8)
* python3: backport and fix target musl libc detectionŠimon Bořek2022-09-152-0/+124
| | | | | | | | | | | | | | | | | | | | Patch 030: Backported from Python main branch[^1] for Python to distinguish between glibc and musl libc SOABI. Patch 131: Changes PLATFORM_TRIPLET -gnu/-musl suffix detection (performed by the backported patch) to be based on the target OS instead of the building OS. See included patches for more detailed descriptions. Specifically this fixes cross-compilation for mpc8548 CPUs with SPE instructions[^2] enabled. [^1]: merged to python:main as https://github.com/python/cpython/pull/24502 'bpo-43112: detect musl as a separate SOABI' [^2]: https://www.nxp.com/docs/en/reference-manual/SPEPEM.pdf Co-authored-by: Pali Rohár <pali@kernel.org> Signed-off-by: Šimon Bořek <simon.borek@nic.cz> (cherry picked from commit 992fcd1bd8770bb44a56bc4173ac3befe0fa16ef)
* python3: Update to 3.10.5, refresh patchesJeffery To2022-06-152-2/+2
| | | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit 57e2b656cb293b9d7991bfe8aa4ffe9fe59dfbfd)
* python3: Update to 3.10.4Jeffery To2022-03-281-1/+1
| | | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit d0efe27a8c35b5580304838548542e9aaf344ac5)
* python3: Update to 3.10.3, refresh patchesJeffery To2022-03-285-12/+12
| | | | | | | | | | Includes fixes for: * Windows builds updated to bzip2 1.0.8 to mitigate CVE-2016-3189 and CVE-2019-12900 * CVE-2022-26488: Escalation of privilege via Windows Installer Signed-off-by: Jeffery To <jeffery.to@gmail.com> (cherry picked from commit bed8dc2132ebce2b95d9271a61e5b928160937fb)
* python3: Update to 3.10.2, refresh patchesJeffery To2022-01-174-19/+8
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Update to 3.10.1, refresh/remove patchesJeffery To2022-01-057-172/+20
| | | | | | | | | | | | | | | | | Removed patches: * 027-bpo-43158-Use-configure-values-for-building-_uuid-ex.patch Already merged. * 029-disable-deprecation-warning.patch Packages should be patched/fixed to remove the use of distutils instead of disabling this warning. Also: * Updates PKG_LICENSE to use the correct SPDX license identifier * Fixes build for mipsel_24kc_24kf Fixes https://github.com/openwrt/packages/issues/17217. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python-packages: remove myself as maintainerAlexandru Ardelean2021-11-231-1/+1
| | | | | | | | | | There's been a bit of overlapping opinions on some of these packages. The best thing to do here is to reduce ownership and relinquish my control. This patch does that. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: bump to version 3.10.0Alexandru Ardelean2021-11-1922-174/+361
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually re-applied: 008-distutils-use-python-sysroot.patch 016-adjust-config-paths.patch Drop patch: 003-do-not-run-distutils-tests.patch There is now a configure option '--disable-test-modules' And seems we left the '_ctypes_test' around for quite some time. Dropped now. Refs: https://bugs.python.org/issue27640 https://bugs.python.org/issue43282 Drop patch: 013-getbuildinfo-date-time-source-date-epoch.patch Python build honors SOURCE_DATE_EPOCH pretty well now. Drop setuptools patches. Setuptools should be reproducible with Python 3.6+ according to a mention here: https://github.com/pypa/setuptools/pull/1690#issuecomment-536517456 It's time to let upstream fix Setuptools reproduce-ability. Drop patch: 010-do-not-add-rt-lib-dirs-when-cross-compiling.patch I can't seem to fully remember why it's there. And it seem to build fine without it. Drop patch: 015-abort-on-failed-modules.patch Python build supports a similar PYTHONSTRICTEXTENSIONBUILD=1 env-var option. Add patch: 026-openssl-feature-flags.patch We need to keep this in our tree for a while. See: https://bugs.python.org/issue45627 Backport patch: 027-bpo-43158-Use-configure-values-for-building-_uuid-ex.patch Link: https://github.com/python/cpython/pull/29353 Fixes the build for uuid C module. Add patch: 028-host-python-support-ssl-with-libressl.patch We need the _ssl module working on the host-side with LibreSSL for pip to work to download from https://pypi.org Refs: https://github.com/openwrt/openwrt/pull/4749 Add patch: 029-disable-deprecation-warning.patch Fixes apparmor build. The warning causes a configure error. Refreshed the rest of patches. Some old build-flags were removed. They don't seem to be necessary anymore. Split python3-uuid from python3-light. To better manage the libuuid library (if needed). Also, fixing the uuid C module build. Seems this was failing, and was falling back to using hashlib. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* expat: don't build host libsRosen Penev2021-10-191-1/+1
| | | | | | | tools/expat is actually what's used by the various packages that supposedly depend on expat/host. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* python3: enable bluetooth support by defaultAlexandru Ardelean2021-09-272-15/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bluetooth support requires bluez-libs present, but they are only required for the build, and don't seem to be needed to be present on the target. There isn't any linking required to libbluetooth. It's only the bluetooth.h header that is required for building BT support into Python. For testing, this snippet was used from `Lib/test/test_socket.py` (inside cpython): ``` def _have_socket_bluetooth(): """Check whether AF_BLUETOOTH sockets are supported on this host.""" try: # RFCOMM is supported by all platforms with bluetooth support. Windows # does not support omitting the protocol. s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM) except (AttributeError, OSError): return False else: s.close() return True ``` Fixes: https://github.com/openwrt/packages/issues/16544 Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: bump version to 3.9.7Alexandru Ardelean2021-09-093-4/+15
| | | | | | | | | | | | | | | | Refreshed patches. And apply hack for line-endings in pep517 (from pip). Hack comment: # FIXME: [1] get rid of this asap; 'patch' doesn't like Windows endings, and this file is full of them... # I actually tried this in a number of ways and the only way to fix this is to implement # a poor-man's dos2unix using sed. # The issue is with the pip package; it seems that it throws in some Windows line-endings # and 'patch' won't handle them. So, we do a "dos2unix" and then patch. # We can get rid of this once this is solved upstream and in pip: # https://github.com/pypa/pep517/pull/130 Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3-setuptools: add _distutils_hackJosef Schlehofer2021-08-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | I tried to install matplotlib by using pip and it failed with the following output: 2021-08-18T11:52:26,171 Collecting matplotlib 2021-08-18T11:52:26,173 Created temporary directory: /tmp/pip-unpack-wuth2u0e 2021-08-18T11:52:26,565 Using cached matplotlib-3.4.3.tar.gz (37.9 MB) 2021-08-18T11:52:38,659 Added matplotlib from https://files.pythonhosted.org/packages/21/37/ 197e68df384ff694f78d687a49ad39f96c67b8d75718bc61503e1676b617/matplotlib-3.4.3.tar. gz#sha256=fc4f526dfdb31c9bd6b8ca06bf9fab663ca12f3ec9cdf4496fb44bc680140318 to build tracker '/tmp/pip- req-tracker-u30x8pht' 2021-08-18T11:52:38,660 Running setup.py (path:/tmp/pip-install-afiyiers/ matplotlib_8e717e38862f4976a3d6cb1832ba3261/setup.py) egg_info for package matplotlib 2021-08-18T11:52:38,661 Created temporary directory: /tmp/pip-pip-egg-info-kbtiezxq 2021-08-18T11:52:38,662 Running command python setup.py egg_info 2021-08-18T11:52:38,831 Traceback (most recent call last): 2021-08-18T11:52:38,832 File "<string>", line 1, in <module> 2021-08-18T11:52:38,832 File "/usr/lib/python3.9/site-packages/setuptools/__init__.py", line 8, in <module> 2021-08-18T11:52:38,833 ModuleNotFoundError: No module named '_distutils_hack' More details about it: - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=968410 Once I applied the patch from the bug tracker, I got further to install it. Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
* python3: use gdbm for Berkley dbmAlexandru Ardelean2021-07-133-18/+3
| | | | | | | | | | | | | | | | | | | Python works with GNU DBM and with Berkley DBM. Berkley DBM has been under Oracle for some time. And it's not clear how many Python users actually use DBM. In the packages feed, we have both libdb47 (which is now under Oracle) and GNU DBM. The GNU DBM has a compatibility layer for Berkley DBM. There are newer versions than libdb47, but it's probably not worth having them yet. The libbd47 tarball is ~40+ MB. Odds are newer versions will be bigger and more bloated. This change merges the old `python3-gdbm` package into the `python3-dbm` package, since they are effectively using the same underlying library now, i.e. gdbm. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: do a simple ls on pip & setuptools if not selected for buildAlexandru Ardelean2021-07-061-0/+8
| | | | | | | | | I seem to forget to check/select setuptools and pip (that come bundled with Python). This change will do a simple 'ls' on the 2 wheel files, so that the build fails even if just building Python. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: update to version 3.9.6Alexandru Ardelean2021-07-063-6/+6
| | | | | | | Refreshed patches. Bumped pip to 21.1.3. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: add python3-readline subpackageAlexandru Ardelean2021-05-193-3/+18
| | | | | | | | | | | | | | | | | Python3 comes with a built-in readline module. It wasn't included up until now; mostly because it wasn't considered. This change introduces it as a sub-package of the main Python3 package. readline support is included in Python. libreadline pulls libncursesw as a package, so python3-ncurses was updated to pull libncursesw as well. It should be the same package; mostly done for consistency. Resolves the issue reported here: https://forum.openwrt.org/t/python3-repl-missing-readline/90039 Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: bump version to 3.9.5Alexandru Ardelean2021-05-118-27/+20
| | | | | | | | | | | | | | | Refreshed Python patches. Updated pip & setuptools version. For pip, patch '001-pep517-pyc-fix.patch' was reworked. Also, the current version of the bundled pip (21.1.1) no longer supports Python2, so the 'py2.py3' suffix gets replaced with just py3. For setuptools, there is no longer a script/module: https://github.com/pypa/setuptools/pull/2544 Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: introduce libpython3 with ABI_VERSION flagAlexandru Ardelean2021-04-281-4/+20
| | | | | | | | | | | | | | | | | Related to discussion: https://github.com/openwrt/packages/pull/14060 Every once in a while a version bump will occur that requires an ABI change. Example: Python 3.8 to 3.9. When this happens some Python packages would need to be rebuilt. In setups where everything gets rebuilt, this isn't a problem. It's usually a bigger problem when needing to upgrade something via opkg. To accommodate for this, we add a libpython with it's own ABI_VERSION flag. If this ABI_VERSION changes, then this should propagate forward. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: bump to version 3.9.4Alexandru Ardelean2021-04-055-10/+10
| | | | | | For some reason Python3 jumped from 3.9.2 to 3.9.4 in about a week. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: Update to 3.9.2, refresh patchesJeffery To2021-02-222-5/+5
| | | | | | | | | Includes fixes for: * CVE-2021-3177 - ctypes: Buffer overflow in PyCArg_repr * CVE-2021-23336 - urllib parse_qsl(): Web cache poisoning - semicolon as a query args separator Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* treewide: Run refresh on all packagesIlya Lipnitskiy2021-02-208-15/+15
| | | | | | | | | The crude loop I wrote to come up with this changeset: find -L package/feeds/packages/ -name patches | \ sed 's/patches$/refresh/' | sort | xargs make Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
* python3: Fix target python-config when building on macOSJeffery To2021-02-172-4/+17
| | | | | | | | | | | | | | | | | | | | The Python version of python-config is installed when building on macOS, rather than the shell script version when building on Linux. When run on macOS, the Python version of python-config will return values with Mac-specific customizations. This patches the python-config install recipe so that which version is installed can be controlled by the package makefile. When building on macOS, this installs the Python version for host Python and the shell script version for target Python. This also updates Host/Compile and Host/Install to use the default host build recipes, so that the various HOST_* variables are taken into account automatically. Fixes https://github.com/openwrt/packages/issues/14652 Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: bump to version 3.9.1Alexandru Ardelean2020-12-141-2/+2
| | | | Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: fix compilationRosen Penev2020-11-291-2/+3
| | | | | | | Because of e52d0487e88c3c8c57e1310d1a02b18eae0d142e , these flags no longer get passed. Add them back to fix compilation. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* python3: bump to version 3.9.0Alexandru Ardelean2020-10-1913-44/+27
| | | | | | | | | | | Refreshed patches. Dropped 'patches-setuptools/004-site-patch.patch' Does not apply anymore. Setuptools has removed site.py support: https://github.com/pypa/setuptools/issues/2165 If this is still needed, we may need to re-think it's implementation. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* python3: Add config PYTHON3_HOST_PIP_CACHE_WORLD_READABLEJeffery To2020-08-161-0/+4
| | | | | | | | | | This adds a config option PYTHON3_HOST_PIP_CACHE_WORLD_READABLE; if enabled, chmod will be run after pip install to make all files/directories in the host pip cache world-readable. Supersedes https://github.com/openwrt/packages/pull/13012. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: fix host compilation with clangRosen Penev2020-08-021-1/+1
| | | | | | Matched rpath parameter with Makefile. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* python3: Update to 3.8.5Jeffery To2020-07-275-274/+2
| | | | | | | | | | | | | | | This version includes fixes for: * CVE-2020-15801 - Fixes python3x._pth being ignored on Windows * CVE-2019-20907 - Avoid infinite loop when reading specially crafted TAR files using the tarfile module This also: * Remove patches that are included in the update * Add a dependency in python3-distutils for python3-email[1] [1]: https://github.com/python/cpython/blob/v3.8.5/Lib/distutils/dist.py#L10 Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Update to 3.8.4, refresh/rework patches, backport patchesJeffery To2020-07-2011-299/+299
| | | | | | | | | | | | | | | | | | | | | This version includes fixes for: * CVE-2020-14422: Hash collisions in IPv4Interface and IPv6Interface * CVE-2020-15523: Python uses invalid DLL path after calling Py_SetPath on Windows This version also includes support for OpenSSL 1.1.x builds that use 'no-deprecated' and '--api=1.1.0'[1], and so this removes the previous OpenSSL-related patches. This also backports fixes for security issues, including: * CVE-2019-20907: Infinite loop in the tarfile module This also updates the setuptools and pip packages to 47.1.0 and 20.1.1, respectively. [1]: https://github.com/python/cpython/pull/20566 Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Use default _PYTHON_HOST_PLATFORMJeffery To2020-07-082-10/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lets the Python build process set _PYTHON_HOST_PLATFORM instead of forcing an explicit value. Also: * Save the target _PYTHON_HOST_PLATFORM value during Build/InstallDev for use when building target Python packages (in python3-package.mk). * Use the (mostly) default PYTHON_FOR_BUILD value, instead patch configure to remove the platform triplet from the sysconfigdata file name. * Remove the "CROSS_COMPILE=yes" make variable (there is no indication that this variable is necessary). * Force host pip to build packages from source instead of downloading binary wheels. Previously, host pip can download universal (platform-independent) wheels but not platform-specific wheels, because of the custom _PYTHON_HOST_PLATFORM value. (Packages that do not have universal wheels would be compiled from source.) With a correct _PYTHON_HOST_PLATFORM, host pip can install platform-specific wheels as well. However, the pre-built shared object (.so) files in these wheels will have the host's platform triplet in their file names. When target Python packages are built (using the target's _PYTHON_HOST_PLATFORM), Python will not use these shared object files. By forcing host pip to build packages from source, the built shared object files will not have the platform triplet in their file names. (Host Python has been patched to remove the platform triplet from file names.) This allows these packages to be used when building target Python packages. (The net effect of this complete change is that platform-dependent packages will continue to be compiled from source, while platform-independent packages will now also be compiled from source.) Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python-packages: Add usr/bin symlinks without "3" suffixJeffery To2020-05-224-1/+4
| | | | | | | | | | | | | Previously, binaries installed by Python packages will have a non-suffixed Python 2 version and a suffixed Python 3 version, e.g. pip and pip3. With the removal of Python 2, the non-suffixed names are no longer taken. This adds symlinks for the non-suffixed names linking to the suffixed scripts (or in the case of pip, easy_install, and python-config, to the fully-versioned scripts). Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3-setuptools: Fix error when installing from sourceJeffery To2020-05-212-0/+17
| | | | | | | | | | | | | | | | | | | When a Python package is installed from source (i.e. using setup.py) into a custom location (with --home), setuptools may want to create a site.py file in the custom location. This file is created based on the source code of site-patch.py, a file bundled with setuptools. Because the normal OpenWrt setuptools package does not contain Python source code, this file is missing and the installation will end with an error. This copies site-patch.py to site-patch.py.txt so that it will be included in python3-setuptools, and patches setuptools to look for this file. See https://github.com/openwrt/packages/issues/12223 Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3: Update to 3.8.3, refresh patchesJeffery To2020-05-206-23/+18
| | | | Signed-off-by: Jeffery To <jeffery.to@gmail.com>
* python3-openssl: Add dependency on ca-certsJeffery To2020-05-202-2/+2
| | | | | | | | | The ssl module assumes OpenSSL can load the default trust anchors (root CA certificates). From https://github.com/openwrt/packages/issues/12209 Signed-off-by: Jeffery To <jeffery.to@gmail.com>