diff --git a/lang/python38/Makefile b/lang/python38/Makefile index da6a5bfe9ad1e..ecc3e9ca22c16 100644 --- a/lang/python38/Makefile +++ b/lang/python38/Makefile @@ -48,13 +48,14 @@ PLIST_SUB= ABI=${ABIFLAGS} \ XYZDOT=${PORTVERSION} \ OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # For plat-freebsd* in pkg-plist. https://bugs.python.org/issue19554 -OPTIONS_DEFINE= DEBUG IPV6 LIBFFI NLS PYMALLOC -OPTIONS_DEFAULT= LIBFFI PYMALLOC +OPTIONS_DEFINE= DEBUG IPV6 LIBFFI LIBMPDEC NLS PYMALLOC +OPTIONS_DEFAULT= LIBFFI LIBMPDEC PYMALLOC OPTIONS_RADIO= HASH OPTIONS_RADIO_HASH= FNV SIPHASH OPTIONS_SUB= yes LIBFFI_DESC= Use libffi from ports instead of bundled version +LIBMPDEC_DESC= Use libmpdec from ports instead of bundled version NLS_DESC= Enable gettext support for the locale module PYMALLOC_DESC= Enable specialized mallocs @@ -71,6 +72,9 @@ IPV6_CONFIGURE_ENABLE= ipv6 LIBFFI_CONFIGURE_ON= --with-system-ffi LIBFFI_LIB_DEPENDS= libffi.so:devel/libffi +LIBMPDEC_CONFIGURE_ON= --with-system-libmpdec +LIBMPDEC_LIB_DEPENDS= libmpdec.so:math/mpdecimal + # Use CPPFLAGS over CFLAGS due to -I ordering, causing elementtree and pyexpat # to break in Python 2.7, or preprocessor complaints in Python >= 3.3 # Upstream Issue: https://bugs.python.org/issue6299 diff --git a/lang/python38/files/patch-Modules___decimal___decimal.c b/lang/python38/files/patch-Modules___decimal___decimal.c new file mode 100644 index 0000000000000..4ea7b4f1b4ee1 --- /dev/null +++ b/lang/python38/files/patch-Modules___decimal___decimal.c @@ -0,0 +1,20 @@ +--- Modules/_decimal/_decimal.c.orig 2021-02-17 20:39:05 UTC ++++ Modules/_decimal/_decimal.c +@@ -3284,7 +3284,7 @@ dec_format(PyObject *dec, PyObject *args) + } + else { + size_t n = strlen(spec.dot); +- if (n > 1 || (n == 1 && !isascii((uchar)spec.dot[0]))) { ++ if (n > 1 || (n == 1 && !isascii((unsigned char)spec.dot[0]))) { + /* fix locale dependent non-ascii characters */ + dot = dotsep_as_utf8(spec.dot); + if (dot == NULL) { +@@ -3293,7 +3293,7 @@ dec_format(PyObject *dec, PyObject *args) + spec.dot = PyBytes_AS_STRING(dot); + } + n = strlen(spec.sep); +- if (n > 1 || (n == 1 && !isascii((uchar)spec.sep[0]))) { ++ if (n > 1 || (n == 1 && !isascii((unsigned char)spec.sep[0]))) { + /* fix locale dependent non-ascii characters */ + sep = dotsep_as_utf8(spec.sep); + if (sep == NULL) { diff --git a/lang/python38/files/patch-setup.py b/lang/python38/files/patch-setup.py new file mode 100644 index 0000000000000..7bd5deb4202a7 --- /dev/null +++ b/lang/python38/files/patch-setup.py @@ -0,0 +1,11 @@ +--- setup.py.orig 2021-05-03 09:47:56 UTC ++++ setup.py +@@ -2051,7 +2051,7 @@ class PyBuildExt(build_ext): + undef_macros = [] + if '--with-system-libmpdec' in sysconfig.get_config_var("CONFIG_ARGS"): + include_dirs = [] +- libraries = [':libmpdec.so.2'] ++ libraries = ['mpdec'] + sources = ['_decimal/_decimal.c'] + depends = ['_decimal/docstrings.h'] + else: