[PATCH 0/2] Fix building OpenMW after the core-updates merge.

  • Done
  • quality assurance status badge
Details
2 participants
  • Kaelyn Takata
  • Ludovic Courtès
Owner
unassigned
Submitted by
Kaelyn Takata
Severity
normal

Debbugs page

Kaelyn Takata wrote 2 years ago
(address . guix-patches@gnu.org)(name . Kaelyn Takata)(address . kaelyn.alexi@protonmail.com)
cover.1682611459.git.kaelyn.alexi@protonmail.com
Hi,

This pair of patches fixes building OpenMW and its dependency recastnavigation
on master after the merge of core-updates. For both packages, the build
failures were due to SIGSTKSZ no longer being a constant in glibc 2.34 and
newer. recastnavigation is fixed by updating the package to the latest commit
(as of this writing). OpenMW has also been fixed upstream since the 0.47
release, but building using the openmw-48-rc9 tag results in OpenMW crashing
for me while loading the main menu.

I have tested this patch set in conjunction with the updated
openmw-openscenegraph in https://issues.guix.gnu.org/62728and have
successfully loaded a saved game with the I Heart Vanilla modlist
around the starting town a bit, including talking to people.

Cheers,
Kaelyn



Kaelyn Takata (2):
gnu: recastnavigation: Update to commit 6d1f971.
gnu: openmw: Fix build on glibc 2.34 and newer.

gnu/local.mk | 1 +
gnu/packages/game-development.scm | 9 +++--
.../openmw-assume-nonconst-SIGSTKSZ.patch | 39 +++++++++++++++++++
3 files changed, 45 insertions(+), 4 deletions(-)
create mode 100644 gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch


base-commit: 297805b1f83aa58ba9fc775c203373338aafd5ac
--
2.39.2
Kaelyn Takata wrote 2 years ago
[PATCH 1/2] gnu: recastnavigation: Update to commit 6d1f971.
(address . 63126@debbugs.gnu.org)(name . Kaelyn Takata)(address . kaelyn.alexi@protonmail.com)
8ac77bf58b6dfa95626b21010f89a2505e9e5411.1682611459.git.kaelyn.alexi@protonmail.com
* gnu/packages/game-development.scm (recastnavigation): Update to commit 6d1f971.
---
gnu/packages/game-development.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 844ce935ae..a3a331c290 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -2803,8 +2803,8 @@ (define-public tesseract-engine

(define-public recastnavigation
;; We follow master since there hasn't been a release since 1.5.1 in 2016.
- (let ((commit "c5cbd53024c8a9d8d097a4371215e3342d2fdc87")
- (revision "1"))
+ (let ((commit "6d1f9711b3b71f28c2c1c0742d76e0ef8766cf91")
+ (revision "2"))
(package
(name "recastnavigation")
(version (git-version "1.5.1" revision commit))
@@ -2816,7 +2816,7 @@ (define-public recastnavigation
(file-name (git-file-name name version))
(sha256
(base32
- "034bm47gc3r285w1pnvkhmm74zz99d204b1r865gisaiq4qfbza0"))))
+ "0cqp0sbm0ixqnxqz6gf2gybh5l4az91mdsd8b5bgxs1wpl2jmnga"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
--
2.39.2
Kaelyn Takata wrote 2 years ago
[PATCH 2/2] gnu: openmw: Fix build on glibc 2.34 and newer.
(address . 63126@debbugs.gnu.org)(name . Kaelyn Takata)(address . kaelyn.alexi@protonmail.com)
f3d76f0a667f7ede2e6b02cf6f5b152f209693bd.1682611459.git.kaelyn.alexi@protonmail.com
* gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it here.
* gnu/packages/game-development.scm (openmw)[source]<patches>: Use it here.
---
gnu/local.mk | 1 +
gnu/packages/game-development.scm | 3 +-
.../openmw-assume-nonconst-SIGSTKSZ.patch | 39 +++++++++++++++++++
3 files changed, 42 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch

Toggle diff (71 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index c0a5c721fc..448c9d8139 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1640,6 +1640,7 @@ dist_patch_DATA = \
%D%/packages/patches/openjdk-10-setsignalhandler.patch \
%D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \
+ %D%/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch \
%D%/packages/patches/openssh-hurd.patch \
%D%/packages/patches/openssh-trust-guix-store-directory.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index a3a331c290..c22b33e177 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1775,7 +1775,8 @@ (define-public openmw
(file-name (git-file-name name version))
(sha256
(base32
- "19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))))
+ "19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))
+ (patches (search-patches "openmw-assume-nonconst-SIGSTKSZ.patch"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No test target
diff --git a/gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch b/gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch
new file mode 100644
index 0000000000..ff0080e28a
--- /dev/null
+++ b/gnu/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch
@@ -0,0 +1,39 @@
+From 98a7d90ee258ceef9c70b0b2955d0458ec46f048 Mon Sep 17 00:00:00 2001
+From: elsid <elsid.mail@gmail.com>
+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
+
--
2.39.2
Ludovic Courtès wrote 2 years ago
Re: bug#63126: [PATCH 0/2] Fix building OpenMW after the core-updates merge.
(name . Kaelyn Takata)(address . kaelyn.alexi@protonmail.com)(address . 63126-done@debbugs.gnu.org)
87a5y0z93q.fsf@gnu.org
Hi,

Kaelyn Takata <kaelyn.alexi@protonmail.com> skribis:

Toggle quote (3 lines)
> gnu: recastnavigation: Update to commit 6d1f971.
> gnu: openmw: Fix build on glibc 2.34 and newer.

Applied, thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 63126@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 63126
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch
You may also tag this issue. See list of standard tags. For example, to set the confirmed and easy tags
mumi command -t +confirmed -t +easy
Or, remove the moreinfo tag and set the help tag
mumi command -t -moreinfo -t +help