guix_mirror_bot pushed a commit to branch master
in repository guix.
commit fdbe8b80a8b3b7f045e03005b38035dff6c78f73
Author: Janneke Nieuwenhuizen <[email protected]>
AuthorDate: Sun Mar 8 15:42:07 2026 +0100
gnu: texinfo: Support cross-build and build from git.
Fixes #6976.
* gnu/packages/texinfo.scm (texinfo-7)[source]: Update to use git-fetch.
[native-inputs]: New field.
[arguments]: Add phases `patch-bootstrap-shebangs', `patch-jrtangle', and
when
cross-building, also add phase `build-native-tools'.
Change-Id: I3dcd73c781ad24ae6579384c08c5bb49f95dd783
---
gnu/packages/texinfo.scm | 68 +++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 62 insertions(+), 6 deletions(-)
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index e87b1a7024..e0b365d0b9 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2019 Pierre-Moana Levesque <[email protected]>
;;; Copyright © 2019, 2020 Mathieu Othacehe <[email protected]>
;;; Copyright © 2020 Nicolas Goaziou <[email protected]>
-;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <[email protected]>
+;;; Copyright © 2020, 2023, 2024, 2026 Janneke Nieuwenhuizen <[email protected]>
;;; Copyright © 2021 Maxime Devos <[email protected]>
;;; Copyright © 2022 ( <[email protected]>
;;;
@@ -38,9 +38,13 @@
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages gperf)
+ #:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-compression)
@@ -113,18 +117,38 @@ is on expressing the content semantically, avoiding
physical markup commands.")
(inherit texinfo)
(version "7.3")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/texinfo/texinfo-"
- version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/texinfo.git")
+ (commit (string-append "texinfo-" version))))
+ (file-name (git-file-name "texinfo" version))
(sha256
(base32
- "0bn7ckhxjqrgfvxz122vr5z9bs26bpfxyr2jp1rriyhwynq4xxsi"))))
+ "1ln3rr34b9k9m8mhg01ygifj945610cn5qk11mfvgzpavyy5rghg"))))
+ (native-inputs (list autoconf
+ automake
+ bash-minimal
+ coreutils-minimal
+ gawk
+ gettext-minimal
+ gperf
+ help2man
+ (libc-utf8-locales-for-target)
+ libtool
+ ncurses
+ perl
+ perl-text-unidecode
+ perl-unicode-eastasianwidth))
(inputs (modify-inputs (package-inputs texinfo)
- (append perl-archive-zip ;needed for 'tex2any --epub3'
+ (append perl-archive-zip ;needed for 'tex2any --epub3'
perl-unicode-eastasianwidth perl-text-unidecode
perl-libintl-perl)))
(arguments
(substitute-keyword-arguments (package-arguments texinfo)
+ ((#:modules modules `((guix build utils)
+ (guix build gnu-build-system)))
+ `((srfi srfi-26)
+ ,@modules))
((#:configure-flags flags
''())
#~(cons* "--with-external-Unicode-EastAsianWidth"
@@ -133,6 +157,38 @@ is on expressing the content semantically, avoiding
physical markup commands.")
#$flags))
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
+ (add-after 'unpack 'patch-bootstrap-shebangs
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((sh (search-input-file (or native-inputs inputs)
+ "/bin/sh"))
+ (perl (search-input-file (or native-inputs inputs)
+ "/bin/perl")))
+ (for-each
+ (cute patch-shebang <> (list (dirname sh)))
+ (find-files "." ".*[.]sh"))
+ (for-each
+ (cute patch-shebang <> (list (dirname perl)))
+ (find-files "." ".*[.]pl")))))
+ #$@(if (%current-target-system)
+ ;; Texinfo uses a C binary during the build process, but
+ ;; lacks the concept of `CC_FOR_BUILD'
+ ;; Hack around that by building it manually.
+ #~((add-after 'configure 'build-native-tools
+ (lambda _
+ (with-directory-excursion "info"
+ (lambda _
+ (invoke "make" "CC=gcc" "makedoc")))))
+ (add-after 'configure 'fixup-texindex-building-from-git
+ (lambda _
+ (symlink "../../texindex/texindex"
+ "tools/texindex/texindex"))))
+ #~())
+ (add-after 'configure 'patch-jrtangle
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((mv (search-input-file (or native-inputs inputs)
+ "/bin/mv")))
+ (substitute* "texindex/jrtangle"
+ (("mv") mv)))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))