diff options
-rw-r--r-- | gnu/packages/tex.scm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 85c72e006a..678e46ccd2 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -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) |