summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/python2/Makefile155
-rw-r--r--package/python2/patches/patch-Makefile_pre_in198
-rw-r--r--package/python2/patches/patch-configure26
-rw-r--r--package/python2/patches/patch-setup_py157
-rw-r--r--package/python3/Makefile3
5 files changed, 207 insertions, 332 deletions
diff --git a/package/python2/Makefile b/package/python2/Makefile
index b97266468..fdf39f45f 100644
--- a/package/python2/Makefile
+++ b/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
diff --git a/package/python2/patches/patch-Makefile_pre_in b/package/python2/patches/patch-Makefile_pre_in
index f18bd9a72..e4f59f0ba 100644
--- a/package/python2/patches/patch-Makefile_pre_in
+++ b/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
-
diff --git a/package/python2/patches/patch-configure b/package/python2/patches/patch-configure
deleted file mode 100644
index e47d860fd..000000000
--- a/package/python2/patches/patch-configure
+++ /dev/null
@@ -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; }
-
diff --git a/package/python2/patches/patch-setup_py b/package/python2/patches/patch-setup_py
index fb91da1d3..f8f2fa1c0 100644
--- a/package/python2/patches/patch-setup_py
+++ b/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.
diff --git a/package/python3/Makefile b/package/python3/Makefile
index 122e14bff..c18423290 100644
--- a/package/python3/Makefile
+++ b/package/python3/Makefile
@@ -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,7 +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
- 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