diff options
Diffstat (limited to 'gnu/packages')
| -rw-r--r-- | gnu/packages/patches/opensp-maxpathlen.patch | 41 | ||||
| -rw-r--r-- | gnu/packages/xml.scm | 7 |
2 files changed, 48 insertions, 0 deletions
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 @@ | |||
| 1 | Adapted from https://sources.debian.org/src/opensp/1.5.2-15.2/debian/patches/diff-1.0.patch | ||
| 2 | |||
| 3 | Index: OpenSP-1.5.2/sx/XmlOutputEventHandler.cxx | ||
| 4 | =================================================================== | ||
| 5 | --- OpenSP-1.5.2.orig/sx/XmlOutputEventHandler.cxx | ||
| 6 | +++ OpenSP-1.5.2/sx/XmlOutputEventHandler.cxx | ||
| 7 | @@ -1199,12 +1199,22 @@ void XmlOutputEventHandler::inputOpened( | ||
| 8 | // Check to make sure we haven't passed outside of the | ||
| 9 | // output directory | ||
| 10 | char *dirs = strdup (filePath); | ||
| 11 | +#ifdef MAXPATHLEN | ||
| 12 | char realDirs[MAXPATHLEN]; | ||
| 13 | char realOutputDir[MAXPATHLEN]; | ||
| 14 | +#else | ||
| 15 | + char *realDirs; | ||
| 16 | + char *realOutputDir; | ||
| 17 | +#endif | ||
| 18 | char *outputDir = strdup(outputDir_); | ||
| 19 | |||
| 20 | +#ifdef MAXPATHLEN | ||
| 21 | realpath((const char *)dirname(dirs), realDirs); | ||
| 22 | realpath((const char *)dirname(outputDir), realOutputDir); | ||
| 23 | +#else | ||
| 24 | + realDirs = realpath((const char *)dirname(dirs), NULL); | ||
| 25 | + realOutputDir = realpath((const char *)dirname(outputDir), NULL); | ||
| 26 | +#endif | ||
| 27 | |||
| 28 | if (strncmp(realDirs, realOutputDir, strlen (realOutputDir)) != 0) { | ||
| 29 | app_->message(XmlOutputMessages::pathOutsideOutputDirectory, | ||
| 30 | @@ -1214,6 +1224,11 @@ void XmlOutputEventHandler::inputOpened( | ||
| 31 | } | ||
| 32 | } | ||
| 33 | |||
| 34 | +#ifndef MAXPATHLEN | ||
| 35 | + free(realDirs); | ||
| 36 | + free(realOutputDir); | ||
| 37 | +#endif | ||
| 38 | + | ||
| 39 | // Make the necessary directories | ||
| 40 | maybeCreateDirectories(dirname(dirs)); | ||
| 41 | |||
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++.") | |||
| 1845 | #:make-flags #~(list "TESTS_THAT_FAIL=") | 1845 | #:make-flags #~(list "TESTS_THAT_FAIL=") |
| 1846 | #:phases | 1846 | #:phases |
| 1847 | #~(modify-phases %standard-phases | 1847 | #~(modify-phases %standard-phases |
| 1848 | #$@(if (target-hurd?) | ||
| 1849 | #~((add-after 'unpack 'patch-hurd | ||
| 1850 | (lambda _ | ||
| 1851 | (let ((patch #$(local-file | ||
| 1852 | (search-patch "opensp-maxpathlen.patch")))) | ||
| 1853 | (invoke "patch" "--force" "-p1" "-i" patch))))) | ||
| 1854 | #~()) | ||
| 1848 | (add-after 'unpack 'delete-configure | 1855 | (add-after 'unpack 'delete-configure |
| 1849 | ;; The configure script in the release was made with an older | 1856 | ;; The configure script in the release was made with an older |
| 1850 | ;; Autoconf and lacks support for the `--docdir' option. | 1857 | ;; Autoconf and lacks support for the `--docdir' option. |
