diff options
Diffstat (limited to 'lang/python36/files')
-rw-r--r-- | lang/python36/files/patch-Lib_distutils_command_install__lib.py | 41 | ||||
-rw-r--r-- | lang/python36/files/patch-Lib_distutils_tests_test__install__lib.py | 33 | ||||
-rw-r--r-- | lang/python36/files/patch-Makefile.pre.in | 53 | ||||
-rw-r--r-- | lang/python36/files/patch-Misc__python-config.sh.in | 11 | ||||
-rw-r--r-- | lang/python36/files/patch-Modules___ctypes__libffi__src__arm__ffi.c | 36 | ||||
-rw-r--r-- | lang/python36/files/patch-issue20210 | 68 | ||||
-rw-r--r-- | lang/python36/files/patch-issue40422_issue40423 | 207 | ||||
-rw-r--r-- | lang/python36/files/pkg-message.in | 12 |
8 files changed, 0 insertions, 461 deletions
diff --git a/lang/python36/files/patch-Lib_distutils_command_install__lib.py b/lang/python36/files/patch-Lib_distutils_command_install__lib.py deleted file mode 100644 index 6e925311e57d..000000000000 --- a/lang/python36/files/patch-Lib_distutils_command_install__lib.py +++ /dev/null @@ -1,41 +0,0 @@ -From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 -From: Brendan Molloy <brendan@bbqsrc.net> -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 deleted file mode 100644 index c5531b92ee92..000000000000 --- a/lang/python36/files/patch-Lib_distutils_tests_test__install__lib.py +++ /dev/null @@ -1,33 +0,0 @@ -From 9934ce31b8447667f71c211e559a8de71e8263db Mon Sep 17 00:00:00 2001 -From: Brendan Molloy <brendan@bbqsrc.net> -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 deleted file mode 100644 index 28d386521c29..000000000000 --- a/lang/python36/files/patch-Makefile.pre.in +++ /dev/null @@ -1,53 +0,0 @@ -# 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 2018-12-25 07:28:06 UTC -+++ Makefile.pre.in -@@ -79,7 +79,6 @@ MAKESETUP= $(srcdir)/Modules/makesetup - 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). -@@ -88,18 +87,16 @@ CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@ - # Use it when a linker flag should _not_ be part of the distutils LDFLAGS - # once Python is installed (bpo-35257) - CONFIGURE_LDFLAGS_NODIST=@LDFLAGS_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) - PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST) - NO_AS_NEEDED= @NO_AS_NEEDED@ - LDLAST= @LDLAST@ -@@ -1451,6 +1448,12 @@ libainstall: @DEF_MAKE_RULE@ python-config - $(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-Misc__python-config.sh.in b/lang/python36/files/patch-Misc__python-config.sh.in deleted file mode 100644 index ebb0c6a51f6d..000000000000 --- a/lang/python36/files/patch-Misc__python-config.sh.in +++ /dev/null @@ -1,11 +0,0 @@ ---- Misc/python-config.sh.in.orig 2018-07-13 21:07:16 UTC -+++ Misc/python-config.sh.in -@@ -15,7 +15,7 @@ fi - # Returns the actual prefix where this script was installed to. - installed_prefix () - { -- RESULT=$(dirname $(cd $(dirname "$1") && pwd -P)) -+ RESULT=$(dirname $(cd $(dirname $(realpath "$1")) && pwd -P)) - if which readlink >/dev/null 2>&1 ; then - if readlink -f "$RESULT" >/dev/null 2>&1; then - RESULT=$(readlink -f "$RESULT") 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 deleted file mode 100644 index 56e434277fe8..000000000000 --- a/lang/python36/files/patch-Modules___ctypes__libffi__src__arm__ffi.c +++ /dev/null @@ -1,36 +0,0 @@ -# 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 <stdlib.h> - -+#if defined(__FreeBSD__) && defined(__arm__) -+#include <sys/types.h> -+#include <machine/sysarch.h> -+#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 deleted file mode 100644 index 90330d8f90a5..000000000000 --- a/lang/python36/files/patch-issue20210 +++ /dev/null @@ -1,68 +0,0 @@ -# Backport patch 0001 from Issue #20210 -# Issue: https://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/patch-issue40422_issue40423 b/lang/python36/files/patch-issue40422_issue40423 deleted file mode 100644 index fb123bb547c7..000000000000 --- a/lang/python36/files/patch-issue40422_issue40423 +++ /dev/null @@ -1,207 +0,0 @@ -diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c -index 07dd54dba9..ef1b7a8ad5 100644 ---- Modules/_posixsubprocess.c -+++ Modules/_posixsubprocess.c -@@ -21,6 +21,8 @@ - #include <dirent.h> - #endif - -+#include "posixmodule.h" -+ - #ifdef _Py_MEMORY_SANITIZER - # include <sanitizer/msan_interface.h> - #endif -@@ -222,7 +222,6 @@ _close_fds_by_brute_force(long start_fd, PyObject *py_fds_to_keep) - long end_fd = safe_get_max_fd(); - Py_ssize_t num_fds_to_keep = PyTuple_GET_SIZE(py_fds_to_keep); - Py_ssize_t keep_seq_idx; -- int fd_num; - /* As py_fds_to_keep is sorted we can loop through the list closing - * fds inbetween any in the keep list falling within our range. */ - for (keep_seq_idx = 0; keep_seq_idx < num_fds_to_keep; ++keep_seq_idx) { -@@ -230,15 +229,11 @@ _close_fds_by_brute_force(long start_fd, PyObject *py_fds_to_keep) - int keep_fd = PyLong_AsLong(py_keep_fd); - if (keep_fd < start_fd) - continue; -- for (fd_num = start_fd; fd_num < keep_fd; ++fd_num) { -- close(fd_num); -- } -+ _Py_closerange(start_fd, keep_fd - 1); - start_fd = keep_fd + 1; - } - if (start_fd <= end_fd) { -- for (fd_num = start_fd; fd_num < end_fd; ++fd_num) { -- close(fd_num); -- } -+ _Py_closerange(start_fd, end_fd); - } - } - -diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c -index 776a3d249a..f46df9ddf7 100644 ---- Modules/posixmodule.c -+++ Modules/posixmodule.c -@@ -7667,6 +7667,78 @@ os_close_impl(PyObject *module, int fd) - Py_RETURN_NONE; - } - -+/* Our selection logic for which function to use is as follows: -+ * 1. If close_range(2) is available, always prefer that; it's better for -+ * contiguous ranges like this than fdwalk(3) which entails iterating over -+ * the entire fd space and simply doing nothing for those outside the range. -+ * 2. If closefrom(2) is available, we'll attempt to use that next if we're -+ * closing up to sysconf(_SC_OPEN_MAX). -+ * 2a. Fallback to fdwalk(3) if we're not closing up to sysconf(_SC_OPEN_MAX), -+ * as that will be more performant if the range happens to have any chunk of -+ * non-opened fd in the middle. -+ * 2b. If fdwalk(3) isn't available, just do a plain close(2) loop. -+ */ -+#ifdef __FreeBSD__ -+#define USE_CLOSEFROM -+#endif /* __FreeBSD__ */ -+ -+#ifdef HAVE_FDWALK -+#define USE_FDWALK -+#endif /* HAVE_FDWALK */ -+ -+#ifdef USE_FDWALK -+static int -+_fdwalk_close_func(void *lohi, int fd) -+{ -+ int lo = ((int *)lohi)[0]; -+ int hi = ((int *)lohi)[1]; -+ -+ if (fd >= hi) -+ return 1; -+ else if (fd >= lo) -+ close(fd); -+ return 0; -+} -+#endif /* USE_FDWALK */ -+ -+/* Closes all file descriptors in [first, last], ignoring errors. */ -+void -+_Py_closerange(int first, int last) -+{ -+ first = Py_MAX(first, 0); -+ _Py_BEGIN_SUPPRESS_IPH -+#ifdef HAVE_CLOSE_RANGE -+ if (close_range(first, last, 0) == 0 || errno != ENOSYS) { -+ /* Any errors encountered while closing file descriptors are ignored; -+ * ENOSYS means no kernel support, though, -+ * so we'll fallback to the other methods. */ -+ } -+ else -+#endif /* HAVE_CLOSE_RANGE */ -+#ifdef USE_CLOSEFROM -+ if (last >= sysconf(_SC_OPEN_MAX)) { -+ /* Any errors encountered while closing file descriptors are ignored */ -+ closefrom(first); -+ } -+ else -+#endif /* USE_CLOSEFROM */ -+#ifdef USE_FDWALK -+ { -+ int lohi[2]; -+ lohi[0] = first; -+ lohi[1] = last + 1; -+ fdwalk(_fdwalk_close_func, lohi); -+ } -+#else -+ { -+ for (int i = first; i <= last; i++) { -+ /* Ignore errors */ -+ (void)close(i); -+ } -+ } -+#endif /* USE_FDWALK */ -+ _Py_END_SUPPRESS_IPH -+} - - /*[clinic input] - os.closerange -@@ -7682,12 +7754,8 @@ static PyObject * - os_closerange_impl(PyObject *module, int fd_low, int fd_high) - /*[clinic end generated code: output=0ce5c20fcda681c2 input=5855a3d053ebd4ec]*/ - { -- int i; - Py_BEGIN_ALLOW_THREADS -- _Py_BEGIN_SUPPRESS_IPH -- for (i = Py_MAX(fd_low, 0); i < fd_high; i++) -- close(i); -- _Py_END_SUPPRESS_IPH -+ _Py_closerange(fd_low, fd_high - 1); - Py_END_ALLOW_THREADS - Py_RETURN_NONE; - } -diff --git a/Modules/posixmodule.h b/Modules/posixmodule.h -index 1ec1833825..be2308ea86 100644 ---- Modules/posixmodule.h -+++ Modules/posixmodule.h -@@ -19,6 +19,8 @@ PyAPI_FUNC(int) _Py_Gid_Converter(PyObject *, void *); - #endif /* MS_WINDOWS */ - #endif - -+PyAPI_FUNC(void) _Py_closerange(int first, int last); -+ - #ifdef __cplusplus - } - #endif -diff --git a/configure b/configure -index e39c16eee2..1f34b4de74 100755 ---- configure -+++ configure -@@ -11420,9 +11420,9 @@ fi - - # checks for library functions - for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ -- clock confstr ctermid dup3 execv faccessat fchmod fchmodat fchown fchownat \ -- fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ -- futimens futimes gai_strerror getentropy \ -+ clock close_range confstr ctermid dup3 execv faccessat fchmod fchmodat fchown \ -+ fchownat fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate \ -+ futimesat futimens futimes gai_strerror getentropy \ - getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \ - getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \ - initgroups kill killpg lchown linkat lstat lutimes mmap \ -diff --git a/configure.ac b/configure.ac -index cf280506bd..09886eaeef 100644 ---- configure.ac -+++ configure.ac -@@ -3531,9 +3531,9 @@ fi - - # checks for library functions - AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ -- clock confstr ctermid dup3 execv faccessat fchmod fchmodat fchown fchownat \ -- fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ -- futimens futimes gai_strerror getentropy \ -+ clock close_range confstr ctermid dup3 execv faccessat fchmod fchmodat fchown \ -+ fchownat fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate \ -+ futimesat futimens futimes gai_strerror getentropy \ - getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \ - getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \ - initgroups kill killpg lchown linkat lstat lutimes mmap \ -diff --git a/pyconfig.h.in b/pyconfig.h.in -index 2fbbb6d20d..a4488cbe32 100644 ---- pyconfig.h.in -+++ pyconfig.h.in -@@ -128,6 +128,9 @@ - /* Define to 1 if you have the `clock_settime' function. */ - #undef HAVE_CLOCK_SETTIME - -+/* Define to 1 if you have the `close_range' function. */ -+#undef HAVE_CLOSE_RANGE -+ - /* Define if the C compiler supports computed gotos. */ - #undef HAVE_COMPUTED_GOTOS - -@@ -317,6 +320,9 @@ - /* Define to 1 if you have the `fdopendir' function. */ - #undef HAVE_FDOPENDIR - -+/* Define to 1 if you have the `fdwalk' function. */ -+#undef HAVE_FDWALK -+ - /* Define to 1 if you have the `fexecve' function. */ - #undef HAVE_FEXECVE - diff --git a/lang/python36/files/pkg-message.in b/lang/python36/files/pkg-message.in deleted file mode 100644 index 286359c9f272..000000000000 --- a/lang/python36/files/pkg-message.in +++ /dev/null @@ -1,12 +0,0 @@ -[ -{ type: install - message: <<EOM -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-gdbm@py%%PYTHON_SUFFIX%% -py%%PYTHON_SUFFIX%%-sqlite3 databases/py-sqlite3@py%%PYTHON_SUFFIX%% -py%%PYTHON_SUFFIX%%-tkinter x11-toolkits/py-tkinter@py%%PYTHON_SUFFIX%% -EOM -} -] |