--- devel/godot/distinfo 2018-03-08 13:23:22.983224000 +1030 +++ devel/godot/distinfo 2018-03-07 16:30:57.100997000 +1030 @@ -1,5 +1,5 @@ -TIMESTAMP = 1485416056 -SHA256 (godotengine-godot-2.1.2-stable_GH0.tar.gz) = 29b3131449f8ca908be800c4c07020efaa9f90a29b6bc1be8a18a331dc34b49a -SIZE (godotengine-godot-2.1.2-stable_GH0.tar.gz) = 14399692 -SHA256 (godotengine-godot-demo-projects-dfa1274_GH0.tar.gz) = 42420f7f473b1391a13f226473d1cc850605f24d2865220e4c5acde05f1c340c -SIZE (godotengine-godot-demo-projects-dfa1274_GH0.tar.gz) = 18423807 +TIMESTAMP = 1520319042 +SHA256 (godotengine-godot-3.0.2-stable_GH0.tar.gz) = 15bc91dcbc92fe49624118678fcab119ff332dc295b25f4921700a4ee498b651 +SIZE (godotengine-godot-3.0.2-stable_GH0.tar.gz) = 18812660 +SHA256 (godotengine-godot-demo-projects-d69cc10a0b8a_GH0.tar.gz) = b798d0bb56a643fdb175df463990904523495dd5546bc00bbe762e0645b7c94a +SIZE (godotengine-godot-demo-projects-d69cc10a0b8a_GH0.tar.gz) = 140126782 --- devel/godot/files/patch-drivers_SCsub 2018-03-08 13:23:22.934380000 +1030 +++ devel/godot/files/patch-drivers_SCsub 2018-02-07 00:54:11.678165000 +1030 @@ -1,11 +1,11 @@ --- drivers/SCsub.orig 2016-11-30 21:41:21 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"): +@@ -18,6 +18,8 @@ SConscript('pulseaudio/SCsub') + if (env["platform"] == "windows"): SConscript("rtaudio/SCsub") + SConscript("wasapi/SCsub") ++if env["platform"] == "x11": ++ SConscript("rtaudio/SCsub") + if env['xaudio2']: + SConscript("xaudio2/SCsub") - # Graphics drivers --- devel/godot/files/patch-drivers_unix_os__unix.cpp 2018-03-08 13:23:22.921120000 +1030 +++ devel/godot/files/patch-drivers_unix_os__unix.cpp 2018-02-07 00:54:11.678254000 +1030 @@ -1,50 +1,11 @@ ---- drivers/unix/os_unix.cpp.orig 2016-08-09 07:52:15 UTC +--- drivers/unix/os_unix.cpp.orig 2018-02-01 19:27:25 UTC +++ drivers/unix/os_unix.cpp -@@ -50,6 +50,7 @@ +@@ -235,7 +235,7 @@ OS::TimeZoneInfo OS_Unix::get_time_zone_ - #ifdef __FreeBSD__ - #include -+#include - #endif - #include - #include -@@ -371,17 +372,7 @@ Error OS_Unix::execute(const String& p_p - args.push_back((char*)cs[i].get_data());// shitty C cast - args.push_back(0); + void OS_Unix::delay_usec(uint32_t p_usec) const { --#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(); -@@ -503,11 +494,16 @@ String OS_Unix::get_executable_path() co +- struct timespec rem = { p_usec / 1000000, (p_usec % 1000000) * 1000 }; ++ struct timespec rem = { time_t(p_usec) / 1000000, (long(p_usec) % 1000000) * 1000 }; + while (nanosleep(&rem, &rem) == EINTR) { } - return b; - #elif defined(__FreeBSD__) -- char resolved_path[MAXPATHLEN]; -- -- realpath(OS::get_executable_path().utf8().get_data(), resolved_path); -- -- return String(resolved_path); -+ 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; + } --- devel/godot/files/patch-modules_mono_SCsub 1970-01-01 09:30:00.000000000 +0930 +++ devel/godot/files/patch-modules_mono_SCsub 2018-02-07 00:54:11.678312000 +1030 @@ -0,0 +1,11 @@ +--- modules/mono/SCsub.orig 2018-01-03 10:12:46 UTC ++++ modules/mono/SCsub +@@ -147,7 +147,7 @@ def mono_build_solution(source, target, + msbuild_path = msbuild_info[0] + framework_path_override = msbuild_info[1] + else: +- msbuild_path = find_msbuild_unix('msbuild') ++ msbuild_path = find_msbuild_unix('xbuild') + if msbuild_path is None: + xbuild_fallback = env['xbuild_fallback'] + --- devel/godot/files/patch-modules_speex_audio__stream__speex.cpp 2018-03-08 13:23:22.958263000 +1030 +++ devel/godot/files/patch-modules_speex_audio__stream__speex.cpp 1970-01-01 09:30:00.000000000 +0930 @@ -1,10 +0,0 @@ ---- modules/speex/audio_stream_speex.cpp.orig 2016-11-28 17:58:00 UTC -+++ modules/speex/audio_stream_speex.cpp -@@ -28,7 +28,6 @@ - /*************************************************************************/ - #include "audio_stream_speex.h" - --#include "os_support.h" - #include "os/os.h" - #define READ_CHUNK 1024 - --- devel/godot/files/patch-platform_x11_detect.py 2018-03-08 13:23:22.934728000 +1030 +++ devel/godot/files/patch-platform_x11_detect.py 2018-02-07 00:54:11.678442000 +1030 @@ -1,66 +1,47 @@ ---- platform/x11/detect.py.orig 2016-11-15 18:44:21 UTC +--- platform/x11/detect.py.orig 2017-12-28 05:14:45 UTC +++ platform/x11/detect.py -@@ -31,11 +31,6 @@ def can_build(): - print("X11 not found.. x11 disabled.") - return False +@@ -52,7 +52,9 @@ def get_opts(): + BoolVariable('use_static_cpp', 'Link stdc++ statically', False), + BoolVariable('use_sanitizer', 'Use LLVM compiler address sanitizer', False), + BoolVariable('use_leak_sanitizer', 'Use LLVM compiler memory leaks sanitizer (implies use_sanitizer)', False), +- BoolVariable('pulseaudio', 'Detect & use pulseaudio', True), ++ BoolVariable('alsa','Detect & Use alsa audio',False), ++ BoolVariable('oss','Detect & Use OSS audio',False), ++ BoolVariable('pulseaudio', 'Detect & Use pulseaudio', False), + BoolVariable('udev', 'Use udev for gamepad connection callbacks', False), + EnumVariable('debug_symbols', 'Add debug symbols to release version', 'yes', ('yes', 'no', 'full')), + BoolVariable('separate_debug_symbols', 'Create a separate file with the debug symbols', False), +@@ -154,7 +156,7 @@ def configure(env): + # FIXME: Check for existence of the libs before parsing their flags with pkg-config -- ssl_error = os.system("pkg-config openssl --modversion > /dev/null ") -- if (ssl_error): -- print("OpenSSL not found.. x11 disabled.") -- return False -- - x11_error = os.system("pkg-config xcursor --modversion > /dev/null ") - if (x11_error): - print("xcursor not found.. x11 disabled.") -@@ -61,7 +56,9 @@ def get_opts(): - ('use_static_cpp', 'link stdc++ statically', 'no'), - ('use_sanitizer', 'Use llvm compiler sanitize address', 'no'), - ('use_leak_sanitizer', 'Use llvm compiler sanitize memory leaks', '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'), - ] -@@ -134,7 +131,7 @@ def configure(env): - env.ParseConfig('pkg-config xrandr --cflags --libs') - - if (env['builtin_openssl'] == 'no'): + if not env['builtin_openssl']: - env.ParseConfig('pkg-config openssl --cflags --libs') + env.ParseConfig('echo -lssl -lcrypto') - if (env['builtin_libwebp'] == 'no'): + if not env['builtin_libwebp']: env.ParseConfig('pkg-config libwebp --cflags --libs') -@@ -173,12 +170,13 @@ def configure(env): - if (env['builtin_glew'] == 'no'): - env.ParseConfig('pkg-config glew --cflags --libs') +@@ -226,12 +228,18 @@ def configure(env): + + ## Flags -- if os.system("pkg-config --exists alsa") == 0: +- if (os.system("pkg-config --exists alsa") == 0): # 0 means found - 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 env['alsa']: + 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"]) -@@ -193,6 +191,11 @@ def configure(env): - else: - print("libudev development libraries not found, disabling udev support") - -+ if (env["oss"]=="yes"): ++ ++ if env['oss']: + 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") + + if env['pulseaudio']: + if (os.system("pkg-config --exists libpulse-simple") == 0): # 0 means found --- devel/godot/files/patch-platform_x11_os__x11.cpp 1970-01-01 09:30:00.000000000 +0930 +++ devel/godot/files/patch-platform_x11_os__x11.cpp 2018-02-07 00:54:11.678544000 +1030 @@ -0,0 +1,13 @@ +--- platform/x11/os_x11.cpp.orig 2018-01-03 04:32:19 UTC ++++ platform/x11/os_x11.cpp +@@ -2469,6 +2469,10 @@ OS_X11::OS_X11() { + AudioDriverManager::add_driver(&driver_pulseaudio); + #endif + ++#ifdef RTAUDIO_ENABLED ++ AudioDriverManager::add_driver(&driver_rtaudio); ++#endif ++ + #ifdef ALSA_ENABLED + AudioDriverManager::add_driver(&driver_alsa); + #endif --- devel/godot/files/patch-platform_x11_os__x11.h 1970-01-01 09:30:00.000000000 +0930 +++ devel/godot/files/patch-platform_x11_os__x11.h 2018-02-07 00:54:11.678610000 +1030 @@ -0,0 +1,21 @@ +--- platform/x11/os_x11.h.orig 2018-01-03 09:26:19 UTC ++++ platform/x11/os_x11.h +@@ -38,6 +38,7 @@ + //#include "servers/visual/visual_server_wrap_mt.h" + #include "drivers/alsa/audio_driver_alsa.h" + #include "drivers/pulseaudio/audio_driver_pulseaudio.h" ++#include "drivers/rtaudio/audio_driver_rtaudio.h" + #include "joypad_linux.h" + #include "main/input_default.h" + #include "power_x11.h" +@@ -166,6 +167,10 @@ class OS_X11 : public OS_Unix { + AudioDriverPulseAudio driver_pulseaudio; + #endif + ++#ifdef RTAUDIO_ENABLED ++ AudioDriverRtAudio driver_rtaudio; ++#endif ++ + Atom net_wm_icon; + + PowerX11 *power_manager; --- devel/godot/files/patch-scene_gui_rich__text__label.cpp 1970-01-01 09:30:00.000000000 +0930 +++ devel/godot/files/patch-scene_gui_rich__text__label.cpp 2018-02-07 00:54:11.678677000 +1030 @@ -0,0 +1,14 @@ +--- scene/gui/rich_text_label.cpp.orig 2018-01-10 13:20:47 UTC ++++ scene/gui/rich_text_label.cpp +@@ -806,9 +806,9 @@ void RichTextLabel::_gui_input(Ref + +-#ifdef NV_OS_LINUX +-#include +-#endif +- + #define USE_EFENCE 0 + + #if USE_EFENCE +@@ -130,7 +126,7 @@ void * nv::aligned_malloc(size_t size, s + + #if NV_OS_WIN32 || NV_OS_DURANGO + return _aligned_malloc(size, alignment); +-#elif NV_OS_DARWIN && !NV_OS_IOS ++#elif (NV_OS_FREEBSD || NV_OS_DARWIN) && !NV_OS_IOS + void * ptr = NULL; + posix_memalign(&ptr, alignment, size); + return ptr; --- devel/godot/files/patch-thirdparty_thekla__atlas_nvcore_StdStream.h 1970-01-01 09:30:00.000000000 +0930 +++ devel/godot/files/patch-thirdparty_thekla__atlas_nvcore_StdStream.h 2018-02-07 00:54:11.678800000 +1030 @@ -0,0 +1,40 @@ +--- thirdparty/thekla_atlas/nvcore/StdStream.h.orig 2017-12-29 19:15:48 UTC ++++ thirdparty/thekla_atlas/nvcore/StdStream.h +@@ -160,14 +160,14 @@ namespace nv + nvDebugCheck(m_fp != NULL); + #if NV_OS_WIN32 + return (uint)_fwrite_nolock(data, 1, len, m_fp); +-#elif NV_OS_LINUX +- return (uint)fwrite_unlocked(data, 1, len, m_fp); +-#elif NV_OS_DARWIN ++#elif NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_OPENBSD + // @@ No error checking, always returns len. + for (uint i = 0; i < len; i++) { + putc_unlocked(((char *)data)[i], m_fp); + } + return len; ++#elif NV_OS_LINUX ++ return (uint)fwrite_unlocked(data, 1, len, m_fp); + #else + return (uint)fwrite(data, 1, len, m_fp); + #endif +@@ -210,9 +210,7 @@ namespace nv + nvDebugCheck(m_fp != NULL); + #if NV_OS_WIN32 + return (uint)_fread_nolock(data, 1, len, m_fp); +-#elif NV_OS_LINUX +- return (uint)fread_unlocked(data, 1, len, m_fp); +-#elif NV_OS_DARWIN ++#elif NV_OS_DARWIN || NV_OS_FREEBSD || NV_OS_OPENBSD + // This is rather lame. Not sure if it's faster than the locked version. + for (uint i = 0; i < len; i++) { + ((char *)data)[i] = getc_unlocked(m_fp); +@@ -221,6 +219,8 @@ namespace nv + } + } + return len; ++#elif NV_OS_LINUX ++ return (uint)fread_unlocked(data, 1, len, m_fp); + #else + return (uint)fread(data, 1, len, m_fp); + #endif --- devel/godot/Makefile 2018-03-08 13:23:23.008216000 +1030 +++ devel/godot/Makefile 2018-03-08 13:22:15.506120000 +1030 @@ -2,9 +2,8 @@ # $FreeBSD$ PORTNAME= godot -PORTVERSION= 2.1.2 -PORTREVISION= 3 -DISTVERSIONSUFFIX= -stable +PORTVERSION= 3.0.2 +DISTVERSIONSUFFIX= -stable CATEGORIES= devel games MAINTAINER= FreeBSD@Shaneware.biz @@ -13,15 +12,11 @@ LICENSE= MIT CC-BY-3.0 LICENSE_COMB= multi LICENSE_FILE_CC-BY-3.0= ${WRKSRC}/LOGO_LICENSE.md -LICENSE_FILE_MIT= ${WRKSRC}/LICENSE.md - -BROKEN_SSL= openssl-devel -BROKEN_SSL_REASON_openssl-devel= member access into incomplete type 'BIO' (aka 'bio_st') +LICENSE_FILE_MIT= ${WRKSRC}/LICENSE.txt +BUILD_DEPENDS= yasm:devel/yasm LIB_DEPENDS= libfreetype.so:print/freetype2 \ - libpng.so:graphics/png \ - libmpcdec.so:audio/musepack \ - libspeex.so:audio/speex + libpng.so:graphics/png RUN_DEPENDS= xdg-user-dir:devel/xdg-user-dirs \ xdg-open:devel/xdg-utils \ xmessage:x11/xmessage @@ -29,23 +24,26 @@ USE_GITHUB= yes GH_ACCOUNT= godotengine -USES= compiler:c++11-lib pkgconfig scons ssl -USE_XORG= x11 xcursor xinerama xrandr -USE_GL= gl - -MAKE_ARGS+= platform=x11 builtin_speex=no builtin_libmpcdec=no -MAKE_ARGS+= ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} -MAKE_ARGS_clang= use_llvm=yes -CXXFLAGS+= -DGLEW_NO_GLU -DRTAUDIO_ENABLED -CXXFLAGS_i386= ${CXXFLAGS_i386_${CHOSEN_COMPILER_TYPE}} +# on 10.4 using clang34 fails - so we want to use clang50 +# gl already needs clang50 so this shouldn't add any overhead +USES= compiler:c++14-lang pkgconfig scons ssl +USE_XORG= x11 xcursor xi xinerama xrandr +USE_GL= gl glew glu + +MAKE_ARGS+= platform=x11 builtin_libpng=False builtin_openssl=False +MAKE_ARGS+= ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} +MAKE_ARGS_clang= use_llvm=True +CXXFLAGS+= -DRTAUDIO_ENABLED +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 +# option MONO can be built but is not stable enough to use yet +# for now leave it out as an option +OPTIONS_DEFINE= EXAMPLES TOOLS OPTIONS_DEFAULT= OSS # Moved to devel/godot-tools OPTIONS_EXCLUDE?= EXAMPLES TOOLS @@ -54,24 +52,27 @@ AUDIO_DESC= Audio support ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib -ALSA_MAKE_ARGS= alsa=yes +ALSA_MAKE_ARGS= alsa=True EXAMPLES_GH_PROJECT= godot-demo-projects:DEMOS -# Branch HEAD for PORTVERSION -EXAMPLES_GH_TAGNAME= dfa1274:DEMOS +# master at 31/1 +EXAMPLES_GH_TAGNAME= d69cc10a0b8a:DEMOS EXAMPLES_PORTEXAMPLES= * -OSS_MAKE_ARGS= oss=yes +# while mono support can build it isn't stable enough to be used yet +MONO_LIB_DEPENDS= libmonosgen-2.0.so:lang/mono +MONO_MAKE_ARGS= module_mono_enabled=True +OSS_MAKE_ARGS= oss=True 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 +PULSEAUDIO_MAKE_ARGS= pulseaudio=True +TOOLS_DESC= Include development tools (IDE) +TOOLS_MAKE_ARGS= target=release_debug tools=True +TOOLS_MAKE_ARGS_OFF= target=release tools=False TOOLS_DESKTOP_ENTRIES= "Godot" "${COMMENT}" "${GODOTFILE}" \ "${GODOTFILE}" "Development;IDE;" "" TOOLS_PLIST_FILES= share/pixmaps/${GODOTFILE}.png \ share/pixmaps/${GODOTFILE}.svg GODOTFILE= ${PORTNAME}${PKGNAMESUFFIX} -PLIST_FILES= bin/${GODOTFILE} +PLIST_FILES= bin/${GODOTFILE} .ifmake makesum # Always include optional distfiles @@ -84,10 +85,19 @@ @${REINPLACE_CMD} -e 's|/usr/bin|${PREFIX}/bin|' \ ${WRKSRC}/platform/x11/os_x11.cpp +pre-build-MONO-on: + @(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \ + ${_MAKE_JOBS} ${MAKE_ARGS:C,^${DESTDIRNAME}=.*,,g} \ + target=release_debug tools=True mono_glue=False) + @(cd ${WRKSRC} && ${FIND} ${WRKSRC}/bin -name 'godot*' -exec {} \ + --generate-mono-glue modules/mono/glue \; && \ + ${FIND} ${WRKSRC}/bin -name 'godot*' -delete) + # 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: + @${RM} ${WRKSRC}/bin/*.debugsymbols cd ${WRKSRC}/bin && ${INSTALL_PROGRAM} godot.x11* \ ${STAGEDIR}/${PREFIX}/bin/${GODOTFILE}