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: The basis of all these packages is:
* [lang/python/python3](./python3) - The Python 3.x.y interpreter * [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. 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_NAME:=python-babel
PKG_VERSION:=2.17.0 PKG_VERSION:=2.17.0
PKG_RELEASE:=2 PKG_RELEASE:=3
PYPI_NAME:=babel PYPI_NAME:=babel
PKG_HASH:=0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d PKG_HASH:=0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d
@@ -40,7 +40,7 @@ define Package/python3-babel
URL:=https://babel.pocoo.org/ URL:=https://babel.pocoo.org/
DEPENDS:= \ DEPENDS:= \
+python3-decimal \ +python3-decimal \
+python3-email \ +python3-urllib \
+python3-light \ +python3-light \
+python3-logging \ +python3-logging \
+python3-urllib +python3-urllib

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
include ../python3-version.mk include ../python3-version.mk
PKG_NAME:=python3 PKG_NAME:=python3
PKG_RELEASE:=2 PKG_RELEASE:=3
PKG_VERSION:=$(PYTHON3_VERSION).$(PYTHON3_VERSION_MICRO) PKG_VERSION:=$(PYTHON3_VERSION).$(PYTHON3_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz 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 define Package/python3-urllib
$(call Package/python3/Default) $(call Package/python3/Default)
TITLE+= URL handling modules TITLE+= URL handling modules
DEPENDS:=+python3-light +python3-email DEPENDS:=+python3-light
endef endef
define Package/python3-urllib/description define Package/python3-urllib/description
@@ -18,5 +18,6 @@ This package contains the URL handling modules.
endef endef
$(eval $(call Py3BasePackage,python3-urllib, \ $(eval $(call Py3BasePackage,python3-urllib, \
/usr/lib/python$(PYTHON3_VERSION)/email \
/usr/lib/python$(PYTHON3_VERSION)/urllib \ /usr/lib/python$(PYTHON3_VERSION)/urllib \
)) ))

View File

@@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=yt-dlp PKG_NAME:=yt-dlp
PKG_VERSION:=2026.3.17 PKG_VERSION:=2026.3.17
PKG_RELEASE:=1 PKG_RELEASE:=2
PYPI_NAME:=yt-dlp PYPI_NAME:=yt-dlp
PKG_HASH:=ba7aa31d533f1ffccfe70e421596d7ca8ff0bf1398dc6bb658b7d9dec057d2c9 PKG_HASH:=ba7aa31d533f1ffccfe70e421596d7ca8ff0bf1398dc6bb658b7d9dec057d2c9
@@ -32,7 +32,6 @@ define Package/yt-dlp
+python3-asyncio \ +python3-asyncio \
+python3-codecs \ +python3-codecs \
+python3-ctypes \ +python3-ctypes \
+python3-email \
+python3-logging \ +python3-logging \
+python3-openssl \ +python3-openssl \
+python3-sqlite3 \ +python3-sqlite3 \

View File

@@ -34,7 +34,6 @@ define Package/fail2ban
+nftables \ +nftables \
+python3-light \ +python3-light \
+python3-ctypes \ +python3-ctypes \
+python3-email \
+python3-logging \ +python3-logging \
+python3-sqlite3 \ +python3-sqlite3 \
+python3-urllib +python3-urllib

View File

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=borgbackup PKG_NAME:=borgbackup
PKG_VERSION:=1.4.3 PKG_VERSION:=1.4.3
PKG_RELEASE:=1 PKG_RELEASE:=2
PYPI_NAME:=borgbackup PYPI_NAME:=borgbackup
PKG_HASH:=79bbfa745d1901d685973584bd2d16a350686ddd176f6a2244490fb01996441f PKG_HASH:=79bbfa745d1901d685973584bd2d16a350686ddd176f6a2244490fb01996441f
@@ -32,7 +32,6 @@ define Package/borgbackup
DEPENDS:= \ DEPENDS:= \
+python3-light \ +python3-light \
+python3-codecs \ +python3-codecs \
+python3-email \
+python3-logging \ +python3-logging \
+python3-lzma \ +python3-lzma \
+python3-msgpack \ +python3-msgpack \