From 83b3b0e0b31b7aff9c72725aec15fc6eb770811d Mon Sep 17 00:00:00 2001 From: wen Date: Sun, 25 Dec 2016 15:08:35 +0000 Subject: - Repocopy lang/python35 --> lang/python36 and update to 3.6.0 --- .../patch-Lib_distutils_command_install__lib.py | 41 +++++++++++++ ...patch-Lib_distutils_tests_test__install__lib.py | 33 +++++++++++ lang/python36/files/patch-Makefile.pre.in | 63 ++++++++++++++++++++ ...patch-Modules___ctypes__libffi__src__arm__ffi.c | 36 ++++++++++++ lang/python36/files/patch-issue20210 | 68 ++++++++++++++++++++++ lang/python36/files/pkg-message.in | 10 ++++ 6 files changed, 251 insertions(+) create mode 100644 lang/python36/files/patch-Lib_distutils_command_install__lib.py create mode 100644 lang/python36/files/patch-Lib_distutils_tests_test__install__lib.py create mode 100644 lang/python36/files/patch-Makefile.pre.in create mode 100644 lang/python36/files/patch-Modules___ctypes__libffi__src__arm__ffi.c create mode 100644 lang/python36/files/patch-issue20210 create mode 100644 lang/python36/files/pkg-message.in (limited to 'lang/python36/files') diff --git a/lang/python36/files/patch-Lib_distutils_command_install__lib.py b/lang/python36/files/patch-Lib_distutils_command_install__lib.py new file mode 100644 index 000000000000..6e925311e57d --- /dev/null +++ b/lang/python36/files/patch-Lib_distutils_command_install__lib.py @@ -0,0 +1,41 @@ +From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 +From: Brendan Molloy +Date: Mon, 4 Jan 2016 23:14:06 +1100 +Subject: [PATCH] Check bytecode file actually exists and tests + +Should solve issue 20397, where using the --record argument results +in files that failed to generate bytecode files are added to the +record file nonetheless. +--- + Lib/distutils/command/install_lib.py | 17 +++++++++++++---- + Lib/distutils/tests/test_install_lib.py | 8 ++++++-- + 2 files changed, 19 insertions(+), 6 deletions(-) + +--- Lib/distutils/command/install_lib.py.orig 2015-12-07 01:39:07 UTC ++++ Lib/distutils/command/install_lib.py +@@ -164,12 +164,21 @@ class install_lib(Command): + ext = os.path.splitext(os.path.normcase(py_file))[1] + if ext != PYTHON_SOURCE_EXTENSION: + continue ++ + if self.compile: +- bytecode_files.append(importlib.util.cache_from_source( +- py_file, optimization='')) ++ candidate = importlib.util.cache_from_source( ++ py_file, optimization='') ++ ++ if os.path.isfile(candidate): ++ bytecode_files.append(candidate) ++ + if self.optimize > 0: +- bytecode_files.append(importlib.util.cache_from_source( +- py_file, optimization=self.optimize)) ++ candidate = importlib.util.cache_from_source( ++ py_file, optimization=self.optimize) ++ ++ if os.path.isfile(candidate): ++ bytecode_files.append(candidate) ++ + + return bytecode_files + diff --git a/lang/python36/files/patch-Lib_distutils_tests_test__install__lib.py b/lang/python36/files/patch-Lib_distutils_tests_test__install__lib.py new file mode 100644 index 000000000000..c5531b92ee92 --- /dev/null +++ b/lang/python36/files/patch-Lib_distutils_tests_test__install__lib.py @@ -0,0 +1,33 @@ +From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 +From: Brendan Molloy +Date: Mon, 4 Jan 2016 23:14:06 +1100 +Subject: [PATCH] Check bytecode file actually exists and tests + +Should solve issue 20397, where using the --record argument results +in files that failed to generate bytecode files are added to the +record file nonetheless. +--- + Lib/distutils/command/install_lib.py | 17 +++++++++++++---- + Lib/distutils/tests/test_install_lib.py | 8 ++++++-- + 2 files changed, 19 insertions(+), 6 deletions(-) + +--- Lib/distutils/tests/test_install_lib.py.orig 2015-12-07 01:39:07 UTC ++++ Lib/distutils/tests/test_install_lib.py +@@ -64,11 +64,15 @@ class InstallLibTestCase(support.Tempdir + cmd.distribution.ext_modules = [Extension('foo', ['xxx'])] + cmd.distribution.packages = ['spam'] + cmd.distribution.script_name = 'setup.py' ++ ++ # Create rubbish, uncompilable file ++ f = os.path.join(project_dir, 'spam', 'rubbish.py') ++ self.write_file(f, 'rubbish()') + + # get_outputs should return 4 elements: spam/__init__.py and .pyc, +- # foo.import-tag-abiflags.so / foo.pyd ++ # foo.import-tag-abiflags.so / foo.pyd and rubbish.py (no .pyc) + outputs = cmd.get_outputs() +- self.assertEqual(len(outputs), 4, outputs) ++ self.assertEqual(len(outputs), 5, outputs) + + def test_get_inputs(self): + project_dir, dist = self.create_dist() diff --git a/lang/python36/files/patch-Makefile.pre.in b/lang/python36/files/patch-Makefile.pre.in new file mode 100644 index 000000000000..117a6bb12721 --- /dev/null +++ b/lang/python36/files/patch-Makefile.pre.in @@ -0,0 +1,63 @@ +# Description: Remove duplicate CFLAGS, CPPFLAGS, LDFLAGS by stripping CONFIGURE_* +# Submitted by: koobs (r326729) +# TODO: Upstream + +# Description: Create symlinks for non-ABI-suffixed python*-config and ABI-suffixed python-*.pc +# Submitted by: antoine@ (r358029) +# TODO: Upstream + +--- Makefile.pre.in.orig 2016-12-26 00:30:30.873942000 +0800 ++++ Makefile.pre.in 2016-12-26 02:51:45.233175000 +0800 +@@ -80,23 +80,20 @@ + OPT= @OPT@ + BASECFLAGS= @BASECFLAGS@ + BASECPPFLAGS= @BASECPPFLAGS@ +-CONFIGURE_CFLAGS= @CFLAGS@ + # CFLAGS_NODIST is used for building the interpreter and stdlib C extensions. + # Use it when a compiler flag should _not_ be part of the distutils CFLAGS + # once Python is installed (Issue #21121). + CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@ +-CONFIGURE_CPPFLAGS= @CPPFLAGS@ +-CONFIGURE_LDFLAGS= @LDFLAGS@ + # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the + # command line to append to these values without stomping the pre-set + # values. +-PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) ++PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CFLAGS) $(EXTRA_CFLAGS) + PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) + # 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 +-PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS) +-PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS) ++PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CPPFLAGS) ++PY_LDFLAGS= $(LDFLAGS) + NO_AS_NEEDED= @NO_AS_NEEDED@ + LDLAST= @LDLAST@ + SGI_ABI= @SGI_ABI@ +@@ -1145,12 +1142,6 @@ + else true; \ + fi + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE)) +- -if test "$(VERSION)" != "$(LDVERSION)"; then \ +- rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \ +- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \ +- rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \ +- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \ +- fi + -rm -f $(DESTDIR)$(BINDIR)/python3-config + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config) + -rm -f $(DESTDIR)$(LIBPC)/python3.pc +@@ -1412,6 +1403,12 @@ + $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh + $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py + $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config ++ -if test "$(VERSION)" != "$(LDVERSION)"; then \ ++ rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \ ++ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \ ++ rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \ ++ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \ ++ fi + @if [ -s Modules/python.exp -a \ + "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ + echo; echo "Installing support files for building shared extension modules on AIX:"; \ diff --git a/lang/python36/files/patch-Modules___ctypes__libffi__src__arm__ffi.c b/lang/python36/files/patch-Modules___ctypes__libffi__src__arm__ffi.c new file mode 100644 index 000000000000..56e434277fe8 --- /dev/null +++ b/lang/python36/files/patch-Modules___ctypes__libffi__src__arm__ffi.c @@ -0,0 +1,36 @@ +# Description: Fix _ctypes abort on import for FreeBSD/ARM. This is an issue +# for anything !apple that is using the libcompiler_rt provided by clang on arm +# PR: ports/149167 ports/184517 +# Patch by: cognet@ (to be upstreamed @ LLVM) + +--- ./Modules/_ctypes/libffi/src/arm/ffi.c.orig 2013-11-17 18:22:57.000000000 +1100 ++++ ./Modules/_ctypes/libffi/src/arm/ffi.c 2013-12-03 19:23:24.521993369 +1100 +@@ -33,6 +33,11 @@ + + #include + ++#if defined(__FreeBSD__) && defined(__arm__) ++#include ++#include ++#endif ++ + /* Forward declares. */ + static int vfp_type_p (ffi_type *); + static void layout_vfp_args (ffi_cif *); +@@ -582,6 +587,16 @@ + + #else + ++#if defined(__FreeBSD__) && defined(__arm__) ++#define __clear_cache(start, end) do { \ ++ struct arm_sync_icache_args ua; \ ++ \ ++ ua.addr = (uintptr_t)(start); \ ++ ua.len = (char *)(end) - (char *)start; \ ++ sysarch(ARM_SYNC_ICACHE, &ua); \ ++ } while (0); ++#endif ++ + #define FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX) \ + ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \ + unsigned int __fun = (unsigned int)(FUN); \ diff --git a/lang/python36/files/patch-issue20210 b/lang/python36/files/patch-issue20210 new file mode 100644 index 000000000000..38ad041e322c --- /dev/null +++ b/lang/python36/files/patch-issue20210 @@ -0,0 +1,68 @@ +# Backport patch 0001 from Issue #20210 +# Issue: http://bugs.python.org/issue20210 +# By: Thomas Petazzoni + +--- ./Makefile.pre.in.orig 2014-03-24 22:45:17.908886504 +1100 ++++ ./Makefile.pre.in 2014-03-24 22:47:55.503779805 +1100 +@@ -172,6 +172,8 @@ + # configure script arguments + CONFIG_ARGS= @CONFIG_ARGS@ + ++# disabled extensions ++DISABLED_EXTENSIONS= @DISABLED_EXTENSIONS@ + + # Subdirectories with code + SRCDIRS= @SRCDIRS@ +@@ -555,6 +557,7 @@ + esac; \ + $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ ++ DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ + $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build + + # Build static library +@@ -1352,7 +1355,8 @@ + # Install the dynamically loadable modules + # This goes into $(exec_prefix) + sharedinstall: sharedmods +- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ ++ $(RUNSHARED) DISABLED_EXTENSIONS="$(DISABLED_EXTENSIONS)" \ ++ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ +--- ./configure.ac.orig 2014-03-24 22:48:10.442551831 +1100 ++++ ./configure.ac 2014-03-24 22:48:42.059827384 +1100 +@@ -2331,6 +2331,8 @@ + + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) + ++AC_SUBST(DISABLED_EXTENSIONS) ++ + # Check for use of the system expat library + AC_MSG_CHECKING(for --with-system-expat) + AC_ARG_WITH(system_expat, +--- configure.orig 2015-03-01 13:57:08.000000000 +0300 ++++ configure 2015-03-01 13:57:30.000000000 +0300 +@@ -650,6 +650,7 @@ + TCLTK_LIBS + TCLTK_INCLUDES + LIBFFI_INCLUDEDIR ++DISABLED_EXTENSIONS + PKG_CONFIG_LIBDIR + PKG_CONFIG_PATH + PKG_CONFIG +--- ./setup.py.orig 2014-03-24 22:48:48.495472513 +1100 ++++ ./setup.py 2014-03-24 22:49:20.076122201 +1100 +@@ -33,7 +33,10 @@ + COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig.get_config_var("CONFIG_ARGS")) + + # This global variable is used to hold the list of modules to be disabled. +-disabled_module_list = [] ++try: ++ disabled_module_list = sysconfig.get_config_var("DISABLED_EXTENSIONS").split(" ") ++except KeyError: ++ disabled_module_list = list() + + def add_dir_to_list(dirlist, dir): + """Add the directory 'dir' to the list 'dirlist' (after any relative diff --git a/lang/python36/files/pkg-message.in b/lang/python36/files/pkg-message.in new file mode 100644 index 000000000000..c2325386f571 --- /dev/null +++ b/lang/python36/files/pkg-message.in @@ -0,0 +1,10 @@ +=========================================================================== + +Note that some standard Python modules are provided as separate ports +as they require additional dependencies. They are available as: + +py%%PYTHON_SUFFIX%%-gdbm databases/py%%PYTHON_SUFFIX%%-gdbm +py%%PYTHON_SUFFIX%%-sqlite3 databases/py%%PYTHON_SUFFIX%%-sqlite3 +py%%PYTHON_SUFFIX%%-tkinter x11-toolkits/py%%PYTHON_SUFFIX%%-tkinter + +=========================================================================== -- cgit