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

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Wed, 09 Nov 2022 17:29:43 UTC
On 2022-11-09 12:25, Alexey Dokuchaev wrote:
> 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

Hi,

Is there a plan for proper maintence? In this case there's no maintainer 
and we shouldn't revive ports without a maintainer ( 
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266871 ). This is also 
way behind upstream and seemengly unsupported ( 
https://github.com/guillaumechereau/goxel )

Best regards,
Daniel