gnu: texlive-musixtnt: Build binary separately.

* gnu/packages/tex.scm (texlive-musixtnt-bin): New variable.
(texlive-musixtnt): Do not use prerex source. Make it a regular TeX Live
package instead.
[arguments]: Remove it.
[propagated-inputs]: Add TEXLIVE-MUSIXTNT-BIN.

Change-Id: I24bbdb6ba5cc2b5205e20db9fdeb1c00f08a9d82
This commit is contained in:
Nicolas Goaziou 2024-05-28 21:44:18 +02:00 committed by Ludovic Courtès
parent 823276ad77
commit bf25c373ac
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -22917,34 +22917,7 @@ (define-public texlive-musixtnt
"0z1rfscla1hiibd0gs3lgf8x5yx19pmwdsbzvx2vvz0ikwgjglm9")))
(outputs '("out" "doc"))
(build-system texlive-build-system)
(arguments
(list
#:tests? #true
#:modules '((guix build texlive-build-system)
((guix build gnu-build-system) #:prefix gnu:)
(guix build utils)
(srfi srfi-1))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'unpack-musixtnt-source
(lambda _
(mkdir-p "build")
(with-directory-excursion "build"
(invoke "tar" "xvf"
;; Tarball includes a release date that we ignore.
(first (find-files ".." "^musixtnt-.*\\.tar.gz"))
"--strip-components=1"))))
(add-after 'build 'build-msxlint
(lambda args
(with-directory-excursion "build"
(for-each (lambda (phase)
(apply (assoc-ref gnu:%standard-phases phase) args))
'(configure
build
check
install
compress-documentation))))))))
(propagated-inputs (list texlive-musixtex))
(propagated-inputs (list texlive-musixtex texlive-musixtnt-bin))
(home-page "https://ctan.org/pkg/musixtnt")
(synopsis
"MusiXTeX extension library enabling transformations of the effect of
@ -22964,6 +22937,53 @@ (define-public texlive-musixtnt
source file. This should be used before using @code{\\TransformNotes}.")
(license license:gpl2)))
(define-public texlive-musixtnt-bin
(package
(inherit texlive-bin)
(name "texlive-musixtnt-bin")
(source
(origin
(inherit texlive-source)
(modules '((guix build utils)
(ice-9 ftw)))
(snippet
#~(let ((delete-other-directories
(lambda (root keep)
(with-directory-excursion root
(for-each
delete-file-recursively
(scandir
"."
(lambda (file)
(and (not (member file (append keep '("." ".."))))
(eq? 'directory (stat:type (stat file)))))))))))
(delete-other-directories "libs" '())
(delete-other-directories "utils" '())
(delete-other-directories "texk" '("musixtnt"))))))
(arguments
(substitute-keyword-arguments (package-arguments texlive-bin)
((#:configure-flags flags)
#~(cons "--enable-musixtnt" (delete "--enable-web2c" #$flags)))
((#:phases phases)
#~(modify-phases #$phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "texk/musixtnt"
(invoke "make" "check")))))
(replace 'install
(lambda _
(with-directory-excursion "texk/musixtnt"
(invoke "make" "install"))))))))
(native-inputs (list pkg-config))
(inputs (list texlive-libkpathsea))
(propagated-inputs '())
(home-page (package-home-page texlive-musixtnt))
(synopsis "Binary for @code{texlive-musixtnt}")
(description
"This package provides the binary for @code{texlive-musixtnt}.")
(license (package-license texlive-musixtnt))))
(define-public texlive-musuos
(package
(name "texlive-musuos")
@ -73292,31 +73312,43 @@ (define-public texlive-xindy
;; Texmf tree in TeX Live is incomplete, as it doesn't include
;; "xindy.mem", so it is not possible to use `texlive-origin'. This file
;; isn't build by default by `texlive-bin' either. Build it specially
;; from `texlive-bin' source instead.
(inherit texlive-libkpathsea)
;; from TEXLIVE-SOURCE instead.
(inherit texlive-bin)
(name "texlive-xindy")
(version (number->string %texlive-revision))
(outputs '("out" "doc"))
(build-system gnu-build-system)
(source
(origin
(inherit texlive-source)
(modules '((guix build utils)
(ice-9 ftw)))
(snippet
#~(let ((delete-other-directories
(lambda (root dirs)
(with-directory-excursion root
(for-each
delete-file-recursively
(scandir "."
(lambda (file)
(and (not (member file (append '("." "..") dirs)))
(eq? 'directory (stat:type (stat file)))))))))))
(delete-other-directories "libs/" '())
(delete-other-directories "utils/" '("xindy"))
(delete-other-directories "texk/" '())))))
(arguments
(substitute-keyword-arguments (package-arguments texlive-libkpathsea)
((#:out-of-source? _ #t) #t)
(substitute-keyword-arguments (package-arguments texlive-bin)
((#:configure-flags flags)
#~(cons "--enable-xindy" (delete "--enable-kpathsea" #$flags)))
#~(cons "--enable-xindy" (delete "--enable-web2c" #$flags)))
((#:phases _)
#~(modify-phases %standard-phases
(replace 'install
;; Building documentation require to generate font metrics, but
;; HOME and therefore TEXMFVAR are unavailable. Use a local
;; TEXMFVAR instead.
(add-before 'build 'set-texmfvar
(lambda _
(with-directory-excursion "utils/xindy/"
(invoke "make")
(mkdir-p (string-append #$output "/bin"))
(invoke "make" "install")
(let ((out (string-append #$output "/share"))
(doc (string-append #$output:doc "/share/texmf-dist")))
(mkdir-p doc)
(with-directory-excursion doc
(rename-file (string-append out "/texmf-dist/doc") "doc")
(rename-file (string-append out "/man") "doc/man"))))))
(setenv "TEXMFVAR" (string-append (getcwd) "/texmf-var"))))
;; XXX: Install process does not create this directory.
(add-before 'install 'create-missing-directory
(lambda _
(mkdir-p (string-append #$output "/bin"))))
(add-after 'install 'patch-clisp-location
(lambda* (#:key inputs #:allow-other-keys)
;; The scripts are encoded in ISO-8859-1 (or iso-latin-1).