Commit graph

166 commits

Author SHA1 Message Date
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
Alexandru Ardelean
b5b6ef34f4 python: bump PKG_RELEASE to 3
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-11 15:16:27 +02:00
Alexandru Ardelean
8ca02842ae python: remove 011-do-not-prefer-ncursesw.patch
LEDE now provides libncursesw by default [even for libncurses].
No need to keep this patch around.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-11 15:16:27 +02:00
Alexandru Ardelean
4e2f4a76e3 python: use built-in libffi lib for host build
Python comes with it's own builtin libffi lib, which
seems easier to use for the host build, than trying
to use the one from the package feeds.

Also, dropping `005-fix-libffi-x86-64-configure.patch`
Not needed anymore.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-11 15:12:21 +02:00
Alexandru Ardelean
ee88853e04 python: link with static libs of ssl, crypto for host builds
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-11 15:12:20 +02:00
Alexandru Ardelean
515468346a Revert "python: don't use libressl for host build"
This reverts commit ca800e60b0.
2017-01-11 15:12:20 +02:00
Alexandru Ardelean
3bfdf6797b python: drop CFLAGS in HOST_CONFIGURE_ARGS ; it's already in HOST_CONFIGURE_VARS
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-11 15:12:19 +02:00
Alexandru Ardelean
ed5cd3e2ce python: remove Host/Install rule default add
I just found out that, that the BUILD_VARIANT var
is not set for the host build, so technically this code
would never get used.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-11 11:02:24 +02:00
Matthias Schiffer
4a984a8d60
treewide: replace $(STAGING_DIR)/host and $(HOST_BUILD_PREFIX) with $(STAGING_DIR_HOSTPKG)
As both LEDE and OpenWrt have STAGING_DIR_HOSTPKG now, we can start to rely
on it. See 73b7f55424 for more information on
STAGING_DIR_HOSTPKG.

STAGING_DIR_HOSTPKG won't actually be changed before the first LEDE release
(it is equivalent to $(STAGING_DIR)/host), so this simple search/replace
cleanup is safe to apply. Doing this cleanup now will be useful for the
Gluon project (an OpenWrt/LEDE based firmware framework) for experimenting
with modifying STAGING_DIR_HOSTPKG before doing this in the LEDE upstream.

Also fixes a typo in the dbus Makefile ("STAGIND_DIR").

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-10 18:25:54 +01:00
Matthias Schiffer
876d139c98
python{,3}: remove STAGING_DIR_HOSTPKG fallback definition
STAGING_DIR_HOSTPKG is now defined in both OpenWrt and LEDE, so we can
start to rely on it.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-10 02:24:29 +01:00
Alexandru Ardelean
ca800e60b0 python: don't use libressl for host build
Fixes: https://github.com/openwrt/packages/issues/3767

Since commit:
f6e6341d89

libressl is built on the host-side.

Python picks it up [ via the openssl/* headers ] and assumes
it has SSL libs.
Compiling works fine, linking fails.
Doesn't look like it's because:
2fd5ce9488

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-06 15:29:21 +02:00
Alexandru Ardelean
f04641d3d1 python: upgrade to version 2.7.13
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-04 15:08:45 +02:00
Alexandru Ardelean
6d9137048b python: simplify/unify default build rules for python packages
Most python packages use the same build rules & vars.
So, adding them in python-package.mk.

Also, preparing for using VARIANTs for python/python3 packages.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-04 15:08:37 +02:00
Alexandru Ardelean
bb2f8fa8ed python-dev: add python-lib2to3 as dependency
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-04 15:08:37 +02:00
Alexandru Ardelean
165cd9f96a python: update PYTHON_FOR_BUILD (based on python3)
PYTHON_FOR_BUILD is used to build the target python.
Nomally Python scripts detect fine the Python host interpreter
to use for building the Python target interpreter.
But, let's not leave it up to chance anymore.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-04 15:08:36 +02:00
Alexandru Ardelean
9d876738b2 python: remove argument for --with-system-ffi configure arg (based on python3)
And apparently `--with-system-ffi` does not take any arguments.
But it's only in Python 3.6 that a check was added for that.
After checking, Python 2.7 does not take any args either
for `--with-system-ffi` ; so, remove it [for the case when this
change may get backported].

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-01-04 15:08:36 +02:00
Jo-Philipp Wich
49cf5815e3 python: move includes after common package variables
Move the python-host.mk and python-package.mk includes after the definition of
common package variables. This is required to ensure that PKG_UNPACK is not set
to to the dummy "true" command which happens if PKG_SOURCE is not yet set.

Fixes the following error observed while attempting to build Python on a recent
LEDE version:

    make[2]: Entering directory '.../lang/python'
    true
    [ ! -d ./src/ ] || cp -fpR ./src/* .../Python-2.7.12

    Applying ./patches/001-enable-zlib.patch using plaintext:
    can't find file to patch at input line 14
    Perhaps you used the wrong -p or --strip option?
    [...]
    Patch failed!  Please fix ./patches/001-enable-zlib.patch!
    Makefile:242: recipe for target '.../Python-2.7.12/.prepared_...' failed

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-16 03:24:19 +01:00
Alexandru Ardelean
9eca45fdf1 python, python3: unify HOST_ vars and get rid of HOST_CFLAGS
--sysconfigdir and --sbindir are obtained from --prefix
and --exec-prefix, so no need to have them explicitly

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-07 10:55:34 +02:00
Alexandru Ardelean
7d89234b86 python,python3: get rid of HOST_CFLAGS
They rely on system paths and are a bit misleading/confusing.
As seen here:
https://github.com/openwrt/packages/issues/3339

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-07 10:55:33 +02:00
Alexandru Ardelean
6a670f42b1 python: move PYTHON_VERSION in own .mk file
Allows for more granularity with respect to python-host.mk
and python-package.mk inclusions.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-07 10:55:31 +02:00
Alexandru Ardelean
45bdb70e1e python: add include guard for python-host.mk and include in Makefile
So that it can be included twice.
python-package.mk include python-host.mk, but at some point
in time python-host.mk is not exported to staging_dir yet.

So, to have in python's Makefile, we need to include it
in the Makefile, and to prevent double inclusion (if
python-host.mk is exported from a previous build), the
include guard is added.

Also, moved the includes after some vars were set.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-07 09:27:20 +02:00
Jo-Philipp Wich
73b7f55424 python: avoid use of HOST_BUILD_PREFIX
Currently, the python-host.mk framework relies on HOST_BUILD_PREFIX to
refer to the $(STAGING_DIR)/host directory but using the HOST_BUILD_PREFIX
variable requires the use of include/host-build.mk which in turn includes
python-host.mk, leading to target redefinition errors.

In order to provide a global, uniform way to refer to the host staging
directory, LEDE introduced a new variable STAGING_DIR_HOSTPKG which points
to $(STAGING_DIR)/host for now with the purpose of eventually being able to
relocate that directory in the future.

This commit changes python-host.mk to ...
 - stop including include/host-build.mk (revert of #3423)
 - replace usages of $(HOST_BUILD_PREFIX) with $(STAGING_DIR_HOSTPKG)
 - warn and fallback to $(STAGING_DIR)/host if STAGING_DIR_HOSTPKG is
   unavailable

The fallback code will ensure that the python host build infrastructure
continues to work properly on older OpenWrt and LEDE versions until the
STAGING_DIR_HOSTPKG is fully settled in and can be removed some time
in the future.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-11-01 12:57:36 +01:00
Alexandru Ardelean
e54d296a53 python,python3: include host-build.mk in python-host.mk & python3-package.mk
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-10-31 09:51:34 +02:00
Hannu Nyman
265f9595ed Merge pull request #3297 from NeoRaider/python
python, python3, python-*: use default prefix for host install
2016-10-27 16:43:15 +03:00
Yousong Zhou
fbba266e79 python: introduce Build/Compile/HostPyRun{Host,Target}
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2016-10-17 19:55:39 +08:00
Matthias Schiffer
205ee41506
python, python-*: use default prefix for host install
Also fixes a few incorrect "$(STAGING_DIR_HOST)/host" paths.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-10-04 00:59:37 +02:00
Alexandru Ardelean
a4b0c0a9fb python: disable with-ensurepip option for host build
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-09-21 16:44:02 +03:00