gnu: Add simple-texlive-package.

* gnu/packages/tex.scm (simple-texlive-package): New procedure.
master
Ricardo Wurmus 2019-07-06 21:27:19 +02:00
parent 2541379ee4
commit 8ab600f8c3
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
1 changed files with 58 additions and 0 deletions

View File

@ -75,6 +75,64 @@
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:hide (zip)))
(define* (simple-texlive-package name locations hash
#:key trivial?)
"Return a template for a simple TeX Live package with the given NAME,
downloading from a list of LOCATIONS in the TeX Live repository, and expecting
the provided output HASH. If TRIVIAL? is provided, all files will simply be
copied to their outputs; otherwise the TEXLIVE-BUILD-SYSTEM is used."
(define with-documentation?
(and trivial?
(any (lambda (location)
(string-prefix? "/doc" location))
locations)))
(package
(name name)
(version (number->string %texlive-revision))
(source (texlive-origin name version
locations hash))
(outputs (if with-documentation?
'("out" "doc")
'("out")))
(build-system (if trivial?
gnu-build-system
texlive-build-system))
(arguments
(let ((copy-files
`(lambda* (#:key outputs inputs #:allow-other-keys)
(let (,@(if with-documentation?
`((doc (string-append (assoc-ref outputs "doc")
"/share/texmf-dist/")))
'())
(out (string-append (assoc-ref outputs "out")
"/share/texmf-dist/")))
,@(if with-documentation?
'((mkdir-p doc)
(copy-recursively
(string-append (assoc-ref inputs "source") "/doc")
(string-append doc "/doc")))
'())
(mkdir-p out)
(copy-recursively (assoc-ref inputs "source") out)
,@(if with-documentation?
'((delete-file-recursively (string-append out "/doc")))
'())
#t))))
(if trivial?
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build (const #t))
(replace 'install ,copy-files)))
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'copy-files ,copy-files))))))
(home-page #f)
(synopsis #f)
(description #f)
(license #f)))
(define texlive-extra-src
(origin
(method url-fetch)