Browse Source

Merge branch 'master' of git+ssh://openadk.org/git/openadk

Waldemar Brodkorb 10 years ago
parent
commit
5e905de49e

+ 2 - 2
mk/buildhlp.mk

@@ -98,12 +98,12 @@ endif
 		env ${AUTOTOOL_ENV} autoreconf -if) $(MAKE_TRACE)
 	@rm -rf ${WRKDIR}.orig/${PKG_NAME}-${PKG_VERSION}/autom4te.cache
 	@# restore config.sub/config.guess
-	@for i in $$(find ${WRKDIR}.orig -name config.sub);do \
+	@for i in $$(find ${WRKDIR} -name config.sub);do \
 		if [ -f $$i.bak ];then \
 			mv $$i.bak $$i; \
 		fi;\
 	done
-	@for i in $$(find ${WRKDIR}.orig -name config.guess);do \
+	@for i in $$(find ${WRKDIR} -name config.guess);do \
 		if [ -f $$i.bak ];then \
 			mv $$i.bak $$i; \
 		fi;\

+ 90 - 65
package/python2/Makefile

@@ -4,13 +4,13 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		python2
-PKG_VERSION:=		2.7.1
-PKG_RELEASE:=		3
-PKG_MD5SUM:=		15ed56733655e3fab785e49a7278d2fb
+PKG_VERSION:=		2.7.5
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		b4f01a1d0ba0b46b05c73b2ac909b1df
 PKG_DESCR:=		Python scripting language (Version 2)
 PKG_SECTION:=		lang
-PKG_BUILDDEP:=		zlib libffi openssl readline bzip2
-PKG_DEPENDS:=		libpthread zlib libffi libopenssl libgcc
+PKG_BUILDDEP:=		libffi python2-host
+PKG_DEPENDS:=		libpthread libffi libgcc
 PKG_URL:=		http://www.python.org/
 PKG_SITES:=		http://www.python.org/ftp/python/${PKG_VERSION}/
 PKG_OPTS:=		dev noscripts
@@ -20,59 +20,96 @@ PKG_HOST_DEPENDS:=	!netbsd !openbsd
 DISTFILES=		Python-${PKG_VERSION}.tgz
 WRKDIST=		${WRKDIR}/Python-${PKG_VERSION}
 
-PKG_SUBPKGS:=		PYTHON2 PYTHON2_READLINE PYTHON2_BZIP2
-PKGSS_PYTHON2_READLINE:=libreadline
-PKGSS_PYTHON2_BZIP2:=	bzip2
+PKG_FLAVOURS_PYTHON2:=	MOD_ZLIB MOD_BZ2 MOD_EXPAT MOD_SQLITE MOD_GDBM
+PKG_FLAVOURS_PYTHON2+=	MOD_NCURSES MOD_SSL MOD_READLINE
+			
+PKGFD_MOD_ZLIB:=	ZLIB support
+PKGFB_MOD_ZLIB:=	zlib
+PKGFS_MOD_ZLIB:=	zlib
+PKGFD_MOD_BZ2:=		BZIP2 support
+PKGFB_MOD_BZ2:=		bzip2
+PKGFS_MOD_BZ2:=		libbz2
+PKGFD_MOD_EXPAT:=	XML support
+PKGFB_MOD_EXPAT:=	expat
+PKGFS_MOD_EXPAT:=	libexpat
+PKGFD_MOD_SQLITE:=	SQLITE support
+PKGFB_MOD_SQLITE:=	sqlite
+PKGFS_MOD_SQLITE:=	libsqlite
+PKGFD_MOD_GDBM:=	GDBM support
+PKGFB_MOD_GDBM:=	gdbm
+PKGFS_MOD_GDBM:=	libgdbm
+PKGFD_MOD_NCURSES:=	NCURSES support
+PKGFB_MOD_NCURSES:=	ncurses
+PKGFS_MOD_NCURSES:=	libncurses
+PKGFD_MOD_READLINE:=	READLINE support
+PKGFB_MOD_READLINE:=	readline
+PKGFS_MOD_READLINE:=	libreadline
+PKGFD_MOD_SSL:=		OpenSSL support
+PKGFB_MOD_SSL:=		openssl
+PKGFS_MOD_SSL:=		libopenssl
 
+include ${TOPDIR}/mk/host.mk
 include ${TOPDIR}/mk/package.mk
 
+$(eval $(call HOST_template,PYTHON2,python2,${PKG_VERSION}-${PKG_RELEASE}))
 $(eval $(call PKG_template,PYTHON2,python2,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-$(eval $(call PKG_template,PYTHON2_BZIP2,python2-bzip2,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_PYTHON2_BZIP2},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_READLINE,python2-readline,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_PYTHON2_READLINE},${PKG_DESCR},${PKG_SECTION}))
-
-ifeq ($(ADK_HOST_CYGWIN),y)
-EXE:=			.exe
-endif
-
-TARGET_CFLAGS+=		-fPIC
-TARGET_LDFLAGS+=	-L.
-MAKE_ENV+=		OPT="$(TARGET_CFLAGS)" \
-			RANLIB="${TARGET_CROSS}ranlib" \
-			HOSTPYTHON=./hostpython \
-			HOSTPGEN=./Parser/hostpgen
-CONFIGURE_ENV+=		OPT="$(TARGET_CFLAGS)" \
-			ac_cv_have_long_long_format=yes
+
+define PKG_mod_template
+
+INSTALL_MODS_$${ADK_PACKAGE_${1}}+=    ${2}-install
+
+${2}-install:
+	echo foo $(1)
+	${INSTALL_DIR} $$(IDIR_$(1))/usr/lib/python2.7/lib-dynload
+	for m in ${2}; do \
+		${INSTALL_DATA} $(WRKINST)/usr/lib/python2.7/lib-dynload/$$$${m}*.so $$(IDIR_$(1))/usr/lib/python2.7/lib-dynload ;\
+	done
+endef
+
+$(eval $(call PKG_template,PYTHON2_MOD_ZLIB,python2-mod-zlib,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_ZLIB},${PKGFD_MOD_ZLIB},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_BZ2,python2-mod-bz2,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_BZ2},${PKGFD_MOD_BZ2},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_EXPAT,python2-mod-expat,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_EXPAT},${PKGFD_MOD_EXPAT},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_SQLITE,python2-mod-sqlite,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SQLITE},${PKGFD_MOD_SQLITE},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_GDBM,python2-mod-gdbm,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_GDBM},${PKGFD_MOD_GDBM},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_NCURSES,python2-mod-ncurses,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_NCURSES},${PKGFD_MOD_NCURSES},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_SSL,python2-mod-ssl,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SSL},${PKGFD_MOD_SSL},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON2_MOD_READLINE,python2-mod-readline,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_READLINE},${PKGFD_MOD_READLINE},${PKG_SECTION}))
+
+$(eval $(call PKG_mod_template,PYTHON2_MOD_ZLIB,zlib))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_BZ2,bz2))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_EXPAT,pyexpat))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_SQLITE,_sqlite))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_GDBM,gdbm))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_NCURSES,_curses))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_SSL,_ssl))
+$(eval $(call PKG_mod_template,PYTHON2_MOD_READLINE,readline))
+
+MAKE_ENV+=		HOSTPGEN=$(STAGING_HOST_DIR)/usr/bin/pgen
+CONFIGURE_ENV+=         ac_cv_have_long_long_format=yes \
+			ac_cv_file__dev_ptmx=yes \
+			ac_cv_file__dev_ptc=no
 CONFIGURE_ARGS:=	--with-threads \
+			--disable-ipv6 \
 			--disable-toolbox-glue \
 			--with-system-ffi \
 			--without-cxx-main
 
-post-extract:
-	$(CP) ${WRKBUILD}/setup.py ${WRKBUILD}/setup.py.sav
-	$(CP) ./files/setup.py ${WRKBUILD}/setup.py
-	$(CP) ./files/posixmodule.c ${WRKBUILD}/Modules/posixmodule.c
-	$(CP) ./files/python-config.in ${WRKBUILD}/Misc/python-config.in
-	$(CP) ./files/build_scripts.py ${WRKBUILD}/Lib/distutils/command/build_scripts.py
-	$(CP) ./files/sysconfig.py ${WRKBUILD}/Lib/distutils/sysconfig.py
-	(cd ${WRKBUILD}; rm -rf config.{cache,status} ; \
-		OPT="$(CFLAGS_FOR_BUILD)" \
-		./configure --without-cxx-main --with-threads \
-		--prefix=$(STAGING_HOST_DIR)/usr \
-	);
-	$(MAKE) -C ${WRKBUILD} python$(EXE) Parser/pgen$(EXE)
-	$(MAKE) -C ${WRKBUILD} install
-	${CP} ${WRKBUILD}/Parser/pgen ${STAGING_HOST_DIR}/usr/bin/pgen
-	${CP} ${WRKBUILD}/python ${STAGING_HOST_DIR}/usr/bin/hostpython
-	${CP} ${WRKBUILD}/Parser/pgen ${WRKBUILD}/Parser/hostpgen
-	${CP} ${WRKBUILD}/python ${WRKBUILD}/hostpython
-	$(MAKE) -C ${WRKBUILD} distclean
-	$(CP) ${WRKBUILD}/setup.py.sav ${WRKBUILD}/setup.py
-
-pre-configure:
-	$(SED) "s#@@CPU_ARCH@@#$(CPU_ARCH)#" ${WRKBUILD}/configure
-	$(SED) "s#@@STAGING_DIR@@#$(STAGING_DIR)#" ${WRKBUILD}/setup.py
-
-python2-install:
+HOST_CONFIGURE_ARGS:=	--without-threads \
+			--disable-toolbox-glue \
+			--without-cxx-main
+
+python2-hostinstall:
+	$(INSTALL_BIN) ${HOST_WRKINST}/usr/bin/python \
+		$(STAGING_HOST_DIR)/usr/bin
+	$(INSTALL_BIN) ${WRKBUILD}/Parser/pgen \
+		$(STAGING_HOST_DIR)/usr/bin/pgen
+	$(CP) $(HOST_WRKINST)/usr/lib/python2.7 \
+		$(STAGING_HOST_DIR)/usr/lib
+	$(INSTALL_DIR) $(STAGING_HOST_DIR)/usr/include/python2.7
+	${CP} ${HOST_WRKINST}/usr/include/python2.7/pyconfig.h \
+		$(STAGING_HOST_DIR)/usr/include/python2.7
+	
+python2-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
 	${INSTALL_DIR} ${IDIR_PYTHON2}/usr/bin ${IDIR_PYTHON2}/usr/lib
 	${INSTALL_DIR} ${IDIR_PYTHON2}/usr/lib/python2.7
 	${INSTALL_DIR} ${IDIR_PYTHON2}/usr/include/python2.7
@@ -81,21 +118,9 @@ python2-install:
 	${CP} ${WRKINST}/usr/lib/python2.7/* ${IDIR_PYTHON2}/usr/lib/python2.7
 	${CP} ${WRKINST}/usr/include/python2.7/pyconfig.h \
 		${IDIR_PYTHON2}/usr/include/python2.7
-	-find ${IDIR_PYTHON2} -name "\*.pyc" -o -name "*\.pyo" -exec rm {} \;
-	-rm ${IDIR_PYTHON2}/usr/lib/python2.7/lib-dynload/readline.so
-	-rm ${IDIR_PYTHON2}/usr/lib/python2.7/lib-dynload/bz2.so
-	# workaround, copy host python-config to target scripts directory
-	${CP} ${STAGING_HOST_DIR}/usr/bin/python*-config ${STAGING_DIR}/scripts
-	(cd ${STAGING_DIR}/usr/bin/ && ln -sf $(STAGING_HOST_DIR)/usr/bin/hostpython hostpython)
-
-python2-readline-install:
-	${INSTALL_DIR} ${IDIR_PYTHON2_READLINE}/usr/lib/python2.7/lib-dynload
-	${CP} ${WRKINST}/usr/lib/python2.7/lib-dynload/readline.so \
-		${IDIR_PYTHON2_READLINE}/usr/lib/python2.7/lib-dynload
-
-python2-bzip2-install:
-	${INSTALL_DIR} ${IDIR_PYTHON2_BZIP2}/usr/lib/python2.7/lib-dynload
-	${CP} ${WRKINST}/usr/lib/python2.7/lib-dynload/bz2.so \
-		${IDIR_PYTHON2_BZIP2}/usr/lib/python2.7/lib-dynload
+	for i in zlib bz2 _curses _ssl gdbm _sqlite pyexpat readline; do \
+		rm ${IDIR_PYTHON2}/usr/lib/python2.7/lib-dynload/$${i}*so; \
+	done
 
+include ${TOPDIR}/mk/host-bottom.mk
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 40 - 158
package/python2/patches/patch-Makefile_pre_in

@@ -1,166 +1,48 @@
-diff -Nur Python-2.7.1.orig/Makefile.pre.in Python-2.7.1/Makefile.pre.in
---- Python-2.7.1.orig/Makefile.pre.in	2010-10-14 13:37:30.000000000 +0200
-+++ Python-2.7.1/Makefile.pre.in	2013-07-11 11:56:32.128103200 +0200
-@@ -59,7 +59,7 @@ MAKESETUP=      $(srcdir)/Modules/makese
- # Compiler options
- OPT=		@OPT@
- BASECFLAGS=	@BASECFLAGS@
--CFLAGS=		$(BASECFLAGS) @CFLAGS@ $(OPT) $(EXTRA_CFLAGS)
-+CFLAGS=		$(BASECFLAGS) @CFLAGS@ $(EXTRA_CFLAGS)
- # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
- # be able to build extension modules using the directories specified in the
- # environment variables
-@@ -179,6 +179,7 @@ UNICODE_OBJS=   @UNICODE_OBJS@
- 
- PYTHON=		python$(EXE)
- BUILDPYTHON=	python$(BUILDEXE)
-+HOSTPYTHON?=    $(BUILDPYTHON)
- 
- # The task to run while instrument when building the profile-opt target
- PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
-@@ -211,6 +212,7 @@ LIBFFI_INCLUDEDIR=	@LIBFFI_INCLUDEDIR@
+--- Python-2.7.5.orig/Makefile.pre.in	2013-05-12 05:32:49.000000000 +0200
++++ Python-2.7.5/Makefile.pre.in	2013-10-29 08:12:25.000000000 +0100
+@@ -227,6 +227,7 @@ LIBFFI_INCLUDEDIR=	@LIBFFI_INCLUDEDIR@
  ##########################################################################
  # Parser
  PGEN=		Parser/pgen$(EXE)
-+HOSTPGEN?=      $(PGEN)$(EXE)
- 
- POBJS=		\
- 		Parser/acceler.o \
-@@ -380,7 +382,7 @@ build_all_generate_profile:
- 	$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-generate" LIBS="$(LIBS) -lgcov"
- 
- run_profile_task:
--	./$(BUILDPYTHON) $(PROFILE_TASK)
-+	$(HOSTPYTHON) $(PROFILE_TASK)
- 
- build_all_use_profile:
- 	$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-use"
-@@ -398,14 +400,13 @@ $(BUILDPYTHON):	Modules/python.o $(LIBRA
- 			$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
- 
- platform: $(BUILDPYTHON)
--	$(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
-+	$(RUNSHARED) $(HOSTPYTHON) -E -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
- 
- 
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
- 	@case $$MAKEFLAGS in \
--	*s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
--	*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
-+	*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
- 	esac
- 
- # Build static library
-@@ -538,7 +539,7 @@ Modules/python.o: $(srcdir)/Modules/pyth
- 
- $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
- 		-@$(INSTALL) -d Include
--		-$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+		-$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
- 
- $(PGEN):	$(PGENOBJS)
- 		$(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-@@ -702,7 +703,7 @@ $(LIBRARY_OBJS) $(MODOBJS) Modules/pytho
- 
- TESTOPTS=	-l $(EXTRATESTOPTS)
- TESTPROG=	$(srcdir)/Lib/test/regrtest.py
--TESTPYTHON=	$(RUNSHARED) ./$(BUILDPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS)
-+TESTPYTHON=	$(RUNSHARED) $(HOSTPYTHON) -Wd -3 -E -tt $(TESTPYTHONOPTS)
- test:		all platform
- 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- 		-$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
-@@ -725,7 +726,7 @@ testuniversal:	all platform
- 		-find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- 		-$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
- 		$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS)
--		$(RUNSHARED) /usr/libexec/oah/translate ./$(BUILDPYTHON) -E -tt $(TESTPROG) -uall $(TESTOPTS)
-+		$(RUNSHARED) /usr/libexec/oah/translate $(HOSTPYTHON) -E -tt $(TESTPROG) -uall $(TESTOPTS)
- 
- 
- # Like testall, but with a single pass only
-@@ -920,26 +921,26 @@ libinstall:	build_all $(srcdir)/Lib/$(PL
- 		done; \
- 	done
- 	$(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
++HOSTPGEN?=	Parser/pgen$(EXE)
+ 
+ PSRCS=		\
+ 		Parser/acceler.c \
+@@ -593,7 +594,7 @@ Modules/pwdmodule.o: $(srcdir)/Modules/p
+ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
+ 		@$(MKDIR_P) Include
+ 		$(MAKE) $(PGEN)
+-		$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
++		$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+ $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
+ 		$(MAKE) $(GRAMMAR_H)
+ 		touch $(GRAMMAR_C)
+@@ -1000,28 +1001,6 @@ libinstall:	build_all $(srcdir)/Lib/$(PL
+ 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+ 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
+ 	fi
 -	PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-+	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
-+		$(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST) -f \
- 		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- 		$(DESTDIR)$(LIBDEST)
+-		$(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST) -f \
+-		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-		$(DESTDIR)$(LIBDEST)
 -	PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-+		$(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST) -f \
- 		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- 		$(DESTDIR)$(LIBDEST)
- 	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-+		$(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST)/site-packages -f \
- 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+		$(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
- 		-d $(LIBDEST)/site-packages -f \
- 		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- 	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--		./$(BUILDPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
-+		$(HOSTPYTHON) -Wi -t -c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"
+-		$(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST) -f \
+-		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-		$(DESTDIR)$(LIBDEST)
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST)/site-packages -f \
+-		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST)/site-packages -f \
+-		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
  
  # Create the PLATDIR source directory, if one wasn't distributed..
  $(srcdir)/Lib/$(PLATDIR):
-@@ -1044,11 +1045,12 @@ libainstall:	all python-config
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
--	$(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
-+	CROSS_COMPILE='$(CROSS_COMPILE)' \
-+	$(RUNSHARED) $(HOSTPYTHON) -E $(srcdir)/setup.py install \
- 	   	--prefix=$(prefix) \
- 		--install-scripts=$(BINDIR) \
- 		--install-platlib=$(DESTSHARED) \
--		--root=/$(DESTDIR)
-+		--root=$(DESTDIR)
- 
- # Here are a couple of targets for MacOSX again, to install a full
- # framework-based Python. frameworkinstall installs everything, the
-@@ -1082,7 +1084,7 @@ frameworkinstallstructure:	$(LDLIBRARY)
- 		fi; \
- 	done
- 	$(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers
--	sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
-+	sed 's/%VERSION%/'"`$(RUNSHARED) $(HOSTPYTHON) -c 'import platform; print platform.python_version()'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
- 	$(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
- 	$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
- 	$(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
-@@ -1117,7 +1119,7 @@ frameworkinstallextras:
- # This installs a few of the useful scripts in Tools/scripts
- scriptsinstall:
- 	SRCDIR=$(srcdir) $(RUNSHARED) \
--	./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py install \
-+	$(HOSTPYTHON) $(srcdir)/Tools/scripts/setup.py install \
- 	--prefix=$(prefix) \
- 	--install-scripts=$(BINDIR) \
- 	--root=/$(DESTDIR)
-@@ -1139,7 +1141,7 @@ config.status:	$(srcdir)/configure
- 
- # Run reindent on the library
- reindent:
--	./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
-+	$(HOSTPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
- 
- # Rerun configure with the same options as it was run last time,
- # provided the config.status script exists
-@@ -1242,7 +1244,7 @@ funny:
- 
- # Perform some verification checks on any modified files.
- patchcheck:
--	$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
-+	$(RUNSHARED) $(HOSTPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
- 
- # Dependencies
- 

+ 0 - 26
package/python2/patches/patch-configure

@@ -1,26 +0,0 @@
---- Python-2.7.1.orig/configure	2010-11-01 02:47:19.000000000 +0100
-+++ Python-2.7.1/configure	2011-10-14 17:36:48.000000000 +0200
-@@ -2972,12 +2972,12 @@ fi
- $as_echo_n "checking MACHDEP... " >&6; }
- if test -z "$MACHDEP"
- then
--	ac_sys_system=`uname -s`
-+	ac_sys_system=Linux
- 	if test "$ac_sys_system" = "AIX" \
- 	-o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
- 		ac_sys_release=`uname -v`
- 	else
--		ac_sys_release=`uname -r`
-+		ac_sys_release=2.6
- 	fi
- 	ac_md_system=`echo $ac_sys_system |
- 			   tr -d '/ ' | tr '[A-Z]' '[a-z]'`
-@@ -3150,7 +3150,7 @@ EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
- 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking machine type as reported by uname -m" >&5
- $as_echo_n "checking machine type as reported by uname -m... " >&6; }
--ac_sys_machine=`uname -m`
-+ac_sys_machine=x86_64
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_sys_machine" >&5
- $as_echo "$ac_sys_machine" >&6; }
- 

+ 76 - 81
package/python2/patches/patch-setup_py

@@ -1,96 +1,91 @@
-diff -Nur Python-2.7.orig/setup.py Python-2.7/setup.py
---- Python-2.7.1.orig/setup.py	2010-10-31 17:40:21.000000000 +0100
-+++ Python-2.7.1/setup.py	2011-10-06 20:34:53.328787057 +0200
-@@ -21,7 +21,7 @@ from distutils.spawn import find_executa
- COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
+--- Python-2.7.5.orig/setup.py	2013-05-12 05:32:54.000000000 +0200
++++ Python-2.7.5/setup.py	2013-10-29 07:33:37.000000000 +0100
+@@ -74,7 +74,7 @@ def find_file(filename, std_dirs, paths)
+     'paths' is a list of additional locations to check; if the file is
+         found in one of them, the resulting list will contain the directory.
+     """
+-    if host_platform == 'darwin':
++    if host_platform == 'darwin' and not cross_compiling:
+         # Honor the MacOSX SDK setting when one was specified.
+         # An SDK is a directory with the same structure as a real
+         # system, but with only header files and libraries.
+@@ -84,7 +84,7 @@ def find_file(filename, std_dirs, paths)
+     for dir in std_dirs:
+         f = os.path.join(dir, filename)
  
- # This global variable is used to hold the list of modules to be disabled.
--disabled_module_list = []
-+disabled_module_list = ['nis']
+-        if host_platform == 'darwin' and is_macosx_sdk_path(dir):
++        if host_platform == 'darwin' and is_macosx_sdk_path(dir) and not cross_compiling:
+             f = os.path.join(sysroot, dir[1:], filename)
  
- def add_dir_to_list(dirlist, dir):
-     """Add the directory 'dir' to the list 'dirlist' (at the front) if
-@@ -307,48 +307,14 @@ class PyBuildExt(build_ext):
-         ext_filename = os.path.join(
-             self.build_lib,
-             self.get_ext_filename(self.get_ext_fullname(ext.name)))
--        try:
--            imp.load_dynamic(ext.name, ext_filename)
--        except ImportError, why:
--            self.failed.append(ext.name)
--            self.announce('*** WARNING: renaming "%s" since importing it'
--                          ' failed: %s' % (ext.name, why), level=3)
--            assert not self.inplace
--            basename, tail = os.path.splitext(ext_filename)
--            newname = basename + "_failed" + tail
--            if os.path.exists(newname):
--                os.remove(newname)
--            os.rename(ext_filename, newname)
--
--            # XXX -- This relies on a Vile HACK in
--            # distutils.command.build_ext.build_extension().  The
--            # _built_objects attribute is stored there strictly for
--            # use here.
--            # If there is a failure, _built_objects may not be there,
--            # so catch the AttributeError and move on.
--            try:
--                for filename in self._built_objects:
--                    os.remove(filename)
--            except AttributeError:
--                self.announce('unable to remove files (ignored)')
--        except:
--            exc_type, why, tb = sys.exc_info()
--            self.announce('*** WARNING: importing extension "%s" '
--                          'failed with %s: %s' % (ext.name, exc_type, why),
--                          level=3)
--            self.failed.append(ext.name)
+         if os.path.exists(f): return []
+@@ -93,7 +93,7 @@ def find_file(filename, std_dirs, paths)
+     for dir in paths:
+         f = os.path.join(dir, filename)
  
-     def get_platform(self):
--        # Get value of sys.platform
--        for platform in ['cygwin', 'beos', 'darwin', 'atheos', 'osf1']:
--            if sys.platform.startswith(platform):
--                return platform
--        return sys.platform
-+        return 'linux'
+-        if host_platform == 'darwin' and is_macosx_sdk_path(dir):
++        if host_platform == 'darwin' and is_macosx_sdk_path(dir) and not cross_compiling:
+             f = os.path.join(sysroot, dir[1:], filename)
+ 
+         if os.path.exists(f):
+@@ -107,7 +107,7 @@ def find_library_file(compiler, libname,
+     if result is None:
+         return None
+ 
+-    if host_platform == 'darwin':
++    if host_platform == 'darwin' and not cross_compiling:
+         sysroot = macosx_sdk_root()
+ 
+     # Check whether the found file is in one of the standard directories
+@@ -116,7 +116,7 @@ def find_library_file(compiler, libname,
+         # Ensure path doesn't end with path separator
+         p = p.rstrip(os.sep)
+ 
+-        if host_platform == 'darwin' and is_macosx_sdk_path(p):
++        if host_platform == 'darwin' and is_macosx_sdk_path(p) and not cross_compiling:
+             if os.path.join(sysroot, p[1:]) == dirname:
+                 return [ ]
+ 
+@@ -129,7 +129,7 @@ def find_library_file(compiler, libname,
+         # Ensure path doesn't end with path separator
+         p = p.rstrip(os.sep)
+ 
+-        if host_platform == 'darwin' and is_macosx_sdk_path(p):
++        if host_platform == 'darwin' and is_macosx_sdk_path(p) and not cross_compiling:
+             if os.path.join(sysroot, p[1:]) == dirname:
+                 return [ p ]
+ 
+@@ -437,10 +437,12 @@ class PyBuildExt(build_ext):
  
      def detect_modules(self):
          # Ensure that /usr/local is always used
 -        add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
 -        add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-+        #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-+        #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
++        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')
+         self.add_gcc_paths()
+-        self.add_multiarch_paths()
++        if not cross_compiling:
++            self.add_multiarch_paths()
  
          # Add paths specified in the environment variables LDFLAGS and
          # CPPFLAGS for header and library files.
-@@ -384,17 +350,6 @@ class PyBuildExt(build_ext):
-                     for directory in reversed(options.dirs):
+@@ -477,7 +479,8 @@ class PyBuildExt(build_ext):
                          add_dir_to_list(dir_list, directory)
  
--        if os.path.normpath(sys.prefix) != '/usr' \
+         if os.path.normpath(sys.prefix) != '/usr' \
 -                and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
--            # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
--            # (PYTHONFRAMEWORK is set) to avoid # linking problems when
--            # building a framework with different architectures than
--            # the one that is currently installed (issue #7473)
--            add_dir_to_list(self.compiler.library_dirs,
--                            sysconfig.get_config_var("LIBDIR"))
--            add_dir_to_list(self.compiler.include_dirs,
--                            sysconfig.get_config_var("INCLUDEDIR"))
--
-         try:
-             have_unicode = unicode
-         except NameError:
-@@ -403,11 +358,8 @@ class PyBuildExt(build_ext):
-         # 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.
--        lib_dirs = self.compiler.library_dirs + [
--            '/lib64', '/usr/lib64',
--            '/lib', '/usr/lib',
--            ]
--        inc_dirs = self.compiler.include_dirs + ['/usr/include']
-+        lib_dirs = self.compiler.library_dirs + ['@@STAGING_DIR@@/usr/lib']
-+        inc_dirs = self.compiler.include_dirs + ['@@STAGING_DIR@@/usr/include']
-         exts = []
-         missing = []
++                and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
++                and not cross_compiling:
+             # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
+             # (PYTHONFRAMEWORK is set) to avoid # linking problems when
+             # building a framework with different architectures than
+@@ -530,7 +533,7 @@ class PyBuildExt(build_ext):
+         if host_platform == 'hp-ux11':
+             lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32']
  
+-        if host_platform == 'darwin':
++        if host_platform == 'darwin' and not cross_compiling:
+             # This should work on any unixy platform ;-)
+             # If the user has bothered specifying additional -I and -L flags
+             # in OPT and LDFLAGS we might as well use them here.

+ 2 - 4
package/python3/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		python3
 PKG_VERSION:=		3.3.2
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		0a2ea57f6184baf45b150aee53c0c8da
 PKG_DESCR:=		Python scripting language (Version 3)
 PKG_SECTION:=		lang
@@ -65,7 +65,6 @@ endef
 $(eval $(call HOST_template,PYTHON3,python3,${PKG_VERSION}-${PKG_RELEASE}))
 $(eval $(call PKG_template,PYTHON3,python3,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
-$(eval $(call PKG_template,PYTHON3_MOD_ZLIB,python3-mod-zlib,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_ZLIB},${PKGFD_MOD_ZLIB},${PKG_SECTION}))
 $(eval $(call PKG_template,PYTHON3_MOD_BZ2,python3-mod-bz2,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_BZ2},${PKGFD_MOD_BZ2},${PKG_SECTION}))
 $(eval $(call PKG_template,PYTHON3_MOD_EXPAT,python3-mod-expat,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_EXPAT},${PKGFD_MOD_EXPAT},${PKG_SECTION}))
 $(eval $(call PKG_template,PYTHON3_MOD_SQLITE,python3-mod-sqlite,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SQLITE},${PKGFD_MOD_SQLITE},${PKG_SECTION}))
@@ -116,8 +115,7 @@ python3-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
 	${CP} ${WRKINST}/usr/lib/python3.3/* ${IDIR_PYTHON3}/usr/lib/python3.3
 	${CP} ${WRKINST}/usr/include/python3.3m/pyconfig.h \
 		 ${IDIR_PYTHON3}/usr/include/python3.3m
-	find ${IDIR_PYTHON3} -name "\*.pyc" -o -name "*\.pyo" -exec rm {} \;
-	for i in zlib _bz2 _ncurses _ssl _gdbm _sqlite pyexpat readline; do \
+	for i in zlib _bz2 _curses _ssl _gdbm _sqlite pyexpat readline; do \
 		rm ${IDIR_PYTHON3}/usr/lib/python3.3/lib-dynload/$${i}*so; \
 	done
 

+ 30 - 1
package/python3/patches/patch-Makefile_pre_in

@@ -1,5 +1,5 @@
 --- Python-3.3.2.orig/Makefile.pre.in	2013-05-15 18:32:57.000000000 +0200
-+++ Python-3.3.2/Makefile.pre.in	2013-10-26 09:45:42.000000000 +0200
++++ Python-3.3.2/Makefile.pre.in	2013-10-29 07:56:46.000000000 +0100
 @@ -70,9 +70,9 @@ MAKESETUP=      $(srcdir)/Modules/makese
  OPT=		@OPT@
  BASECFLAGS=	@BASECFLAGS@
@@ -39,3 +39,32 @@
  $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
  		$(MAKE) $(GRAMMAR_H)
  		touch $(GRAMMAR_C)
+@@ -1112,28 +1113,6 @@ libinstall:	build_all $(srcdir)/Lib/$(PL
+ 		$(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+ 			$(DESTDIR)$(LIBDEST)/distutils/tests ; \
+ 	fi
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST) -f \
+-		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-		$(DESTDIR)$(LIBDEST)
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST) -f \
+-		-x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-		$(DESTDIR)$(LIBDEST)
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST)/site-packages -f \
+-		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
+-		-d $(LIBDEST)/site-packages -f \
+-		-x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+-	-PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-		$(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
+ 
+ # Create the PLATDIR source directory, if one wasn't distributed..
+ $(srcdir)/Lib/$(PLATDIR):

+ 0 - 14
package/python3/patches/patch-Modules__io__iomodule_h

@@ -1,14 +0,0 @@
---- Python-3.1.1.orig/Modules/_io/_iomodule.h	2009-06-12 04:07:12.000000000 +0200
-+++ Python-3.1.1/Modules/_io/_iomodule.h	2009-09-16 22:02:30.000000000 +0200
-@@ -99,7 +99,10 @@ typedef off_t Py_off_t;
- # define PY_OFF_T_MAX       LONG_MAX
- # define PY_OFF_T_MIN       LONG_MIN
- #else
--# error off_t does not match either size_t, long, or long long!
-+# define PyLong_AsOff_t     PyLong_AsSsize_t
-+# define PyLong_FromOff_t   PyLong_FromSsize_t
-+# define PY_OFF_T_MAX       PY_SSIZE_T_MAX
-+# define PY_OFF_T_MIN       PY_SSIZE_T_MIN
- #endif
- 
- #endif