diff --git a/games/renpy/Makefile b/games/renpy/Makefile index 804cb8185fe4..4243c7d9a68e 100644 --- a/games/renpy/Makefile +++ b/games/renpy/Makefile @@ -1,102 +1,100 @@ PORTNAME= renpy PORTVERSION= 7.4.11 DISTVERSIONSUFFIX=-sdk -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= games devel MASTER_SITES= https://www.renpy.org/dl/${PORTVERSION}/ MAINTAINER= ports@FreeBSD.org COMMENT= Framework for developing visual-novel type games WWW= https://www.renpy.org/ LICENSE= APACHE20 BSD3CLAUSE DejaVu LGPL21+ MIT OFL11 ZLIB LICENSE_COMB= multi LICENSE_FILE= ${WRKSRC}/LICENSE.txt LICENSE_NAME_DejaVu= Bitstream Vera and Arev fonts license LICENSE_FILE_DejaVu= ${WRKSRC}/renpy/common/DejaVuSans.txt LICENSE_PERMS_DejaVu= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept # https://github.com/renpy/renpy/issues/2003 DEPRECATED= Uses deprecated version of python BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}game_sdl2>0:devel/py-game_sdl2@${PY_FLAVOR} LIB_DEPENDS= libfribidi.so:converters/fribidi \ libpng.so:graphics/png \ libavcodec.so:multimedia/ffmpeg \ libfreetype.so:print/freetype2 RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}future>0:devel/py-future@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}game_sdl2>0:devel/py-game_sdl2@${PY_FLAVOR} # Upstream tends to reroll distfiles before moving under /release/ PORTSCOUT= site:http://www.renpy.org/dl/release/ USES= python:2.7 sdl shebangfix tar:bz2 USE_PYTHON= autoplist distutils cython USE_SDL= sdl2 EXCLUDE= fribidi-src gen 'module/*.py[co]' 'renpy/*.py[co]' EXTRACT_AFTER_ARGS=${EXCLUDE:S,^,--exclude ,} SHEBANG_FILES= renpy.py launcher/game/tkaskdir.py TARGET_ORDER_OVERRIDE=610:fix-shebang BUILD_WRKSRC= ${WRKSRC}/module INSTALL_WRKSRC= ${BUILD_WRKSRC} MAKE_ENV+= RENPY_DEPS_INSTALL="${LOCALBASE}" \ RENPY_CYTHON=cython-${PYTHON_VER} PORTDATA= gui launcher renpy renpy.py PORTDOCS= * PLIST_FILES= bin/${PORTNAME} DESKTOP_ENTRIES="Ren'Py" \ "" \ "${DATADIR}/launcher/game/images/logo32.png" \ "${PORTNAME} %f" \ "Development;Game;AdventureGame;" \ "" -OPTIONS_DEFAULT=TKINTER DIST -OPTIONS_DEFINE= DOCS DIST EXAMPLES TKINTER +OPTIONS_DEFAULT=DIST +OPTIONS_DEFINE= DOCS DIST EXAMPLES DIST_DESC= Distribution runtimes for Windows, OS X, Linux DIST_VARS= LICENSE+="ART20 PSFL" \ PORTDATA+="lib renpy.app renpy.exe renpy-32.exe renpy.sh" EXAMPLES_VARS= PORTDATA+="the_question tutorial" -TKINTER_DESC= Install Tkinter to allow choosing Projects Directory -TKINTER_RUN_DEPENDS=${PYTHON_PKGNAMEPREFIX}tkinter>0:x11-toolkits/py-tkinter@${PY_FLAVOR} post-extract: @${FIND} ${WRKSRC}/lib ${WRKSRC}/renpy.app -type d -empty -delete post-patch: @${REINPLACE_CMD} -e 's,/usr/bin/python[[:>:]],${PYTHON_CMD},' \ ${WRKSRC}/launcher/game/choose_directory.rpy # Avoid having to add -I/usr/include -L/usr/lib @${REINPLACE_CMD} '/library("z")/d' ${BUILD_WRKSRC}/${PYSETUP} post-build: @${PYTHON_CMD} -m compileall -d ${DATADIR} ${WRKSRC} @${PYTHON_CMD} -O -m compileall -d ${DATADIR} ${WRKSRC} add-plist-post: add-empty-dirs add-empty-dirs: # Keep images directory in gui and templates, see renpy@d81ea29 ${FIND} ${WRKSRC} -type d -empty \ ! \( -name "gen" -or -name "saves" -or -name "pysdlsound" \) | \ ${SED} 's,^${WRKSRC},@dir ${DATADIR},' >>${TMPPLIST} post-install: ${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} -name \*.so \ -exec ${STRIP_CMD} {} + ${LN} -fs ../${DATADIR_REL}/renpy.py \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME} (cd ${WRKSRC} && ${COPYTREE_SHARE} \ "${PORTDATA}" ${STAGEDIR}${DATADIR} \ "! -name *.orig ! -name *.bak \ ! -name saves ! -name log.txt") ${CHMOD} +x ${STAGEDIR}${DATADIR}/renpy.py post-install-DOCS-on: (cd ${WRKSRC}/doc && ${COPYTREE_SHARE} \ . ${STAGEDIR}${DOCSDIR} \ "! -name *.orig ! -name *.bak") .include diff --git a/lang/python27/Makefile b/lang/python27/Makefile index 245835f5be22..149977e9f2b6 100644 --- a/lang/python27/Makefile +++ b/lang/python27/Makefile @@ -1,152 +1,152 @@ PORTNAME= python DISTVERSION= ${PYTHON_DISTVERSION} -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= lang python MASTER_SITES= PYTHON/ftp/python/${DISTVERSION} PKGNAMESUFFIX= 27 DISTNAME= Python-${DISTVERSION} DIST_SUBDIR= python MAINTAINER= python@FreeBSD.org COMMENT= Interpreted object-oriented programming language WWW= https://www.python.org/ LICENSE= PSFL DEPRECATED= EOLed upstream EXPIRATION_DATE= 2020-12-31 -USES= cpe ncurses pathfix pkgconfig readline shebangfix ssl tar:xz +USES= cpe ncurses pathfix pkgconfig readline shebangfix ssl tar:xz tk:86 PATHFIX_MAKEFILEIN= Makefile.pre.in USE_LDCONFIG= yes GNU_CONFIGURE= yes python_CMD= ${PREFIX}/bin/python${PYTHON_DISTVERSION:R} SHEBANG_FILES= Lib/lib2to3/pgen2/*.py Lib/lib2to3/tests/*.py Lib/lib2to3/tests/data/*.py \ Lib/idlelib/*.py Lib/encodings/*.py Lib/test/*.py Lib/UserString.py \ Lib/base64.py Lib/cProfile.py Lib/keyword.py Lib/mimify.py Lib/pdb.py \ Lib/platform.py Lib/profile.py Lib/pydoc.py Lib/quopri.py Lib/smtpd.py \ Lib/smtplib.py Lib/symbol.py Lib/tabnanny.py Lib/timeit.py Lib/trace.py \ Lib/uu.py Lib/webbrowser.py 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} \ DISTVERSION=${DISTVERSION} \ 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 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 NLS_DESC= Enable gettext support for the locale module 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_ON= --with-system-ffi LIBFFI_LIB_DEPENDS= libffi.so:devel/libffi # 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 PYMALLOC_CONFIGURE_WITH= pymalloc THREADS_CONFIGURE_WITH= threads THREADS_LDFLAGS= -lpthread UCS2_CONFIGURE_ON= --enable-unicode=ucs2 UCS4_CONFIGURE_ON= --enable-unicode=ucs4 .include "${.CURDIR}/Makefile.version" .include # 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 # 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 @${REINPLACE_CMD} -e \ 's,/usr/doc/python-docs-,${PREFIX}/share/doc/python,g' \ ${PATCH_WRKSRC}/Lib/pydoc.py .if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS) @${REINPLACE_CMD} -e 's/disabled_module_list =[^]]*/&, "nis"/' \ ${WRKSRC}/setup.py .endif # This is just a dirty hack for building with OpenSSL 3.0.0 and later # There is no plain string OPENSSL_VERSION_NUMBER available in # openssl/opensslv.h so setup.py just detects the string as 00000000 # However care should be taken for the OSVERSION. If OpenSSL 3.0.9 # lands later the OSVERSION string should be fixed accordingly .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400092 && (${SSL_DEFAULT} == base || \ ${SSL_DEFAULT} == openssl || ${SSL_DEFAULT:Mopenssl3*} ) @${REINPLACE_CMD} -e 's|00907000|00000000|' \ ${WRKSRC}/setup.py .endif post-install: for i in ${STAGEDIR}${PREFIX}/lib/python2.7/lib-dynload/*.so; do \ ${STRIP_CMD} $$i; done # Strip shared extensions # 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/python2.7/_sysconfigdata.py @cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \ ./python -E -m compileall -d ${PREFIX}/lib/python2.7 \ ${STAGEDIR}${PREFIX}/lib/python2.7/_sysconfigdata.py @cd ${WRKSRC} && ${SETENV} LD_LIBRARY_PATH=${WRKSRC} \ ./python -E -O -m compileall -d ${PREFIX}/lib/python2.7 \ ${STAGEDIR}${PREFIX}/lib/python2.7/_sysconfigdata.py @${REINPLACE_CMD} -e 's=/nxb-bin==' \ ${STAGEDIR}${PREFIX}/lib/python2.7/config/Makefile .endif ${INSTALL_DATA} ${WRKSRC}/Tools/gdb/libpython.py \ ${STAGEDIR}${PREFIX}/lib/libpython2.7.so.1-gdb.py .include diff --git a/lang/python27/files/patch-setup.py b/lang/python27/files/patch-setup.py index e3223582a88d..4073b2c14719 100644 --- a/lang/python27/files/patch-setup.py +++ b/lang/python27/files/patch-setup.py @@ -1,93 +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.orig 2020-04-19 21:13:39 UTC +++ setup.py -@@ -15,6 +15,7 @@ from distutils.core import Extension, se +@@ -15,6 +15,7 @@ from distutils.command.install_lib import install_lib 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() +@@ -33,7 +34,7 @@ COMPILED_WITH_PYDEBUG = ('--with-pydebug' in sysconfig 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"] ++disabled_module_list = ["_bsddb", "_sqlite3", "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): +@@ -1280,7 +1281,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): +@@ -1665,9 +1666,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): +@@ -2290,6 +2292,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(): +@@ -2335,7 +2353,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(): +@@ -2343,8 +2363,7 @@ def main(): # Scripts to install scripts = ['Tools/scripts/pydoc', 'Tools/scripts/idle', - 'Tools/scripts/2to3', - 'Lib/smtpd.py'] + 'Tools/scripts/2to3'] ) # --install-platlib diff --git a/lang/python27/pkg-message b/lang/python27/pkg-message index 4dfd83b9274b..a7f33cdbf52c 100644 --- a/lang/python27/pkg-message +++ b/lang/python27/pkg-message @@ -1,13 +1,8 @@ [ { type: install message: <