Subject: [bug#67607] [PATCH] gnu: openmw: Update to 0.48.0.

From: Rodion Goritskov <[email-masked]>
Date: Sun, 3 Dec 2023 22:25:05 +0400

* gnu/packages/game-development.scm (openmw): Update to 0.48.0.
* gnu/packages/graphics.scm (openmw-openscenegraph): Update to commit 68c5c5.

Change-Id: I5e1ae0d59ead8de7976714cb82e8d514c308f19a
---
 gnu/local.mk                                  |  1 -
 gnu/packages/game-development.scm             | 49 ++++++++++---------
 gnu/packages/graphics.scm                     |  6 +--
 .../openmw-assume-nonconst-SIGSTKSZ.patch     | 39 ---------------
 4 files changed, 28 insertions(+), 67 deletions(-)
 delete mode 100644 gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index fde91b33eb..a10161123e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1729,7 +1729,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch	\
   %D%/packages/patches/openjdk-21-fix-rpath.patch		\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
-  %D%/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch    \
   %D%/packages/patches/openssh-trust-guix-store-directory.patch	\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openrgb-unbundle-hueplusplus.patch	\
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 671c7839ac..c960f11e85 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -109,8 +109,10 @@ (define-module (gnu packages game-development)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages speech)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages stb)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
@@ -1841,38 +1843,37 @@ (define-public mygui-gl
 (define-public openmw
   (package
     (name "openmw")
-    (version "0.47.0")
+    (version "0.48.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/OpenMW/openmw")
-              (commit (string-append "openmw-" version))))
+             (url "https://github.com/OpenMW/openmw")
+             (commit (string-append "openmw-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))
-       (patches (search-patches "openmw-assume-nonconst-SIGSTKSZ.patch"))))
+        (base32 "0amkxfylk1l67d2igihnhhql62xr89wvg1sxbq2rnhczf6vxaj6f"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f                      ; No test target
-       #:configure-flags
-       (list "-DDESIRED_QT_VERSION=5"
-             "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON")))
-    (native-inputs
-     (list boost doxygen pkg-config))
-    (inputs
-     (list bullet
-           ffmpeg-4                     ; https://gitlab.com/OpenMW/openmw/-/issues/6631
-           libxt
-           lz4
-           mygui-gl              ; OpenMW does not need Ogre.
-           openal
-           openmw-openscenegraph
-           qtbase-5
-           recastnavigation
-           sdl2
-           unshield))
+     `(#:tests? #f ;No test target
+       #:configure-flags (list "-DDESIRED_QT_VERSION=5"
+                               "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON")))
+    (native-inputs (list boost doxygen pkg-config))
+    (inputs (list bullet
+                  ffmpeg
+                  libxt
+                  lz4
+                  mygui-gl ;OpenMW does not need Ogre.
+                  openal
+                  openmw-openscenegraph
+                  qtbase-5
+                  recastnavigation
+                  sdl2
+                  unshield
+                  icu4c
+                  yaml-cpp
+                  luajit
+                  sqlite))
     (synopsis "Re-implementation of the RPG Morrowind engine")
     (description
      "OpenMW is a game engine which reimplements and extends the one that runs
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 9e2efaa7fb..9bc81a3a81 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1490,11 +1490,11 @@ (define-public gr-framework
 (define-public openmw-openscenegraph
   ;; OpenMW prefers its own fork of openscenegraph:
   ;; https://wiki.openmw.org/index.php?title=Development_Environment_Setup#OpenSceneGraph.
-  (let ((commit "69cfecebfb6dc703b42e8de39eed750a84a87489"))
+  (let ((commit "68c5c573d47766507bfb191e0c8d213b1997ad20"))
     (hidden-package
      (package
        (inherit openscenegraph)
-       (version (git-version "3.6" "2" commit))
+       (version (git-version "3.6" "3" commit))
        (outputs (list "out"))
        (source
         (origin
@@ -1505,7 +1505,7 @@ (define-public openmw-openscenegraph
           (file-name (git-file-name (package-name openscenegraph) version))
           (sha256
            (base32
-            "1qayk2gklm8zvss90dcjfxv6717rvcmwmgmgyy1qzkli67a0zbw2"))))
+            "12xgdmymjh4rb7djzniy15lvi45y0x4i0l5swf031r8g4zn72v2n"))))
        (arguments
         (substitute-keyword-arguments (package-arguments openscenegraph)
           ((#:configure-flags flags)
diff --git a/gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch b/gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch
deleted file mode 100644
index ed35563c2c..0000000000
--- a/gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 98a7d90ee258ceef9c70b0b2955d0458ec46f048 Mon Sep 17 00:00:00 2001
-From: elsid <[email-masked]>
-Date: Fri, 24 Sep 2021 19:40:29 +0200
-Subject: [PATCH] Assume SIGSTKSZ is not a constant
-
-SIGSTKSZ is not defined as constant since glibc 2.34:
-https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53
----
- components/crashcatcher/crashcatcher.cpp | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/components/crashcatcher/crashcatcher.cpp b/components/crashcatcher/crashcatcher.cpp
-index 86571e1e3a..c828e1ca81 100644
---- a/components/crashcatcher/crashcatcher.cpp
-+++ b/components/crashcatcher/crashcatcher.cpp
-@@ -56,8 +56,6 @@ static const char exec_err[] = "!!! Failed to exec debug process\n";
-
- static char argv0[PATH_MAX];
-
--static char altstack[SIGSTKSZ];
--
-
- static struct {
-     int signum;
-@@ -475,9 +473,10 @@ int crashCatcherInstallHandlers(int argc, char **argv, int num_signals, int *sig
-
-     /* Set an alternate signal stack so SIGSEGVs caused by stack overflows
-      * still run */
-+    static char* altstack = new char [SIGSTKSZ];
-     altss.ss_sp = altstack;
-     altss.ss_flags = 0;
--    altss.ss_size = sizeof(altstack);
-+    altss.ss_size = SIGSTKSZ;
-     sigaltstack(&altss, nullptr);
-
-     memset(&sa, 0, sizeof(sa));
---
-GitLab
-

base-commit: ab8612d99eca5c25ecbefe026b04ed9f00e3f8b5
-- 
2.41.0