diff options
| -rw-r--r-- | package/python/python-002-cross-compile.patch | 32 | ||||
| -rw-r--r-- | package/python/python-010-disable_modules_and_ssl.patch | 6 | ||||
| -rw-r--r-- | package/python/python.mk | 51 | 
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) | 
