summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/python/python-002-cross-compile.patch32
-rw-r--r--package/python/python-010-disable_modules_and_ssl.patch6
-rw-r--r--package/python/python.mk51
3 files changed, 46 insertions, 43 deletions
diff --git a/package/python/python-002-cross-compile.patch b/package/python/python-002-cross-compile.patch
index e856576d9..207335a5e 100644
--- a/package/python/python-002-cross-compile.patch
+++ b/package/python/python-002-cross-compile.patch
@@ -1,26 +1,18 @@
-diff -rduNp Python-2.4.2-001/setup.py Python-2.4.2/setup.py
---- Python-2.4.2-001/setup.py 2007-01-22 19:37:08.000000000 +0100
-+++ Python-2.4.2/setup.py 2007-01-22 19:41:47.000000000 +0100
-@@ -20,6 +20,14 @@ disabled_module_list = []
- def add_dir_to_list(dirlist, dir):
- """Add the directory 'dir' to the list 'dirlist' (at the front) if
- 1) 'dir' is not already in 'dirlist'
-+ modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split()
-+except KeyError:
-+ modules_include_dirs = ['/usr/include']
-+try:
-+ modules_lib_dirs = os.environ["PYTHON_MODULES_LIB"].split()
-+except KeyError:
-+ modules_lib_dirs = ['/usr/lib']
-+try:
- 2) 'dir' actually exists, and is a directory."""
- if dir is not None and os.path.isdir(dir) and dir not in dirlist:
- dirlist.insert(0, dir)
-@@ -239,7 +247,10 @@ class PyBuildExt(build_ext):
+--- Python-2.4.2-001/setup.py 2007-01-23 16:18:37.000000000 +0100
++++ Python-2.4.2/setup.py 2007-01-23 16:26:43.000000000 +0100
+@@ -239,7 +239,18 @@
return sys.platform
def detect_modules(self):
- # Ensure that /usr/local is always used
++ try:
++ modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split()
++ except KeyError:
++ modules_include_dirs = ['/usr/include']
++ try:
++ modules_lib_dirs = os.environ["PYTHON_MODULES_LIB"].split()
++ except KeyError:
++ modules_lib_dirs = ['/usr/lib']
+ for dir in modules_include_dirs:
+ add_dir_to_list(self.compiler.include_dirs, dir)
+ for dir in modules_lib_dirs:
@@ -28,7 +20,7 @@ diff -rduNp Python-2.4.2-001/setup.py Python-2.4.2/setup.py
# Add paths to popular package managers on OS X/darwin
if sys.platform == "darwin":
-@@ -258,11 +269,8 @@ class PyBuildExt(build_ext):
+@@ -258,11 +269,8 @@
# lib_dirs and inc_dirs are used to search for files;
# if a file is found in one of those directories, it can
# be assumed that no additional -I,-L directives are needed.
diff --git a/package/python/python-010-disable_modules_and_ssl.patch b/package/python/python-010-disable_modules_and_ssl.patch
index c7d41184e..a690eae38 100644
--- a/package/python/python-010-disable_modules_and_ssl.patch
+++ b/package/python/python-010-disable_modules_and_ssl.patch
@@ -22,9 +22,9 @@ diff -rduNp Python-2.4.2-002/setup.py Python-2.4.2/setup.py
def detect_modules(self):
+ global disable_ssl
- for dir in modules_include_dirs:
- add_dir_to_list(self.compiler.include_dirs, dir)
- for dir in modules_lib_dirs:
+ try:
+ modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split()
+ except KeyError:
@@ -468,7 +476,8 @@ class PyBuildExt(build_ext):
] )
diff --git a/package/python/python.mk b/package/python/python.mk
index 1c6c25f79..01879cc0b 100644
--- a/package/python/python.mk
+++ b/package/python/python.mk
@@ -11,6 +11,16 @@ PYTHON_CAT:=$(BZCAT)
PYTHON_BINARY:=python
PYTHON_TARGET_BINARY:=usr/bin/python
+#ifndef BR2_SUPPORT_IPv6
+#PYTHON_DISABLE_IPv6=--disable-ipv6
+#else
+#PYTHON_DISABLE_IPv6=--enable-ipv6
+#endif
+
+# these could use checks for some BR2_PACKAGE_foo,y
+BR2_PYTHON_DISABLED_MODULES=readline pyexpat dbm gdbm bsddb \
+ _curses _curses_panel _tkinter nis zipfile
+
$(DL_DIR)/$(PYTHON_SOURCE):
$(WGET) -P $(DL_DIR) $(PYTHON_SITE)/$(PYTHON_SOURCE)
@@ -18,29 +28,29 @@ python-source: $(DL_DIR)/$(PYTHON_SOURCE)
$(PYTHON_DIR)/.unpacked: $(DL_DIR)/$(PYTHON_SOURCE)
$(PYTHON_CAT) $(DL_DIR)/$(PYTHON_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- touch $(PYTHON_DIR)/.unpacked
+ touch $@
$(PYTHON_DIR)/.patched: $(PYTHON_DIR)/.unpacked
toolchain/patch-kernel.sh $(PYTHON_DIR) package/python/ python\*.patch
- touch $(PYTHON_DIR)/.patched
+ touch $@
$(PYTHON_DIR)/.hostpython: $(PYTHON_DIR)/.patched
(cd $(PYTHON_DIR); rm -rf config.cache; \
- OPT="-O1" \
+ CC="$(HOSTCC)" OPT="-O2" \
./configure \
--with-cxx=no \
- $(DISABLE_NLS); \
- $(MAKE) python Parser/pygen; \
- mv python hostpython; \
- mv Parser/pgen Parser/hostpgen; \
+ $(DISABLE_NLS) && \
+ $(MAKE) python Parser/pgen && \
+ mv python hostpython && \
+ mv Parser/pgen Parser/hostpgen && \
$(MAKE) distclean \
- );
- touch $(PYTHON_DIR)/.hostpython
+ ) && \
+ touch $@
$(PYTHON_DIR)/.configured: $(PYTHON_DIR)/.hostpython
(cd $(PYTHON_DIR); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
- OPT="$(TARGET_OPTIMIZATION)" \
+ OPT="$(TARGET_CFLAGS)" \
./configure \
--target=$(GNU_TARGET_NAME) \
--host=$(GNU_TARGET_NAME) \
@@ -48,16 +58,17 @@ $(PYTHON_DIR)/.configured: $(PYTHON_DIR)/.hostpython
--prefix=/usr \
--sysconfdir=/etc \
--with-cxx=no \
+ $(PYTHON_DISABLE_IPv6) \
$(DISABLE_NLS) \
);
- touch $(PYTHON_DIR)/.configured
+ touch $@
$(PYTHON_DIR)/$(PYTHON_BINARY): $(PYTHON_DIR)/.configured
export PYTHON_DISABLE_SSL=1
$(MAKE) CC=$(TARGET_CC) -C $(PYTHON_DIR) DESTDIR=$(TARGET_DIR) \
PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/include \
PYTHON_MODULES_LIB=$(STAGING_DIR)/lib \
- PYTHON_DISABLE_MODULES="readline pyexpat dbm gdbm bsddb _curses _curses_panel _tkinter" \
+ PYTHON_DISABLE_MODULES="$(BR2_PYTHON_DISABLED_MODULES)" \
HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen
$(TARGET_DIR)/$(PYTHON_TARGET_BINARY): $(PYTHON_DIR)/$(PYTHON_BINARY)
@@ -67,13 +78,13 @@ $(TARGET_DIR)/$(PYTHON_TARGET_BINARY): $(PYTHON_DIR)/$(PYTHON_BINARY)
DESTDIR=$(TARGET_DIR) CROSS_COMPILE=yes \
PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/include \
PYTHON_MODULES_LIB=$(STAGING_DIR)/lib \
- PYTHON_DISABLE_MODULES="readline pyexpat dbm gdbm bsddb _curses _curses_panel _tkinter" \
- HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen
- rm $(TARGET_DIR)/usr/bin/python?.?
- rm $(TARGET_DIR)/usr/bin/idle
- rm $(TARGET_DIR)/usr/bin/pydoc
- -find $(TARGET_DIR)/usr/lib/ -name '*.pyc' -exec rm {} \;
- -find $(TARGET_DIR)/usr/lib/ -name '*.pyo' -exec rm {} \;
+ PYTHON_DISABLE_MODULES="$(BR2_PYTHON_DISABLED_MODULES)" \
+ HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen && \
+ rm $(TARGET_DIR)/usr/bin/python?.? && \
+ rm $(TARGET_DIR)/usr/bin/idle && \
+ rm $(TARGET_DIR)/usr/bin/pydoc && \
+ find $(TARGET_DIR)/usr/lib/ -name '*.pyc' -exec rm {} \; && \
+ find $(TARGET_DIR)/usr/lib/ -name '*.pyo' -exec rm {} \; && \
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc \
$(TARGET_DIR)/usr/lib/python*/test
@@ -82,7 +93,7 @@ python: uclibc $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
python-clean:
-$(MAKE) -C $(PYTHON_DIR) distclean
- rm $(PYTHON_DIR)/.configured
+ rm $(PYTHON_DIR)/.configured $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
python-dirclean:
rm -rf $(PYTHON_DIR)