diff --git a/devel/godot2/Makefile b/devel/godot2/Makefile index ef5dbfd63812..551d1edf9423 100644 --- a/devel/godot2/Makefile +++ b/devel/godot2/Makefile @@ -1,118 +1,120 @@ PORTNAME= godot DISTVERSION= 2.1.6 DISTVERSIONSUFFIX= -stable PORTREVISION= 5 CATEGORIES= devel games PKGNAMESUFFIX?= 2 MAINTAINER= FreeBSD@Shaneware.biz COMMENT?= Game runtime engine WWW= https://www.godotengine.org/ LICENSE= MIT CC-BY-3.0 LICENSE_COMB= multi LICENSE_FILE_CC-BY-3.0= ${WRKSRC}/LOGO_LICENSE.md LICENSE_FILE_MIT= ${WRKSRC}/LICENSE.txt DEPRECATED= Requires legacy OpenSSL 1.1.1 so use devel/godot EXPIRATION_DATE= 2023-07-08 -BROKEN_SSL= openssl30 openssl31 -BROKEN_SSL_REASON= Fails to build with undefined symbol: ERR_load_BIO_strings LIB_DEPENDS= libfreetype.so:print/freetype2 \ libpng.so:graphics/png \ libmpcdec.so:audio/musepack \ libspeex.so:audio/speex RUN_DEPENDS= xdg-user-dir:devel/xdg-user-dirs \ xdg-open:devel/xdg-utils \ xmessage:x11/xmessage USES= compiler:c++11-lib cpe gl pkgconfig scons ssl xorg CPE_VENDOR= godotengine USE_XORG= x11 xcursor xi xinerama xrandr USE_GL= gl glu USE_GITHUB= yes GH_ACCOUNT= godotengine MAKE_ARGS+= platform=x11 builtin_freetype=no builtin_libmpcdec=no \ builtin_libpng=no builtin_openssl=no builtin_speex=no \ builtin_zlib=no verbose=yes MAKE_ARGS+= ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} MAKE_ARGS_clang= use_llvm=yes CXXFLAGS+= -DGLEW_NO_GLU -DRTAUDIO_ENABLED -DCRIOGET_NOT_NEEDED CXXFLAGS_i386= ${CXXFLAGS_i386_${CHOSEN_COMPILER_TYPE}} CXXFLAGS_i386_gcc= -march=i586 CXXFLAGS_aarch64= -DNO_THREADS CXXFLAGS_sparc64= -DNO_THREADS CXXFLAGS_mips= -DNO_THREADS CXXFLAGS_mips64= -DNO_THREADS LDFLAGS+= -lspeex -lmpcdec OPTIONS_DEFINE= EXAMPLES TOOLS OPTIONS_DEFAULT= OSS # Moved to devel/godot-tools OPTIONS_EXCLUDE?= EXAMPLES TOOLS OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA OSS PULSEAUDIO AUDIO_DESC= Audio support ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_MAKE_ARGS= alsa=yes EXAMPLES_GH_PROJECT= godot-demo-projects:DEMOS EXAMPLES_GH_TAGNAME= 2.1.4-stable:DEMOS EXAMPLES_PORTEXAMPLES= * OSS_MAKE_ARGS= oss=yes PULSEAUDIO_LIB_DEPENDS= libpulse-simple.so:audio/pulseaudio PULSEAUDIO_MAKE_ARGS= pulseaudio=yes TOOLS_DESC= Include development tools (IDE) TOOLS_MAKE_ARGS= target=release_debug tools=yes TOOLS_MAKE_ARGS_OFF= target=release tools=no TOOLS_LDFLAGS= -lexecinfo TOOLS_DESKTOP_ENTRIES= "Godot-v2" "${COMMENT}" "${GODOTFILE}" \ "${GODOTFILE}" "Development;IDE;" "" TOOLS_PLIST_FILES= share/pixmaps/${GODOTFILE}.png \ share/pixmaps/${GODOTFILE}.svg GODOTFILE= ${PORTNAME}${PKGNAMESUFFIX} PLIST_FILES= bin/${GODOTFILE} # rename to prevent conflict with godot v3 EXAMPLESDIR= ${PREFIX}/share/examples/godot2 .ifmake makesum # Always include optional distfiles .MAKEFLAGS: WITH="${OPTIONS_DEFINE}" OPTIONS_EXCLUDE= .endif .include .if ${ARCH} != aarch64 && ${ARCH} != amd64 && ${ARCH} != i386 && ${ARCH} != armv6 && ${ARCH} != armv7 # use system libvpx on archs that break with built-in LIB_DEPENDS+= libvpx.so:multimedia/libvpx MAKE_ARGS+= builtin_libvpx=False .endif +.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +CXXFLAGS+= -Dregister= +.endif + post-patch: @${REINPLACE_CMD} -e 's|custom_build|${OPSYS}_Ports_build|' \ ${WRKSRC}/methods.py @${REINPLACE_CMD} -e 's|/usr/bin|${PREFIX}/bin|' \ ${WRKSRC}/platform/x11/os_x11.cpp # The official godot binary name reflects options used to compile # We just want a simple name matching the portname # This gives us bin/godot for runtime and bin/godot-tools for the IDE do-install: cd ${WRKSRC}/bin && ${INSTALL_PROGRAM} godot.x11* \ ${STAGEDIR}/${PREFIX}/bin/${GODOTFILE} do-install-EXAMPLES-on: (cd ${WRKSRC_DEMOS} && ${COPYTREE_SHARE} "${PORTEXAMPLES}" \ ${STAGEDIR}${EXAMPLESDIR}) do-install-TOOLS-on: ${INSTALL_DATA} ${WRKSRC}/icon.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/${GODOTFILE}.png ${INSTALL_DATA} ${WRKSRC}/icon.svg \ ${STAGEDIR}${PREFIX}/share/pixmaps/${GODOTFILE}.svg .include diff --git a/devel/godot2/files/patch-SConstruct b/devel/godot2/files/patch-SConstruct index b73a2b71f708..653fed2d4ab7 100644 --- a/devel/godot2/files/patch-SConstruct +++ b/devel/godot2/files/patch-SConstruct @@ -1,36 +1,36 @@ ---- SConstruct.orig 2016-11-15 18:44:21 UTC +--- SConstruct.orig 2019-07-08 12:01:42 UTC +++ SConstruct @@ -65,7 +65,7 @@ elif (os.name == "nt"): - if (os.getenv("VSINSTALLDIR") == None or platform_arg == "android"): + if (os.getenv("VCINSTALLDIR") == None or platform_arg == "android" or platform_arg == "javascript"): custom_tools = ['mingw'] -env_base = Environment(tools=custom_tools) +env_base = Environment(tools=custom_tools, ENV = os.environ) if 'TERM' in os.environ: env_base['ENV']['TERM'] = os.environ['TERM'] env_base.AppendENVPath('PATH', os.getenv('PATH')) @@ -272,15 +272,16 @@ if selected_platform in platform_list: if env["extra_suffix"] != '': env.extra_suffix += '.' + env["extra_suffix"] - CCFLAGS = env.get('CCFLAGS', '') - env['CCFLAGS'] = '' - - env.Append(CCFLAGS=str(CCFLAGS).split()) - - CFLAGS = env.get('CFLAGS', '') - env['CFLAGS'] = '' - + env['CC'] = os.environ['CC'] + env['CXX'] = os.environ['CXX'] + + CFLAGS = os.environ['CFLAGS'] + env['CFLAGS'] = [] env.Append(CFLAGS=str(CFLAGS).split()) + + CCFLAGS = os.environ['CXXFLAGS'] + env['CCFLAGS'] = [] + env.Append(CCFLAGS=str(CCFLAGS).split()) LINKFLAGS = env.get('LINKFLAGS', '') env['LINKFLAGS'] = '' diff --git a/devel/godot2/files/patch-drivers_SCsub b/devel/godot2/files/patch-drivers_SCsub index ada05634533e..f04d9e18c919 100644 --- a/devel/godot2/files/patch-drivers_SCsub +++ b/devel/godot2/files/patch-drivers_SCsub @@ -1,11 +1,11 @@ ---- drivers/SCsub.orig 2016-11-30 21:41:21 UTC +--- drivers/SCsub.orig 2019-07-08 12:01:42 UTC +++ drivers/SCsub @@ -14,7 +14,7 @@ SConscript('windows/SCsub') # Sounds drivers SConscript('alsa/SCsub') SConscript('pulseaudio/SCsub') -if (env["platform"] == "windows"): +if (env["platform"] == "windows") or (env["platform"] == "x11"): SConscript("rtaudio/SCsub") + SConscript("wasapi/SCsub") - # Graphics drivers diff --git a/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp b/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp index 39fbefd0727f..93d5b7a4959b 100644 --- a/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp +++ b/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp @@ -1,18 +1,18 @@ ---- drivers/rtaudio/audio_driver_rtaudio.cpp.orig 2016-08-09 07:52:15 UTC +--- drivers/rtaudio/audio_driver_rtaudio.cpp.orig 2019-07-08 12:01:42 UTC +++ drivers/rtaudio/audio_driver_rtaudio.cpp -@@ -35,8 +35,14 @@ const char* AudioDriverRtAudio::get_name +@@ -38,8 +38,14 @@ const char *AudioDriverRtAudio::get_name() const { #ifdef OSX_ENABLED return "RtAudio-OSX"; -#elif defined(UNIX_ENABLED) +#elif defined(UNIX_ENABLED) && (defined(ALSA_ENABLED) || defined(PULSEAUDIO_ENABLED) || defined(OSS_ENABLED)) +#if defined(OSS_ENABLED) + return "RtAudio-OSS"; +#elif defined(ALSA_ENABLED) return "RtAudio-ALSA"; +#elif defined(PULSEAUDIO_ENABLED) + return "RtAudio-PulseAudio"; +#endif #elif defined(WINDOWS_ENABLED) return "RtAudio-DirectSound"; #else diff --git a/devel/godot2/files/patch-drivers_unix_os__unix.cpp b/devel/godot2/files/patch-drivers_unix_os__unix.cpp index 1180857446fd..60d52a05a749 100644 --- a/devel/godot2/files/patch-drivers_unix_os__unix.cpp +++ b/devel/godot2/files/patch-drivers_unix_os__unix.cpp @@ -1,54 +1,54 @@ ---- drivers/unix/os_unix.cpp.orig 2017-08-28 01:55:12 UTC +--- drivers/unix/os_unix.cpp.orig 2019-07-08 12:01:42 UTC +++ drivers/unix/os_unix.cpp @@ -51,6 +51,7 @@ #if defined(__FreeBSD__) || defined(__OpenBSD__) #include +#include #endif #include "globals.h" #include -@@ -375,17 +376,7 @@ Error OS_Unix::execute(const String &p_p +@@ -379,17 +380,7 @@ Error OS_Unix::execute(const String &p_path, const Lis args.push_back((char *)cs[i].get_data()); // shitty C cast args.push_back(0); -#ifdef __FreeBSD__ - if (p_path.find("/")) { - // exec name contains path so use it - execv(p_path.utf8().get_data(), &args[0]); - } else { - // use program name and search through PATH to find it - execvp(getprogname(), &args[0]); - } -#else execv(p_path.utf8().get_data(), &args[0]); -#endif // still alive? something failed.. fprintf(stderr, "**ERROR** OS_Unix::execute - Could not create child process while executing: %s\n", p_path.utf8().get_data()); abort(); -@@ -499,12 +490,24 @@ String OS_Unix::get_executable_path() co +@@ -503,12 +494,24 @@ String OS_Unix::get_executable_path() const { return OS::get_executable_path(); } return b; -#elif defined(__FreeBSD__) || defined(__OpenBSD__) +#elif defined(__OpenBSD__) char resolved_path[MAXPATHLEN]; realpath(OS::get_executable_path().utf8().get_data(), resolved_path); return String(resolved_path); + +#elif defined(__FreeBSD__) + int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; + char buf[MAXPATHLEN]; + size_t len = sizeof(buf); + if (sysctl(mib, 4, buf, &len, NULL, 0) != 0) { + WARN_PRINT("Couldn't get executable path from sysctl"); + return OS::get_executable_path(); + } + String b; + b.parse_utf8(buf); + return b; #elif defined(__APPLE__) char temp_path[1]; uint32_t buff_size = 1; diff --git a/devel/godot2/files/patch-modules_openssl_stream__peer__openssl.cpp b/devel/godot2/files/patch-modules_openssl_stream__peer__openssl.cpp new file mode 100644 index 000000000000..8f3b2da6e94d --- /dev/null +++ b/devel/godot2/files/patch-modules_openssl_stream__peer__openssl.cpp @@ -0,0 +1,12 @@ +--- modules/openssl/stream_peer_openssl.cpp.orig 2023-08-06 17:18:41 UTC ++++ modules/openssl/stream_peer_openssl.cpp +@@ -596,7 +596,9 @@ void StreamPeerOpenSSL::initialize_ssl() { + #endif + SSL_library_init(); // Initialize OpenSSL's SSL libraries + SSL_load_error_strings(); // Load SSL error strings ++#if OPENSSL_VERSION_NUMBER < 0x30000000L + ERR_load_BIO_strings(); // Load BIO error strings ++#endif + OpenSSL_add_all_algorithms(); // Load all available encryption algorithms + String certs_path = GLOBAL_DEF("ssl/certificates", ""); + Globals::get_singleton()->set_custom_property_info("ssl/certificates", PropertyInfo(Variant::STRING, "ssl/certificates", PROPERTY_HINT_FILE, "*.crt")); diff --git a/devel/godot2/files/patch-platform_x11_detect.py b/devel/godot2/files/patch-platform_x11_detect.py index efa93447d436..748b31f4ca16 100644 --- a/devel/godot2/files/patch-platform_x11_detect.py +++ b/devel/godot2/files/patch-platform_x11_detect.py @@ -1,94 +1,94 @@ ---- platform/x11/detect.py.orig 2018-07-29 00:47:52 UTC +--- platform/x11/detect.py.orig 2019-07-08 12:01:42 UTC +++ platform/x11/detect.py @@ -56,7 +56,9 @@ def get_opts(): ('use_sanitizer', 'Use llvm compiler sanitize address', 'no'), ('use_leak_sanitizer', 'Use llvm compiler sanitize memory leaks', 'no'), ('use_lto', 'Use link time optimization', 'no'), - ('pulseaudio', 'Detect & Use pulseaudio', 'yes'), + ('alsa','Detect & Use alsa audio','no'), + ('oss','Detect & Use OSS audio','no'), + ('pulseaudio', 'Detect & Use pulseaudio', 'no'), ('udev', 'Use udev for gamepad connection callbacks', 'no'), ('debug_release', 'Add debug symbols to release version', 'no'), ('touch', 'Enable touch events', 'yes'), -@@ -85,10 +87,6 @@ def configure(env): +@@ -80,10 +82,6 @@ def configure(env): env.Append(CPPPATH=['#platform/x11']) if (env["use_llvm"] == "yes"): - if 'clang++' not in env['CXX']: - env["CC"] = "clang" - env["CXX"] = "clang++" - env["LD"] = "clang++" env.Append(CPPFLAGS=['-DTYPED_METHOD_BIND']) env.extra_suffix = ".llvm" elif (os.system("gcc --version > /dev/null 2>&1") == 0): # GCC -@@ -126,19 +124,14 @@ def configure(env): +@@ -121,19 +119,14 @@ def configure(env): env.Append(LINKFLAGS=['-pipe']) if (env["target"] == "release"): - env.Prepend(CCFLAGS=['-Ofast']) - if (env["debug_release"] == "yes"): - env.Prepend(CCFLAGS=['-g2']) + pass elif (env["target"] == "release_debug"): - - env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED']) - if (env["debug_release"] == "yes"): - env.Prepend(CCFLAGS=['-g2']) - + env.Prepend(CCFLAGS=['-DDEBUG_ENABLED']) + elif (env["target"] == "debug"): - env.Prepend(CCFLAGS=['-g2', '-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED']) + env.Prepend(CCFLAGS=['-DDEBUG_ENABLED', '-DDEBUG_MEMORY_ENABLED']) env.Append(LINKFLAGS=['-rdynamic']) env.ParseConfig('pkg-config x11 --cflags --libs') -@@ -155,7 +148,12 @@ def configure(env): +@@ -150,7 +143,12 @@ def configure(env): env.Append(CPPFLAGS=['-DTOUCH_ENABLED']) if (env['builtin_openssl'] == 'no'): - env.ParseConfig('pkg-config openssl --cflags --libs') + try: + # try to find a port installed openssl + env.ParseConfig('pkg-config openssl --cflags --libs') + except: + # if none found use base system openssl + env.ParseConfig('echo -lssl -lcrypto') if (env['builtin_libwebp'] == 'no'): env.ParseConfig('pkg-config libwebp --cflags --libs') -@@ -200,12 +198,13 @@ def configure(env): +@@ -195,12 +193,13 @@ def configure(env): if (env['builtin_glew'] == 'no'): env.ParseConfig('pkg-config glew --cflags --libs') - if os.system("pkg-config --exists alsa") == 0: - print("Enabling ALSA") - env.Append(CPPFLAGS=["-DALSA_ENABLED"]) - env.ParseConfig('pkg-config alsa --cflags --libs') - else: - print("ALSA libraries not found, disabling driver") + if (env["alsa"]=="yes"): + if os.system("pkg-config --exists alsa")==0: + print("Enabling ALSA") + env.Append(CPPFLAGS=["-DALSA_ENABLED"]) + env.Append(LIBS=['asound']) + else: + print("ALSA libraries not found, disabling driver") if (platform.system() == "Linux"): env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"]) -@@ -220,6 +219,11 @@ def configure(env): +@@ -214,6 +213,11 @@ def configure(env): + env.ParseConfig('pkg-config libudev --cflags --libs') else: print("libudev development libraries not found, disabling udev support") - ++ + if (env["oss"]=="yes"): + print("Enabling OSS Audio") + env.Append(CPPFLAGS=["-DOSS_ENABLED"]) + env.Append(CCFLAGS=['-Ithirdparty/rtaudio']) -+ + if (env["pulseaudio"] == "yes"): if not os.system("pkg-config --exists libpulse-simple"): - print("Enabling PulseAudio")