aboutsummaryrefslogtreecommitdiff
path: root/devel/godot2
diff options
context:
space:
mode:
authorDmitry Marakasov <amdmi3@FreeBSD.org>2018-03-16 17:27:57 +0000
committerDmitry Marakasov <amdmi3@FreeBSD.org>2018-03-16 17:27:57 +0000
commit092af8a5ecad52802a255fd13a2010953ad10146 (patch)
tree064f5cdc1ab7ac98b8ffac38fb4686d5ef2bc5ba /devel/godot2
parentd87475f096cdc8a2e3878301a2c99da8b123728d (diff)
downloadports-092af8a5ecad52802a255fd13a2010953ad10146.tar.gz
ports-092af8a5ecad52802a255fd13a2010953ad10146.zip
- Rename godot, godot-tools to godot2, godot2-tools in preparation for godot 3
- Fix godot consumers to use godot2 PR: 224604 Submitted by: FreeBSD@ShaneWare.Biz (maintainer)
Notes
Notes: svn path=/head/; revision=464714
Diffstat (limited to 'devel/godot2')
-rw-r--r--devel/godot2/Makefile102
-rw-r--r--devel/godot2/distinfo5
-rw-r--r--devel/godot2/files/patch-SConstruct36
-rw-r--r--devel/godot2/files/patch-core_image.cpp35
-rw-r--r--devel/godot2/files/patch-core_ustring.cpp11
-rw-r--r--devel/godot2/files/patch-drivers_SCsub11
-rw-r--r--devel/godot2/files/patch-drivers_gles2_rasterizer__gles2.cpp30
-rw-r--r--devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp18
-rw-r--r--devel/godot2/files/patch-drivers_unix_os__unix.cpp54
-rw-r--r--devel/godot2/files/patch-modules_speex_audio__stream__speex.cpp11
-rw-r--r--devel/godot2/files/patch-platform_x11_detect.py97
-rw-r--r--devel/godot2/files/patch-platform_x11_os__x11.cpp11
-rw-r--r--devel/godot2/files/patch-servers_audio_audio__mixer__sw.cpp24
-rw-r--r--devel/godot2/files/patch-servers_spatial__sound__2d_spatial__sound__2d__server__sw.cpp20
-rw-r--r--devel/godot2/files/patch-servers_spatial__sound_spatial__sound__server__sw.cpp20
-rw-r--r--devel/godot2/files/patch-thirdparty_glew_glew.c11
-rw-r--r--devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.cpp89
-rw-r--r--devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.h16
-rw-r--r--devel/godot2/pkg-descr9
19 files changed, 610 insertions, 0 deletions
diff --git a/devel/godot2/Makefile b/devel/godot2/Makefile
new file mode 100644
index 000000000000..bf67517ec2f8
--- /dev/null
+++ b/devel/godot2/Makefile
@@ -0,0 +1,102 @@
+# Created by: Shane Ambler <FreeBSD@Shaneware.biz>
+# $FreeBSD$
+
+PORTNAME= godot
+PORTVERSION= 2.1.4
+DISTVERSIONSUFFIX= -stable
+PORTREVISION= 0
+CATEGORIES= devel games
+PKGNAMESUFFIX?= 2
+
+MAINTAINER= FreeBSD@Shaneware.biz
+COMMENT?= Game runtime engine
+
+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
+
+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
+
+USE_GITHUB= yes
+GH_ACCOUNT= godotengine
+
+USES= compiler:c++11-lib pkgconfig scons ssl
+USE_XORG= x11 xcursor xinerama xrandr
+USE_GL= gl glu
+
+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}}
+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_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_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
+
+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 <bsd.port.mk>
diff --git a/devel/godot2/distinfo b/devel/godot2/distinfo
new file mode 100644
index 000000000000..718f7c7fdd72
--- /dev/null
+++ b/devel/godot2/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1514402523
+SHA256 (godotengine-godot-2.1.4-stable_GH0.tar.gz) = 07cf3b01367d5ea53805f144bc60711bd79efb53f1f88d57d6a706e6944de8d7
+SIZE (godotengine-godot-2.1.4-stable_GH0.tar.gz) = 14811915
+SHA256 (godotengine-godot-demo-projects-2.1.4-stable_GH0.tar.gz) = f474381ba834d37cfce45c0130dad16d907a4ce28cde94f35c7d96a72f164d75
+SIZE (godotengine-godot-demo-projects-2.1.4-stable_GH0.tar.gz) = 20534045
diff --git a/devel/godot2/files/patch-SConstruct b/devel/godot2/files/patch-SConstruct
new file mode 100644
index 000000000000..3716b3fe6f87
--- /dev/null
+++ b/devel/godot2/files/patch-SConstruct
@@ -0,0 +1,36 @@
+--- SConstruct.orig 2016-11-15 18:44:21 UTC
++++ SConstruct
+@@ -65,7 +65,7 @@ elif (os.name == "nt"):
+ if (os.getenv("VSINSTALLDIR") == None or platform_arg == "android"):
+ 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'))
+@@ -247,15 +247,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=string.split(str(CCFLAGS)))
+-
+- 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=string.split(str(CFLAGS)))
++
++ CCFLAGS = os.environ['CXXFLAGS']
++ env['CCFLAGS'] = []
++ env.Append(CCFLAGS=string.split(str(CCFLAGS)))
+
+ LINKFLAGS = env.get('LINKFLAGS', '')
+ env['LINKFLAGS'] = ''
diff --git a/devel/godot2/files/patch-core_image.cpp b/devel/godot2/files/patch-core_image.cpp
new file mode 100644
index 000000000000..721e46f563bf
--- /dev/null
+++ b/devel/godot2/files/patch-core_image.cpp
@@ -0,0 +1,35 @@
+--- core/image.cpp.orig 2018-01-10 18:34:14 UTC
++++ core/image.cpp
+@@ -1518,8 +1518,8 @@ Error Image::_decompress_bc() {
+ col_b |= src[2];
+
+ uint8_t table[4][4] = {
+- { (col_a >> 11) << 3, ((col_a >> 5) & 0x3f) << 2, ((col_a)&0x1f) << 3, 255 },
+- { (col_b >> 11) << 3, ((col_b >> 5) & 0x3f) << 2, ((col_b)&0x1f) << 3, 255 },
++ { static_cast<uint8_t>((col_a >> 11) << 3), static_cast<uint8_t>(((col_a >> 5) & 0x3f) << 2), static_cast<uint8_t>(((col_a)&0x1f) << 3), 255 },
++ { static_cast<uint8_t>((col_b >> 11) << 3), static_cast<uint8_t>(((col_b >> 5) & 0x3f) << 2), static_cast<uint8_t>(((col_b)&0x1f) << 3), 255 },
+ { 0, 0, 0, 255 },
+ { 0, 0, 0, 255 }
+ };
+@@ -1611,8 +1611,8 @@ Error Image::_decompress_bc() {
+ col_b |= src[8 + 2];
+
+ uint8_t table[4][4] = {
+- { (col_a >> 11) << 3, ((col_a >> 5) & 0x3f) << 2, ((col_a)&0x1f) << 3, 255 },
+- { (col_b >> 11) << 3, ((col_b >> 5) & 0x3f) << 2, ((col_b)&0x1f) << 3, 255 },
++ { static_cast<uint8_t>((col_a >> 11) << 3), static_cast<uint8_t>(((col_a >> 5) & 0x3f) << 2), static_cast<uint8_t>(((col_a)&0x1f) << 3), 255 },
++ { static_cast<uint8_t>((col_b >> 11) << 3), static_cast<uint8_t>(((col_b >> 5) & 0x3f) << 2), static_cast<uint8_t>(((col_b)&0x1f) << 3), 255 },
+ { 0, 0, 0, 255 },
+ { 0, 0, 0, 255 }
+ };
+@@ -1722,8 +1722,8 @@ Error Image::_decompress_bc() {
+ col_b |= src[8 + 2];
+
+ uint8_t table[4][4] = {
+- { (col_a >> 11) << 3, ((col_a >> 5) & 0x3f) << 2, ((col_a)&0x1f) << 3, 255 },
+- { (col_b >> 11) << 3, ((col_b >> 5) & 0x3f) << 2, ((col_b)&0x1f) << 3, 255 },
++ { static_cast<uint8_t>((col_a >> 11) << 3), static_cast<uint8_t>(((col_a >> 5) & 0x3f) << 2), static_cast<uint8_t>(((col_a)&0x1f) << 3), 255 },
++ { static_cast<uint8_t>((col_b >> 11) << 3), static_cast<uint8_t>(((col_b >> 5) & 0x3f) << 2), static_cast<uint8_t>(((col_b)&0x1f) << 3), 255 },
+ { 0, 0, 0, 255 },
+ { 0, 0, 0, 255 }
+ };
diff --git a/devel/godot2/files/patch-core_ustring.cpp b/devel/godot2/files/patch-core_ustring.cpp
new file mode 100644
index 000000000000..59472a6236aa
--- /dev/null
+++ b/devel/godot2/files/patch-core_ustring.cpp
@@ -0,0 +1,11 @@
+--- core/ustring.cpp.orig 2018-01-10 18:53:28 UTC
++++ core/ustring.cpp
+@@ -3199,7 +3199,7 @@ String String::http_unescape() const {
+ if ((ord1 >= '0' && ord1 <= '9') || (ord1 >= 'A' && ord1 <= 'Z')) {
+ CharType ord2 = ord_at(i + 2);
+ if ((ord2 >= '0' && ord2 <= '9') || (ord2 >= 'A' && ord2 <= 'Z')) {
+- char bytes[2] = { ord1, ord2 };
++ char bytes[2] = { static_cast<char>(ord1), static_cast<char>(ord2) };
+ res += (char)strtol(bytes, NULL, 16);
+ i += 2;
+ }
diff --git a/devel/godot2/files/patch-drivers_SCsub b/devel/godot2/files/patch-drivers_SCsub
new file mode 100644
index 000000000000..ada05634533e
--- /dev/null
+++ b/devel/godot2/files/patch-drivers_SCsub
@@ -0,0 +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"):
+ SConscript("rtaudio/SCsub")
+
+ # Graphics drivers
diff --git a/devel/godot2/files/patch-drivers_gles2_rasterizer__gles2.cpp b/devel/godot2/files/patch-drivers_gles2_rasterizer__gles2.cpp
new file mode 100644
index 000000000000..8faf77fe3ed4
--- /dev/null
+++ b/devel/godot2/files/patch-drivers_gles2_rasterizer__gles2.cpp
@@ -0,0 +1,30 @@
+--- drivers/gles2/rasterizer_gles2.cpp.orig 2018-01-10 11:36:45 UTC
++++ drivers/gles2/rasterizer_gles2.cpp
+@@ -2135,9 +2135,9 @@ Error RasterizerGLES2::_surface_set_arra
+ for (int i = 0; i < p_surface->array_len; i++) {
+
+ GLbyte vector[4] = {
+- CLAMP(src[i].x * 127, -128, 127),
+- CLAMP(src[i].y * 127, -128, 127),
+- CLAMP(src[i].z * 127, -128, 127),
++ static_cast<GLbyte>CLAMP(src[i].x * 127, -128, 127),
++ static_cast<GLbyte>CLAMP(src[i].y * 127, -128, 127),
++ static_cast<GLbyte>CLAMP(src[i].z * 127, -128, 127),
+ 0,
+ };
+
+@@ -2169,10 +2169,10 @@ Error RasterizerGLES2::_surface_set_arra
+ for (int i = 0; i < p_surface->array_len; i++) {
+
+ GLbyte xyzw[4] = {
+- CLAMP(src[i * 4 + 0] * 127, -128, 127),
+- CLAMP(src[i * 4 + 1] * 127, -128, 127),
+- CLAMP(src[i * 4 + 2] * 127, -128, 127),
+- CLAMP(src[i * 4 + 3] * 127, -128, 127)
++ static_cast<GLbyte>CLAMP(src[i * 4 + 0] * 127, -128, 127),
++ static_cast<GLbyte>CLAMP(src[i * 4 + 1] * 127, -128, 127),
++ static_cast<GLbyte>CLAMP(src[i * 4 + 2] * 127, -128, 127),
++ static_cast<GLbyte>CLAMP(src[i * 4 + 3] * 127, -128, 127)
+ };
+
+ copymem(&p_mem[a.ofs + i * stride], xyzw, a.size);
diff --git a/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp b/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp
new file mode 100644
index 000000000000..39fbefd0727f
--- /dev/null
+++ b/devel/godot2/files/patch-drivers_rtaudio_audio__driver__rtaudio.cpp
@@ -0,0 +1,18 @@
+--- drivers/rtaudio/audio_driver_rtaudio.cpp.orig 2016-08-09 07:52:15 UTC
++++ drivers/rtaudio/audio_driver_rtaudio.cpp
+@@ -35,8 +35,14 @@ const char* AudioDriverRtAudio::get_name
+
+ #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
new file mode 100644
index 000000000000..1180857446fd
--- /dev/null
+++ b/devel/godot2/files/patch-drivers_unix_os__unix.cpp
@@ -0,0 +1,54 @@
+--- drivers/unix/os_unix.cpp.orig 2017-08-28 01:55:12 UTC
++++ drivers/unix/os_unix.cpp
+@@ -51,6 +51,7 @@
+
+ #if defined(__FreeBSD__) || defined(__OpenBSD__)
+ #include <sys/param.h>
++#include <sys/sysctl.h>
+ #endif
+ #include "globals.h"
+ #include <assert.h>
+@@ -375,17 +376,7 @@ Error OS_Unix::execute(const String &p_p
+ 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
+ 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_speex_audio__stream__speex.cpp b/devel/godot2/files/patch-modules_speex_audio__stream__speex.cpp
new file mode 100644
index 000000000000..9cb0eac898e6
--- /dev/null
+++ b/devel/godot2/files/patch-modules_speex_audio__stream__speex.cpp
@@ -0,0 +1,11 @@
+--- modules/speex/audio_stream_speex.cpp.orig 2017-12-28 01:20:49 UTC
++++ modules/speex/audio_stream_speex.cpp
+@@ -29,7 +29,7 @@
+ #include "audio_stream_speex.h"
+
+ #include "os/os.h"
+-#include "os_support.h"
++#include "thirdparty/speex/os_support.h"
+ #define READ_CHUNK 1024
+
+ static _FORCE_INLINE_ uint16_t le_short(uint16_t s) {
diff --git a/devel/godot2/files/patch-platform_x11_detect.py b/devel/godot2/files/patch-platform_x11_detect.py
new file mode 100644
index 000000000000..ee3e000dd2bb
--- /dev/null
+++ b/devel/godot2/files/patch-platform_x11_detect.py
@@ -0,0 +1,97 @@
+--- ./platform/x11/detect.py.orig 2017-08-27 16:25:12 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'),
+ ]
+@@ -84,10 +86,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
+@@ -125,19 +123,16 @@ 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.ParseConfig('pkg-config x11 --cflags --libs')
+ env.ParseConfig('pkg-config xinerama --cflags --libs')
+@@ -148,13 +143,14 @@ def configure(env):
+ # Currently not compatible with OpenSSL 1.1.0+
+ # https://github.com/godotengine/godot/issues/8624
+ import subprocess
+- openssl_version = subprocess.check_output(['pkg-config', 'openssl', '--modversion']).strip('\n')
++ openssl_version = '1.0.2' #subprocess.check_output(['pkg-config', 'openssl', '--modversion']).strip('\n')
+ if (openssl_version >= "1.1.0"):
+ print("Error: Found system-installed OpenSSL %s, currently only supporting version 1.0.x." % openssl_version)
+ print("Aborting.. You can compile with 'builtin_openssl=yes' to use the bundled version.\n")
+ sys.exit(255)
+
+- env.ParseConfig('pkg-config openssl --cflags --libs')
++ #env.ParseConfig('pkg-config openssl --cflags --libs')
++ env.ParseConfig('echo -lssl -lcrypto')
+
+ if (env['builtin_libwebp'] == 'no'):
+ env.ParseConfig('pkg-config libwebp --cflags --libs')
+@@ -199,12 +195,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"])
+@@ -219,6 +216,11 @@ def configure(env):
+ 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")
diff --git a/devel/godot2/files/patch-platform_x11_os__x11.cpp b/devel/godot2/files/patch-platform_x11_os__x11.cpp
new file mode 100644
index 000000000000..03f432bab2c7
--- /dev/null
+++ b/devel/godot2/files/patch-platform_x11_os__x11.cpp
@@ -0,0 +1,11 @@
+--- platform/x11/os_x11.cpp.orig 2018-01-10 10:08:3 UTC
++++ platform/x11/os_x11.cpp
+@@ -1243,7 +1243,7 @@ static Property read_property(Display *p
+
+ } while (bytes_after != 0);
+
+- Property p = { ret, actual_format, nitems, actual_type };
++ Property p = { ret, actual_format, (int)nitems, actual_type };
+
+ return p;
+ }
diff --git a/devel/godot2/files/patch-servers_audio_audio__mixer__sw.cpp b/devel/godot2/files/patch-servers_audio_audio__mixer__sw.cpp
new file mode 100644
index 000000000000..f6787438723c
--- /dev/null
+++ b/devel/godot2/files/patch-servers_audio_audio__mixer__sw.cpp
@@ -0,0 +1,24 @@
+--- servers/audio/audio_mixer_sw.cpp.orig 2018-01-10 15:33:12 UTC
++++ servers/audio/audio_mixer_sw.cpp
+@@ -280,7 +280,7 @@ void AudioMixerSW::mix_channel(Channel &
+ //stereo pan
+ float pan = c.pan * 0.5 + 0.5;
+ float panv[2] = {
+- (1.0 - pan) * (1 << MIX_VOL_FRAC_BITS),
++ (1.0f - pan) * (1 << MIX_VOL_FRAC_BITS),
+ (pan) * (1 << MIX_VOL_FRAC_BITS)
+ };
+
+@@ -297,9 +297,9 @@ void AudioMixerSW::mix_channel(Channel &
+ float pany = c.depth * 0.5 + 0.5;
+ // with this model every speaker plays at 0.25 energy at the center.. i'm not sure if it's correct but it seems to be balanced
+ float panv[4] = {
+- (1.0 - pany) * (1.0 - panx) * (1 << MIX_VOL_FRAC_BITS),
+- (1.0 - pany) * (panx) * (1 << MIX_VOL_FRAC_BITS),
+- (pany) * (1.0 - panx) * (1 << MIX_VOL_FRAC_BITS),
++ (1.0f - pany) * (1.0f - panx) * (1 << MIX_VOL_FRAC_BITS),
++ (1.0f - pany) * (panx) * (1 << MIX_VOL_FRAC_BITS),
++ (pany) * (1.0f - panx) * (1 << MIX_VOL_FRAC_BITS),
+ (pany) * (panx) * (1 << MIX_VOL_FRAC_BITS)
+ };
+
diff --git a/devel/godot2/files/patch-servers_spatial__sound__2d_spatial__sound__2d__server__sw.cpp b/devel/godot2/files/patch-servers_spatial__sound__2d_spatial__sound__2d__server__sw.cpp
new file mode 100644
index 000000000000..923ed3cf5df3
--- /dev/null
+++ b/devel/godot2/files/patch-servers_spatial__sound__2d_spatial__sound__2d__server__sw.cpp
@@ -0,0 +1,20 @@
+--- servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp.orig 2018-01-10 18:13:07 UTC
++++ servers/spatial_sound_2d/spatial_sound_2d_server_sw.cpp
+@@ -675,7 +675,7 @@ bool SpatialSound2DServerSW::internal_bu
+ case 2: {
+
+ float p = sd.panning.x * 0.5 + 0.5;
+- float panf[2] = { (1.0 - p), p };
++ float panf[2] = { (1.0f - p), p };
+ panf[0] *= sd.volume;
+ panf[1] *= sd.volume;
+
+@@ -726,7 +726,7 @@ bool SpatialSound2DServerSW::internal_bu
+
+ float xp = sd.panning.x * 0.5 + 0.5;
+ float yp = sd.panning.y * 0.5 + 0.5;
+- float panf[4] = { (1.0 - xp) * (1.0 - yp), (xp) * (1.0 - yp), (1.0 - xp) * (yp), (xp) * (yp) };
++ float panf[4] = { (1.0f - xp) * (1.0f - yp), (xp) * (1.0f - yp), (1.0f - xp) * (yp), (xp) * (yp) };
+ panf[0] *= sd.volume;
+ panf[1] *= sd.volume;
+ panf[2] *= sd.volume;
diff --git a/devel/godot2/files/patch-servers_spatial__sound_spatial__sound__server__sw.cpp b/devel/godot2/files/patch-servers_spatial__sound_spatial__sound__server__sw.cpp
new file mode 100644
index 000000000000..cfd7aa0c5a3c
--- /dev/null
+++ b/devel/godot2/files/patch-servers_spatial__sound_spatial__sound__server__sw.cpp
@@ -0,0 +1,20 @@
+--- servers/spatial_sound/spatial_sound_server_sw.cpp.orig 2018-01-10 16:17:16 UTC
++++ servers/spatial_sound/spatial_sound_server_sw.cpp
+@@ -689,7 +689,7 @@ bool SpatialSoundServerSW::internal_buff
+ case 2: {
+
+ float p = sd.panning.x * 0.5 + 0.5;
+- float panf[2] = { (1.0 - p), p };
++ float panf[2] = { (1.0f - p), p };
+ panf[0] *= sd.volume;
+ panf[1] *= sd.volume;
+
+@@ -740,7 +740,7 @@ bool SpatialSoundServerSW::internal_buff
+
+ float xp = sd.panning.x * 0.5 + 0.5;
+ float yp = sd.panning.y * 0.5 + 0.5;
+- float panf[4] = { (1.0 - xp) * (1.0 - yp), (xp) * (1.0 - yp), (1.0 - xp) * (yp), (xp) * (yp) };
++ float panf[4] = { (1.0f - xp) * (1.0f - yp), (xp) * (1.0f - yp), (1.0f - xp) * (yp), (xp) * (yp) };
+ panf[0] *= sd.volume;
+ panf[1] *= sd.volume;
+ panf[2] *= sd.volume;
diff --git a/devel/godot2/files/patch-thirdparty_glew_glew.c b/devel/godot2/files/patch-thirdparty_glew_glew.c
new file mode 100644
index 000000000000..3c7c2653c2c5
--- /dev/null
+++ b/devel/godot2/files/patch-thirdparty_glew_glew.c
@@ -0,0 +1,11 @@
+--- thirdparty/glew/glew.c.orig 2017-12-28 02:06:18 UTC
++++ thirdparty/glew/glew.c
+@@ -30,7 +30,7 @@
+ ** THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#include <GL/glew.h>
++#include "thirdparty/glew/GL/glew.h"
+
+ #if defined(_WIN32)
+ # include <GL/wglew.h>
diff --git a/devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.cpp b/devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.cpp
new file mode 100644
index 000000000000..02dd71439c98
--- /dev/null
+++ b/devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.cpp
@@ -0,0 +1,89 @@
+--- thirdparty/rtaudio/RtAudio.cpp.orig 2016-08-09 07:52:15 UTC
++++ thirdparty/rtaudio/RtAudio.cpp
+@@ -8589,6 +8589,12 @@ bool RtApiPulse::probeDeviceOpen( unsign
+ #include <errno.h>
+ #include <math.h>
+
++#if defined(__FreeBSD__)
++#define SND_DEVICE "/dev/dsp"
++#else
++#define SND_DEVICE "/dev/mixer"
++#endif
++
+ static void *ossCallbackHandler(void * ptr);
+
+ // A structure to hold various information related to the OSS API
+@@ -8615,9 +8621,11 @@ RtApiOss :: ~RtApiOss()
+
+ unsigned int RtApiOss :: getDeviceCount( void )
+ {
+- int mixerfd = open( "/dev/mixer", O_RDWR, 0 );
++ int mixerfd = open( SND_DEVICE, O_RDWR, 0 );
+ if ( mixerfd == -1 ) {
+- errorText_ = "RtApiOss::getDeviceCount: error opening '/dev/mixer'.";
++ errorText_ = "RtApiOss::getDeviceCount: error opening '";
++ errorText_ += SND_DEVICE;
++ errorText_ += "'.";
+ error( RtAudioError::WARNING );
+ return 0;
+ }
+@@ -8639,9 +8647,11 @@ RtAudio::DeviceInfo RtApiOss :: getDevic
+ RtAudio::DeviceInfo info;
+ info.probed = false;
+
+- int mixerfd = open( "/dev/mixer", O_RDWR, 0 );
++ int mixerfd = open( SND_DEVICE, O_RDWR, 0 );
+ if ( mixerfd == -1 ) {
+- errorText_ = "RtApiOss::getDeviceInfo: error opening '/dev/mixer'.";
++ errorText_ = "RtApiOss::getDeviceInfo: error opening '";
++ errorText_ += SND_DEVICE;
++ errorText_ += "'.";
+ error( RtAudioError::WARNING );
+ return info;
+ }
+@@ -8697,8 +8707,10 @@ RtAudio::DeviceInfo RtApiOss :: getDevic
+ info.nativeFormats |= RTAUDIO_SINT8;
+ if ( mask & AFMT_S32_LE || mask & AFMT_S32_BE )
+ info.nativeFormats |= RTAUDIO_SINT32;
++#if defined(AFMT_FLOAT)
+ if ( mask & AFMT_FLOAT )
+ info.nativeFormats |= RTAUDIO_FLOAT32;
++#endif
+ if ( mask & AFMT_S24_LE || mask & AFMT_S24_BE )
+ info.nativeFormats |= RTAUDIO_SINT24;
+
+@@ -8757,9 +8769,11 @@ bool RtApiOss :: probeDeviceOpen( unsign
+ RtAudioFormat format, unsigned int *bufferSize,
+ RtAudio::StreamOptions *options )
+ {
+- int mixerfd = open( "/dev/mixer", O_RDWR, 0 );
++ int mixerfd = open( SND_DEVICE, O_RDWR, 0 );
+ if ( mixerfd == -1 ) {
+- errorText_ = "RtApiOss::probeDeviceOpen: error opening '/dev/mixer'.";
++ errorText_ = "RtApiOss::probeDeviceOpen: error opening '";
++ errorText_ += SND_DEVICE;
++ errorText_ += "'.";
+ return FAILURE;
+ }
+
+@@ -8787,7 +8801,11 @@ bool RtApiOss :: probeDeviceOpen( unsign
+ }
+
+ oss_audioinfo ainfo;
++#if defined(__FreeBSD__)
++ ainfo.dev = -1; // specify -1 to get default device
++#else
+ ainfo.dev = device;
++#endif
+ result = ioctl( mixerfd, SNDCTL_AUDIOINFO, &ainfo );
+ close( mixerfd );
+ if ( result == -1 ) {
+@@ -9025,7 +9043,7 @@ bool RtApiOss :: probeDeviceOpen( unsign
+ }
+
+ // Verify the sample rate setup worked.
+- if ( abs( srate - sampleRate ) > 100 ) {
++ if ( abs( srate - (int)sampleRate ) > 100 ) {
+ close( fd );
+ errorStream_ << "RtApiOss::probeDeviceOpen: device (" << ainfo.name << ") does not support sample rate (" << sampleRate << ").";
+ errorText_ = errorStream_.str();
diff --git a/devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.h b/devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.h
new file mode 100644
index 000000000000..010a8222e1a8
--- /dev/null
+++ b/devel/godot2/files/patch-thirdparty_rtaudio_RtAudio.h
@@ -0,0 +1,16 @@
+--- thirdparty/rtaudio/RtAudio.h.orig 2016-08-09 07:52:15 UTC
++++ thirdparty/rtaudio/RtAudio.h
+@@ -5,7 +5,13 @@
+ #if defined(OSX_ENABLED)
+ #define __MACOSX_CORE__
+ #elif defined(UNIX_ENABLED)
++#if defined(OSS_ENABLED)
++ #define __LINUX_OSS__
++#elif defined(ALSA_ENABLED)
+ #define __LINUX_ALSA__
++#elif defined(PULSEAUDIO_ENABLED)
++ #define __LINUX_PULSE__
++#endif
+ #elif defined(WINDOWS_ENABLED)
+ #if defined(WINRT_ENABLED)
+ #define __RTAUDIO_DUMMY__
diff --git a/devel/godot2/pkg-descr b/devel/godot2/pkg-descr
new file mode 100644
index 000000000000..0359653751fd
--- /dev/null
+++ b/devel/godot2/pkg-descr
@@ -0,0 +1,9 @@
+Godot is a multi-platform 2D and 3D game engine. It also provides a
+feature rich development environment.
+
+Easily deploy your game on IOS, android, OSX, Linux, Steam, Windows or PS3.
+
+This port installs the older v2 to support projects that
+haven't been updated for v3.0
+
+WWW: http://www.godotengine.org/