mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
Resurrect tauthon and give it a proper expiration notice
This commit is contained in:
parent
bffe69af05
commit
97dfc1d602
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=565416
1
MOVED
1
MOVED
@ -16166,5 +16166,4 @@ security/greenbone-security-assistant9|security/greenbone-security-assistant|202
|
||||
misc/pnpids|misc/hwdata|2021-02-14|Rename package to upstreams name
|
||||
misc/cdcollect||2021-02-14|Has expired: Unmaintained and dead upstream (12+ years) depends on deprecated libraries as www/gtkhtml3
|
||||
security/krb5-116|security/krb5-118|2021-02-14|Has expired: EOL one year after the release of krb5 1.18
|
||||
lang/tauthon||2021-02-15|Dead upstream, incompatible with python 2 and python 3
|
||||
www/palemoon||2021-02-15|Depends on expired version of python
|
||||
|
@ -343,6 +343,7 @@
|
||||
SUBDIR += squeak
|
||||
SUBDIR += squirrel
|
||||
SUBDIR += swi-pl
|
||||
SUBDIR += tauthon
|
||||
SUBDIR += tcbasic
|
||||
SUBDIR += tcc
|
||||
SUBDIR += tcl-manual
|
||||
|
179
lang/tauthon/Makefile
Normal file
179
lang/tauthon/Makefile
Normal file
@ -0,0 +1,179 @@
|
||||
# $FreeBSD$
|
||||
|
||||
# This Makefile was copied from lang/python27 and then gradually
|
||||
# adapted/cleaned-up for Tauthon.
|
||||
# As for lang/python27, some core modules with extraneous dependencies are
|
||||
# disabled, and should be made available in other ports if the need arises (see
|
||||
# 'pkg-message').
|
||||
# -- Olivier Certner <olce.freebsd.ports@certner.fr>
|
||||
PORTNAME= tauthon
|
||||
DISTVERSION= 2.8.2
|
||||
CATEGORIES= lang python
|
||||
|
||||
MAINTAINER= olce.freebsd.ports@certner.fr
|
||||
COMMENT= Backward-compatible fork of Python 2.7 interpreter with Python 3.x features
|
||||
|
||||
LICENSE= PSFL
|
||||
|
||||
DEPRECATED= Uses Python 2.7 codebase
|
||||
EXPIRATION_DATE= 2021-06-23
|
||||
|
||||
USES= pathfix shebangfix autoreconf ncurses pkgconfig readline:port ssl tar:xz
|
||||
PATHFIX_MAKEFILEIN= Makefile.pre.in
|
||||
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= naftaliharris
|
||||
GH_PROJECT= tauthon
|
||||
GH_TAGNAME= v${DISTVERSION}
|
||||
|
||||
USE_LDCONFIG= yes
|
||||
# Piggyback on Python support in shebangfix
|
||||
python_CMD= ${PREFIX}/bin/${NAME_VERSION}
|
||||
# Better be safe than sorry
|
||||
.for _DIRS in Demo/cgi Demo/comparisons Demo/curses Demo/parser Demo/pdist \
|
||||
Demo/pysvr Demo/scripts Demo/sockets Demo/tkinter/guido Demo/turtle \
|
||||
Demo/zlib Doc/includes Doc/tools Lib Lib/encodings Lib/ensurepip \
|
||||
Lib/idlelib Lib/lib2to3/pgen2 Lib/lib2to3/tests \
|
||||
Lib/lib2to3/tests/data Lib/plat-mac Lib/test Lib/test/crashers \
|
||||
Mac/BuildScript Mac/scripts Mac/Tools Modules/_ctypes/libffi \
|
||||
Parser PCbuild Python Tools/compiler Tools/faqwiz Tools/freeze \
|
||||
Tools/gdb Tools/i18n Tools/nuget Tools/pybench Tools/scripts \
|
||||
Tools/ssl Tools/unicode Tools/webchecker
|
||||
SHEBANG_FILES+= ${_DIRS}/*.py
|
||||
.endfor
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
CONFIGURE_ARGS+= --enable-shared
|
||||
CONFIGURE_ENV+= ac_cv_opt_olimit_ok=no OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
|
||||
|
||||
INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
|
||||
|
||||
TEST_TARGET= buildbottest
|
||||
TEST_ARGS= TESTOPTS=-j${MAKE_JOBS_NUMBER}
|
||||
|
||||
MAKE_ARGS+= INSTALL_SHARED="${INSTALL_LIB}" # Strip shared library
|
||||
|
||||
PLIST_SUB= ABI=${ABIFLAGS} \
|
||||
PORTVERSION=${PORTVERSION} \
|
||||
VERSION_NOMICRO=${VERSION_NOMICRO} \
|
||||
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 LTO NLS OPTIMIZATIONS PYMALLOC THREADS
|
||||
OPTIONS_DEFAULT= LIBFFI PYMALLOC THREADS UCS4
|
||||
OPTIONS_SINGLE= UNICODE
|
||||
OPTIONS_SINGLE_UNICODE= UCS2 UCS4
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
LIBFFI_DESC= Use libffi from ports instead of bundled version
|
||||
LTO_DESC= Apply Link-Time Optimizations (needs OPTIMIZATIONS)
|
||||
NLS_DESC= Enable gettext support for the locale module
|
||||
OPTIMIZATIONS_DESC= Enable code optimizations and PGO (BROKEN)
|
||||
UCS2_DESC= Enable UCS2 Unicode Strings
|
||||
UCS4_DESC= Enable UCS4 Unicode Strings
|
||||
PYMALLOC_DESC= Enable specialized mallocs
|
||||
|
||||
DEBUG_CONFIGURE_WITH= pydebug
|
||||
IPV6_CONFIGURE_ENABLE= ipv6
|
||||
LIBFFI_CONFIGURE_WITH= system-ffi
|
||||
LIBFFI_LIB_DEPENDS= libffi.so:devel/libffi
|
||||
|
||||
LTO_IMPLIES= OPTIMIZATIONS
|
||||
LTO_CONFIGURE_WITH= lto
|
||||
|
||||
# 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
|
||||
NLS_USES= gettext
|
||||
NLS_CPPFLAGS= -I${LOCALBASE}/include
|
||||
NLS_LIBS= -L${LOCALBASE}/lib -lintl
|
||||
NLS_CONFIGURE_ENV_OFF= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
|
||||
|
||||
OPTIMIZATIONS_CONFIGURE_ENABLE= optimizations
|
||||
OPTIMIZATIONS_BROKEN= Please disable OPTIMIZATIONS option for now\
|
||||
(some tests fail and no PGO profile is computed)
|
||||
|
||||
PYMALLOC_CONFIGURE_WITH=pymalloc
|
||||
|
||||
THREADS_CONFIGURE_WITH= threads
|
||||
THREADS_LDFLAGS= -lpthread
|
||||
|
||||
UCS2_CONFIGURE_ENABLE= unicode=ucs2
|
||||
UCS4_CONFIGURE_ENABLE= unicode=ucs4
|
||||
|
||||
PYTHON_PORTVERSION= ${DISTVERSION}
|
||||
|
||||
VERSION_NOMICRO= ${DISTVERSION:R}
|
||||
NAME_VERSION= tauthon${VERSION_NOMICRO}
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
# https://bugs.python.org/issue22521
|
||||
# https://bugs.python.org/issue23042
|
||||
.if !${PORT_OPTIONS:MLIBFFI} && ${ARCH} == i386
|
||||
BROKEN= You must use libffi from ports on i386. Enable the LIBFFI option
|
||||
.endif
|
||||
|
||||
.if ${ARCH} == i386
|
||||
PLIST_SUB+= X86_ONLY=""
|
||||
.else
|
||||
PLIST_SUB+= X86_ONLY="@comment "
|
||||
.endif
|
||||
|
||||
.if ${ARCH:M*64*}
|
||||
PLIST_SUB+= 32BIT_ONLY="@comment "
|
||||
.else
|
||||
PLIST_SUB+= 32BIT_ONLY=""
|
||||
.endif
|
||||
|
||||
.if ${ARCH} == powerpc64
|
||||
MAKE_ENV+= UNAME_m="powerpc64"
|
||||
.endif
|
||||
|
||||
.if ${ARCH} == sparc64
|
||||
CFLAGS+= -DPYTHON_DEFAULT_RECURSION_LIMIT=900
|
||||
.endif
|
||||
|
||||
# See https://bugs.freebsd.org/115940 and https://bugs.freebsd.org/193650
|
||||
.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
|
||||
PLIST_SUB+= NO_NIS="@comment "
|
||||
.else
|
||||
PLIST_SUB+= NO_NIS=""
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@${REINPLACE_CMD} -e 's|/usr/local/bin/python|${python_CMD}|' \
|
||||
${WRKSRC}/Lib/cgi.py
|
||||
|
||||
.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
|
||||
@${REINPLACE_CMD} -e 's/disabled_module_list =[^]]*/&, "nis"/' \
|
||||
${WRKSRC}/setup.py
|
||||
.endif
|
||||
|
||||
post-install:
|
||||
# Create symlink for tauthon executable
|
||||
${RLN} ${STAGEDIR}${PREFIX}/bin/${NAME_VERSION} \
|
||||
${STAGEDIR}${PREFIX}/bin/tauthon
|
||||
# Strip shared extensions
|
||||
for i in ${STAGEDIR}${PREFIX}/lib/${NAME_VERSION}/lib-dynload/*.so; do \
|
||||
${STRIP_CMD} $$i; done
|
||||
# This code block exists for the qemu-user enabled cross build environment.
|
||||
# When using this environment in poudriere, CC is not set to the default
|
||||
# of /usr/bin/cc and a cross-compile toolchain is used. We need to hand
|
||||
# edit this so that the run time configuration for python matches what the
|
||||
# FreeBSD base system provides. sbruno 02Aug2017
|
||||
.if ${CC} == /nxb-bin/usr/bin/cc
|
||||
@${REINPLACE_CMD} -e 's=/nxb-bin==' \
|
||||
${STAGEDIR}${PREFIX}/lib/${NAME_VERSION}/_sysconfigdata.py
|
||||
@cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
|
||||
./tauthon -E -m compileall -d ${PREFIX}/lib/${NAME_VERSION} \
|
||||
${STAGEDIR}${PREFIX}/lib/${NAME_VERSION}/_sysconfigdata.py
|
||||
@cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \
|
||||
./tauthon -E -O -m compileall -d ${PREFIX}/lib/${NAME_VERSION} \
|
||||
${STAGEDIR}${PREFIX}/lib/${NAME_VERSION}/_sysconfigdata.py
|
||||
@${REINPLACE_CMD} -e 's=/nxb-bin==' \
|
||||
${STAGEDIR}${PREFIX}/lib/${NAME_VERSION}/config/Makefile
|
||||
.endif
|
||||
${INSTALL_DATA} ${WRKSRC}/Tools/gdb/libpython.py \
|
||||
${STAGEDIR}${PREFIX}/lib/lib${NAME_VERSION}.so.1-gdb.py
|
||||
|
||||
.include <bsd.port.mk>
|
3
lang/tauthon/distinfo
Normal file
3
lang/tauthon/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1604584539
|
||||
SHA256 (naftaliharris-tauthon-2.8.2-v2.8.2_GH0.tar.gz) = 9423756fcb0afb652ae1ce3c7f0ac195e731e3a4f535a703991cf76bcb3ce267
|
||||
SIZE (naftaliharris-tauthon-2.8.2-v2.8.2_GH0.tar.gz) = 17701363
|
10
lang/tauthon/files/patch-Doc__library__fcntl.rst
Normal file
10
lang/tauthon/files/patch-Doc__library__fcntl.rst
Normal file
@ -0,0 +1,10 @@
|
||||
--- ./Doc/library/fcntl.rst.orig 2014-07-03 21:53:41.473098625 +1000
|
||||
+++ ./Doc/library/fcntl.rst 2014-07-03 21:54:04.342833056 +1000
|
||||
@@ -50,7 +50,6 @@ The module defines the following functio
|
||||
operations are typically defined in the library module :mod:`termios` and the
|
||||
argument handling is even more complicated.
|
||||
|
||||
- The op parameter is limited to values that can fit in 32-bits.
|
||||
Additional constants of interest for use as the *op* argument can be
|
||||
found in the :mod:`termios` module, under the same names as used in
|
||||
the relevant C header files.
|
@ -0,0 +1,17 @@
|
||||
# Description: A non-invasive partial backport of the Python3 distutils behaviour.
|
||||
# This allows Python's scripts to be properly suffixed (similar to Python 3.x) on
|
||||
# installation.
|
||||
# Submitted by: mva
|
||||
|
||||
--- Lib/distutils/command/build_scripts.py.orig 2014-07-26 09:52:20.000000000 UTC
|
||||
+++ Lib/distutils/command/build_scripts.py 2014-07-26 09:52:56.000000000 UTC
|
||||
@@ -126,6 +126,9 @@ class build_scripts (Command):
|
||||
file, oldmode, newmode)
|
||||
os.chmod(file, newmode)
|
||||
|
||||
+ # XXX should we modify self.outfiles?
|
||||
+ return outfiles
|
||||
+
|
||||
# copy_scripts ()
|
||||
|
||||
# class build_scripts
|
@ -0,0 +1,34 @@
|
||||
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-05 19:46:56 UTC
|
||||
+++ Lib/distutils/command/install_lib.py
|
||||
@@ -168,10 +168,14 @@ 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(py_file + "c")
|
||||
- if self.optimize > 0:
|
||||
- bytecode_files.append(py_file + "o")
|
||||
+
|
||||
+ pyc_file = py_file + "c"
|
||||
+ if self.compile and os.path.isfile(pyc_file):
|
||||
+ bytecode_files.append(pyc_file)
|
||||
+
|
||||
+ pyo_file = py_file + "o"
|
||||
+ if self.optimize > 0 and os.path.isfile(pyo_file):
|
||||
+ bytecode_files.append(pyo_file)
|
||||
|
||||
return bytecode_files
|
||||
|
@ -0,0 +1,30 @@
|
||||
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-05 19:46:57 UTC
|
||||
+++ Lib/distutils/tests/test_install_lib.py
|
||||
@@ -64,8 +64,12 @@ class InstallLibTestCase(support.Tempdir
|
||||
cmd.distribution.packages = [pkg_dir]
|
||||
cmd.distribution.script_name = 'setup.py'
|
||||
|
||||
- # get_output should return 4 elements
|
||||
- self.assertGreaterEqual(len(cmd.get_outputs()), 2)
|
||||
+ # Create rubbish, uncompilable file
|
||||
+ f = os.path.join(pkg_dir, 'rubbish.py')
|
||||
+ self.write_file(f, 'rubbish()')
|
||||
+
|
||||
+ # get_output should return 3 elements
|
||||
+ self.assertEqual(len(cmd.get_outputs()), 3)
|
||||
|
||||
def test_get_inputs(self):
|
||||
pkg_dir, dist = self.create_dist()
|
19
lang/tauthon/files/patch-Makefile.pre.in
Normal file
19
lang/tauthon/files/patch-Makefile.pre.in
Normal file
@ -0,0 +1,19 @@
|
||||
# Taken and adapted from lang/python27 port
|
||||
# Description: Link scripts in the same way Python3 does
|
||||
# Submitted by: mva
|
||||
|
||||
--- Makefile.pre.in.orig 2014-06-30 04:05:39.000000000 +0200
|
||||
+++ Makefile.pre.in 2014-07-26 11:09:46.000000000 +0200
|
||||
@@ -900,6 +900,12 @@ bininstall: altbininstall
|
||||
(cd $(DESTDIR)$(LIBPC); $(LN) -s tauthon-$(VERSION).pc tauthon2.pc)
|
||||
-rm -f $(DESTDIR)$(LIBPC)/tauthon.pc
|
||||
(cd $(DESTDIR)$(LIBPC); $(LN) -s tauthon2.pc tauthon.pc)
|
||||
+ -rm -f $(DESTDIR)$(BINDIR)/idle
|
||||
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle2)
|
||||
+ -rm -f $(DESTDIR)$(BINDIR)/pydoc
|
||||
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc2)
|
||||
+ -rm -f $(DESTDIR)$(BINDIR)/2to3
|
||||
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
|
||||
|
||||
# Install the interpreter with $(VERSION) affixed
|
||||
# This goes into $(exec_prefix)
|
21
lang/tauthon/files/patch-Misc_python-config.in
Normal file
21
lang/tauthon/files/patch-Misc_python-config.in
Normal file
@ -0,0 +1,21 @@
|
||||
# pythonx.y-config --ldflags out of /usr and missing -L<install_lib_dir>
|
||||
# https://bugs.python.org/issue7352
|
||||
|
||||
--- Misc/python-config.in.orig 2015-10-18 07:24:01 UTC
|
||||
+++ Misc/python-config.in
|
||||
@@ -21,6 +21,7 @@ except getopt.error:
|
||||
if not opts:
|
||||
exit_with_usage()
|
||||
|
||||
+libdir = sysconfig.EXEC_PREFIX + '/lib'
|
||||
pyver = sysconfig.get_config_var('VERSION')
|
||||
getvar = sysconfig.get_config_var
|
||||
|
||||
@@ -50,6 +51,7 @@ for opt in opt_flags:
|
||||
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
|
||||
# shared library in prefix/lib/.
|
||||
if opt == '--ldflags':
|
||||
+ libs.insert(0, '-L' + libdir)
|
||||
if not getvar('Py_ENABLE_SHARED'):
|
||||
libs.insert(0, '-L' + getvar('LIBPL'))
|
||||
if not getvar('PYTHONFRAMEWORK'):
|
53
lang/tauthon/files/patch-Modules__fcntlmodule.c
Normal file
53
lang/tauthon/files/patch-Modules__fcntlmodule.c
Normal file
@ -0,0 +1,53 @@
|
||||
--- ./Modules/fcntlmodule.c.orig 2014-07-03 21:57:10.429953240 +1000
|
||||
+++ ./Modules/fcntlmodule.c 2014-07-03 21:59:36.517210444 +1000
|
||||
@@ -98,20 +98,15 @@ fcntl_ioctl(PyObject *self, PyObject *ar
|
||||
{
|
||||
#define IOCTL_BUFSZ 1024
|
||||
int fd;
|
||||
- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I'
|
||||
+ /* In PyArg_ParseTuple below, we use the unsigned non-checked 'k'
|
||||
format for the 'code' parameter because Python turns 0x8000000
|
||||
into either a large positive number (PyLong or PyInt on 64-bit
|
||||
platforms) or a negative number on others (32-bit PyInt)
|
||||
whereas the system expects it to be a 32bit bit field value
|
||||
regardless of it being passed as an int or unsigned long on
|
||||
- various platforms. See the termios.TIOCSWINSZ constant across
|
||||
- platforms for an example of this.
|
||||
-
|
||||
- If any of the 64bit platforms ever decide to use more than 32bits
|
||||
- in their unsigned long ioctl codes this will break and need
|
||||
- special casing based on the platform being built on.
|
||||
+ various platforms.
|
||||
*/
|
||||
- unsigned int code;
|
||||
+ unsigned long code;
|
||||
int arg;
|
||||
int ret;
|
||||
char *str;
|
||||
@@ -119,7 +114,7 @@ fcntl_ioctl(PyObject *self, PyObject *ar
|
||||
int mutate_arg = 1;
|
||||
char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */
|
||||
|
||||
- if (PyArg_ParseTuple(args, "O&Iw#|i:ioctl",
|
||||
+ if (PyArg_ParseTuple(args, "O&kw#|i:ioctl",
|
||||
conv_descriptor, &fd, &code,
|
||||
&str, &len, &mutate_arg)) {
|
||||
char *arg;
|
||||
@@ -170,7 +165,7 @@ fcntl_ioctl(PyObject *self, PyObject *ar
|
||||
}
|
||||
|
||||
PyErr_Clear();
|
||||
- if (PyArg_ParseTuple(args, "O&Is#:ioctl",
|
||||
+ if (PyArg_ParseTuple(args, "O&ks#:ioctl",
|
||||
conv_descriptor, &fd, &code, &str, &len)) {
|
||||
if (len > IOCTL_BUFSZ) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
@@ -192,7 +187,7 @@ fcntl_ioctl(PyObject *self, PyObject *ar
|
||||
PyErr_Clear();
|
||||
arg = 0;
|
||||
if (!PyArg_ParseTuple(args,
|
||||
- "O&I|i;ioctl requires a file or file descriptor,"
|
||||
+ "O&k|i;ioctl requires a file or file descriptor,"
|
||||
" an integer and optionally an integer or buffer argument",
|
||||
conv_descriptor, &fd, &code, &arg)) {
|
||||
return NULL;
|
27
lang/tauthon/files/patch-Modules_posixmodule.c
Normal file
27
lang/tauthon/files/patch-Modules_posixmodule.c
Normal file
@ -0,0 +1,27 @@
|
||||
# Add closefrom(2) support
|
||||
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274
|
||||
# https://bugs.python.org/issue38061
|
||||
# TODO: Upstream
|
||||
|
||||
--- Modules/posixmodule.c.orig 2019-10-19 18:38:44 UTC
|
||||
+++ Modules/posixmodule.c
|
||||
@@ -6676,9 +6676,16 @@ posix_closerange(PyObject *self, PyObject *args)
|
||||
if (!PyArg_ParseTuple(args, "ii:closerange", &fd_from, &fd_to))
|
||||
return NULL;
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
- for (i = fd_from; i < fd_to; i++)
|
||||
- if (_PyVerify_fd(i))
|
||||
- close(i);
|
||||
+#ifdef __FreeBSD__
|
||||
+ if (fd_to >= sysconf(_SC_OPEN_MAX)) {
|
||||
+ closefrom(fd_from);
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
+ for (i = fd_from; i < fd_to; i++)
|
||||
+ if (_PyVerify_fd(i))
|
||||
+ close(i);
|
||||
+ }
|
||||
Py_END_ALLOW_THREADS
|
||||
Py_RETURN_NONE;
|
||||
}
|
58
lang/tauthon/files/patch-pr192365
Normal file
58
lang/tauthon/files/patch-pr192365
Normal file
@ -0,0 +1,58 @@
|
||||
# Description: do not define __BSD_VISIBLE/_XOPEN_SOURCE/_POSIX_C_SOURCE
|
||||
# in include/python2.7/pyconfig.h
|
||||
# Submitted by: antoine
|
||||
|
||||
--- configure.orig 2014-09-06 14:42:50 UTC
|
||||
+++ configure
|
||||
@@ -2919,13 +2919,6 @@
|
||||
|
||||
|
||||
# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
|
||||
-# certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
|
||||
-# them.
|
||||
-
|
||||
-$as_echo "#define __BSD_VISIBLE 1" >>confdefs.h
|
||||
-
|
||||
-
|
||||
-# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
|
||||
# u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
|
||||
|
||||
$as_echo "#define _BSD_TYPES 1" >>confdefs.h
|
||||
@@ -3293,9 +3286,8 @@
|
||||
# but used in struct sockaddr.sa_family. Reported by Tim Rice.
|
||||
SCO_SV/3.2)
|
||||
define_xopen_source=no;;
|
||||
- # On FreeBSD 4, the math functions C89 does not cover are never defined
|
||||
- # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
|
||||
- FreeBSD/4.*)
|
||||
+ # On FreeBSD, defining _XOPEN_SOURCE to 600 requests a strict environment.
|
||||
+ FreeBSD/*)
|
||||
define_xopen_source=no;;
|
||||
# On MacOS X 10.2, a bug in ncurses.h means that it craps out if
|
||||
# _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
|
||||
--- configure.ac.orig 2014-09-06 14:42:50 UTC
|
||||
+++ configure.ac
|
||||
@@ -88,11 +88,6 @@
|
||||
AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
|
||||
|
||||
# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
|
||||
-# certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
|
||||
-# them.
|
||||
-AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
|
||||
-
|
||||
-# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
|
||||
# u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
|
||||
AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
|
||||
|
||||
@@ -426,9 +421,8 @@
|
||||
# but used in struct sockaddr.sa_family. Reported by Tim Rice.
|
||||
SCO_SV/3.2)
|
||||
define_xopen_source=no;;
|
||||
- # On FreeBSD 4, the math functions C89 does not cover are never defined
|
||||
- # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
|
||||
- FreeBSD/4.*)
|
||||
+ # On FreeBSD, defining _XOPEN_SOURCE to 600 requests a strict environment.
|
||||
+ FreeBSD/*)
|
||||
define_xopen_source=no;;
|
||||
# On MacOS X 10.2, a bug in ncurses.h means that it craps out if
|
||||
# _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
|
93
lang/tauthon/files/patch-setup.py
Normal file
93
lang/tauthon/files/patch-setup.py
Normal file
@ -0,0 +1,93 @@
|
||||
# Description: Partial script installation backport from Python3
|
||||
# Submitted by: mva
|
||||
|
||||
# Description: Some modules are installed via other ports
|
||||
|
||||
# Description: ossaudiodev detection fix backport
|
||||
|
||||
--- setup.py.orig 2017-04-22 03:42:03 UTC
|
||||
+++ setup.py
|
||||
@@ -15,6 +15,7 @@ from distutils.core import Extension, se
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.command.build_scripts import build_scripts
|
||||
from distutils.spawn import find_executable
|
||||
|
||||
cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ
|
||||
@@ -33,7 +34,7 @@ host_platform = get_platform()
|
||||
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 = []
|
||||
+disabled_module_list = ["_bsddb", "_sqlite3", "_tkinter", "gdbm", "mpz"]
|
||||
|
||||
def add_dir_to_list(dirlist, dir):
|
||||
"""Add the directory 'dir' to the list 'dirlist' (at the front) if
|
||||
@@ -1234,7 +1235,7 @@ class PyBuildExt(build_ext):
|
||||
sysroot = macosx_sdk_root()
|
||||
f = os.path.join(sysroot, f[1:])
|
||||
|
||||
- if os.path.exists(f) and not db_incs:
|
||||
+ if os.path.exists(f):
|
||||
data = open(f).read()
|
||||
m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data)
|
||||
if m is not None:
|
||||
@@ -1624,9 +1625,10 @@ class PyBuildExt(build_ext):
|
||||
else:
|
||||
missing.append('linuxaudiodev')
|
||||
|
||||
- if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
|
||||
- 'freebsd7', 'freebsd8')
|
||||
- or host_platform.startswith("gnukfreebsd")):
|
||||
+# Initial backport of https://hg.python.org/cpython/rev/50f1922bc1d5
|
||||
+
|
||||
+ if any(sys.platform.startswith(prefix)
|
||||
+ for prefix in ("linux", "freebsd", "gnukfreebsd")):
|
||||
exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
|
||||
else:
|
||||
missing.append('ossaudiodev')
|
||||
@@ -2200,6 +2202,22 @@ class PyBuildInstallLib(install_lib):
|
||||
def is_chmod_supported(self):
|
||||
return hasattr(os, 'chmod')
|
||||
|
||||
+class PyBuildScripts(build_scripts):
|
||||
+ def copy_scripts(self):
|
||||
+ outfiles = build_scripts.copy_scripts(self)
|
||||
+ fullversion = '{0[0]}.{0[1]}'.format(sys.version_info)
|
||||
+ newoutfiles = []
|
||||
+ for filename in outfiles:
|
||||
+ if filename.endswith('2to3'):
|
||||
+ newfilename = filename + '-' + fullversion
|
||||
+ else:
|
||||
+ newfilename = filename + fullversion
|
||||
+ log.info('renaming {} to {}'.format(filename, newfilename))
|
||||
+ os.rename(filename, newfilename)
|
||||
+ newoutfiles.append(newfilename)
|
||||
+ return newoutfiles
|
||||
+
|
||||
+
|
||||
SUMMARY = """
|
||||
Python is an interpreted, interactive, object-oriented programming
|
||||
language. It is often compared to Tcl, Perl, Scheme or Java.
|
||||
@@ -2245,7 +2263,9 @@ def main():
|
||||
platforms = ["Many"],
|
||||
|
||||
# Build info
|
||||
- cmdclass = {'build_ext':PyBuildExt, 'install':PyBuildInstall,
|
||||
+ cmdclass = {'build_ext':PyBuildExt,
|
||||
+ 'build_scripts':PyBuildScripts,
|
||||
+ 'install':PyBuildInstall,
|
||||
'install_lib':PyBuildInstallLib},
|
||||
# The struct module is defined here, because build_ext won't be
|
||||
# called unless there's at least one extension module defined.
|
||||
@@ -2253,8 +2273,7 @@ def main():
|
||||
|
||||
# Scripts to install
|
||||
scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
|
||||
- 'Tools/scripts/2to3',
|
||||
- 'Lib/smtpd.py']
|
||||
+ 'Tools/scripts/2to3']
|
||||
)
|
||||
|
||||
# --install-platlib
|
29
lang/tauthon/files/patch-setup_metadata.py
Normal file
29
lang/tauthon/files/patch-setup_metadata.py
Normal file
@ -0,0 +1,29 @@
|
||||
--- setup.py 2020-11-10 14:32:40.701965000 +0000
|
||||
+++ setup.py 2020-11-10 14:53:04.048189000 +0000
|
||||
@@ -2329,6 +2329,10 @@
|
||||
listed here, it may still be supported, if there's a C compiler for
|
||||
it. Ask around on comp.lang.python -- or just try compiling Python
|
||||
yourself.
|
||||
+
|
||||
+This implementation, Tauthon, is a backward-compatible fork of
|
||||
+Python's 2.7.18 interpreter with new syntax, builtins, and libraries
|
||||
+backported from Python 3.x.
|
||||
"""
|
||||
|
||||
CLASSIFIERS = """
|
||||
@@ -2345,12 +2349,12 @@
|
||||
import warnings
|
||||
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
||||
setup(# PyPI Metadata (PEP 301)
|
||||
name = "Python",
|
||||
version = sys.version.split()[0],
|
||||
- url = "http://www.python.org/%s" % sys.version[:3],
|
||||
- maintainer = "Guido van Rossum and the Python community",
|
||||
- maintainer_email = "python-dev@python.org",
|
||||
+ url = "https://github.com/naftaliharris/tauthon",
|
||||
+ maintainer = "Guido van Rossum, the Python community \
|
||||
+and the Tauthon developers",
|
||||
description = "A high-level object-oriented programming language",
|
||||
long_description = SUMMARY.strip(),
|
||||
license = "PSF license",
|
||||
classifiers = filter(None, CLASSIFIERS.split("\n")),
|
22
lang/tauthon/pkg-descr
Normal file
22
lang/tauthon/pkg-descr
Normal file
@ -0,0 +1,22 @@
|
||||
Tauthon is a backward-compatible fork of Python's 2.7.18 interpreter with new
|
||||
syntax, builtins, and libraries backported from Python 3.x.
|
||||
|
||||
Python code and C-extensions targeting Python 2.7 or below are expected to run
|
||||
unmodified on Tauthon and produce the same output. But with Tauthon, that code
|
||||
can now use some of the new features from Python 3.x.
|
||||
|
||||
This is not an official Python release. Because of its new features, while
|
||||
preserving 2.7 compatibility, Tauthon reports 2.8 as its major/minor versions.
|
||||
|
||||
Non-exhaustive list of new features:
|
||||
- Function Annotations
|
||||
- Keyword-Only Arguments
|
||||
- "async" and "await" Syntax
|
||||
- Argument-less "super"
|
||||
- New Metaclass Syntax
|
||||
- "nonlocal"
|
||||
- "yield from" Syntax
|
||||
- "concurrent.futures" Module
|
||||
- UTF-8 as the default source encoding
|
||||
|
||||
WWW: https://github.com/naftaliharris/tauthon
|
13
lang/tauthon/pkg-message
Normal file
13
lang/tauthon/pkg-message
Normal file
@ -0,0 +1,13 @@
|
||||
[
|
||||
{ type: install
|
||||
message: <<EOM
|
||||
Note that some standard Python modules are not included as they require
|
||||
additional dependencies. These are:
|
||||
- bsddb
|
||||
- gdbm
|
||||
- sqlite3
|
||||
- tkinter
|
||||
If needed, they should be provided in other ports. Porters welcome!
|
||||
EOM
|
||||
}
|
||||
]
|
4671
lang/tauthon/pkg-plist
Normal file
4671
lang/tauthon/pkg-plist
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user