diff --git a/devel/godot/Makefile b/devel/godot/Makefile index f1826a7e0b31..b9bd4e727189 100644 --- a/devel/godot/Makefile +++ b/devel/godot/Makefile @@ -1,178 +1,180 @@ PORTNAME= godot -DISTVERSION= 4.6.2 +DISTVERSION= 4.7 DISTVERSIONSUFFIX= -stable PORTREVISION?= 0 CATEGORIES= devel games MAINTAINER= FreeBSD@Shaneware.biz COMMENT?= Game runtime engine WWW= https://godotengine.org/ -LICENSE= CC-BY-3.0 MIT +LICENSE= CC-BY-4.0 MIT LICENSE_COMB= multi -LICENSE_FILE_CC-BY-3.0= ${WRKSRC}/LOGO_LICENSE.txt +LICENSE_FILE_CC-BY-4.0= ${WRKSRC}/misc/logo/LICENSE.txt LICENSE_FILE_MIT= ${WRKSRC}/LICENSE.txt BUILD_DEPENDS= yasm:devel/yasm LIB_DEPENDS= libbrotlicommon.so:archivers/brotli \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgraphite2.so:graphics/graphite2 \ - libharfbuzz-icu.so:print/harfbuzz-icu \ - libharfbuzz.so:print/harfbuzz \ libmbedtls.so:security/mbedtls3 \ libminiupnpc.so:net/miniupnpc \ libogg.so:audio/libogg \ libpcre2-32.so:devel/pcre2 \ libpng.so:graphics/png \ libRecast.so:graphics/recastnavigation \ libtheora.so:multimedia/libtheora \ libvorbis.so:audio/libvorbis \ libwebp.so:graphics/webp \ libwslay_shared.so:www/wslay \ libzstd.so:archivers/zstd +# libharfbuzz-icu.so:print/harfbuzz-icu +# libharfbuzz.so:print/harfbuzz RUN_DEPENDS= xdg-open:devel/xdg-utils \ xdg-user-dir:devel/xdg-user-dirs \ xmessage:x11/xmessage USES= compiler:c++17-lang cpe gl pkgconfig scons sdl CPE_VENDOR= godotengine CPE_PRODUCT= godot_engine USE_GITHUB= yes GH_ACCOUNT= godotengine USE_GL= gl glew glu USE_SDL= sdl3 # enabling builtin_openxr results in an uncaught exception during init +# System-provided icu4c or harfbuzz cause known issues for GDExtension (see GH-91401 and GH-100301) MAKE_ARGS+= platform=linuxbsd \ dbus=True \ brotli=True \ builtin_brotli=False \ builtin_freetype=False \ builtin_graphite=False \ - builtin_harfbuzz=False \ + builtin_harfbuzz=True \ + builtin_icu4c=True \ builtin_libogg=False \ builtin_libpng=False \ builtin_libtheora=False \ builtin_libvorbis=False \ builtin_libwebp=False \ builtin_mbedtls=False \ builtin_miniupnpc=False \ builtin_pcre2=False \ builtin_recastnavigation=False \ builtin_sdl=False \ builtin_wslay=False \ builtin_zlib=False \ builtin_zstd=False \ fontconfig=True \ opengl3=True \ use_sowrap=True \ verbose=True \ disable_path_overrides=False \ ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} MAKE_ARGS_clang= use_llvm=True CXXFLAGS_i386= ${CXXFLAGS_i386_${CHOSEN_COMPILER_TYPE}} CXXFLAGS_i386_gcc= -march=i586 GODOTFILE= ${PORTNAME}${PKGNAMESUFFIX} PLIST_FILES= bin/${GODOTFILE} OPTIONS_DEFINE= EXAMPLES MOLD TEST TOOLS UDEV WAYLAND X11 OPTIONS_DEFAULT= ALSA UDEV WAYLAND X11 OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO # Moved to devel/godot-tools OPTIONS_EXCLUDE?= EXAMPLES TOOLS AUDIO_DESC= Audio support MOLD_DESC= Use mold linker for faster compilation TOOLS_DESC= Include development tools (IDE) UDEV_DESC= Libudev support (Joystick) ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_MAKE_ARGS= alsa=True ALSA_MAKE_ARGS_OFF= alsa=False -# master head at 20/2 - no branch made for 4.6 yet -EXAMPLES_GH_TUPLE= godotengine:godot-demo-projects:f228ea632391:DEMOS +# master head at 23/6 - no branch made for 4.7 yet +EXAMPLES_GH_TUPLE= godotengine:godot-demo-projects:939ca55eaad4:DEMOS EXAMPLES_PORTEXAMPLES= * MOLD_BUILD_DEPENDS= mold:devel/mold MOLD_MAKE_ARGS= linker=mold MOLD_MAKE_ARGS_OFF= linker=lld PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_MAKE_ARGS= pulseaudio=True PULSEAUDIO_MAKE_ARGS_OFF= pulseaudio=False TEST_MAKE_ARGS= tests=True TOOLS_MAKE_ARGS= target=editor TOOLS_MAKE_ARGS_OFF= target=template_release TOOLS_DESKTOP_ENTRIES= "Godot Engine" "${COMMENT}" "${GODOTFILE}" \ "${GODOTFILE}" "Development;IDE;" "" TOOLS_PLIST_FILES= share/icons/hicolor/256x256/apps/${GODOTFILE}.png \ share/icons/hicolor/scalable/apps/${GODOTFILE}.svg UDEV_BUILD_DEPENDS= ${PREFIX}/include/linux/input.h:devel/evdev-proto UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd UDEV_MAKE_ARGS= udev=True UDEV_MAKE_ARGS_OFF= udev=False WAYLAND_BUILD_DEPENDS= wayland-protocols>0:graphics/wayland-protocols WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \ libxkbcommon.so:x11/libxkbcommon WAYLAND_MAKE_ARGS= wayland=True libdecor=True WAYLAND_MAKE_ARGS_OFF= wayland=False X11_USES= xorg X11_USE= XORG=x11,xcursor,xext,xi,xinerama,xrandr,xrender X11_MAKE_ARGS= x11=True X11_MAKE_ARGS_OFF= x11=False .ifmake makesum # Always include optional distfiles .MAKEFLAGS: WITH="${OPTIONS_DEFINE}" OPTIONS_EXCLUDE= .endif .include .if ${ARCH} == powerpc || ${ARCH:Mriscv64*} MAKE_ARGS+= module_embree_enabled=no \ module_raycast_enabled=no \ module_webm_enabled=no .endif post-patch: @${REINPLACE_CMD} -e 's|custom_build|${OPSYS}_Ports_build|' \ ${WRKSRC}/methods.py # 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.linuxbsd* \ ${STAGEDIR}/${PREFIX}/bin/${GODOTFILE} do-install-EXAMPLES-on: (cd ${WRKSRC_DEMOS} && ${COPYTREE_SHARE} "${PORTEXAMPLES}" \ ${STAGEDIR}${EXAMPLESDIR}) do-install-TOOLS-on: @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps - ${INSTALL_DATA} ${WRKSRC}/icon.png \ + ${INSTALL_DATA} ${WRKSRC}/misc/logo/icon.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps/${GODOTFILE}.png - ${INSTALL_DATA} ${WRKSRC}/icon.svg \ + ${INSTALL_DATA} ${WRKSRC}/misc/logo/icon.svg \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/${GODOTFILE}.svg .if ${PORT_OPTIONS:MTEST} do-test: ${MKDIR} ~/.cache/godot cd ${TEST_WRKSRC} && bin/godot.linuxbsd* --verbose --test .endif .include diff --git a/devel/godot/distinfo b/devel/godot/distinfo index ce30e995617f..660a963dd850 100644 --- a/devel/godot/distinfo +++ b/devel/godot/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1776198747 -SHA256 (godotengine-godot-4.6.2-stable_GH0.tar.gz) = 908b759e7517fec65d687b3d468cd639fd8967d25da1522ef8a2087af638b3fe -SIZE (godotengine-godot-4.6.2-stable_GH0.tar.gz) = 66048870 -SHA256 (godotengine-godot-demo-projects-f228ea632391_GH0.tar.gz) = cc5f71e1e1522b612ccf900bcedf53d5280e10766a6d62a564a74de1e041be29 -SIZE (godotengine-godot-demo-projects-f228ea632391_GH0.tar.gz) = 244558016 +TIMESTAMP = 1782380943 +SHA256 (godotengine-godot-4.7-stable_GH0.tar.gz) = 5960084fce0934dfa68acd26df1103385cf3675d0de2b5124922d3cae602bf1c +SIZE (godotengine-godot-4.7-stable_GH0.tar.gz) = 69926907 +SHA256 (godotengine-godot-demo-projects-939ca55eaad4_GH0.tar.gz) = 08f9d966b7ac6fb8316c48d166af4e0fb4f7ff5314eba95e0d985d4f72bf4df9 +SIZE (godotengine-godot-demo-projects-939ca55eaad4_GH0.tar.gz) = 249778641 diff --git a/devel/godot/files/patch-platform_linuxbsd_wayland_wayland__thread.cpp b/devel/godot/files/patch-platform_linuxbsd_wayland_wayland__thread.cpp index 9222403d3c82..d9da2d5eab7d 100644 --- a/devel/godot/files/patch-platform_linuxbsd_wayland_wayland__thread.cpp +++ b/devel/godot/files/patch-platform_linuxbsd_wayland_wayland__thread.cpp @@ -1,65 +1,38 @@ ---- platform/linuxbsd/wayland/wayland_thread.cpp.orig 2025-10-13 19:05:40 UTC +--- platform/linuxbsd/wayland/wayland_thread.cpp.orig 2026-06-17 18:46:02 UTC +++ platform/linuxbsd/wayland/wayland_thread.cpp -@@ -95,7 +95,7 @@ Vector WaylandThread::_read_fd(int fd) { - break; - } - -- DEBUG_LOG_WAYLAND_THREAD(vformat("Read chunk of %d bytes.", last_bytes_read)); -+ DEBUG_LOG_WAYLAND_THREAD(vformat("Read chunk of %d bytes.", (uint64_t)last_bytes_read)); - - bytes_read += last_bytes_read; - -@@ -1197,7 +1197,7 @@ void WaylandThread::_wl_surface_on_enter(void *data, s +@@ -1313,7 +1313,7 @@ void WaylandThread::_wl_surface_on_enter(void *data, s WindowState *ws = (WindowState *)data; ERR_FAIL_NULL(ws); - DEBUG_LOG_WAYLAND_THREAD(vformat("Window entered output %x.", (size_t)wl_output)); + DEBUG_LOG_WAYLAND_THREAD(vformat("Window entered output %x.", (uint64_t)wl_output)); ws->wl_outputs.insert(wl_output); -@@ -1248,7 +1248,7 @@ void WaylandThread::_wl_surface_on_leave(void *data, s +@@ -1353,7 +1353,7 @@ void WaylandThread::_wl_surface_on_leave(void *data, s ws->wl_outputs.erase(wl_output); - DEBUG_LOG_WAYLAND_THREAD(vformat("Window left output %x.\n", (size_t)wl_output)); + DEBUG_LOG_WAYLAND_THREAD(vformat("Window left output %x.\n", (uint64_t)wl_output)); } // TODO: Add support to this event. -@@ -1310,7 +1310,7 @@ void WaylandThread::_wl_output_on_done(void *data, str +@@ -1419,7 +1419,7 @@ void WaylandThread::_wl_output_on_done(void *data, str ss->wayland_thread->_update_scale(ss->data.scale); - DEBUG_LOG_WAYLAND_THREAD(vformat("Output %x done.", (size_t)wl_output)); + DEBUG_LOG_WAYLAND_THREAD(vformat("Output %x done.", (uint64_t)wl_output)); } void WaylandThread::_wl_output_on_scale(void *data, struct wl_output *wl_output, int32_t factor) { -@@ -1319,7 +1319,7 @@ void WaylandThread::_wl_output_on_scale(void *data, st +@@ -1428,7 +1428,7 @@ void WaylandThread::_wl_output_on_scale(void *data, st ss->pending_data.scale = factor; - DEBUG_LOG_WAYLAND_THREAD(vformat("Output %x scale %d", (size_t)wl_output, factor)); + DEBUG_LOG_WAYLAND_THREAD(vformat("Output %x scale %d", (uint64_t)wl_output, factor)); } void WaylandThread::_wl_output_on_name(void *data, struct wl_output *wl_output, const char *name) { -@@ -2509,7 +2509,7 @@ void WaylandThread::_wl_data_source_on_send(void *data - } - - if (written_bytes > 0) { -- DEBUG_LOG_WAYLAND_THREAD(vformat("Clipboard: sent %d bytes.", written_bytes)); -+ DEBUG_LOG_WAYLAND_THREAD(vformat("Clipboard: sent %d bytes.", (uint64_t)written_bytes)); - } else if (written_bytes == 0) { - DEBUG_LOG_WAYLAND_THREAD("Clipboard: no bytes sent."); - } else { -@@ -2697,7 +2697,7 @@ void WaylandThread::_wp_primary_selection_source_on_se - } - - if (written_bytes > 0) { -- DEBUG_LOG_WAYLAND_THREAD(vformat("Clipboard: sent %d bytes.", written_bytes)); -+ DEBUG_LOG_WAYLAND_THREAD(vformat("Clipboard: sent %d bytes.", (uint64_t)written_bytes)); - } else if (written_bytes == 0) { - DEBUG_LOG_WAYLAND_THREAD("Clipboard: no bytes sent."); - } else {