mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-24 11:39:46 -05:00
gnu: doxygen: Fix build for the Hurd.
* gnu/packages/patches/doxygen-hurd.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/documentation.scm (doxygen)[arguments]: When building for the Hurd, add new phase 'apply-patch' and use it.
This commit is contained in:
parent
6f15b4204f
commit
d3a1684c8a
3 changed files with 42 additions and 1 deletions
|
@ -1065,6 +1065,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/doc++-segfault-fix.patch \
|
||||
%D%/packages/patches/dovecot-opensslv3.patch \
|
||||
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
|
||||
%D%/packages/patches/doxygen-hurd.patch \
|
||||
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
|
||||
%D%/packages/patches/dstat-skip-devices-without-io.patch \
|
||||
%D%/packages/patches/dune-common-skip-failing-tests.patch \
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
|
||||
;;; Copyright © 2021, 2022 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.counoyer@gmail.com>
|
||||
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -40,6 +41,7 @@ (define-module (gnu packages documentation)
|
|||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages backup)
|
||||
|
@ -224,7 +226,15 @@ (define-public doxygen
|
|||
(let ((/bin/sh (search-input-file inputs "/bin/sh")))
|
||||
(substitute* "src/portable.cpp"
|
||||
(("/bin/sh")
|
||||
/bin/sh))))))))
|
||||
/bin/sh)))))
|
||||
#$@(if (target-hurd?)
|
||||
#~((add-after 'unpack 'apply-patch
|
||||
(lambda _
|
||||
(let ((patch-file
|
||||
#$(local-file
|
||||
(search-patch "doxygen-hurd.patch"))))
|
||||
(invoke "patch" "--force" "-p1" "-i" patch-file)))))
|
||||
#~()))))
|
||||
(synopsis "Generate documentation from annotated sources")
|
||||
(description "Doxygen is the de facto standard tool for generating
|
||||
documentation from annotated C++ sources, but it also supports other popular
|
||||
|
|
30
gnu/packages/patches/doxygen-hurd.patch
Normal file
30
gnu/packages/patches/doxygen-hurd.patch
Normal file
|
@ -0,0 +1,30 @@
|
|||
Upstream status: Adapted from upstream.
|
||||
|
||||
From d3d968e5835f449d7ea715f45160db81ea906303 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
Date: Tue, 16 Aug 2022 20:29:54 +0200
|
||||
Subject: [PATCH] Fix build on GNU/Hurd
|
||||
|
||||
There is no path length limitation there, even via pathconf. But glibc
|
||||
provides a getcwd function that allocates the buffer dynamically so we can
|
||||
just leverage that.
|
||||
---
|
||||
include/ghc/filesystem.hpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/filesystem/filesystem.hpp.orig 2022-08-11 22:14:32.000000000 +0200
|
||||
+++ b/filesystem/filesystem.hpp 2023-06-13 07:26:25.310000000 +0200
|
||||
@@ -4081,6 +4081,13 @@
|
||||
return path();
|
||||
}
|
||||
return path(std::wstring(buffer.get()), path::native_format);
|
||||
+#elif defined(__GLIBC__)
|
||||
+ std::unique_ptr<char, decltype(&std::free)> buffer { ::getcwd(NULL, 0), std::free };
|
||||
+ if (buffer == nullptr) {
|
||||
+ ec = detail::make_system_error();
|
||||
+ return path();
|
||||
+ }
|
||||
+ return path(buffer.get());
|
||||
#else
|
||||
size_t pathlen = static_cast<size_t>(std::max(int(::pathconf(".", _PC_PATH_MAX)), int(PATH_MAX)));
|
||||
std::unique_ptr<char[]> buffer(new char[pathlen + 1]);
|
Loading…
Reference in a new issue