Commit graph

192 commits

Author SHA1 Message Date
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
Alexandru Ardelean
e066fdaf11 python,python3: handle install script errors better
Depending on execution order the `python-package-install.sh`
script would return a non-zero err code.

So, this enforces that all commands in the script
don't fail (via the `set -e` directive).

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 16:50:25 +03:00
Daniel Golle
7a2623d12d pyodbc: use WORDS_BIGENDIAN instead of OS-specific defines
Python provides the WORDS_BIGENDIAN macro, use it to figure out the
native endian of the host.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-17 14:36:48 +02:00
Daniel Golle
667674731f pyodbc: really fix endianess of SQL_WCHAR
auto-endian auf UTF-16 doesn't work with all drivers, some fail to
interpret the byte-order-marking. Hence explicitely use UTF16BE on
big-endian systems and UTF16LE otherwise.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-16 11:58:31 +02:00
Daniel Golle
7524d8558a Flask: add package
Flask is a microframework for Python based on Werkzeug, Jinja 2 and
good intentions. And before you ask: It.s BSD licensed!

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 17:09:30 +02:00
Daniel Golle
30c7c71e3f python: Werkzeug: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 17:00:58 +02:00
Daniel Golle
fb8dc3ffd4 python: click: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 17:00:58 +02:00
Daniel Golle
4feb91a915 python: itsdangerous: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 17:00:58 +02:00
Daniel Golle
7772c9e10b python: MarkupSafe: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 17:00:58 +02:00
Daniel Golle
7d65ecb3e7 python: Jinja2: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 17:00:58 +02:00
Daniel Golle
7b53052f4e
pyodbc: assume SQL_C_WCHAR is native endian
Bump PKG_REV and remove obsolete PKG_MD5SUM while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 16:50:06 +02:00
Daniel Golle
80cd2bb8b7 python-yaml: update source and build for python3
Update source to version 3.12 and build for both, python and python3.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-14 15:59:13 +02:00
Hannu Nyman
3c29561888 Merge pull request #4558 from commodo/python-cleanup1
python,python3: rename PyBuild/Compile rules & remove .egg-info from packages
2017-07-09 21:04:38 +03:00
Daniel Golle
ac5ddd96e5 python-gnupg: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-08 21:32:53 +02:00
Daniel Golle
1ae46e7de2 Merge pull request #4559 from commodo/python-pyodbc-fix
pyodbc: fix python-pyodbc variant ; wasn't working
2017-07-07 18:54:16 +02:00
Alexandru Ardelean
316b41e856 pyodbc: fix python-pyodbc variant ; wasn't working
Python3 variant was working fine.

Also add add PACKAGE_python-pyodbc conditional depend for python packages

Otherwise, both Python & Python3 interpreters get built,
even tho only one variant is selected.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-07 18:14:22 +03:00
Alexandru Ardelean
f9dddb6bb0 python-lxml: override PyBuild/Compile & Py3Build/Compile rules
And depend on python-light only if python-lxml is selected.
Same thing for python3-lxml.

Otherwise, this builds both Python & Python3 intepreters.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-07 18:07:10 +03:00
Alexandru Ardelean
4333d1dcbf python,python3: remove .egginfo directories
They don't seem needed, and makes packages a bit smaller

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-07 18:07:10 +03:00
Alexandru Ardelean
8db8c927ed python,python3: define PyBuild/Compile & Py3Build/Compile
Similar to LEDE/OpenWrt's Build/Compile/Default rule,
and other similarities like this.

This should allow Python packages to define
PyBuild/Compile rules to do specific stuff per
package.

The advantage of using these (over just overriding
Build/Compile) is the VARIANT mechanism that is
in place to support packaging both for Python & Python3.

So, PyBuild/Compile will get picked up for the Python
variant build, and Py3Build/Compile will get picked
up for the Python3 variant build.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-07 18:07:10 +03:00
Alexandru Ardelean
1588b532fb python: fix intermitent build failure
Fixes: https://github.com/openwrt/packages/issues/4548

When running parallel jobs, there are chances
that the Build/InstallDev rule may run before
the Host/Install rule and fail the build.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-06 16:49:27 +08:00
Alexandru Ardelean
3fa0c06d48 python,python3: add dependency on CONFIG_PACKAGE_ symbols for setuptools & pip
If you build python/python3 and later decide to build
python(3)-setuptools and/or python(3)-pip, the build won't
re-run without adding `CONFIG_PACKAGE_python(3)-setuptools`
and `CONFIG_PACKAGE_python(3)-pip`.

Seems to resolve issue:
https://github.com/openwrt/packages/issues/4529

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-03 16:11:57 +03:00
Alexandru Ardelean
a2b76b5403 python,python3: simplify sed expression for setuptools & pip
A suggestion from comment (from Philip Prindeville):
https://github.com/openwrt/packages/issues/4529#issuecomment-312518121

Avoids some escaping of slashes.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-03 16:11:52 +03:00
Alexandru Ardelean
1c54e2b0fb python,python3: fix underlinking issues with lrt (clock_gettime())
Seems it's called underlinking that's happening only
on Ubuntu 12.04 with libressl (that comes from LEDE's
tools folder).

Link here:
https://ubuntuforums.org/showthread.php?t=1870586

I'm still reading about this a bit.
Since I don't really get it.

But applying that fix (as in the link) seems to fix compiling
on Ubuntu 12.04, and tried also on 16.04 (to make sure).

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-03 09:28:41 +03:00
Daniel Golle
1aca235d44
python-pyodbc: add package
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-07-01 19:46:55 +02:00
Alexandru Ardelean
e88e35249f python,python3: install mk files in the Host/Install phase
The Build/InstallDev rule is activated only for target builds.
But if someone needs only the host Python, then
these files need to be installed in this phase, and not Build/InstallDev

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-29 14:04:09 +03:00
Alexandru Ardelean
7a79f2db79 python-six: rename PKG_NAME to python-six, and adapt unpack cmd for build
OVS has PKG_BUILD_DEPENDS:=python-six/host as dep.
But that doesn't seem to work, since the PKG_NAME:=six

So, this change renames the PKG_NAME to python-six, to
make it clear it's Python package.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-29 13:48:42 +03:00
Alexandru Ardelean
576c45eb0a python3: fix distutils path to package when using bytecodes
If there is only Python bytecodes, then
the __init__.py script will be concatenated, and
the __init__.pyc as well.

This is becase this bit `path = os.path.join(path, '__init__'+extension)`
is iterated twice.

This is a bug in Python3, also because we ship bytecodes
instead of source code [ with Python & Python3 ].
Python is not affected.

Reported-by: Mirko Vogt <mirko@nanl.de>
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-12 23:26:54 +03:00
Alexandru Ardelean
ff016a4802 python-lxml: add initial version (with python3 variant included)
This package requires libxml2 & libxslt to be built, has some
C code so it's not installable via pip.
It needs cross-compilation.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-05 18:00:24 +03:00
Alexandru Ardelean
c9337b2b92 python-six: add host-side build
Needed for Open vSwitch's python libs.
And build.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-24 23:07:05 +03:00
Alexandru Ardelean
0d54d05b6d python3-pip: override Package/python3-pip/install rule
This is in essence fixes pip3.

That means pip3 will ship without Python byte-codes
for a while, until I'll find a better way to fix it.

I couldn't think of a not-very hack-ish way of doing it.

The only draw-back of this, will be that pip3 will run
a bit slower ; but that should be ok for a while.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-19 17:28:08 +03:00
Alexandru Ardelean
a4691a289c python3: remove __pycache__ folders pip & setuptools
python3-pip & python3-setuptools have slightly
different installation mechanisms.

We need to remove the __pycache__ folders.
Seems they're generated.

This also reduces the size of the python3-pip &
python3-setuptools packages.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-19 17:27:48 +03:00
Alexandru Ardelean
b9d88065f5 python,python3: allow python packages to override Package/<pkg>/install rule
Python packages try to enforce their own.
For some cases this may not be desired.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-19 17:16:39 +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
Alexandru Ardelean
9f7235e42a python,python3: bump PKG_RELEASEs
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 18:43:50 +02:00
Alexandru Ardelean
20685f5220 python: split source packages away from compiled packages
Well, they're not yet compiled, but in the next commit
they should be.

People have been complaining [citation needed] to me
via email or via Github that Python's performance is crap
because it packages sources directly and they're not compiled.
And Python has to compile the sources on each run, and
on-the-fly.

Allowing compilation caching is also a no-no, because
I'll get complaints that the flash storage fills up
whenever a Python app runs.

So, to give the user a choice, the new de-facto packaging
for Python packages will be:
* ship compiled + [ preferably ] optimized files
* package sources separately

The problem is that this doubles the number of packages
in LEDE/OpenWrt, but build-times should not suffer a big
hit, since the compilation is done once, and the
install phase should not be too intensive.

Oh, and people don't need ship source packages if
they don't want to.
To do that, a packager needs to just call
`$(eval $(call BuildPackage,python-<package>-src))`

The `python-` prefix is important.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 18:43:41 +02:00
Alexandru Ardelean
05f8d6edf0 python,python3: drop remove .pyc & .pyo files
We'll control in the install phase what we ship [byte-codes or source files]

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 09:26:36 +02:00
Alexandru Ardelean
92073b047b python,python3: drop tests from all core packages
Well, this slipped by for some time.
This should make the Python core packages even more lighter.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 09:23:10 +02:00
Alexandru Ardelean
6c4dcf4446 python: fix python-dev clash with python-base
Both want to install libpython.so.
python-dev should install libpython.a

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 09:23:10 +02:00
Alexandru Ardelean
df0d0bcc00 python,python3: move PyPackage install rules in the beggining of the Package install rules
So that we can process Python sources installed
by those rules, if we need to.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 09:23:10 +02:00
Alexandru Ardelean
06c91a7ed8 python: move filespec shell code into file
Cleanup.
And preparation for adding a bit more functionality.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 09:23:10 +02:00
Alexandru Ardelean
17da988645 python,python3: fix goof with multiline command break
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-03-09 09:23:10 +02:00
Alexandru Ardelean
6bfd17e75c python: remove setupterm() redefinition
It's not 100% aligned with the ncurses' definition.

Reported-by: Arturo Rinaldi <arturo@arduino.org>
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-02-13 18:30:29 +02:00
Alexandru Ardelean
4772aec581 python,python3: override python setuptools & pip versions
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-02-09 16:31:16 +02:00
Alexandru Ardelean
31d614f92c python,python3: add python-pip-conf package to be used by both python-pip & python3-pip
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-23 11:59:50 +02:00
Alexandru Ardelean
a53d0c5a40 pip,setuptools: move as part of python,python3 build
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-23 10:20:20 +02:00
Alexandru Ardelean
80349f9e73 python,python3: install built-in pip and setuptools
Easier than using external package.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-23 09:06:51 +02:00
Matthias Schiffer
3823ef9bc4 Merge pull request #3813 from NeoRaider/hostpkg
Use STAGING_DIR_HOSTPKG where appropriate
2017-01-11 21:54:09 +01:00