python3: merge python3-email into python3-urllib

As we're seeing in various test.sh scrip runs, importing 'email' fails
with not finding 'urllib' and vice-versa.

Then via a7e96ec91 ("python3-email: add python3-urllib as dependency")
I created a circular dependency.
So, might as well merge the two packages into one (named python3-urllib)
and updates all dependencies to pull python3-urllib.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
Alexandru Ardelean
2026-04-02 19:16:31 +03:00
committed by Alexandru Ardelean
parent e85084314c
commit e0a12562b7
21 changed files with 31 additions and 57 deletions

View File

@@ -109,7 +109,7 @@ By default, automatic Python byte-code generation is disabled when running a Pyt
The basis of all these packages is:
* [lang/python/python3](./python3) - The Python 3.x.y interpreter
This is a normal OpenWrt package, which will build the Python interpreter. This also provides `python3-pip` & `python3-setuptools`. Each Python package is actually split into multiple sub-packages [e.g. python3-email, python3-sqlite3, etc]. This can be viewed inside [lang/python/python3/files](./python3/files).
This is a normal OpenWrt package, which will build the Python interpreter. This also provides `python3-pip` & `python3-setuptools`. Each Python package is actually split into multiple sub-packages [e.g. python3-urllib, python3-sqlite3, etc]. This can be viewed inside [lang/python/python3/files](./python3/files).
The reason for this splitting, is purely to offer a way for some people to package Python in as-minimal-as-possible-and-still-runable way, and also to be somewhat maintainable when packaging. A standard Python installation can take ~20-30 MBs of disk, which can be somewhat big for some people, so there is the `python3-base` package which brings that down to ~5 MBs. This seems to be good enough (and interesting) for a number of people.

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-babel
PKG_VERSION:=2.17.0
PKG_RELEASE:=2
PKG_RELEASE:=3
PYPI_NAME:=babel
PKG_HASH:=0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d
@@ -40,7 +40,7 @@ define Package/python3-babel
URL:=https://babel.pocoo.org/
DEPENDS:= \
+python3-decimal \
+python3-email \
+python3-urllib \
+python3-light \
+python3-logging \
+python3-urllib

View File

@@ -35,7 +35,6 @@ define Package/python3-cryptography
+libopenssl \
+libopenssl-legacy \
+python3-light \
+python3-email \
+python3-urllib \
+python3-cffi \
$(RUST_ARCH_DEPENDS)

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-eventlet
PKG_VERSION:=0.40.4
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=eventlet
PKG_HASH:=69bef712b1be18b4930df6f0c495d2a882bf7b63aa111e7b6eeff461cfcaf26f
@@ -39,7 +39,7 @@ define Package/python3-eventlet
+python3-light \
+python3-dns \
+python3-greenlet \
+python3-email \
+python3-urllib \
+python3-logging \
+python3-openssl
endef

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-flit-core
PKG_VERSION:=3.12.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=flit-core
PYPI_SOURCE_NAME:=flit_core
@@ -34,7 +34,7 @@ define Package/python3-flit-core
SUBMENU:=Python
TITLE:=Distribution-building parts of Flit
URL:=https://github.com/pypa/flit
DEPENDS:=+python3-light +python3-email +python3-logging
DEPENDS:=+python3-light +python3-urllib +python3-logging
BUILDONLY:=1
endef

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-gmpy2
PKG_VERSION:=2.3.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=gmpy2
PKG_HASH:=2d943cc9051fcd6b15b2a09369e2f7e18c526bc04c210782e4da61b62495eb4a
@@ -32,7 +32,7 @@ define Package/python3-gmpy2
SUBMENU:=Python
TITLE:=GMP/MPIR, MPFR, and MPC interface
URL:=https://github.com/aleaxit/gmpy
DEPENDS:=+libgmp +libmpc +libmpfr +python3-light +python3-email
DEPENDS:=+libgmp +libmpc +libmpfr +python3-light +python3-urllib
endef
define Package/python3-gmpy2/description

View File

@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-gnupg
PKG_VERSION:=0.5.6
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=python-gnupg
PKG_SOURCE:=python_gnupg-$(PKG_VERSION).tar.gz
@@ -30,7 +30,7 @@ define Package/python3-gnupg
SUBMENU:=Python
TITLE:=A wrapper for GnuPG
URL:=https://github.com/vsajip/python-gnupg
DEPENDS:=+python3-light +python3-logging +python3-email
DEPENDS:=+python3-light +python3-logging +python3-urllib
endef
define Package/python3-gnupg/description

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-hatchling
PKG_VERSION:=1.29.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=hatchling
PKG_HASH:=793c31816d952cee405b83488ce001c719f325d9cda69f1fc4cd750527640ea6
@@ -44,7 +44,7 @@ define Package/python3-hatchling
URL:=https://hatch.pypa.io/latest/
DEPENDS:= \
+python3-light \
+python3-email \
+python3-urllib \
+python3-editables \
+python3-packaging \
+python3-pathspec \

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-installer
PKG_VERSION:=0.7.0
PKG_RELEASE:=2
PKG_RELEASE:=3
PYPI_NAME:=installer
PKG_HASH:=a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631
@@ -35,7 +35,7 @@ define Package/python3-installer
SUBMENU:=Python
TITLE:=A library for installing Python wheels
URL:=https://github.com/pypa/installer
DEPENDS:=+python3-light +python3-email
DEPENDS:=+python3-light +python3-urllib
BUILDONLY:=1
endef

View File

@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-packaging
PKG_VERSION:=26.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=packaging
PKG_HASH:=00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4
@@ -32,7 +32,7 @@ define Package/python3-packaging
SUBMENU:=Python
TITLE:=Core utilities for Python packages
URL:=https://github.com/pypa/packaging
DEPENDS:=+python3-light +python3-email +python3-logging
DEPENDS:=+python3-light +python3-urllib +python3-logging
endef
define Package/python3-packaging/description

View File

@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-pygments
PKG_VERSION:=2.20.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=pygments
PKG_HASH:=6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f
@@ -27,7 +27,7 @@ define Package/python3-pygments
SUBMENU:=Python
TITLE:=Pygments syntax highlighter
URL:=https://pygments.org/
DEPENDS:=+python3-light +python3-email
DEPENDS:=+python3-light +python3-urllib
endef
define Package/python3-pygments/description

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-referencing
PKG_VERSION:=0.37.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=referencing
PKG_HASH:=44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8
@@ -32,7 +32,7 @@ define Package/python3-referencing
URL:=https://github.com/python-jsonschema/referencing
DEPENDS:= \
+python3-light \
+python3-email \
+python3-urllib \
+python3-attrs \
+python3-rpds-py
endef

View File

@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-tabulate
PKG_VERSION:=0.10.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=tabulate
PKG_HASH:=e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d
@@ -35,7 +35,7 @@ define Package/python3-tabulate
SUBMENU:=Python
TITLE:=Pretty-print tabular data
URL:=https://pypi.org/project/tabulate
DEPENDS:=+python3-light +python3-email
DEPENDS:=+python3-light +python3-urllib
endef
define Package/python3-tabulate/description

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=python-wheel
PKG_VERSION:=0.45.1
PKG_RELEASE:=1
PKG_RELEASE:=2
PYPI_NAME:=wheel
PKG_HASH:=661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729
@@ -34,7 +34,7 @@ define Package/python3-wheel
SUBMENU:=Python
TITLE:=A built-package format for Python
URL:=https://github.com/pypa/wheel
DEPENDS:=+python3-light +python3-email +python3-logging +python3-setuptools
DEPENDS:=+python3-light +python3-urllib +python3-logging +python3-setuptools
BUILDONLY:=1
endef

View File

@@ -17,7 +17,6 @@ python3-ctypes: ctypes
python3-dbm: dbm dbm.dumb dbm.gnu dbm.ndbm
python3-decimal: decimal
python3-distutils: distutils
python3-email: email
python3-logging: logging
python3-lzma: lzma
python3-multiprocessing: multiprocessing
@@ -27,7 +26,7 @@ python3-pydoc: doctest pydoc
python3-readline: readline
python3-sqlite3: sqlite3
python3-unittest: unittest
python3-urllib: urllib
python3-urllib: urllib email
python3-uuid: uuid
python3-xml: xml xmlrpc
"

View File

@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
include ../python3-version.mk
PKG_NAME:=python3
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_VERSION:=$(PYTHON3_VERSION).$(PYTHON3_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz

View File

@@ -1,22 +0,0 @@
#
# Copyright (C) 2006-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
define Package/python3-email
$(call Package/python3/Default)
TITLE+= email module
DEPENDS:=+python3-light +python3-urllib
endef
define Package/python3-email/description
$(call Package/python3/Default/description)
This package contains the email module.
endef
$(eval $(call Py3BasePackage,python3-email, \
/usr/lib/python$(PYTHON3_VERSION)/email \
))

View File

@@ -8,7 +8,7 @@
define Package/python3-urllib
$(call Package/python3/Default)
TITLE+= URL handling modules
DEPENDS:=+python3-light +python3-email
DEPENDS:=+python3-light
endef
define Package/python3-urllib/description
@@ -18,5 +18,6 @@ This package contains the URL handling modules.
endef
$(eval $(call Py3BasePackage,python3-urllib, \
/usr/lib/python$(PYTHON3_VERSION)/email \
/usr/lib/python$(PYTHON3_VERSION)/urllib \
))