summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorYelninei <yelninei@tutamail.com>2026-01-02 08:43:56 +0000
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2026-02-07 22:37:16 +0100
commit3afbbf8ae30a63e6787b2dda11398ee89cee8782 (patch)
tree13eee1c8f5ac920214bc906771a0303787854a1b /gnu
parent8b19b95599cf6221ed09aaed15b642af9dd9e5c1 (diff)
gnu: opensp: Fix build on the Hurd.
* gnu/packages/patches/opensp-maxpathlen.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/xml.scm (opensp): Add phase for adding the patch. Change-Id: I47278396eb5ded8f654708019e51b7d88b13b976 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/opensp-maxpathlen.patch41
-rw-r--r--gnu/packages/xml.scm7
3 files changed, 49 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 696fe73d96d..e619ab688ce 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2027,6 +2027,7 @@ dist_patch_DATA = \
%D%/packages/patches/openrgb-unbundle-hueplusplus.patch \
%D%/packages/patches/openscad-fix-path-in-expected-test-results-to-acommodate-diff.patch \
%D%/packages/patches/opensles-add-license-file.patch \
+ %D%/packages/patches/opensp-maxpathlen.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-3.0-c-rehash-in.patch \
%D%/packages/patches/openssl-hurd64.patch \
diff --git a/gnu/packages/patches/opensp-maxpathlen.patch b/gnu/packages/patches/opensp-maxpathlen.patch
new file mode 100644
index 00000000000..9b141472ed9
--- /dev/null
+++ b/gnu/packages/patches/opensp-maxpathlen.patch
@@ -0,0 +1,41 @@
+Adapted from https://sources.debian.org/src/opensp/1.5.2-15.2/debian/patches/diff-1.0.patch
+
+Index: OpenSP-1.5.2/sx/XmlOutputEventHandler.cxx
+===================================================================
+--- OpenSP-1.5.2.orig/sx/XmlOutputEventHandler.cxx
++++ OpenSP-1.5.2/sx/XmlOutputEventHandler.cxx
+@@ -1199,12 +1199,22 @@ void XmlOutputEventHandler::inputOpened(
+ // Check to make sure we haven't passed outside of the
+ // output directory
+ char *dirs = strdup (filePath);
++#ifdef MAXPATHLEN
+ char realDirs[MAXPATHLEN];
+ char realOutputDir[MAXPATHLEN];
++#else
++ char *realDirs;
++ char *realOutputDir;
++#endif
+ char *outputDir = strdup(outputDir_);
+
++#ifdef MAXPATHLEN
+ realpath((const char *)dirname(dirs), realDirs);
+ realpath((const char *)dirname(outputDir), realOutputDir);
++#else
++ realDirs = realpath((const char *)dirname(dirs), NULL);
++ realOutputDir = realpath((const char *)dirname(outputDir), NULL);
++#endif
+
+ if (strncmp(realDirs, realOutputDir, strlen (realOutputDir)) != 0) {
+ app_->message(XmlOutputMessages::pathOutsideOutputDirectory,
+@@ -1214,6 +1224,11 @@ void XmlOutputEventHandler::inputOpened(
+ }
+ }
+
++#ifndef MAXPATHLEN
++ free(realDirs);
++ free(realOutputDir);
++#endif
++
+ // Make the necessary directories
+ maybeCreateDirectories(dirname(dirs));
+
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 38606df7a1f..1660feb8538 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -1845,6 +1845,13 @@ modular implementation of XML-RPC for C and C++.")
#:make-flags #~(list "TESTS_THAT_FAIL=")
#:phases
#~(modify-phases %standard-phases
+ #$@(if (target-hurd?)
+ #~((add-after 'unpack 'patch-hurd
+ (lambda _
+ (let ((patch #$(local-file
+ (search-patch "opensp-maxpathlen.patch"))))
+ (invoke "patch" "--force" "-p1" "-i" patch)))))
+ #~())
(add-after 'unpack 'delete-configure
;; The configure script in the release was made with an older
;; Autoconf and lacks support for the `--docdir' option.