Commit graph

24 commits

Author SHA1 Message Date
Jeffery To
83b300aa83 python: Update to 2.7.17, refresh patches
Patches already merged and so removed:
* 011-fix-ssl-build-use-have-npn.patch
* 019-bpo-36216-Add-check-for-characters-in-netloc-that-normalize-to-separators-GH-12216.patch
* 020-bpo-36216-Only-print-test-messages-when-verbose-GH-12291.patch
* 021-2.7-bpo-35121-prefix-dot-in-domain-for-proper-subdom.patch
* 022-bpo-30458-Disallow-control-chars-in-http-URLs-GH-13315.patch
* 023-bpo-35907-Avoid-file-reading-as-disallowing-the-unnecessary-URL-scheme-in-urllib-GH-11842.patch
* 027-bpo-38243-Escape-the-server-title-of-DocXMLRPCServer.patch
* 028-bpo-34155-Dont-parse-domains-containing-GH-13079.patch

Patches no longer necessary and so removed:
* 017_lib2to3_fix_pyc_search.patch

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-10-21 23:30:53 +08:00
Jeffery To
a3be5cfa92 python,python3: Fix CVE-2019-16056, CVE-2019-16935
These patches address issues:
CVE-2019-16056: email.utils.parseaddr mistakenly parse an email
CVE-2019-16935: A reflected XSS in python/Lib/DocXMLRPCServer.py (for
Python 2.7)

CVE-2019-16935 was fixed for python3 in #10109

Links to Python issues:
https://bugs.python.org/issue34155
https://bugs.python.org/issue38243

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-10-04 23:54:46 +08:00
Rosen Penev
608df65a62
python: Replace utime with utimes
Optionally fixes compilation with uClibc-ng.

Based on the surrounding code, this looks like an oversight.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-07-30 23:44:43 -07:00
Josef Schlehofer
41241f0f12
Merge pull request #9532 from jefferyto/python-musl-find_library
python,python3: Fix ctypes.util.find_library()
2019-07-22 15:21:34 +02:00
Josef Schlehofer
725eb84462
python: add patch for CVE-2018-20852
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2019-07-22 15:20:00 +02:00
Jeffery To
e14c4e5c0a python,python3: Fix ctypes.util.find_library()
Python's ctypes.util.find_library() function currently doesn't work for
musl libraries/systems[1].

This adds a patch to fix this function, based on a patch from Alpine
Linux[2].

Fixes #9448.

[1]: https://bugs.python.org/issue21622
[2]: https://git.alpinelinux.org/aports/tree/main/python2/musl-find_library.patch

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-07-22 04:42:54 +08:00
Jeffery To
53838903fe python,python3: Fix CVE-2019-9948 - local_file:// allowed in urllib
These patches address issue:
CVE-2019-9948: Unnecessary URL scheme exists to allow local_file://
reading file in urllib

Link to Python issue:
https://bugs.python.org/issue35907

Issue 35907 is still currently open, waiting for a decision for
Python 3.5; these patches for Python 2.7 and 3.7 have been merged.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-06-04 22:20:21 +08:00
Jeffery To
9331fbb1a0 python,python3: Fix CVE-2019-9740 and CVE-2019-9947
These patches address issues:
CVE-2019-9740: Python urllib CRLF injection vulnerability
CVE-2019-9947: Header Injection in urllib

Links to Python issues:
https://bugs.python.org/issue36276 (resolved duplicated of 30458)
https://bugs.python.org/issue35906 (resolved duplicated of 30458)
https://bugs.python.org/issue30458

Issue 30458 is still currently open, waiting for a decision for
Python 3.5; these patches for Python 2.7 and 3.7 have been merged.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-06-03 00:38:53 +08:00
Jeffery To
85c805d0ad python,python3: Increase max recursion level when generating bytecode
"python -m compileall" has a default maximum recursion level of 10, i.e.
it will descend up to 10 levels of subdirectories when looking for
source files to compile. This is usually sufficient but there are
packages that include more than 10 levels (botocore,
https://github.com/openwrt/packages/pull/8214#discussion_r270056741).

This adds the "-r" command line option to the call to compileall to
increase the max recursion level (currently set to 20).

This also patches Python 2's compileall.py to add this max recursion
level option. (Python 3's compileall.py already supports this option.)

This also applies some related changes to python-package-install.sh:

* Use the "-delete" option with find instead of exec'ing rm / rmdir. For
  the case of removing empty directories (in delete_empty_dirs()), this
  has the added benefit of simplifying the code, as the "-delete" option
  implies "-depth", and thus find "does the right thing" (removing empty
  directories depth-first).

* Remove the backslash in "-name" patterns (for find), as they are not
  regular expression but glob patterns.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-04-04 03:07:02 +08:00
Jeffery To
c23bea8dc8 python,python3: Fix CVE-2019-9636 - urlsplit missing NFKC normalization
These patches address issue:
CVE-2019-9636: urlsplit does not handle NFKC normalization

Link to Python issue:
https://bugs.python.org/issue36216

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-03-31 05:18:14 +08:00
Rosen Penev
5d4f817865 python: Refresh patches
git is intollerant when it comes to fuzz. this fixes it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-03-08 18:48:45 -08:00
Alexandru Ardelean
8e493eb19d python: bump to version 2.7.16
This change updates Python to version 2.7.16, which is a bugfix release
in the Python 2.7 series.
This also removes patches back-ported from upstream.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2019-03-08 19:34:38 +08:00
Alexandru Ardelean
c767598097 python,python3: fix CVE-2019-5010 - Denial of Service
This patch addresses issue:
  [ssl][CVE-2019-5010] TALOS-2018-0758 Denial of Service

Link to Python issue:
  https://bugs.python.org/issue35746

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2019-02-12 12:31:55 +02:00
Jeffery To
19c3f37f0f python: Fix lib2to3 fixes search
This is the patch from c98b12d9a9 (#7931),
applied for python 2.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-01-13 05:59:20 +08:00
Alexandru Ardelean
3c8172255a python: backport CVE-2018-14647 patches from upstream
These patches are backports from Python 2.7 upstream.
The security issue is described here:
  https://nvd.nist.gov/vuln/detail/CVE-2018-14647

The Python bug report:
  https://bugs.python.org/issue34623

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-12-31 17:53:41 +02:00
Alexandru Ardelean
5bc39702fb python: fix build with OpenSSL 1.1.0
Addresses issue from here:
  https://github.com/openwrt/packages/issues/7367#issuecomment-437685598

The SSL module in Python doesn't handle properly all the combinations of
NPN between all OpenSSL & LibreSSL versions.
This patch fixes this.
Also pushed a report & proposal upstream to Python:
  https://bugs.python.org/issue35264

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-11-16 15:35:42 +02:00
Alexandru Ardelean
2ef484615d python: update to version 2.7.15
This also updates pip and setuptools.
With this occasion, they also get PKG_RELEASEs of their own.

Dropped patch 011-remove-setupterm-definition.patch
Manually re-applied 005-fix-bluetooth-support.patch
Ran make package/python/refresh to refresh other patches.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-05-03 14:46:12 +03:00
Alexandru Ardelean
c54b312043 python,python3: honour the SOURCE_DATE_EPOCH for the build-info
The Modules/getbuildinfo.c allows the use of DATE and TIME
macros to be defined via CFLAGS.

These vars, control the build date & time when the
interpreter is opened, and can be read via the
`platform._sys_version()` function.

So, a conversion from SOURCE_DATE_EPOCH to DATE & TIME
is required at build-time.

This is especially needed for `platform._sys_version()`
to work.
The installation of pip seems to rely on this.

The logic has been adapted from:
 https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal#Makefile

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-01-08 15:32:47 +02:00
Alexandru Ardelean
1b6dd4781f python,python3: add support for SOURCE_DATE_EPOCH var
See:
https://github.com/openwrt/packages/issues/5278

This should make Python & Python3 packages reproducible
when building.
In my local tests, I got the same sha256 for a sample
.pyc file, so likely this is the solution that should address
this.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-12-20 00:11:47 +02:00
Alexandru Ardelean
c2b3496977 python,python3: build bluetooth support if bluez-libs selected
This should hopefully fix the Python3 build on buildbot.

For a while I assumed it may be a build-bot issue, but
then looking through the packages repo [and finding
the bluez package] it looks like, if you try
to build all packages, Python3 detects the bluetooth
headers installed by bluez.

It looks like Python's bluetooth support was somewhat
broken ; it was not detecting the <bluetooth/bluetooth.h>
header, so a backport from Python3 to Python fixed that.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-11-14 13:50:14 +02:00
Alexandru Ardelean
79276ef7b7 python: bump to version 2.7.14
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-09-23 11:45:44 +03:00
Alexandru Ardelean
1660549e92 python: refresh patches make package/python/refresh cmd
This was a bit overdue.
I did not know about this methodology.
Reduces patch fuzz.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-26 23:56:14 +03:00
Alexandru Ardelean
84202f17e1 python,python3: remove multi-arch support, and /usr/local paths
This should hopefully reduce weird behaviour caused
by the host system.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 16:50:25 +03:00
Alexandru Ardelean
68312f49c0 python packages: move all things python under lang/python
I admit this may be be a bit aggressive, but the lang
folder is getting cluttered/filled up with Python, PHP, Perl,
Ruby, etc. packages.

Makes sense to try to group them into per-lang folders.

I took the Pythons.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-17 16:51:14 +03:00