gnu: Add simple-texlive-package.
* gnu/packages/tex.scm (simple-texlive-package): New procedure.master
parent
2541379ee4
commit
8ab600f8c3
|
@ -75,6 +75,64 @@
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module ((srfi srfi-1) #:hide (zip)))
|
#: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
|
(define texlive-extra-src
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
|
Reference in New Issue