<feed xmlns='http://www.w3.org/2005/Atom'>
<title>packages/lang/python/python3/Makefile, branch master</title>
<subtitle>Mirror of packages feed</subtitle>
<id>https://git.openwrt.org/feed/packages/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/feed/packages/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/'/>
<updated>2026-11-07T06:09:54Z</updated>
<entry>
<title>python3: update to 3.14.10</title>
<updated>2026-11-07T06:09:54Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-11-05T10:31:44Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=7eef26d5122e52301e0df3ddf9327cff16c1a713'/>
<id>urn:sha1:7eef26d5122e52301e0df3ddf9327cff16c1a713</id>
<content type='text'>
Refresh PKG_HASH from the python.org release tarball, and bump
PYTHON3_PIP_VERSION to 26.2.2 to match the pip wheel bundled in
3.14.10's ensurepip.

Refresh the patches. Only the hunk offsets shift, except for 026, which
also gains the git am header that the formality check requires on a
changed patch. The header comes from 02eb5c100c, the commit that
restored that patch.

3.14.10 also moves the bundled mimalloc from 2.1.2 to 2.5.2.

Security fixes, which come along with regular bug fixes:

3.14.8:
- CVE-2026-19445: ssl use-after-free when sni_callback switches context
- CVE-2026-19553: ssl wrap_bio() does not validate server_hostname
- CVE-2026-15310: zipfile unbounded bzip2, LZMA, Zstandard decompression
- CVE-2026-19672: tarfile filter bypass creates directories outside dest
- CVE-2026-15806: urllib HTTPS credentials sent over HTTP
- CVE-2026-17084: stringprep uses attributes beyond Unicode 3.2.0
- bundled expat 2.8.5 (from 2.8.2), CVE-2026-66046, CVE-2026-76641,
  CVE-2026-76957 and CVE-2026-93990

3.14.9:
- CVE-2026-12345: tempfile.TemporaryDirectory cleanup race
- CVE-2026-87910: tarfile link fallback ignores filter rejecting a member
- bundled expat 2.9.0, CVE-2026-102633 and CVE-2026-77214
- bundled pip 26.2.2 with certifi 2026.10.19, eMudhra / emSign incident

3.14.10:
- CVE-2026-115557: ssl distrusts compromised eMudhra intermediate keys
- CVE-2026-114583: tar_filter allows links replacing the destination

The Expat fixes for CVE-2026-72522 and CVE-2026-76956 do not apply to the
bundled build. CVE-2024-3220 from the release notes only changes behavior
on Windows.

Release notes:
https://www.python.org/downloads/release/python-3148/
https://www.python.org/downloads/release/python-3149/
https://www.python.org/downloads/release/python-31410/

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
</content>
</entry>
<entry>
<title>python3: use ATOMIC64_DEPENDS</title>
<updated>2026-09-16T15:35:19Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-10T12:07:08Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=80d3aabb68eb855872183ee050d4a7a981d5eec6'/>
<id>urn:sha1:80d3aabb68eb855872183ee050d4a7a981d5eec6</id>
<content type='text'>
libatomic is only needed where the compiler does not inline 64-bit
atomics, but the package depends on it on every target.
ATOMIC64_DEPENDS restricts the dependency to those targets.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>python3: update to 3.14.7</title>
<updated>2026-08-24T17:05:34Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-08-20T15:35:57Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=4e95a5895eea1a3ae752b7f65dfd80a3eba086bb'/>
<id>urn:sha1:4e95a5895eea1a3ae752b7f65dfd80a3eba086bb</id>
<content type='text'>
Refresh PKG_HASH from the python.org release tarball, and bump
PYTHON3_PIP_VERSION to 26.2.1 to match the pip wheel bundled in 3.14.7's
ensurepip (it already matches the python-pip package version).

Refresh the patches against the new source; only the hunk offsets shift.

Signed-off-by: Alexandru Ardelean &lt;alex@shruggie.ro&gt;
</content>
</entry>
<entry>
<title>python3: stop forcing the ncursesw/{ncurses,panel}.h checks to "no"</title>
<updated>2026-08-22T00:40:54Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-08-20T20:30:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=6c1baacc1d4ef443b2ca762384d68982832abc4a'/>
<id>urn:sha1:6c1baacc1d4ef443b2ca762384d68982832abc4a</id>
<content type='text'>
d883c02a4106 ("python3: pin host curses to the SDK's narrow ncurses",
2026-05-28) forced every curses header check Python's configure.ac
runs to "no", specifically to keep host ncurses's (then narrow-only)
build from being shadowed by whatever curses headers the build host's
own distro happened to ship under /usr/include.

That assumption broke when openwrt/openwrt@18725c45a33a ("ncurses:
bump to 6.6.20260801") switched host ncurses to track ncurses' git
snapshots rather than the old 6.4 tarball: ncurses 6.6+ defaults to
building wide-character support for ABI 6 (cf_dft_widec, gated on
cf_cv_abi_default which is just the major version - this is a policy
change accumulated in ncurses' own git history since 6.4 was tagged,
not something OpenWrt or ncurses deliberately changed for wide-char
specifically). Host ncurses now produces ncursesw.pc/panelw.pc, which
Python 3.14's configure.ac finds independently via its own
PKG_CHECK_MODULES(CURSES, ncursesw)-style pkg-config probe ("checking
for ncursesw... yes") - a check that was never gated by these ac_cv_*
overrides in the first place. That flips on the wide-character code
paths in Modules/_cursesmodule.c, while the ac_cv_header_ncursesw_*=no
overrides still force the *header* checks to fail, so the actual
#include falls through to the stale narrow ncurses/ncurses.h. The
result is a mismatch between what pkg-config says is available and
what header actually got included, producing:

  ./Modules/_cursesmodule.c: error: implicit declaration of function
  'unget_wch'; did you mean 'ungetch'?

(and similarly for wget_wch, wins_nwstr, mvwins_nwstr - every
wide-character-only curses function).

Fix this at the python3/ncurses integration boundary rather than by
touching ncurses' own host build behaviour globally (see
openwrt/openwrt#24811, which tried --disable-widec on host ncurses
and had to be reverted: it also drops extended colors from host tic,
shrinking MAX_ENTRY_SIZE 32768-&gt;4096 so tic can no longer process the
xterm/xterm-256color terminfo entries needed to assemble the target
terminfo package). Since host ncurses's own -I.../include/ncursesw
already gets added via pkg-config's Cflags substitution regardless of
these overrides, stop forcing ac_cv_header_ncursesw_{ncurses,panel}_h
to "no" - configure now genuinely finds ncursesw/ncurses.h in
staging_dir/hostpkg, consistent with what its own pkg-config check
already reports, and both detection paths agree.

ac_cv_header_ncursesw_curses_h stays forced, along with the bare
(non-w) curses.h/ncurses.h/panel.h checks: host ncurses is configured
with --without-curses-h, so staging_dir/hostpkg/include/ncursesw/ has
no curses.h of its own to genuinely detect - a real "yes" here could
only ever come from the build host's own /usr/include/ncursesw/
curses.h (e.g. Fedora's ncurses-devel), the exact distro-shadowing
this override block exists to prevent.

Verified end to end: clean host python3 rebuild against unmodified
current ncurses compiles Modules/_cursesmodule.c and
Modules/_curses_panel.c without error, and the resulting
staging_dir/hostpkg python3.14 successfully `import curses` with
unget_wch present.

Fixes: d883c02a4106 ("python3: pin host curses to the SDK's narrow ncurses")
Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>python3: fix host PGO build failure on deep build paths</title>
<updated>2026-06-15T08:39:24Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-06-14T06:13:10Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=e5034806063ce83b471caabc669080bef6c28f61'/>
<id>urn:sha1:e5034806063ce83b471caabc669080bef6c28f61</id>
<content type='text'>
Python 3.14 made "forkserver" the default multiprocessing start method on
Linux, which binds an AF_UNIX socket under $TMPDIR during the PGO profile-run.
OpenWrt points TMPDIR at the deeply nested build tree, so the socket path can
exceed the 108-byte AF_UNIX limit and abort the host build with "AF_UNIX path
too long" in test_re (cpython#149527). Pin TMPDIR=/tmp for the host build.

Signed-off-by: Alexandru Ardelean &lt;alex@shruggie.ro&gt;
</content>
</entry>
<entry>
<title>python3: pin host curses to the SDK's narrow ncurses</title>
<updated>2026-05-30T06:28:30Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-05-28T10:28:54Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=d883c02a41060adccde76719a882b1a2c9bd2d0e'/>
<id>urn:sha1:d883c02a41060adccde76719a882b1a2c9bd2d0e</id>
<content type='text'>
Removing the ncursesw path from include avoids seeing the wide-char
version of ncurses, so the host build picks up the narrow static lib
that the OpenWrt SDK stages. To keep that pin from leaking back in
through other curses headers the build host may have under
/usr/include, also force every header check in Python's configure.ac
AC_CHECK_HEADERS(curses.h ncurses.h ncursesw/ncurses.h
ncursesw/curses.h ncursesw/panel.h panel.h) line to "no" via cached
ac_cv_header_* variables.

The narrow ncursesw_* trio was enough on the original reporter's
host; Jan Kardell's review of the first cut hit a build where
`/usr/include/curses.h` and `/usr/include/ncurses.h` from the
distro's libncurses-dev were still being picked up. Adding the
non-wide entries (and panel.h for symmetry, in case a host also
ships /usr/include/panel.h alone) makes the override insensitive to
whichever curses dev packages the host distro happens to provide.

Reported-by: Jan Kardell &lt;jan.kardell@telliq.com&gt;
Signed-off-by: Alexandru Ardelean &lt;alex@shruggie.ro&gt;
</content>
</entry>
<entry>
<title>python3: bump to 3.14.5</title>
<updated>2026-05-29T15:40:28Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-05-27T16:35:52Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=3fddbe2e07aa2355c48a86279d3fb43b322d6d1c'/>
<id>urn:sha1:3fddbe2e07aa2355c48a86279d3fb43b322d6d1c</id>
<content type='text'>
This is the latest 3.14.x point release with assorted bug fixes
from upstream. PYTHON3_PIP_VERSION is bumped from 26.0.1 to 26.1.1
to match the pip wheel bundled in the 3.14.5 source tarball; the
host build's ensurepip lookup of pip-$(PYTHON3_PIP_VERSION).whl
otherwise fails. The set of OpenWrt-side patches still applies
against the new source; only quilt context-line offsets needed
refreshing for the patches that touch Makefile.pre.in.

Signed-off-by: Alexandru Ardelean &lt;alex@shruggie.ro&gt;
</content>
</entry>
<entry>
<title>python3: bump to version 3.14.4</title>
<updated>2026-04-16T18:48:56Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-04-15T15:24:45Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=72aa700b230a518935a5a76658bb85d2a6defea7'/>
<id>urn:sha1:72aa700b230a518935a5a76658bb85d2a6defea7</id>
<content type='text'>
Also add no-mips16 to PKG_BUILD_FLAGS.
Should fix mipsel_24kc_24kf builds.

Signed-off-by: Alexandru Ardelean &lt;alex@shruggie.ro&gt;
</content>
</entry>
<entry>
<title>python3: merge python3-email into python3-urllib</title>
<updated>2026-04-04T15:27:26Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-04-02T16:16:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=e0a12562b7bfd36348135cecd83073e89ebe2921'/>
<id>urn:sha1:e0a12562b7bfd36348135cecd83073e89ebe2921</id>
<content type='text'>
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 &lt;alex@shruggie.ro&gt;
</content>
</entry>
<entry>
<title>python3-email: add python3-urllib as dependency</title>
<updated>2026-04-01T07:29:21Z</updated>
<author>
<name>Alexandru Ardelean</name>
</author>
<published>2026-03-30T17:29:41Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/feed/packages/commit/?id=a7e96ec919a1a4efcf1d05ccccda09d95f98e864'/>
<id>urn:sha1:a7e96ec919a1a4efcf1d05ccccda09d95f98e864</id>
<content type='text'>
In recent versions of Python, trying to include 'email' also pulls
in urllib from CPython.
So just add it as dependency.

Signed-off-by: Alexandru Ardelean &lt;alex@shruggie.ro&gt;
</content>
</entry>
</feed>
