On Sat, Jan 28, 2023 at 11:46:10AM +0200, Timo Myyrä wrote:
> Thomas Frohwein <[email protected]> writes:
> 
> > Hi,
> >
> > This diff updates gzdoom to latest version 4.10.0. I've been trying out
> > a few gzdoom games and ended up updating this port in the process, even
> > though not strictly necessary to run the one I mainly tested - the demo
> > of Beyond Sunset [1]. Hands of Necromancy also works.
> >
> > The diff drops 2 patches that are no longer needed. Adds a new one to
> > bypass get_current_dir_name() in i_system.cpp.
> >
> > CC'ing maintainer
> >
> > [1] https://metacorp.itch.io/beyond-sunset

[...]

> Hi,
> 
> Great that someone has play-tested the update so it works.
> The I_GetCWD should be patched correctly instead of bypassing the
> logic. It seems to be used when adding WAD files from directory so this
> version would break that functionality. The other function may be
> patched as well but I recall that was only used for debugging so it is
> not that important.
> 
> Timo

A couple of months later, but I finally got around to figuring out the
fix. This can also run the early access version of "Supplice" [1].

The change in GH_ACCOUNT is because the previous repo now forwards to
https://github.com/ZDoom/gzdoom anyway.

ok?

[1] https://store.steampowered.com/app/1693280/Supplice/

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/gzdoom/Makefile,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile
--- Makefile    18 Jul 2022 08:27:45 -0000      1.17
+++ Makefile    5 Aug 2023 02:58:11 -0000
@@ -6,8 +6,8 @@ ONLY_FOR_ARCHS =        i386 amd64
 
 COMMENT =              OpenGL engine for idTech 1 games like 
doom,hexen,heretic...
 
-V =                    4.8.2
-GH_ACCOUNT =           coelckers
+V =                    4.10.0
+GH_ACCOUNT =           ZDoom
 GH_PROJECT =           gzdoom
 GH_TAGNAME =           g${V}
 DISTNAME =             gzdoom-${V}
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/gzdoom/distinfo,v
retrieving revision 1.7
diff -u -p -r1.7 distinfo
--- distinfo    18 Jul 2022 08:27:45 -0000      1.7
+++ distinfo    5 Aug 2023 02:58:11 -0000
@@ -1,2 +1,2 @@
-SHA256 (gzdoom-4.8.2.tar.gz) = Tt1g+AlMncPft0AL28DrsKXldLCmdH7uTI2fH2r3cSc=
-SIZE (gzdoom-4.8.2.tar.gz) = 24247668
+SHA256 (gzdoom-4.10.0.tar.gz) = hwJSLAUEjf1KdlxqyConDYvQlC6BPVvG9LaXlaXSOiA=
+SIZE (gzdoom-4.10.0.tar.gz) = 24319337
Index: patches/patch-libraries_discordrpc_CMakeLists_txt
===================================================================
RCS file: patches/patch-libraries_discordrpc_CMakeLists_txt
diff -N patches/patch-libraries_discordrpc_CMakeLists_txt
--- patches/patch-libraries_discordrpc_CMakeLists_txt   31 Jul 2022 20:50:40 
-0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-don't pick up clang-format is present
-
-Index: libraries/discordrpc/CMakeLists.txt
---- libraries/discordrpc/CMakeLists.txt.orig
-+++ libraries/discordrpc/CMakeLists.txt
-@@ -10,7 +10,8 @@ file(GLOB_RECURSE ALL_SOURCE_FILES
- )
- 
- # Set CLANG_FORMAT_SUFFIX if you are using custom clang-format, e.g. 
clang-format-5.0
--find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX})
-+#find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX})
-+set(CLANG_FORMAT_CMD, FALSE)
- 
- if (CLANG_FORMAT_CMD)
-     add_custom_target(
Index: patches/patch-src_common_platform_posix_sdl_i_system_cpp
===================================================================
RCS file: patches/patch-src_common_platform_posix_sdl_i_system_cpp
diff -N patches/patch-src_common_platform_posix_sdl_i_system_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_common_platform_posix_sdl_i_system_cpp    5 Aug 2023 
02:58:11 -0000
@@ -0,0 +1,42 @@
+use getcwd(3) instead of non-portable get_current_dir_name()
+
+Index: src/common/platform/posix/sdl/i_system.cpp
+--- src/common/platform/posix/sdl/i_system.cpp.orig
++++ src/common/platform/posix/sdl/i_system.cpp
+@@ -52,6 +52,8 @@
+ #include <linux/perf_event.h>
+ #include <sys/mman.h>
+ #include "printf.h"
++#elif defined(__OpenBSD__)
++#include "printf.h"
+ #endif
+ 
+ #include <SDL.h>
+@@ -408,11 +410,10 @@ FString I_GetFromClipboard (bool use_primary_selection
+ 
+ FString I_GetCWD()
+ {
+-      char* curdir = get_current_dir_name();
+-      if (!curdir) 
+-      {
+-              return "";
+-      }
++      char curdir[PATH_MAX];
++
++      if (getcwd(curdir, sizeof(curdir)) == nullptr)
++              return "";
+       FString ret(curdir);
+       free(curdir);
+       return ret;
+@@ -447,7 +448,10 @@ unsigned int I_MakeRNGSeed()
+ 
+ void I_OpenShellFolder(const char* infolder)
+ {
+-      char* curdir = get_current_dir_name();
++      char curdir[PATH_MAX];
++
++      if (getcwd(curdir, sizeof(curdir)) == nullptr)
++              Printf("Unable to get current working directory\n");
+ 
+       if (!chdir(infolder))
+       {
Index: patches/patch-src_d_main_cpp
===================================================================
RCS file: patches/patch-src_d_main_cpp
diff -N patches/patch-src_d_main_cpp
--- patches/patch-src_d_main_cpp        18 Jul 2022 08:27:46 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-fix gzdoom.pk3 not found error, backport of
-https://github.com/coelckers/gzdoom/pull/1665
-
-Index: src/d_main.cpp
---- src/d_main.cpp.orig
-+++ src/d_main.cpp
-@@ -3534,6 +3534,8 @@ static int D_DoomMain_Internal (void)
-       
-       std::set_new_handler(NewFailure);
-       const char *batchout = Args->CheckValue("-errorlog");
-+
-+      D_DoomInit();
-       
-       // [RH] Make sure zdoom.pk3 is always loaded,
-       // as it contains magic stuff we need.
-@@ -3567,8 +3569,6 @@ static int D_DoomMain_Internal (void)
-       }
- 
-       if (!batchrun) Printf(PRINT_LOG, "%s version %s\n", GAMENAME, 
GetVersionString());
--
--      D_DoomInit();
- 
-       extern void D_ConfirmSendStats();
-       D_ConfirmSendStats();

Reply via email to