git: f6123f561a05 - main - graphics/goxel: resurrect the port, unbreak against Python 3.x

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Wed, 09 Nov 2022 11:25:15 UTC
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f6123f561a05ded0cf2af0c9cb1f7c86e48653ae

commit f6123f561a05ded0cf2af0c9cb1f7c86e48653ae
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2022-11-09 11:20:56 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2022-11-09 11:20:56 +0000

    graphics/goxel: resurrect the port, unbreak against Python 3.x
    
    Keep the changes at minimum to help Git track history better.
---
 MOVED                                              |  1 -
 graphics/Makefile                                  |  1 +
 graphics/goxel/Makefile                            | 43 ++++++++++++++++++++++
 graphics/goxel/distinfo                            |  3 ++
 graphics/goxel/files/patch-SConstruct              | 35 ++++++++++++++++++
 .../patch-ext__src_cycles_src_util_util__path.cpp  | 13 +++++++
 graphics/goxel/pkg-descr                           |  3 ++
 graphics/goxel/pkg-plist                           |  4 ++
 8 files changed, 102 insertions(+), 1 deletion(-)

diff --git a/MOVED b/MOVED
index 4536700c91fe..29013a739987 100644
--- a/MOVED
+++ b/MOVED
@@ -15887,7 +15887,6 @@ games/freera||2021-01-02|Has expired: Uses Python 2.7 version of scons, and Pyth
 games/glob2||2021-01-02|Has expired: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream
 games/marsnomercy||2021-01-02|Has expired: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream
 games/netpanzer||2021-01-02|Has expired: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream
-graphics/goxel||2021-01-02|Has expired: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream
 graphics/sk1libs||2021-01-02|Has expired: Uses Python 2.7 which is EOLed upstream
 graphics/uniconvertor||2021-01-02|Has expired: Uses deprecated version of python
 games/dangerdeep||2021-01-02|Has expired: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream
diff --git a/graphics/Makefile b/graphics/Makefile
index 9e1d8321ed0a..d1c238ad41da 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -293,6 +293,7 @@
     SUBDIR += goocanvasmm2
     SUBDIR += goom
     SUBDIR += gource
+    SUBDIR += goxel
     SUBDIR += gpaint
     SUBDIR += gphoto2
     SUBDIR += gpicview
diff --git a/graphics/goxel/Makefile b/graphics/goxel/Makefile
new file mode 100644
index 000000000000..238c28d0fc4f
--- /dev/null
+++ b/graphics/goxel/Makefile
@@ -0,0 +1,43 @@
+PORTNAME=	goxel
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.8.2
+PORTREVISION=	1
+CATEGORIES=	graphics
+
+MAINTAINER=	greg@unrelenting.technology
+COMMENT=	Free and Open Source 3D Voxel Editor
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+LIB_DEPENDS=	libargp.so:devel/argp-standalone \
+		libglfw.so:graphics/glfw \
+		libpng.so:graphics/png
+
+USES=		compiler:c++11-lang pkgconfig scons gnome gl
+USE_GITHUB=	yes
+GH_ACCOUNT=	guillaumechereau
+USE_GNOME=	cairo gtk30
+USE_GL=		gl
+
+INSTALLS_ICONS=	yes
+MAKE_ARGS=	debug=0 werror=0
+DESKTOP_ENTRIES="Goxel" "${COMMENT}" "${PORTNAME}" \
+	"${PORTNAME}" "Graphics;3DGraphics;" false
+
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} != amd64 && ${ARCH} != i386
+post-patch:
+	${REINPLACE_CMD} -e 's/-msse2 //g' ${WRKSRC}/SConstruct
+.endif
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
+.for SZ in 32 64 256
+	@${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${SZ}x${SZ}/apps
+	${INSTALL_DATA} ${WRKSRC}/osx/goxel/goxel/Assets.xcassets/AppIcon.appiconset/${SZ}.png \
+		${STAGEDIR}${PREFIX}/share/icons/hicolor/${SZ}x${SZ}/apps/goxel.png
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/graphics/goxel/distinfo b/graphics/goxel/distinfo
new file mode 100644
index 000000000000..a23644b16088
--- /dev/null
+++ b/graphics/goxel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1545486941
+SHA256 (guillaumechereau-goxel-v0.8.2_GH0.tar.gz) = 4f8297560e356cb69469e0a23bcb4e9c4e8549766a0466ffeaa0c9cfb7a04049
+SIZE (guillaumechereau-goxel-v0.8.2_GH0.tar.gz) = 3387515
diff --git a/graphics/goxel/files/patch-SConstruct b/graphics/goxel/files/patch-SConstruct
new file mode 100644
index 000000000000..a4c6b5177ff8
--- /dev/null
+++ b/graphics/goxel/files/patch-SConstruct
@@ -0,0 +1,35 @@
+--- SConstruct.orig	2018-12-22 14:00:12 UTC
++++ SConstruct
+@@ -28,15 +28,18 @@ clang = int(ARGUMENTS.get("clang", 0))
+ cycles = int(ARGUMENTS.get('cycles', 1))
+ sound = False
+ 
+-if os.environ.get('CC') == 'clang': clang = 1
++import subprocess
++if b'clang' in subprocess.check_output([os.environ.get('CC', 'cc'), '-v'],
++                                      stderr=subprocess.STDOUT):
++    clang = 1
++print('clang', clang)
+ if profile: debug = 0
+ 
+-env = Environment(ENV = os.environ)
++
++env = Environment(ENV = os.environ, CC = os.environ.get('CC', 'cc'),
++                  CXX = os.environ.get('CXX', 'c++'))
+ conf = env.Configure()
+ 
+-if clang:
+-    env.Replace(CC='clang', CXX='clang++')
+-
+ # Asan & Ubsan (need to come first).
+ # Cycles doesn't like libasan with clang, so we only use it on
+ # C code with clang.
+@@ -145,7 +148,7 @@ if cycles:
+     sources += glob.glob('ext_src/cycles/src/subd/*.cpp')
+ 
+     env.Append(CPPPATH=['ext_src/cycles/src'])
+-    env.Append(CPPPATH=['ext_src/cycles/third_party/atomic'])
++    env.Prepend(CPPPATH=['ext_src/cycles/third_party/atomic'])
+     env.Append(CPPFLAGS=[
+         '-DCYCLES_STD_UNORDERED_MAP',
+         '-DCCL_NAMESPACE_BEGIN=namespace ccl {',
diff --git a/graphics/goxel/files/patch-ext__src_cycles_src_util_util__path.cpp b/graphics/goxel/files/patch-ext__src_cycles_src_util_util__path.cpp
new file mode 100644
index 000000000000..008ccd5b9909
--- /dev/null
+++ b/graphics/goxel/files/patch-ext__src_cycles_src_util_util__path.cpp
@@ -0,0 +1,13 @@
+--- ext_src/cycles/src/util/util_path.cpp.orig	2018-12-22 14:23:19 UTC
++++ ext_src/cycles/src/util/util_path.cpp
+@@ -38,6 +38,10 @@
+ #  include <shlwapi.h>
+ #endif
+ 
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
++#include <sys/sysctl.h>
++#endif
++
+ #include "util/util_map.h"
+ #include "util/util_windows.h"
+ 
diff --git a/graphics/goxel/pkg-descr b/graphics/goxel/pkg-descr
new file mode 100644
index 000000000000..915c619ae2e6
--- /dev/null
+++ b/graphics/goxel/pkg-descr
@@ -0,0 +1,3 @@
+A 3D program that lets you create voxel volumes, a bit similar to minecraft.
+
+WWW: https://guillaumechereau.github.io/goxel/
diff --git a/graphics/goxel/pkg-plist b/graphics/goxel/pkg-plist
new file mode 100644
index 000000000000..12fd45320092
--- /dev/null
+++ b/graphics/goxel/pkg-plist
@@ -0,0 +1,4 @@
+bin/goxel
+share/icons/hicolor/32x32/apps/goxel.png
+share/icons/hicolor/64x64/apps/goxel.png
+share/icons/hicolor/256x256/apps/goxel.png