Timo Myyrä <timo.my...@bittivirhe.fi> [2022-07-10, 20:12 +0300]:

> Omar Polo <o...@openbsd.org> [2022-07-08, 10:43 +0200]:
>
>> Hello,
>>
>> Timo Myyrä <timo.my...@bittivirhe.fi> wrote:
>>> Hi,
>>> 
>>> Here's companion for the audio/zmusic diff to bring gzdoom to latest
>>> release. Seemed to work on quick test on amd64.
>>
>> It seems to automatically picks up multimedia/libvpx if installed,
>> should we add it as dependency or disable it?
>>
>
> I'd say it should be added as LIB_DEPENDS, quick glance at the source
> would tell it is used by movie playback.
>
>> It fails to start for me: it pops up a windwo with "Cannot find
>> gzdoom.pk3" and that's it.  Looking at ktrace it does
>>
>>  8005 gzdoom   CALL  stat(0x9e670681cb0,0x7f7fffff6fc8)
>>  8005 gzdoom   NAMI  "./gzdoom.pk3"
>>  8005 gzdoom   RET   stat -1 errno 2 No such file or directory
>>  8005 gzdoom   CALL  stat(0x9e66f2a06c0,0x7f7fffff6fc8)
>>  8005 gzdoom   NAMI  "gzdoom.pk3"
>>  8005 gzdoom   RET   stat -1 errno 2 No such file or directory
>>          
>> However, if i run it from /usr/local/games/gzdoom it works as expected
>> (gzdoom.pk3 is installed there.)  Any idea why is doing that?
>>
>>
>> Thanks,
>>
>> Omar Polo
>
> Asked about it and there is an open bug for it:
> https://github.com/coelckers/gzdoom/issues/1615
>
> Let's wait until that is fixed before updating the gzdoom port.
>
> timo

Actually found a simple patch on archlinux's port of gzdoom which seems
to fix the 'cannot find gzdoom.pk3' error.

Here's updated diff:
- explicitly disable OpenMP for now so it won't pick it up if found
- added multimedia/libvpx to LIB_DEPENDS (port complains its unused but ldd 
lists it in gzdoom binary )
- patch progdir in i_main.cpp so gzdoom.pk3 is found

timo

diff 603e76dd58833a7b9423e59292778e6e145a472f /usr/ports
blob - 3fac26e1bd4e6c193a372d0f4f2bbaf423d98108
file + games/gzdoom/Makefile
--- games/gzdoom/Makefile
+++ games/gzdoom/Makefile
@@ -6,7 +6,7 @@ ONLY_FOR_ARCHS =        i386 amd64
 
 COMMENT =              OpenGL engine for idTech 1 games like 
doom,hexen,heretic...
 
-V =                    4.7.1
+V =                    4.8.2
 GH_ACCOUNT =           coelckers
 GH_PROJECT =           gzdoom
 GH_TAGNAME =           g${V}
@@ -32,6 +32,7 @@ MODULES =             devel/cmake
 CONFIGURE_ARGS +=      -DNO_GTK=ON
 CONFIGURE_ARGS +=      -DDYN_OPENAL=NO
 CONFIGURE_ARGS +=      -DHAVE_STDINT_H=1
+CONFIGURE_ARGS +=      -DNO_OPENMP=ON
 
 CXXFLAGS +=             -I. -I${LOCALBASE}/include
 
@@ -39,8 +40,12 @@ LIB_DEPENDS =                audio/openal \
                        audio/zmusic \
                        archivers/bzip2 \
                        graphics/jpeg \
-                       devel/sdl2
+                       devel/sdl2 \
+                       multimedia/libvpx
 
 NO_TEST =              Yes
 
+pre-configure:
+                       ${SUBST_CMD} 
${WRKSRC}/src/common/platform/posix/sdl/i_main.cpp
+
 .include <bsd.port.mk>
blob - 6202659488a2b382b898f9d0d323437b3b71ba72
file + games/gzdoom/distinfo
--- games/gzdoom/distinfo
+++ games/gzdoom/distinfo
@@ -1,2 +1,2 @@
-SHA256 (gzdoom-4.7.1.tar.gz) = RUJXWCvgV2UB7vHvyZ/n6nDxxNeZNUnbPLxwnOdfwQI=
-SIZE (gzdoom-4.7.1.tar.gz) = 19562412
+SHA256 (gzdoom-4.8.2.tar.gz) = Tt1g+AlMncPft0AL28DrsKXldLCmdH7uTI2fH2r3cSc=
+SIZE (gzdoom-4.8.2.tar.gz) = 24247668
blob - a9570e7e1c6555bd1f22655ea44c360a54663331
file + games/gzdoom/patches/patch-CMakeLists_txt
--- games/gzdoom/patches/patch-CMakeLists_txt
+++ games/gzdoom/patches/patch-CMakeLists_txt
@@ -1,7 +1,7 @@
 Index: CMakeLists.txt
 --- CMakeLists.txt.orig
 +++ CMakeLists.txt
-@@ -271,7 +271,7 @@ else()
+@@ -272,7 +272,7 @@ else()
  
        if ( UNIX )
                include(CheckSymbolExists)
blob - be01fd6c393eb8966d784b53469e75e6ae95ed2c
file + /dev/null
--- games/gzdoom/patches/patch-src_CMakeLists_txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: src/CMakeLists.txt
---- src/CMakeLists.txt.orig
-+++ src/CMakeLists.txt
-@@ -356,7 +360,7 @@ CHECK_CXX_SOURCE_COMPILES("thread_local int i; int mai
-       HAVE_THREAD_LOCAL)
- 
- if( NOT HAVE_THREAD_LOCAL )
--      message( SEND_ERROR "C++ compiler doesn't support thread_local storage 
duration specifier" )
-+      message( STATUS "C++ compiler doesn't support thread_local storage 
duration specifier" )
- endif()
- 
- # Check for functions that may or may not exist.
blob - /dev/null
file + games/gzdoom/patches/patch-src_common_platform_posix_sdl_i_main_cpp
--- /dev/null
+++ games/gzdoom/patches/patch-src_common_platform_posix_sdl_i_main_cpp
@@ -0,0 +1,24 @@
+Index: src/common/platform/posix/sdl/i_main.cpp
+--- src/common/platform/posix/sdl/i_main.cpp.orig
++++ src/common/platform/posix/sdl/i_main.cpp
+@@ -175,19 +175,7 @@ int main (int argc, char **argv)
+       Args = new FArgs(argc, argv);
+ 
+       // Should we even be doing anything with progdir on Unix systems?
+-      char program[PATH_MAX];
+-      if (realpath (argv[0], program) == NULL)
+-              strcpy (program, argv[0]);
+-      char *slash = strrchr (program, '/');
+-      if (slash != NULL)
+-      {
+-              *(slash + 1) = '\0';
+-              progdir = program;
+-      }
+-      else
+-      {
+-              progdir = "./";
+-      }
++      progdir = "${LOCALBASE}/share/games/doom/";
+ 
+       I_StartupJoysticks();
+ 
blob - /dev/null
file + games/gzdoom/patches/patch-src_common_scripting_vm_vmframe_cpp
--- /dev/null
+++ games/gzdoom/patches/patch-src_common_scripting_vm_vmframe_cpp
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: src/common/scripting/vm/vmframe.cpp
+--- src/common/scripting/vm/vmframe.cpp.orig
++++ src/common/scripting/vm/vmframe.cpp
+@@ -45,7 +45,7 @@
+ #include "version.h"
+ 
+ #ifdef HAVE_VM_JIT
+-#ifdef __DragonFly__
++#ifdef __DragonFly__ || __OpenBSD__
+ CUSTOM_CVAR(Bool, vm_jit, false, CVAR_NOINITCALL)
+ #else
+ CUSTOM_CVAR(Bool, vm_jit, true, CVAR_NOINITCALL)

Reply via email to