ports/lang/python27/files/patch-setup.py
Marcus von Appen fc8d424c6b - Remove everything related to USE_PYTHON and bsd.python.mk. This is a
preparatory step to convert bsd.python.mk into a USES file.
- Remove the shared/static build separation, which is the source of many
  problems and even more hacks. Instead build only the shared version, which
  greatly simplifies the build.
- Remove the FPECTL option to align the build with the clean "template" from
  lang/python34.
- Remove support for GNU pthreads via the PTH option. It is a permanent
  troublemaker for ports using Python and pthread support.
- Remove PORTDATA and EXAMPLES. Those will be made available via separate
  ports.
- Add a new DEBUG option to enable debug builds as for lang/python34.
- Remove bin/smtpd. Only Python2.7 wants to install it, but we'd like to keep
  it consistent with the other lang/pythonXX ports
- Add CPE support.
- Reactivate curses/ncurses support.
- Use buildbottest in the regression-test: target.
- Move pkg-message to the right place.

Phabric:		D488
Exp-run:	192242, 192244
Reviewed by:	koobs
With hat:	python@
2014-08-02 06:54:20 +00:00

103 lines
4.0 KiB
Python

# 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 2014-06-30 04:05:48.000000000 +0200
+++ setup.py 2014-07-26 14:51:29.000000000 +0200
@@ -15,6 +15,7 @@
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 @@
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
@@ -1212,7 +1213,7 @@
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:
@@ -1551,7 +1552,7 @@
macros = dict()
libraries = []
- elif host_platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'):
+ elif host_platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8', 'freebsd9', 'freebsd10', 'freebsd11'):
# FreeBSD's P1003.1b semaphore support is very experimental
# and has many known problems. (as of June 2008)
macros = dict()
@@ -1602,9 +1603,10 @@
else:
missing.append('linuxaudiodev')
- if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
- 'freebsd7', 'freebsd8')
- or host_platform.startswith("gnukfreebsd")):
+# Initial backport of http://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')
@@ -2176,6 +2178,22 @@
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.
@@ -2221,7 +2239,9 @@
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.
@@ -2229,8 +2249,7 @@
# Scripts to install
scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle',
- 'Tools/scripts/2to3',
- 'Lib/smtpd.py']
+ 'Tools/scripts/2to3']
)
# --install-platlib