Commit graph

61 commits

Author SHA1 Message Date
Eneas U de Queiroz
5f447b9020
python-python3-pip: add LICENSE information
CVE id was left commented out as it is not handled by uscan.

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
2019-05-21 14:46:13 -03:00
Eneas U de Queiroz
bbd4930ccd
python-python3-setuptools: add LICENSE information
CVE id was left commented out as it is not handled by uscan.

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
2019-05-21 14:44:40 -03:00
Eneas U de Queiroz
971b2a5218
python: refresh LICENSE information
Changed PKG_LICENSE to reflect spdx license tag, and PKG_LICENSE_FILES
to include all lincense-related files applicable to the parts of the
code we are actually using to build and/or distributing.  The
Windows-only files, and the python-bundled Tools we're not using have
been left out.

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
2019-05-20 18:18:23 -03:00
Rosen Penev
9f15edf744
Merge pull request #8584 from jefferyto/python-compileall-recursion-level
python,python3: Increase max recursion level when generating bytecode
2019-04-04 00:19:55 -07: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
8de8ff4f25 python,python3: Include python-config for target Python in InstallDev
This installs python{2.7,3.7}-config in $(STAGING_DIR)/usr/bin as part
of Build/InstallDev, to be used by other packages to get build
configuration for target Python.

The treatment for Python 2 and 3 are a bit different:

* For Python 2, python-config is a Python script that is expected to be
  run with, and return data for, the installed Python interpreter. This
  installs a modified version of this script, to be run using host
  Python, and read/return data for target Python.

* Python 3 includes a shell script version of python-config (expected to
  be used in cross-compilation scenarios). This simply installs the
  script into the right place.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-03-31 19:33:12 +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
Jeffery To
e436e73f1c python,python3: Use only target package data for Build/InstallDev
This changes Build/InstallDev for both Python 2 and 3 to only copy files
from target Python, not from host Python, since InstallDev files are
used for target packages to link to other target packages.

In particular, usr/lib/python{2.7,3.7}/_sysconfigdata.py holds system
configuration data generated at build time, and is different for target
Python and host Python.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2019-03-27 03:44:31 +08:00
Hannu Nyman
f9dd076a46
Merge pull request #8371 from neheb/patch-1
python: Add PKG_CPE_ID for proper CVE tracking
2019-03-12 19:06:41 +02:00
Rosen Penev
1d04e54651 python: Add PKG_CPE_ID for proper CVE tracking
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-03-11 13:14:26 -07: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
998ff3471a python,python3: add Jeffery To as co-maintainer
For a while now, Jeffery has helped quite a lot with Python, and is now
unofficial go-to guy [for problems] with Python packages.

This change adds him as co-maintainer [if he also agrees].

I'm not going away; I'll be still doing the same work for Python.
This change serves to recognize Jeffery in an official way, since he's
already taking on these things. And 2 co-maintainers is better in case one
kicks the bucket [by accident].

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2019-02-27 12:33:27 +02:00
Karel Kočí
7175b2b47d
python,python3: do not package binary files to base packages
Thanks to fix 200a5a2eec all base packages
now contain all binaries that are generated as part of python
installation. That causes collision between those packages with package
managers that consider this such as Turris updater-ng. This is also just
wrong. Those binaries were not included and should not be after
mentioned fix as well.

This just adds empty install definition. The idea is to override the
default one that is otherwise used.

Signed-off-by: Karel Kočí <karel.koci@nic.cz>
2019-02-21 09:33:49 +01: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
Alexandru Ardelean
ed862da936 python,python3: move shebang handle in install script
This extends the Python[3] shebang fixup to all packages.
Only Python scripts in `/usr/bin` will be handled at the moment. Later it
may make sense to also cover executables in `/bin`, though typically Python
executables shouldn't be placed there.

Previously the shebang handling was only done for python[3]-pip &
python[3]-setuptools.

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
a16dea9627 python,python3: use setuptools & pip versions from python{3}-version.mk
`setuptools` & `pip` whl files were selected via wildcards, because it was
easier in the beginning.
Also, initially there weren't any PYTHON{3}_{SETUTPTOOLS/PIP}_VERSION
variables. But now since these vars exist, it makes sense to use them,
because we can catch easier (at build) time if Python/Python3 bump these
versions.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2019-01-02 23:42:01 +02: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
Jeffery To
2f55f2a7b5 python/python3: fix .dist-info missing for setuptools and pip
Without .dist-info (similar to .egg-info), setuptools and pip are not
discoverable by pkg_resources.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2018-12-22 22:16:52 +08: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
Jan Kardell
0311e58bb6 Python: Fix compile of host modules
Add -rpath linker option to host build, pointing to staging/hostpkh/lib.
It's needed to find the correct host libs during runtime, without it the
hosts libs may be used instaead, causing failures.

Signed-off-by: Jan Kardell <jan.kardell@telliq.com>
2018-10-08 12:22:39 +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
Hauke Mehrtens
f9016b5977 python/python3: remove zlib/host dependency
zlib is now a host tool and the zlib/host package was removed. this
dependency is not needed any more as there will always be a zlib host
library.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2018-04-28 16:20:44 +02:00
Alexandru Ardelean
b6973e5deb python,python3: remove --with-system-ffi=no config arg
Report https://github.com/openwrt/packages/issues/5638
It was mentioned that this causes build failures on Mac OS X.

The default behavior [in the setup.py script] is to check whether
`--with-system-ffi` is present in the CONFIG_ARGS env var.

However that back-fires a bit when `--with-system-ffi=no`, because the
condition `not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")`
evaluates to true.

This is a small bug in the `setup.py` script, but it looks like the
easiest/cleanest way to address it on our end is to just remove it entirely
from the HOST_CONFIGURE_ARGS.
At least that's how it looks like when testing on a Linux machine.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-03-14 16:21:41 +02:00
Alexandru Ardelean
ea62d1217c python,python3: limit underlinking behavior to linux platforms
This change was introduced in commit 1c54e2b0fb to address build
issues on Ubuntu 12.04.

However it was reported to cause issues on Mac OS X.
Report: https://github.com/openwrt/packages/issues/5310

It was also reported that removing this on MacOS X fixes the issue.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-03-14 16:18:30 +02:00
Alexandru Ardelean
63dfa19812 python,python3: disable dependencies between python src packages
Related to:
 https://github.com/openwrt/packages/issues/5424

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-01-16 16:18:47 +02:00
Hannu Nyman
f460719bf4
Merge pull request #5360 from commodo/python_reproducible
python,python3: honour the SOURCE_DATE_EPOCH for the build-info
2018-01-14 17:32:57 +02:00
Alexandru Ardelean
ccdc6bc530 python,python3: export mk files outside of python package dirs
Since `lang/python` is it's own folder of Python packages
(for both Python 2 & 3), and these build rules are needed
in a lot of packages [especially Python packages],
putting them here makes sense architecturally,
to be shared.

This also helps get rid of the `include_mk` construct
which relies on OpenWrt core to provide, and seems
like a broken design idea that has persisted for a while.
Reason is: it requires that Python 2/3 be built to provide
these mk files for other Python packages,
which seems like a bad idea.

Long-term, there could be an issue where some other feeds
would require these mk files [e.g. telephony] for
some Python packages.
We'll see how we handle this a bit later.

For now we limit this to this feed.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-01-10 23:01:51 +02:00
Matthias Schiffer
55c0b5ae19 python,python3: do not install .mk snippets
The .mk snippets are not really usable at the moment, as they cannot be
considered for metadata collection (package DUMP) when included through
include_mk. Python packages do not use include_mk anymore for this reason,
so the install commands can be removed as well.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2018-01-10 23:01:51 +02: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
Jeffery To
c5cbd44cea python,python3: undo egg-info removal
This reverts commits 4333d1dcbf and
074d2863be, making Python packages
discoverable again by pkg_resources.

Fixes #5361.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
2018-01-08 17:26:54 +08:00
Alexandru Ardelean
36bb5706a2 python,python3: add zlib/host to HOST_BUILD_DEPENDS (ver 2)
This reverts commit 3c6d14021e.
( which is a revert of commit c764f77dc1 )

The initiall commit ( c764f77dc1 )
was reverted, becase zlib did not have a host-build.

Now it does:
 cbe71649bc

So, now it should be good to put this in.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-01-02 18:59:53 +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
Hannu Nyman
3c6d14021e Revert "python,python3: add zlib/host to HOST_BUILD_DEPENDS"
This reverts commit c764f77dc1.

The commit caused warnings to be displayed at make defconfig etc.
  WARNING: Makefile 'package/feeds/packages/python/python/Makefile'
  has a host build dependency on 'zlib/host' but
  'package/libs/zlib/Makefile' does not implement a 'host' build type

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-12-16 17:02:45 +02:00
Alexandru Ardelean
c764f77dc1 python,python3: add zlib/host to HOST_BUILD_DEPENDS
This should fix the zlibmodule build on the host side.

Usually, if zlib is not found, Python/Python3 builds fine
without it, but there are some cases where the Python/Python3
interpreter on the host-side requires zlib to run.

At the moment, zlib does not have a host-build.
This should be available when this PR gets merged:
https://github.com/lede-project/source/pull/1329
[ or a similar one that contains host-build support for zlib ].

In the meantime, this change can go into Python/Python3.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-12-13 21:07:46 +02:00
Alexandru Ardelean
59f0506622 python,python3: define config option for bluetooth support
It was reported via
https://github.com/openwrt/packages/pull/5122#issuecomment-347395472
that if bluez-libs is selected as an installable package,
then the error below will show up:
```
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for python-light:
 *	bluez-libs *
 * opkg_install_cmd: Cannot install package python-light.
```

This looks like a limitation in the design of package deps,
and maybe a misuse of conditional deps (i.e. PACKAGE_bluez-libs:bluez-libs).

So, to fix this, an idea we're adding an extra symbol
that enfoces installation of bluez-libs if selected.

We also need to add a way to disable bluetooth build
if PYTHON(3)_BLUETOOTH_SUPPORT is de-selected.
Otherwise, bluetooth is installed and the socket
module is broken due to linker errors.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-12-10 19:49:23 +02:00
Alexandru Ardelean
00bb46866b python-pip-conf: split package away from python package
This should improve build time if you only want to
build Python3 (and not Python).

Because python-pip-conf was part of the python package,
the whole python package (host + target) would get built if Python3
would need to get built.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-12-10 19:49:23 +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
8750a59d3d python,python3: apply PKG_FIXUP:=autoreconf
Should hopefully provide more consistent results
across distros.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-11-06 18:06:02 +02:00
Alexandru Ardelean
074d2863be python,python3: add option to keep egg-info dirs for python packages
That way some python packages can choose
to keep their egg-info dirs, if they want to, or they're needed.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-10-03 10:40:26 +03: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
2eb3979d28 python,python3: install mk files in both host build and InstallDev part
Not sure how it can happen that the files are not
installed via the host build.

Maybe some SDK-like build.

Let's make sure they are installed via InstallDev rule too.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-09-14 11:44:01 +03:00
Alexandru Ardelean
4d0a44d31a python,python3: add host-flags/settings to host pip install rules
The host pip install should have the host's CFLAGS, LDFLAGS, etc
available.
And not the target's flags.
Otherwise, weird things can happen when installing
packages (host-side) that need to build C code.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-09-14 11:44:01 +03:00
Alexandru Ardelean
d7fe1c624f python,python3: fix opkg collisions with -src packages
Fixes:
 https://github.com/openwrt/packages/issues/4681

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-08-08 23:52:40 +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
612c53fc6c python,python3: add host python pip install support
To install Python packages host side, that
may be needed for a build.

The intent, is to try to reduce host-side Python
packages being installed via LEDE/OpenWrt build system.
Because those seem like a pain to maintain.

The idea is adapted from Yousong's `python-packages`
package.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 16:50:25 +03:00
Alexandru Ardelean
93a6545591 python,python3: drop HostPy/Compile/Default rules
Not used, and will not be used.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 16:50:25 +03:00
Alexandru Ardelean
0df253cc04 python,python3: drop PKG_MD5SUM fields ; will use only PKG_HASH
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 16:50:25 +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