UPDATE: lang/python 3.11.10 -> 3.12.8
This commit is contained in:
parent
15bd75493d
commit
0bd916750b
20 changed files with 8535 additions and 9180 deletions
|
@ -3,16 +3,21 @@
|
|||
# requirement of the PSF license, if it constitutes a change to
|
||||
# Python itself.
|
||||
|
||||
FULL_VERSION = 3.11.10
|
||||
SHARED_LIBS = python3.11 0.0
|
||||
VERSION_SPEC = >=3.11,<3.12
|
||||
PORTROACH = limit:^3\.11
|
||||
FULL_VERSION = 3.12.8
|
||||
SHARED_LIBS = python3.12 0.0
|
||||
VERSION_SPEC = >=3.12,<3.13
|
||||
PORTROACH = limit:^3\.12
|
||||
|
||||
REVISION = 0
|
||||
REVISION-main = 1
|
||||
|
||||
AUTOCONF_VERSION = 2.71
|
||||
|
||||
CONFIGURE_ENV += ac_cv_working_openssl_hashlib=yes \
|
||||
TCLTK_CFLAGS="-I${MODTCL_INCDIR} -I${MODTK_INCDIR} -I${X11BASE}/include" \
|
||||
TCLTK_LIBS="-L${X11BASE}/lib -l${MODTCL_LIB} -l${MODTK_LIB} -lpthread"
|
||||
TCLTK_LIBS="-L${X11BASE}/lib -l${MODTCL_LIB} -l${MODTK_LIB} -lpthread" \
|
||||
ac_cv_lib_panelw_update_panels=yes \
|
||||
PANEL_LIBS="-lncursesw -lpanelw"
|
||||
|
||||
# disable bundled pip in favour of the version from devel/py-pip
|
||||
CONFIGURE_ARGS += --with-ensurepip=no
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (Python-3.11.10.tgz) = kvL68kJoG/pAbVOlHhfULFNzr/4joTDNlpfhMu9XRwY=
|
||||
SIZE (Python-3.11.10.tgz) = 26532827
|
||||
SHA256 (Python-3.12.8.tgz) = WXhDXEeaN2ZIywKFTfO4kqzp7X0ysf6tZScSvunQOkU=
|
||||
SIZE (Python-3.12.8.tgz) = 27078774
|
||||
|
|
|
@ -4,7 +4,7 @@ of changes made to this version of Python for the OpenBSD package.
|
|||
1. OpenBSD packages require that sonames are under control of the
|
||||
ports infrastructure, configure.ac was patched to do this.
|
||||
|
||||
2. Conditionally enable modern hashes according to their availability.
|
||||
2. Disable scrypt, which is not currently available in LibreSSL.
|
||||
|
||||
3. Disable libuuid, otherwise Python prefers it over the libc uuid
|
||||
functions.
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
Index: Lib/test/test_asyncio/test_events.py
|
||||
--- Lib/test/test_asyncio/test_events.py.orig
|
||||
+++ Lib/test/test_asyncio/test_events.py
|
||||
@@ -2226,7 +2226,7 @@ else:
|
||||
@support.requires_mac_ver(10, 9)
|
||||
# Issue #20667: KqueueEventLoopTests.test_read_pty_output()
|
||||
# hangs on OpenBSD 5.5
|
||||
- @unittest.skipIf(sys.platform.startswith('openbsd'),
|
||||
+ @unittest.skipIf(sys.platform.startswith('secbsd'),
|
||||
'test hangs on OpenBSD')
|
||||
def test_read_pty_output(self):
|
||||
super().test_read_pty_output()
|
|
@ -1,12 +1,12 @@
|
|||
Index: Lib/test/test_fcntl.py
|
||||
--- Lib/test/test_fcntl.py.orig
|
||||
+++ Lib/test/test_fcntl.py
|
||||
@@ -24,7 +24,7 @@ def get_lockdata():
|
||||
else:
|
||||
start_len = "qq"
|
||||
@@ -56,7 +56,7 @@ class TestFcntl(unittest.TestCase):
|
||||
else:
|
||||
start_len = "qq"
|
||||
|
||||
- if (sys.platform.startswith(('netbsd', 'freebsd', 'openbsd'))
|
||||
+ if (sys.platform.startswith(('netbsd', 'freebsd', 'openbsd', 'secbsd'))
|
||||
or sys.platform == 'darwin'):
|
||||
if struct.calcsize('l') == 8:
|
||||
off_t = 'l'
|
||||
- if (sys.platform.startswith(('netbsd', 'freebsd', 'openbsd'))
|
||||
+ if (sys.platform.startswith(('netbsd', 'freebsd', 'openbsd', 'secbsd'))
|
||||
or sys.platform == 'darwin'):
|
||||
if struct.calcsize('l') == 8:
|
||||
off_t = 'l'
|
||||
|
|
12
lang/python/3/patches/patch-Lib_test_test_posix_py
Normal file
12
lang/python/3/patches/patch-Lib_test_test_posix_py
Normal file
|
@ -0,0 +1,12 @@
|
|||
Index: Lib/test/test_posix.py
|
||||
--- Lib/test/test_posix.py.orig
|
||||
+++ Lib/test/test_posix.py
|
||||
@@ -413,7 +413,7 @@ class PosixTester(unittest.TestCase):
|
||||
# issue33655: Also ignore EINVAL on *BSD since ZFS is also
|
||||
# often used there.
|
||||
if inst.errno == errno.EINVAL and sys.platform.startswith(
|
||||
- ('sunos', 'freebsd', 'openbsd', 'gnukfreebsd')):
|
||||
+ ('sunos', 'freebsd', 'openbsd', 'secbsd', 'gnukfreebsd')):
|
||||
raise unittest.SkipTest("test may fail on ZFS filesystems")
|
||||
elif inst.errno == errno.EOPNOTSUPP and sys.platform.startswith("netbsd"):
|
||||
raise unittest.SkipTest("test may fail on FFS filesystems")
|
|
@ -1,7 +1,7 @@
|
|||
Index: Lib/test/test_subprocess.py
|
||||
--- Lib/test/test_subprocess.py.orig
|
||||
+++ Lib/test/test_subprocess.py
|
||||
@@ -2440,7 +2440,7 @@ class POSIXProcessTestCase(BaseTestCase):
|
||||
@@ -2435,7 +2435,7 @@ class POSIXProcessTestCase(BaseTestCase):
|
||||
getattr(p, method)(*args)
|
||||
return p
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: Lib/test/test_tempfile.py
|
||||
--- Lib/test/test_tempfile.py.orig
|
||||
+++ Lib/test/test_tempfile.py
|
||||
@@ -25,7 +25,7 @@ has_spawnl = hasattr(os, 'spawnl')
|
||||
@@ -28,7 +28,7 @@ has_spawnl = hasattr(os, 'spawnl')
|
||||
|
||||
# TEST_FILES may need to be tweaked for systems depending on the maximum
|
||||
# number of files that can be opened at one time (see ulimit -n)
|
||||
|
|
|
@ -1,57 +1,17 @@
|
|||
LibreSSL has NID_sha3_256 and NID_sha512_256 now, but it's simpler to
|
||||
handle -stable updates if we keep the patch until 7.4 is out.
|
||||
|
||||
Index: Modules/_hashopenssl.c
|
||||
--- Modules/_hashopenssl.c.orig
|
||||
+++ Modules/_hashopenssl.c
|
||||
@@ -45,10 +45,18 @@
|
||||
@@ -44,7 +44,9 @@
|
||||
|
||||
#define MUNCH_SIZE INT_MAX
|
||||
|
||||
+#ifdef NID_id_scrypt
|
||||
#define PY_OPENSSL_HAS_SCRYPT 1
|
||||
+#endif
|
||||
+#ifdef NID_sha3_256
|
||||
#if defined(NID_sha3_224) && defined(NID_sha3_256) && defined(NID_sha3_384) && defined(NID_sha3_512)
|
||||
#define PY_OPENSSL_HAS_SHA3 1
|
||||
+#endif
|
||||
+#ifdef NID_shake256
|
||||
#define PY_OPENSSL_HAS_SHAKE 1
|
||||
+#endif
|
||||
+#ifdef NID_blake2s256
|
||||
#define PY_OPENSSL_HAS_BLAKE2 1
|
||||
+#endif
|
||||
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
||||
#define PY_EVP_MD EVP_MD
|
||||
@@ -120,19 +128,27 @@ static const py_hashentry_t py_hashes[] = {
|
||||
PY_HASH_ENTRY(Py_hash_sha384, "SHA384", SN_sha384, NID_sha384),
|
||||
PY_HASH_ENTRY(Py_hash_sha512, "SHA512", SN_sha512, NID_sha512),
|
||||
/* truncated sha2 */
|
||||
+#ifdef NID_sha512_256
|
||||
PY_HASH_ENTRY(Py_hash_sha512_224, "SHA512_224", SN_sha512_224, NID_sha512_224),
|
||||
PY_HASH_ENTRY(Py_hash_sha512_256, "SHA512_256", SN_sha512_256, NID_sha512_256),
|
||||
+#endif
|
||||
/* sha3 */
|
||||
+#ifdef PY_OPENSSL_HAS_SHA3
|
||||
PY_HASH_ENTRY(Py_hash_sha3_224, NULL, SN_sha3_224, NID_sha3_224),
|
||||
PY_HASH_ENTRY(Py_hash_sha3_256, NULL, SN_sha3_256, NID_sha3_256),
|
||||
PY_HASH_ENTRY(Py_hash_sha3_384, NULL, SN_sha3_384, NID_sha3_384),
|
||||
PY_HASH_ENTRY(Py_hash_sha3_512, NULL, SN_sha3_512, NID_sha3_512),
|
||||
+#endif
|
||||
/* sha3 shake */
|
||||
+#ifdef PY_OPENSSL_HAS_SHAKE
|
||||
PY_HASH_ENTRY(Py_hash_shake_128, NULL, SN_shake128, NID_shake128),
|
||||
PY_HASH_ENTRY(Py_hash_shake_256, NULL, SN_shake256, NID_shake256),
|
||||
+#endif
|
||||
/* blake2 digest */
|
||||
+#ifdef PY_OPENSSL_HAS_BLAKE2
|
||||
PY_HASH_ENTRY(Py_hash_blake2s, "blake2s256", SN_blake2s256, NID_blake2s256),
|
||||
PY_HASH_ENTRY(Py_hash_blake2b, "blake2b512", SN_blake2b512, NID_blake2b512),
|
||||
+#endif
|
||||
PY_HASH_ENTRY(NULL, NULL, NULL, 0),
|
||||
};
|
||||
|
||||
@@ -874,11 +890,15 @@ py_evp_fromname(PyObject *module, const char *digestna
|
||||
#endif
|
||||
@@ -922,11 +924,15 @@ py_evp_fromname(PyObject *module, const char *digestna
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: Modules/_ssl.c
|
||||
--- Modules/_ssl.c.orig
|
||||
+++ Modules/_ssl.c
|
||||
@@ -4541,7 +4541,7 @@ set_sni_callback(PySSLContext *self, PyObject *arg, vo
|
||||
@@ -4469,7 +4469,7 @@ set_sni_callback(PySSLContext *self, PyObject *arg, vo
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Index: Python/fileutils.c
|
||||
--- Python/fileutils.c.orig
|
||||
+++ Python/fileutils.c
|
||||
@@ -2614,9 +2614,9 @@ done:
|
||||
@@ -2875,9 +2875,9 @@ done:
|
||||
* non-opened fd in the middle.
|
||||
* 2b. If fdwalk(3) isn't available, just do a plain close(2) loop.
|
||||
*/
|
||||
|
@ -9,7 +9,7 @@ Index: Python/fileutils.c
|
|||
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__SecBSD__)
|
||||
# define USE_CLOSEFROM
|
||||
-#endif /* __FreeBSD__ */
|
||||
+#endif /* __FreeBSD__ || __OpenBSD__ */
|
||||
+#endif /* __FreeBSD__ || __OpenBSD__ || __SecBSD__ */
|
||||
|
||||
#ifdef HAVE_FDWALK
|
||||
# define USE_FDWALK
|
||||
|
|
|
@ -7,34 +7,34 @@
|
|||
Index: configure.ac
|
||||
--- configure.ac.orig
|
||||
+++ configure.ac
|
||||
@@ -249,7 +249,7 @@ VERSION=PYTHON_VERSION
|
||||
@@ -251,7 +251,7 @@ VERSION=PYTHON_VERSION
|
||||
|
||||
# Version number of Python's own shared library file.
|
||||
AC_SUBST(SOVERSION)
|
||||
AC_SUBST([SOVERSION])
|
||||
-SOVERSION=1.0
|
||||
+SOVERSION=${LIBpython3.11_VERSION}
|
||||
+SOVERSION=0.0
|
||||
|
||||
# The later definition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
|
||||
# certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
|
||||
@@ -645,7 +645,7 @@ case $ac_sys_system/$ac_sys_release in
|
||||
# As this has a different meaning on Linux, only define it on OpenBSD
|
||||
AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
|
||||
@@ -651,7 +651,7 @@ case $ac_sys_system/$ac_sys_release in
|
||||
AC_DEFINE([_BSD_SOURCE], [1],
|
||||
[Define on OpenBSD to activate all library features])
|
||||
;;
|
||||
- OpenBSD/*)
|
||||
+ OpenBSD/*|SecBSD/*)
|
||||
# OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
|
||||
# also defined. This can be overridden by defining _BSD_SOURCE
|
||||
# As this has a different meaning on Linux, only define it on OpenBSD
|
||||
@@ -1104,6 +1104,8 @@ AC_MSG_CHECKING([for multiarch])
|
||||
@@ -1123,6 +1123,8 @@ AC_MSG_CHECKING([for multiarch])
|
||||
AS_CASE([$ac_sys_system],
|
||||
[Darwin*], [MULTIARCH=""],
|
||||
[FreeBSD*], [MULTIARCH=""],
|
||||
+ [OpenBSD*], [MULTIARCH=""],
|
||||
+ [SecBSD*], [MULTIARCH=""],
|
||||
+ [SecBSD*], [MULTIARCH=""],
|
||||
[MULTIARCH=$($CC --print-multiarch 2>/dev/null)]
|
||||
)
|
||||
AC_SUBST([MULTIARCH])
|
||||
@@ -1493,7 +1495,7 @@ if test $enable_shared = "yes"; then
|
||||
@@ -1517,7 +1519,7 @@ if test $enable_shared = "yes"; then
|
||||
PY3LIBRARY=libpython3.so
|
||||
fi
|
||||
;;
|
||||
|
@ -43,8 +43,8 @@ Index: configure.ac
|
|||
LDLIBRARY='libpython$(LDVERSION).so'
|
||||
BLDLIBRARY='-L. -lpython$(LDVERSION)'
|
||||
RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||
@@ -1843,13 +1845,13 @@ esac
|
||||
[AC_MSG_RESULT(no)])
|
||||
@@ -1858,13 +1860,13 @@ esac
|
||||
[AC_MSG_RESULT([no])])
|
||||
if test "$Py_LTO" = 'true' ; then
|
||||
case $CC in
|
||||
- *clang*)
|
||||
|
@ -53,13 +53,13 @@ Index: configure.ac
|
|||
dnl Clang linker requires -flto in order to link objects with LTO information.
|
||||
dnl Thin LTO is faster and works for object files with full LTO information, too.
|
||||
AX_CHECK_COMPILE_FLAG([-flto=thin],[LDFLAGS_NOLTO="-flto=thin"],[LDFLAGS_NOLTO="-flto"])
|
||||
AC_SUBST(LLVM_AR)
|
||||
- AC_PATH_TOOL(LLVM_AR, llvm-ar, '', ${llvm_path})
|
||||
+ AC_PATH_TOOL(LLVM_AR, ar, '', ${llvm_path})
|
||||
AC_SUBST(LLVM_AR_FOUND)
|
||||
AC_SUBST([LLVM_AR])
|
||||
- AC_PATH_TOOL([LLVM_AR], [llvm-ar], [''], [${llvm_path}])
|
||||
+ AC_PATH_TOOL([LLVM_AR], [ar], [''], [${llvm_path}])
|
||||
AC_SUBST([LLVM_AR_FOUND])
|
||||
if test -n "${LLVM_AR}" -a -x "${LLVM_AR}"
|
||||
then
|
||||
@@ -1964,7 +1966,7 @@ then
|
||||
@@ -1987,7 +1989,7 @@ then
|
||||
fi
|
||||
LLVM_PROF_ERR=no
|
||||
case $CC in
|
||||
|
@ -67,8 +67,8 @@ Index: configure.ac
|
|||
+ *clang*|cc)
|
||||
# Any changes made here should be reflected in the GCC+Darwin case below
|
||||
PGO_PROF_GEN_FLAG="-fprofile-instr-generate"
|
||||
PGO_PROF_USE_FLAG="-fprofile-instr-use=code.profclangd"
|
||||
@@ -3193,7 +3195,7 @@ then
|
||||
PGO_PROF_USE_FLAG="-fprofile-instr-use=\"\$(shell pwd)/code.profclangd\""
|
||||
@@ -3373,7 +3375,7 @@ then
|
||||
else
|
||||
LDSHARED="ld -Bshareable"
|
||||
fi;;
|
||||
|
@ -77,7 +77,7 @@ Index: configure.ac
|
|||
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
|
||||
then
|
||||
LDSHARED='$(CC) -shared $(CCSHARED)'
|
||||
@@ -3269,7 +3271,7 @@ then
|
||||
@@ -3449,7 +3451,7 @@ then
|
||||
AS_VAR_IF([enable_wasm_dynamic_linking], [yes], [
|
||||
CCSHARED="-fPIC"
|
||||
]);;
|
||||
|
@ -86,7 +86,7 @@ Index: configure.ac
|
|||
Haiku*) CCSHARED="-fPIC";;
|
||||
OpenUNIX*|UnixWare*)
|
||||
if test "$GCC" = "yes"
|
||||
@@ -3326,7 +3328,7 @@ then
|
||||
@@ -3506,7 +3508,7 @@ then
|
||||
OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
|
||||
SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
|
||||
ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
|
||||
|
@ -95,7 +95,7 @@ Index: configure.ac
|
|||
if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
|
||||
then
|
||||
LINKFORSHARED="-Wl,--export-dynamic"
|
||||
@@ -3888,11 +3890,7 @@ dnl Detect Tcl/Tk. Use pkg-config if available.
|
||||
@@ -4128,11 +4130,7 @@ dnl Detect Tcl/Tk. Use pkg-config if available.
|
||||
dnl
|
||||
found_tcltk=no
|
||||
for _QUERY in \
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
@option no-default-conflict
|
||||
@option is-branch
|
||||
@conflict python-gdbm-${VERSION_SPEC}
|
||||
@pkgpath lang/python/3.2,-gdbm
|
||||
@pkgpath lang/python/3.3,-gdbm
|
||||
@pkgpath lang/python/3.4,-gdbm
|
||||
@pkgpath lang/python/3.5,-gdbm
|
||||
@pkgpath lang/python/3.6,-gdbm
|
||||
@pkgpath lang/python/3.7,-gdbm
|
||||
@conflict python-gdbm->=3,<4
|
||||
@pkgpath lang/python/3.8,-gdbm
|
||||
@pkgpath lang/python/3.9,-gdbm
|
||||
@pkgpath lang/python/3.10,-gdbm
|
||||
@pkgpath lang/python/3.11,-gdbm
|
||||
@so lib/python3.11/lib-dynload/_gdbm.cpython-311.so
|
||||
@so lib/python3.12/lib-dynload/_gdbm.cpython-312.so
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,160 +1,154 @@
|
|||
@option no-default-conflict
|
||||
@option is-branch
|
||||
@conflict python-tkinter-${VERSION_SPEC}
|
||||
@pkgpath lang/python/3.2,-tkinter
|
||||
@pkgpath lang/python/3.3,-tkinter
|
||||
@pkgpath lang/python/3.4,-tkinter
|
||||
@pkgpath lang/python/3.5,-tkinter
|
||||
@pkgpath lang/python/3.6,-tkinter
|
||||
@pkgpath lang/python/3.7,-tkinter
|
||||
@conflict python-tkinter->=3,<4
|
||||
@pkgpath lang/python/3.8,-tkinter
|
||||
@pkgpath lang/python/3.9,-tkinter
|
||||
@pkgpath lang/python/3.10,-tkinter
|
||||
@pkgpath lang/python/3.11,-tkinter
|
||||
@so lib/python3.11/lib-dynload/_tkinter.cpython-311.so
|
||||
lib/python3.11/tkinter/
|
||||
lib/python3.11/tkinter/__init__.py
|
||||
lib/python3.11/tkinter/__main__.py
|
||||
lib/python3.11/tkinter/__pycache__/
|
||||
lib/python3.11/tkinter/__pycache__/__init__.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/__init__.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/__init__.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/__main__.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/__main__.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/__main__.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/colorchooser.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/colorchooser.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/colorchooser.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/commondialog.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/commondialog.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/commondialog.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/constants.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/constants.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/constants.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/dialog.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/dialog.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/dialog.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/dnd.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/dnd.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/dnd.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/filedialog.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/filedialog.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/filedialog.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/font.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/font.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/font.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/messagebox.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/messagebox.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/messagebox.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/scrolledtext.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/scrolledtext.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/scrolledtext.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/simpledialog.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/simpledialog.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/simpledialog.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/tix.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/tix.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/tix.cpython-311.pyc
|
||||
lib/python3.11/tkinter/__pycache__/ttk.cpython-311.opt-1.pyc
|
||||
lib/python3.11/tkinter/__pycache__/ttk.cpython-311.opt-2.pyc
|
||||
lib/python3.11/tkinter/__pycache__/ttk.cpython-311.pyc
|
||||
lib/python3.11/tkinter/colorchooser.py
|
||||
lib/python3.11/tkinter/commondialog.py
|
||||
lib/python3.11/tkinter/constants.py
|
||||
lib/python3.11/tkinter/dialog.py
|
||||
lib/python3.11/tkinter/dnd.py
|
||||
lib/python3.11/tkinter/filedialog.py
|
||||
lib/python3.11/tkinter/font.py
|
||||
lib/python3.11/tkinter/messagebox.py
|
||||
lib/python3.11/tkinter/scrolledtext.py
|
||||
lib/python3.11/tkinter/simpledialog.py
|
||||
lib/python3.11/tkinter/tix.py
|
||||
lib/python3.11/tkinter/ttk.py
|
||||
lib/python3.11/turtle.py
|
||||
lib/python3.11/turtledemo/
|
||||
lib/python3.11/turtledemo/__init__.py
|
||||
lib/python3.11/turtledemo/__main__.py
|
||||
lib/python3.11/turtledemo/__pycache__/
|
||||
lib/python3.11/turtledemo/__pycache__/__init__.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/__init__.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/__init__.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/__main__.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/__main__.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/__main__.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/bytedesign.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/bytedesign.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/bytedesign.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/chaos.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/chaos.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/chaos.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/clock.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/clock.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/clock.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/colormixer.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/colormixer.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/colormixer.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/forest.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/forest.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/forest.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/fractalcurves.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/fractalcurves.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/fractalcurves.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/lindenmayer.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/lindenmayer.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/lindenmayer.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/minimal_hanoi.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/minimal_hanoi.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/minimal_hanoi.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/nim.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/nim.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/nim.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/paint.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/paint.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/paint.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/peace.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/peace.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/peace.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/penrose.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/penrose.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/penrose.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/planet_and_moon.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/planet_and_moon.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/planet_and_moon.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/rosette.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/rosette.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/rosette.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/round_dance.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/round_dance.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/round_dance.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/sorting_animate.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/sorting_animate.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/sorting_animate.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/tree.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/tree.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/tree.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/two_canvases.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/two_canvases.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/two_canvases.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/yinyang.cpython-311.opt-1.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/yinyang.cpython-311.opt-2.pyc
|
||||
lib/python3.11/turtledemo/__pycache__/yinyang.cpython-311.pyc
|
||||
lib/python3.11/turtledemo/bytedesign.py
|
||||
lib/python3.11/turtledemo/chaos.py
|
||||
lib/python3.11/turtledemo/clock.py
|
||||
lib/python3.11/turtledemo/colormixer.py
|
||||
lib/python3.11/turtledemo/forest.py
|
||||
lib/python3.11/turtledemo/fractalcurves.py
|
||||
lib/python3.11/turtledemo/lindenmayer.py
|
||||
lib/python3.11/turtledemo/minimal_hanoi.py
|
||||
lib/python3.11/turtledemo/nim.py
|
||||
lib/python3.11/turtledemo/paint.py
|
||||
lib/python3.11/turtledemo/peace.py
|
||||
lib/python3.11/turtledemo/penrose.py
|
||||
lib/python3.11/turtledemo/planet_and_moon.py
|
||||
lib/python3.11/turtledemo/rosette.py
|
||||
lib/python3.11/turtledemo/round_dance.py
|
||||
lib/python3.11/turtledemo/sorting_animate.py
|
||||
lib/python3.11/turtledemo/tree.py
|
||||
lib/python3.11/turtledemo/turtle.cfg
|
||||
lib/python3.11/turtledemo/two_canvases.py
|
||||
lib/python3.11/turtledemo/yinyang.py
|
||||
@so lib/python3.12/lib-dynload/_tkinter.cpython-312.so
|
||||
lib/python3.12/tkinter/
|
||||
lib/python3.12/tkinter/__init__.py
|
||||
lib/python3.12/tkinter/__main__.py
|
||||
lib/python3.12/tkinter/__pycache__/
|
||||
lib/python3.12/tkinter/__pycache__/__init__.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/__init__.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/__init__.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/__main__.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/__main__.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/__main__.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/colorchooser.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/colorchooser.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/colorchooser.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/commondialog.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/commondialog.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/commondialog.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/constants.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/constants.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/constants.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/dialog.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/dialog.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/dialog.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/dnd.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/dnd.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/dnd.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/filedialog.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/filedialog.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/filedialog.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/font.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/font.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/font.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/messagebox.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/messagebox.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/messagebox.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/scrolledtext.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/scrolledtext.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/scrolledtext.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/simpledialog.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/simpledialog.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/simpledialog.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/tix.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/tix.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/tix.cpython-312.pyc
|
||||
lib/python3.12/tkinter/__pycache__/ttk.cpython-312.opt-1.pyc
|
||||
lib/python3.12/tkinter/__pycache__/ttk.cpython-312.opt-2.pyc
|
||||
lib/python3.12/tkinter/__pycache__/ttk.cpython-312.pyc
|
||||
lib/python3.12/tkinter/colorchooser.py
|
||||
lib/python3.12/tkinter/commondialog.py
|
||||
lib/python3.12/tkinter/constants.py
|
||||
lib/python3.12/tkinter/dialog.py
|
||||
lib/python3.12/tkinter/dnd.py
|
||||
lib/python3.12/tkinter/filedialog.py
|
||||
lib/python3.12/tkinter/font.py
|
||||
lib/python3.12/tkinter/messagebox.py
|
||||
lib/python3.12/tkinter/scrolledtext.py
|
||||
lib/python3.12/tkinter/simpledialog.py
|
||||
lib/python3.12/tkinter/tix.py
|
||||
lib/python3.12/tkinter/ttk.py
|
||||
lib/python3.12/turtle.py
|
||||
lib/python3.12/turtledemo/
|
||||
lib/python3.12/turtledemo/__init__.py
|
||||
lib/python3.12/turtledemo/__main__.py
|
||||
lib/python3.12/turtledemo/__pycache__/
|
||||
lib/python3.12/turtledemo/__pycache__/__init__.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/__init__.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/__init__.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/__main__.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/__main__.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/__main__.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/bytedesign.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/bytedesign.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/bytedesign.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/chaos.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/chaos.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/chaos.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/clock.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/clock.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/clock.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/colormixer.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/colormixer.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/colormixer.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/forest.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/forest.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/forest.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/fractalcurves.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/fractalcurves.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/fractalcurves.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/lindenmayer.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/lindenmayer.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/lindenmayer.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/minimal_hanoi.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/minimal_hanoi.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/minimal_hanoi.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/nim.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/nim.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/nim.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/paint.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/paint.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/paint.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/peace.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/peace.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/peace.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/penrose.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/penrose.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/penrose.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/planet_and_moon.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/planet_and_moon.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/planet_and_moon.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/rosette.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/rosette.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/rosette.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/round_dance.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/round_dance.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/round_dance.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/sorting_animate.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/sorting_animate.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/sorting_animate.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/tree.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/tree.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/tree.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/two_canvases.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/two_canvases.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/two_canvases.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/yinyang.cpython-312.opt-1.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/yinyang.cpython-312.opt-2.pyc
|
||||
lib/python3.12/turtledemo/__pycache__/yinyang.cpython-312.pyc
|
||||
lib/python3.12/turtledemo/bytedesign.py
|
||||
lib/python3.12/turtledemo/chaos.py
|
||||
lib/python3.12/turtledemo/clock.py
|
||||
lib/python3.12/turtledemo/colormixer.py
|
||||
lib/python3.12/turtledemo/forest.py
|
||||
lib/python3.12/turtledemo/fractalcurves.py
|
||||
lib/python3.12/turtledemo/lindenmayer.py
|
||||
lib/python3.12/turtledemo/minimal_hanoi.py
|
||||
lib/python3.12/turtledemo/nim.py
|
||||
lib/python3.12/turtledemo/paint.py
|
||||
lib/python3.12/turtledemo/peace.py
|
||||
lib/python3.12/turtledemo/penrose.py
|
||||
lib/python3.12/turtledemo/planet_and_moon.py
|
||||
lib/python3.12/turtledemo/rosette.py
|
||||
lib/python3.12/turtledemo/round_dance.py
|
||||
lib/python3.12/turtledemo/sorting_animate.py
|
||||
lib/python3.12/turtledemo/tree.py
|
||||
lib/python3.12/turtledemo/turtle.cfg
|
||||
lib/python3.12/turtledemo/two_canvases.py
|
||||
lib/python3.12/turtledemo/yinyang.py
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
SUBDIR =
|
||||
SUBDIR += 2.7
|
||||
SUBDIR += 3
|
||||
|
||||
.include <bsd.port.subdir.mk>
|
||||
|
|
|
@ -110,8 +110,6 @@ LIB_DEPENDS-tkinter = lang/python/${V_SUBDIR},-main \
|
|||
WANTLIB-tkinter = pthread python${VERSION} \
|
||||
${MODTK_WANTLIB}
|
||||
|
||||
AUTOCONF_VERSION = 2.69
|
||||
|
||||
CONFIGURE_STYLE = autoconf
|
||||
CONFIGURE_ARGS += --enable-shared
|
||||
CONFIGURE_ARGS += --enable-ipv6 \
|
||||
|
@ -146,7 +144,7 @@ MAKE_FLAGS += LD_LIBRARY_PATH=${WRKSRC} PATH="${WRKDIST}:${PORTPATH}"
|
|||
MAKE_FLAGS += CFLAGS_NODIST='-I${LOCALBASE}/include' LDFLAGS_NODIST='-L${WRKSRC} -L${LOCALBASE}/lib/'
|
||||
FAKE_FLAGS += RANLIB=:
|
||||
|
||||
PY_PLATFORM = openbsd${OSMAJOR}
|
||||
PY_PLATFORM = secbsd${OSMAJOR}
|
||||
SUBST_VARS += FULL_VERSION VERSION_SPEC PY_PLATFORM
|
||||
|
||||
# Python itself is clean, but some dlopen()'d extensions e.g. QtWebKit
|
||||
|
|
|
@ -1,54 +1,37 @@
|
|||
# python.port.mk - Xavier Santolaria <xavier@santolaria.net>
|
||||
# This file is in the public domain.
|
||||
# python.port.mk - This file is in the public domain.
|
||||
# Xavier Santolaria <xavier@santolaria.net>
|
||||
# Stuart Henderson <stu@spacehopper.org>
|
||||
|
||||
CATEGORIES += lang/python
|
||||
|
||||
# define the default versions
|
||||
MODPY_DEFAULT_VERSION_2 = 2.7
|
||||
MODPY_DEFAULT_VERSION_3 = 3.11
|
||||
MODPY_DEFAULT_VERSION_3 = 3.12
|
||||
MODPY_VERSION ?= ${MODPY_DEFAULT_VERSION_3}
|
||||
|
||||
# If switching to a new MODPY_DEFAULT_VERSION_3, say 3.x to 3.y:
|
||||
# - All ports with PLISTs that depend on the Python version number
|
||||
# must be REVISION-bumped.
|
||||
# - Keep xenocara/share/mk/bsd.xorg.mk PYTHON_VERSION in sync
|
||||
|
||||
.if !defined(MODPY_VERSION)
|
||||
FLAVOR ?=
|
||||
|
||||
. if !defined(FLAVORS) || !${FLAVORS:Mpython3} || ${FLAVOR:Mpython3}
|
||||
# for standard "python3-flavoured" ports (normal for py-* modules),
|
||||
# set the default MODPY_VERSION for the usual py3 version
|
||||
MODPY_VERSION ?= ${MODPY_DEFAULT_VERSION_3}
|
||||
. else
|
||||
# for unflavoured "py2+py3" ports (again normal for py-* modules),
|
||||
# set the default MODPY_VERSION for the usual py2 version
|
||||
. if defined(FLAVORS) && ${FLAVORS:Mpython3}
|
||||
MODPY_VERSION ?= ${MODPY_DEFAULT_VERSION_2}
|
||||
. else
|
||||
# ports which don't have a python3 FLAVOR are either old py2-only py-*
|
||||
# modules, or are other ports which use Python (e.g. those which are
|
||||
# intended as a standalone program rather than a py-* module).
|
||||
# in that case, use the usual py3 version; old py2-only modules
|
||||
# will set MODPY_VERSION themselves.
|
||||
. endif
|
||||
. endif
|
||||
.endif
|
||||
# - Keep xenocara/share/mk/bsd.xorg.mk PYTHON_VERSION in sync.
|
||||
|
||||
# verify if MODPY_VERSION found is correct
|
||||
.if ${MODPY_VERSION} == "2.7"
|
||||
_MODPY_SUBDIR = 2.7
|
||||
.elif ${MODPY_VERSION} == "3.11"
|
||||
.elif ${MODPY_VERSION} == "3.12"
|
||||
_MODPY_SUBDIR = 3
|
||||
.else
|
||||
ERRORS += "Fatal: unknown or unsupported MODPY_VERSION: ${MODPY_VERSION}"
|
||||
.endif
|
||||
|
||||
MODPY_WANTLIB = python${MODPY_VERSION}
|
||||
MODPY_RUN_DEPENDS = lang/python/${_MODPY_SUBDIR}
|
||||
MODPY_LIB_DEPENDS = lang/python/${_MODPY_SUBDIR}
|
||||
_MODPY_BUILD_DEPENDS = lang/python/${_MODPY_SUBDIR}
|
||||
MODPY_TKINTER_DEPENDS = lang/python/${_MODPY_SUBDIR},-tkinter
|
||||
|
||||
MODPY_MAJOR_VERSION = ${MODPY_VERSION:R}
|
||||
|
||||
.if ${MODPY_MAJOR_VERSION} == 2
|
||||
MODPY_FLAVOR =
|
||||
# use MODPY_BIN_SUFFIX for binaries to avoid conflict
|
||||
MODPY_BIN_SUFFIX = -2
|
||||
MODPY_PY_PREFIX = py-
|
||||
MODPY_PYCACHE =
|
||||
MODPY_PYC_MAGIC_TAG =
|
||||
|
@ -56,10 +39,8 @@ MODPY_COMMENT = "@comment "
|
|||
MODPY_ABI3SO =
|
||||
MODPY_PYOEXTENSION = pyo
|
||||
.elif ${MODPY_MAJOR_VERSION} == 3
|
||||
# replace py- prefix by py3-
|
||||
FULLPKGNAME ?= ${PKGNAME:S/^py-/py3-/}${FLAVOR_EXT:S/-python3//}
|
||||
MODPY_FLAVOR = ,python3
|
||||
MODPY_BIN_SUFFIX =
|
||||
# replace py- prefix with py3-
|
||||
FULLPKGNAME ?= ${PKGNAME:S/^py-/py3-/}${FLAVOR_EXT}
|
||||
MODPY_PY_PREFIX = py3-
|
||||
MODPY_PYCACHE = __pycache__/
|
||||
MODPY_MAJORMINOR = ${MODPY_VERSION:C/\.//g}
|
||||
|
@ -83,19 +64,9 @@ MODPY_PYTEST ?= No
|
|||
MODPY_PYTEST ?= Yes
|
||||
.endif
|
||||
|
||||
MODPY_WANTLIB = python${MODPY_VERSION}
|
||||
|
||||
MODPY_RUN_DEPENDS = lang/python/${_MODPY_SUBDIR}
|
||||
MODPY_LIB_DEPENDS = lang/python/${_MODPY_SUBDIR}
|
||||
_MODPY_BUILD_DEPENDS = lang/python/${_MODPY_SUBDIR}
|
||||
|
||||
.if ${MODPY_PYTEST:L} == "yes"
|
||||
. if ${MODPY_VERSION} == ${MODPY_DEFAULT_VERSION_2}
|
||||
NO_TEST = Yes
|
||||
. else
|
||||
MODPY_TEST_DEPENDS = ${RUN_DEPENDS}
|
||||
MODPY_TEST_DEPENDS += devel/py-test${MODPY_FLAVOR}
|
||||
. endif
|
||||
MODPY_TEST_DEPENDS += devel/py-test
|
||||
.else
|
||||
MODPY_TEST_DEPENDS = ${MODPY_RUN_DEPENDS}
|
||||
.endif
|
||||
|
@ -126,30 +97,35 @@ TEST_DEPENDS += ${MODPY_TEST_DEPENDS}
|
|||
|
||||
_MODPY_PRE_BUILD_STEPS = :
|
||||
|
||||
.if ${MODPY_PYBUILD:L} == "no"
|
||||
.if ${MODPY_PYBUILD:L} == "no" && ${MODPY_MAJOR_VERSION} != 2
|
||||
# not necessarily an error, but try to draw attention to it. defer printing
|
||||
# the warning to fake-install where it's less likely to scroll off the screen.
|
||||
_MODPY_PRE_BUILD_STEPS += ; if [ -e ${WRKSRC}/pyproject.toml ] && \
|
||||
grep -q ^build-backend ${WRKSRC}/pyproject.toml && \
|
||||
! grep -q ^build-backend.*setuptools ${WRKSRC}/pyproject.toml; then \
|
||||
printf "\n***\n\nOpenBSD ports: should this use MODPY_PYBUILD?\n"; \
|
||||
grep ^build-backend ${WRKSRC}/pyproject.toml || true; \
|
||||
printf "\n***\n\n"; fi
|
||||
grep -q ^build-backend ${WRKSRC}/pyproject.toml; then \
|
||||
(echo; echo '*** Ports with pyproject.toml should normally use MODPY_PYBUILD'; \
|
||||
grep -H ^build-backend ${WRKSRC}/pyproject.toml; echo ) >> \
|
||||
${WRKDIR}/.modpy-warn; \
|
||||
fi
|
||||
.endif
|
||||
|
||||
_MODPY_USE_CARGO = No
|
||||
|
||||
.if ${MODPY_SETUPTOOLS:L} == "yes"
|
||||
. if ${MODPY_PYBUILD:L} != "no"
|
||||
ERRORS += "Fatal: don't set both MODPY_PYBUILD and MODPY_SETUPTOOLS"
|
||||
ERRORS += "Fatal: both MODPY_PYBUILD and MODPY_SETUPTOOLS are set. Just use MODPY_PYBUILD."
|
||||
. endif
|
||||
# For Python 2, setuptools provides a package locator that
|
||||
# is required at runtime for the pkg_resources stuff to work
|
||||
# For Python 3, normally importlib.metadata (in Python core
|
||||
# in newer versions) or importlib_metadata (external module)
|
||||
# are used in preference.
|
||||
# For Python 2, setuptools provides a package locator that is required at
|
||||
# runtime for pkg_resources to work, so an RDEP is needed.
|
||||
# For Python 3, pkg_resources is deprecated - Python core has similar
|
||||
# functionality in importlib.metadata.
|
||||
# If a py3 port still needs pkg_resources, expect deprecation warnings
|
||||
# at runtime, and in that case an RDEP on setuptools should be added
|
||||
# manually.
|
||||
. if ${MODPY_MAJOR_VERSION} == 2
|
||||
MODPY_SETUPUTILS_DEPEND ?= devel/py2-setuptools
|
||||
MODPY_RUN_DEPENDS += ${MODPY_SETUPUTILS_DEPEND}
|
||||
. else
|
||||
MODPY_SETUPUTILS_DEPEND ?= devel/py-setuptools${MODPY_FLAVOR}
|
||||
MODPY_SETUPUTILS_DEPEND ?= devel/py-setuptools
|
||||
. endif
|
||||
|
||||
BUILD_DEPENDS += ${MODPY_SETUPUTILS_DEPEND}
|
||||
|
@ -158,51 +134,66 @@ MODPY_SETUPUTILS = Yes
|
|||
# The setuptools uses test target
|
||||
TEST_TARGET ?= test
|
||||
_MODPY_USERBASE =
|
||||
_MODPY_PRE_BUILD_STEPS += ;[ -e ${WRKSRC}/${MODPY_SETUP} ] || \
|
||||
( printf '%s\n%s\n' \
|
||||
'\# generated by python.port.mk' \
|
||||
'from setuptools import setup; setup()' \
|
||||
> ${WRKSRC}/${MODPY_SETUP}; \
|
||||
echo '*** generating minimal setup.py; consider using MODPY_PYBUILD')
|
||||
_MODPY_PRE_BUILD_STEPS += ;${MODPY_CMD} egg_info || true
|
||||
# Setuptools opportunistically picks up plugins. If it picks one up that
|
||||
# uses finalize_distribution_options (usually setuptools_scm), junking
|
||||
# that plugin will cause failure at the end of build.
|
||||
# In the absence of a targetted means of disabling this, use a big hammer:
|
||||
DPB_PROPERTIES += nojunk
|
||||
.elif ${MODPY_PYBUILD:L} != no
|
||||
BUILD_DEPENDS += devel/py-build${MODPY_FLAVOR} \
|
||||
devel/py-installer${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-build \
|
||||
devel/py-installer
|
||||
. if ${MODPY_PYBUILD} == flit
|
||||
BUILD_DEPENDS += devel/py-flit${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-flit
|
||||
. elif ${MODPY_PYBUILD} == flit_core
|
||||
BUILD_DEPENDS += devel/py-flit_core${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-flit_core
|
||||
. elif ${MODPY_PYBUILD} == flit_scm
|
||||
BUILD_DEPENDS += devel/py-flit_scm${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-flit_scm
|
||||
. elif ${MODPY_PYBUILD} == hatch-vcs
|
||||
BUILD_DEPENDS += devel/py-hatch-vcs${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-hatch-vcs
|
||||
_MODPY_EXPECTED_BACKEND = hatchling
|
||||
. elif ${MODPY_PYBUILD} == hatchling
|
||||
BUILD_DEPENDS += devel/py-hatchling${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-hatchling
|
||||
. elif ${MODPY_PYBUILD} == jupyter_packaging
|
||||
BUILD_DEPENDS += devel/py-jupyter_packaging${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-jupyter_packaging
|
||||
_MODPY_EXPECTED_BACKEND = setuptools
|
||||
. elif ${MODPY_PYBUILD} == maturin
|
||||
BUILD_DEPENDS += devel/maturin
|
||||
MODCARGO_CARGO_BIN = maturin
|
||||
_MODPY_WHEELSDIR = target/wheels
|
||||
_MODPY_USE_CARGO = Yes
|
||||
. elif ${MODPY_PYBUILD} == mesonpy
|
||||
BUILD_DEPENDS += devel/meson-python
|
||||
. elif ${MODPY_PYBUILD} == pbr
|
||||
BUILD_DEPENDS += devel/py-pbr \
|
||||
devel/py-setuptools \
|
||||
devel/py-wheel
|
||||
. elif ${MODPY_PYBUILD} == pdm
|
||||
BUILD_DEPENDS += devel/py-pdm-backend${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-pdm-backend
|
||||
. elif ${MODPY_PYBUILD} == poetry-core
|
||||
BUILD_DEPENDS += devel/py-poetry-core${MODPY_FLAVOR}
|
||||
. elif ${MODPY_PYBUILD} == setuptools || ${MODPY_PYBUILD} == setuptools_scm
|
||||
BUILD_DEPENDS += devel/py-setuptools${MODPY_FLAVOR} \
|
||||
devel/py-wheel${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-poetry-core
|
||||
_MODPY_EXPECTED_BACKEND = poetry.core
|
||||
. elif ${MODPY_PYBUILD} == setuptools || \
|
||||
${MODPY_PYBUILD} == setuptools_scm || \
|
||||
${MODPY_PYBUILD} == setuptools-rust
|
||||
BUILD_DEPENDS += devel/py-setuptools \
|
||||
devel/py-wheel
|
||||
_MODPY_EXPECTED_BACKEND = setuptools
|
||||
. if ${MODPY_PYBUILD} == setuptools_scm
|
||||
BUILD_DEPENDS += devel/py-setuptools_scm${MODPY_FLAVOR}
|
||||
BUILD_DEPENDS += devel/py-setuptools_scm
|
||||
. elif ${MODPY_PYBUILD} == setuptools-rust
|
||||
BUILD_DEPENDS += devel/py-setuptools-rust
|
||||
_MODPY_USE_CARGO = Yes
|
||||
. endif
|
||||
. elif !${MODPY_PYBUILD:L:Mother}
|
||||
ERRORS += "Fatal: unknown MODPY_PYBUILD value (flit, flit_core, flit_scm, hatch-vcs, hatchling, jupyter_packaging, pdm, maturin, other, poetry-core, setuptools, setuptools_scm)"
|
||||
ERRORS += "Fatal: unknown MODPY_PYBUILD value (flit, flit_core, flit_scm, hatch-vcs, hatchling, jupyter_packaging, pbr, pdm, maturin, mesonpy, other, poetry-core, setuptools, setuptools_scm, setuptools-rust)"
|
||||
. endif
|
||||
_MODPY_EXPECTED_BACKEND ?= ${MODPY_PYBUILD}
|
||||
_MODPY_WHEELSDIR ?= dist
|
||||
. if ${_MODPY_USE_CARGO:L} == yes
|
||||
MODCARGO_INSTALL ?= No
|
||||
MODCARGO_TEST ?= No
|
||||
MODULES += devel/cargo
|
||||
. endif
|
||||
.else
|
||||
# Try to detect the case where a port will build regardless of setuptools
|
||||
# but the final plist will be different if it's present.
|
||||
MODPY_SETUPUTILS = No
|
||||
# Detect the case where a port is capable of building with setup.py
|
||||
# via fallback to distutils, but should use py-build instead.
|
||||
_MODPY_SETUPUTILS_FAKE_DIR = \
|
||||
${WRKDIR}/lib/python${MODPY_VERSION}/site-packages/setuptools
|
||||
_MODPY_PRE_BUILD_STEPS += \
|
||||
|
@ -210,23 +201,35 @@ _MODPY_PRE_BUILD_STEPS += \
|
|||
;exec 3>&1 \
|
||||
;exec >${_MODPY_SETUPUTILS_FAKE_DIR}/__init__.py \
|
||||
;echo 'def setup(*args, **kwargs):' \
|
||||
;echo ' msg = "OpenBSD ports: MODPY_PYBUILD or MODPY_SETUPTOOLS is required"' \
|
||||
;echo ' msg = "SecBSD ports: use MODPY_PYBUILD"' \
|
||||
;echo ' raise Exception(msg)' \
|
||||
;echo 'Extension = Feature = find_packages = setup' \
|
||||
;exec 1>&3
|
||||
MODPY_SETUPUTILS = No
|
||||
_MODPY_USERBASE = ${WRKDIR}
|
||||
.endif
|
||||
|
||||
# XXX If we run into too many problems with setuptools ports and junking
|
||||
# XXX then this can be enabled, however if a "nojunk" port fails to build,
|
||||
# XXX DPB will no longer junk on that node, likely resulting in running
|
||||
# XXX out of disk space in /usr/local. So far it has only happened very
|
||||
# XXX occasionally and a single port failure is easier to clean up, and
|
||||
# XXX setuptools use is decreasing, so trying to avoid this!
|
||||
#
|
||||
#.if ${MODPY_SETUPTOOLS:L} == "yes" || ${MODPY_PYBUILD:Msetuptools*}
|
||||
# Setuptools opportunistically picks up plugins. If it picks one up that
|
||||
# uses finalize_distribution_options (usually setuptools_scm), junking
|
||||
# that plugin will cause failure at the end of build.
|
||||
# In the absence of a targetted means of disabling this, use a big hammer:
|
||||
#DPB_PROPERTIES += nojunk
|
||||
#.endif
|
||||
|
||||
.if ${MODPY_PI:L} == "yes"
|
||||
_MODPY_EGG_NAME = ${DISTNAME:S/-${MODPY_EGG_VERSION}//}
|
||||
_MODPY_EGG_NAME = ${DISTNAME:S/-${MODPY_DISTV}//}
|
||||
MODPY_PI_DIR ?= ${DISTNAME:C/^([a-zA-Z0-9]).*/\1/}/${_MODPY_EGG_NAME}
|
||||
SITES = ${SITE_PYPI:=${MODPY_PI_DIR}/}
|
||||
HOMEPAGE ?= https://pypi.python.org/pypi/${_MODPY_EGG_NAME}
|
||||
.endif
|
||||
|
||||
MODPY_TKINTER_DEPENDS = lang/python/${_MODPY_SUBDIR},-tkinter
|
||||
|
||||
MODPY_BIN = ${LOCALBASE}/bin/python${MODPY_VERSION}
|
||||
MODPY_INCDIR = ${LOCALBASE}/include/python${MODPY_VERSION}
|
||||
MODPY_LIBDIR = ${LOCALBASE}/lib/python${MODPY_VERSION}
|
||||
|
@ -266,7 +269,7 @@ MODPY_TEST_CMD = cd ${MODPY_TEST_DIR} && ${SETENV} ${ALL_TEST_ENV} ${MODPY_BIN}
|
|||
.if ${MODPY_PYTEST:L} == "yes"
|
||||
MODPY_PYTEST_USERARGS ?=
|
||||
MODPY_TEST_CMD += -m pytest ${MODPY_PYTEST_USERARGS}
|
||||
MODPY_TEST_LIBDIR ?= ${WRKSRC}/build/lib:${WRKSRC}/build/lib.openbsd-${OSREV}-${ARCH}-cpython-${MODPY_MAJORMINOR}:${WRKSRC}/lib.openbsd-${OSREV}-${ARCH}-${MODPY_VERSION}
|
||||
MODPY_TEST_LIBDIR ?= ${WRKINST}${MODPY_SITEPKG}:${WRKSRC}/build/lib:${WRKSRC}/build/lib.openbsd-${OSREV}-${ARCH}-cpython-${MODPY_MAJORMINOR}:${WRKSRC}/lib.openbsd-${OSREV}-${ARCH}-${MODPY_VERSION}
|
||||
.else
|
||||
MODPY_TEST_CMD += ./${MODPY_SETUP} ${MODPY_SETUP_ARGS}
|
||||
.endif
|
||||
|
@ -280,10 +283,10 @@ TEST_ENV += PYTHONPATH=${MODPY_TEST_LIBDIR}:lib:src
|
|||
.endif
|
||||
|
||||
SUBST_VARS := MODPY_PYCACHE MODPY_COMMENT MODPY_ABI3SO MODPY_PYC_MAGIC_TAG \
|
||||
MODPY_BIN MODPY_EGG_VERSION MODPY_VERSION MODPY_BIN_SUFFIX \
|
||||
MODPY_BIN MODPY_DISTV MODPY_VERSION \
|
||||
MODPY_PY_PREFIX MODPY_PYOEXTENSION ${SUBST_VARS}
|
||||
|
||||
UPDATE_PLIST_ARGS += -S MODPY_BIN_SUFFIX -S MODPY_PYOEXTENSION \
|
||||
UPDATE_PLIST_ARGS += -S MODPY_PYOEXTENSION \
|
||||
-I MODPY_ABI3SO -c MODPY_COMMENT -I MODPY_PYCACHE
|
||||
|
||||
# set MODPY_BIN for executable scripts
|
||||
|
@ -303,12 +306,34 @@ MODPY_COMPILEALL = ${MODPY_BIN} -m compileall
|
|||
MODPY_COMPILEALL = ${MODPY_BIN} -m compileall -j ${MAKE_JOBS} -s ${WRKINST} -o 0 -o 1
|
||||
.endif
|
||||
|
||||
MODPY_TEST_TARGET =
|
||||
MODPY_TEST_LINK_SO ?= No
|
||||
.if ${MODPY_TEST_LINK_SO:L} == "yes" && !empty(MODPY_TEST_LIBDIR)
|
||||
MODPY_TEST_SO_CMD = for _dir in ${MODPY_TEST_LIBDIR:S,:, ,g}; do \
|
||||
if [ -d $${_dir} ]; then \
|
||||
cd $${_dir} && \
|
||||
find . -name '*.so' -type f \
|
||||
-exec ln -sf $${_dir}/{} ${WRKSRC}/{} \; ;\
|
||||
fi; done
|
||||
MODPY_TEST_TARGET += ${MODPY_TEST_SO_CMD};
|
||||
.endif
|
||||
|
||||
.if ${MODPY_PYBUILD:L} != no
|
||||
. if ! ${MODPY_PYBUILD:Msetuptools_scm}
|
||||
_MODPY_PRE_BUILD_STEPS += ; if [ -e ${WRKSRC}/pyproject.toml ]; then \
|
||||
grep -q '^requires.*setuptools_scm' ${WRKSRC}/pyproject.toml && \
|
||||
echo && sleep 1 && \
|
||||
echo "*** Port appears to require setuptools_scm" && sleep 2; \
|
||||
_MODPY_PRE_BUILD_STEPS += ; if [ -e ${WRKSRC}/pyproject.toml ] && \
|
||||
grep -q '^requires.*setuptools[-_]scm' ${WRKSRC}/pyproject.toml; then \
|
||||
(echo; echo '*** Port may need MODPY_PYBUILD=setuptools_scm'; \
|
||||
grep -H -e ^build-backend -e '^requires.*setuptools' \
|
||||
${WRKSRC}/pyproject.toml; echo ) >> ${WRKDIR}/.modpy-warn; \
|
||||
fi
|
||||
. endif
|
||||
. if ${_MODPY_EXPECTED_BACKEND} != other
|
||||
_MODPY_PRE_BUILD_STEPS += ; if [ -e ${WRKSRC}/pyproject.toml ] && \
|
||||
grep '^build-backend' ${WRKSRC}/pyproject.toml | \
|
||||
grep -qv ${_MODPY_EXPECTED_BACKEND}; then \
|
||||
(echo; echo '*** Check MODPY_PYBUILD setting (currently "${MODPY_PYBUILD}")'; \
|
||||
grep -H ^build-backend ${WRKSRC}/pyproject.toml; echo ) >> \
|
||||
${WRKDIR}/.modpy-warn; \
|
||||
fi
|
||||
. endif
|
||||
MODPY_PYBUILD_ARGS ?=
|
||||
|
@ -316,8 +341,8 @@ MODPY_BUILD_TARGET = ${_MODPY_PRE_BUILD_STEPS}; \
|
|||
${_MODPY_RUNBIN} -sBm build -w --no-isolation ${MODPY_PYBUILD_ARGS}
|
||||
MODPY_INSTALL_TARGET = \
|
||||
${INSTALL_DATA_DIR} ${WRKINST}${MODPY_LIBDIR}; \
|
||||
${_MODPY_RUNBIN} -m installer -d ${WRKINST} ${WRKSRC}/dist/*.whl
|
||||
MODPY_TEST_TARGET = ${MODPY_TEST_CMD}
|
||||
${_MODPY_RUNBIN} -m installer -d ${WRKINST} ${WRKSRC}/${_MODPY_WHEELSDIR}/*.whl
|
||||
MODPY_TEST_TARGET += ${MODPY_TEST_CMD}
|
||||
. if ${MODPY_PYTEST:L} == "yes"
|
||||
MODPY_TEST_TARGET += ${MODPY_PYTEST_ARGS}
|
||||
. endif
|
||||
|
@ -328,7 +353,7 @@ MODPY_INSTALL_TARGET = \
|
|||
${MODPY_CMD} ${MODPY_DISTUTILS_BUILD} ${MODPY_DISTUTILS_BUILDARGS} \
|
||||
${MODPY_DISTUTILS_INSTALL} ${MODPY_DISTUTILS_INSTALLARGS}
|
||||
|
||||
MODPY_TEST_TARGET = ${MODPY_TEST_CMD}
|
||||
MODPY_TEST_TARGET += ${MODPY_TEST_CMD}
|
||||
. if ${MODPY_PYTEST:L} == "yes"
|
||||
MODPY_TEST_TARGET += ${MODPY_PYTEST_ARGS}
|
||||
. elif ${MODPY_SETUPUTILS:L} == "yes"
|
||||
|
@ -336,11 +361,22 @@ MODPY_TEST_TARGET += ${TEST_TARGET}
|
|||
. endif
|
||||
.endif
|
||||
|
||||
# dirty way to do it with no modifications in bsd.port.mk
|
||||
MODPY_INSTALL_TARGET += ; if [ -r ${WRKDIR}/.modpy-warn ]; then cat ${WRKDIR}/.modpy-warn; fi
|
||||
|
||||
.if empty(CONFIGURE_STYLE)
|
||||
. if !target(do-configure) && ${_MODPY_USE_CARGO:L} == yes
|
||||
do-configure:
|
||||
@${MODCARGO_configure}
|
||||
. endif
|
||||
|
||||
. if !target(do-build)
|
||||
do-build:
|
||||
. if ${_MODPY_USE_CARGO:L} == yes
|
||||
@${MODCARGO_BUILD_TARGET}
|
||||
. endif
|
||||
. if ${MODPY_PYBUILD} != maturin
|
||||
@${MODPY_BUILD_TARGET}
|
||||
. endif
|
||||
. endif
|
||||
|
||||
# extra documentation or scripts should be installed via post-install
|
||||
|
@ -349,20 +385,10 @@ do-install:
|
|||
@${MODPY_INSTALL_TARGET}
|
||||
. endif
|
||||
|
||||
# setuptools supports regress testing from setup.py using a standard target,
|
||||
# though this is deprecated and in most cases MODPY_PYTEST should be used
|
||||
# (possibly with MODPY_PYTEST_ARGS pointed at test dirs/files if the automatic
|
||||
# search picks up files in lib/).
|
||||
. if !target(do-test) && \
|
||||
(${MODPY_SETUPUTILS:L} == "yes" || ${MODPY_PYTEST:L} == "yes")
|
||||
do-test:
|
||||
@${MODPY_TEST_TARGET}
|
||||
. endif
|
||||
|
||||
. if make(update-plist) || make(plist)
|
||||
. if defined(FLAVORS) && ${FLAVORS:Mpython3} && !${FLAVOR:Mpython3}
|
||||
ERRORS += "***\n*** WARNING: running update-plist without FLAVOR=python3\n***\n***"
|
||||
. endif
|
||||
. endif
|
||||
|
||||
.endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue