summaryrefslogtreecommitdiff
path: root/lang/python/python3
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python/python3')
-rw-r--r--lang/python/python3/Makefile3
-rw-r--r--lang/python/python3/files/python3-host.mk20
-rw-r--r--lang/python/python3/files/python3-package-install.sh21
-rw-r--r--lang/python/python3/files/python3-package.mk3
-rw-r--r--lang/python/python3/patches/006-remove-debian-multiarch-support.patch12
-rw-r--r--lang/python/python3/patches/006-remove-multi-arch-and-local-paths.patch21
6 files changed, 55 insertions, 25 deletions
diff --git a/lang/python/python3/Makefile b/lang/python/python3/Makefile
index 02c103193..053c003e8 100644
--- a/lang/python/python3/Makefile
+++ b/lang/python/python3/Makefile
@@ -14,12 +14,11 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
PKG_NAME:=python3
-PKG_RELEASE:=3
+PKG_RELEASE:=4
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
-PKG_MD5SUM:=692b4fc3a2ba0d54d1495d4ead5b0b5c
PKG_HASH:=a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041
PKG_LICENSE:=PSF
diff --git a/lang/python/python3/files/python3-host.mk b/lang/python/python3/files/python3-host.mk
index 3abf6aa5f..96bbc19cc 100644
--- a/lang/python/python3/files/python3-host.mk
+++ b/lang/python/python3/files/python3-host.mk
@@ -60,6 +60,19 @@ define Build/Compile/HostPy3RunHost
)
endef
+# Note: I shamelessly copied this from Yousong's logic (from python-packages);
+HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION)
+define host_python3_pip_install
+ $(HOST_PYTHON3_PIP) install \
+ --root=$(1) \
+ --prefix=$(2) \
+ --ignore-installed \
+ $(3)
+endef
+
+define host_python3_pip_install_host
+$(call host_python3_pip_install,$(STAGING_DIR_HOSTPKG),"",$(1))
+endef
# $(1) => build subdir
# $(2) => additional arguments to setup.py
@@ -71,11 +84,4 @@ define Build/Compile/HostPy3Mod
$(3))
endef
-define HostPy3/Compile/Default
- $(call Build/Compile/HostPy3Mod,,\
- install --root="$(STAGING_DIR_HOSTPKG)" --prefix="" \
- --single-version-externally-managed \
- )
-endef
-
endif # __python3_host_mk_inc
diff --git a/lang/python/python3/files/python3-package-install.sh b/lang/python/python3/files/python3-package-install.sh
index ae5e17280..cbb84ab1c 100644
--- a/lang/python/python3/files/python3-package-install.sh
+++ b/lang/python/python3/files/python3-package-install.sh
@@ -1,4 +1,5 @@
#!/bin/sh
+set -e
process_filespec() {
local src_dir="$1"
@@ -50,10 +51,13 @@ find "$dst_dir" -name "*.egg-info" | xargs rm -rf
if [ "$mode" == "sources" ] ; then
# Copy only python source files
- find $dst_dir -not -name "*\.py" | xargs rm -f
+ find $dst_dir -type f -not -name "*\.py" | xargs rm -f
+
# Delete empty folders (if the case)
- find $dst_dir/usr -type d | xargs rmdir &> /dev/null
- rmdir $dst_dir/usr &> /dev/null
+ if [ -d "$dst_dir/usr" ] ; then
+ find $dst_dir/usr -type d | xargs rmdir --ignore-fail-on-non-empty
+ rmdir --ignore-fail-on-non-empty $dst_dir/usr
+ fi
exit 0
fi
@@ -67,6 +71,15 @@ $python -m compileall -b -d '/' $dst_dir || {
echo "python -m compileall err-ed"
exit 1
}
+
# Delete source files and pyc [ un-optimized bytecode files ]
# We may want to make this optimization thing configurable later, but not sure atm
-find $dst_dir -name "*\.py" | xargs rm -f
+find $dst_dir -type f -name "*\.py" | xargs rm -f
+
+# Delete empty folders (if the case)
+if [ -d "$dst_dir/usr" ] ; then
+ find $dst_dir/usr -type d | xargs rmdir --ignore-fail-on-non-empty
+ rmdir --ignore-fail-on-non-empty $dst_dir/usr
+fi
+
+exit 0
diff --git a/lang/python/python3/files/python3-package.mk b/lang/python/python3/files/python3-package.mk
index 22ee527a1..93b14fac2 100644
--- a/lang/python/python3/files/python3-package.mk
+++ b/lang/python/python3/files/python3-package.mk
@@ -126,6 +126,9 @@ define Build/Compile/Py3Mod
endef
define Py3Build/Compile/Default
+ $(foreach pkg,$(HOST_PYTHON3_PACKAGE_BUILD_DEPENDS),
+ $(call host_python3_pip_install_host,$(pkg))
+ )
$(call Build/Compile/Py3Mod,, \
install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \
--single-version-externally-managed \
diff --git a/lang/python/python3/patches/006-remove-debian-multiarch-support.patch b/lang/python/python3/patches/006-remove-debian-multiarch-support.patch
deleted file mode 100644
index 52d52b94e..000000000
--- a/lang/python/python3/patches/006-remove-debian-multiarch-support.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 7868b7b..9ae0ef2 100644
---- a/setup.py
-+++ b/setup.py
-@@ -444,7 +444,6 @@ class PyBuildExt(build_ext):
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
- if cross_compiling:
- self.add_gcc_paths()
-- self.add_multiarch_paths()
-
- # Add paths specified in the environment variables LDFLAGS and
- # CPPFLAGS for header and library files.
diff --git a/lang/python/python3/patches/006-remove-multi-arch-and-local-paths.patch b/lang/python/python3/patches/006-remove-multi-arch-and-local-paths.patch
new file mode 100644
index 000000000..ed2fdb56a
--- /dev/null
+++ b/lang/python/python3/patches/006-remove-multi-arch-and-local-paths.patch
@@ -0,0 +1,21 @@
+diff --git a/setup.py b/setup.py
+index f04bf22..01b851e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -487,16 +487,9 @@ class PyBuildExt(build_ext):
+ return ['m']
+
+ def detect_modules(self):
+- # Ensure that /usr/local is always used, but the local build
+- # directories (i.e. '.' and 'Include') must be first. See issue
+- # 10520.
+- if not cross_compiling:
+- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+ # only change this for cross builds for 3.3, issues on Mageia
+ if cross_compiling:
+ self.add_gcc_paths()
+- self.add_multiarch_paths()
+
+ # Add paths specified in the environment variables LDFLAGS and
+ # CPPFLAGS for header and library files.