From 4a245129ffc84ca9a173da82df6f91239c6b1fe6 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 5 May 2023 17:22:03 +0200 Subject: guix: import: Update texlive importer according to new build system. * guix/import/texlive.scm (tlpdb->package): Generate a package that doesn't need SIMPLE-TEXLIVE-PACKAGE. * guix/import/utils.scm (package->definition): Remove special case for `simple-texlive-package'. * tests/texlive.scm (%fake-tlpdb): Add test data. ("texlive->guix-package"): Update test. ("texlive->guix-package, no docfiles"): New test. --- tests/texlive.scm | 86 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 20 deletions(-) (limited to 'tests') diff --git a/tests/texlive.scm b/tests/texlive.scm index 7d7ad332b4..1493fc87bb 100644 --- a/tests/texlive.scm +++ b/tests/texlive.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2022 Ricardo Wurmus +;;; Copyright © 2023 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,7 +32,15 @@ (define-module (test-texlive) (test-begin "texlive") (define %fake-tlpdb - '(("stricttex" + '(("example" + . ((name . "example") + (shortdesc . "Typeset examples...") + (longdesc . "The package makes it easier...") + (runfiles + . + ("texmf-dist/tex/latex/example/example.sty")) + (catalogue-license . "gpl"))) + ("stricttex" . ((name . "stricttex") (shortdesc @@ -69,7 +78,7 @@ (define %fake-tlpdb code; Specialized macros for easily constructing ruled tables. TeXsis was originally developed for physicists, but others may also find it useful. It is completely compatible with Plain TeX.") - (depend . ("cm" "hyphen-base" "knuth-lib" "plain" "tex")) + (depend . ("tex" "plain" "knuth-lib" "hyphen-base" "cm")) (docfiles . ("texmf-dist/doc/man/man1/texsis.1" "texmf-dist/doc/man/man1/texsis.man1.pdf" @@ -158,6 +167,40 @@ (define %fake-tlpdb "texmf-dist/tex/texsis/config/texsis.ini")) (catalogue-license . "lppl"))))) +(test-assert "texlive->guix-package, no docfiles" + ;; Replace network resources with sample data. + (mock ((guix build svn) svn-fetch + (lambda* (url revision directory + #:key (svn-command "svn") + (user-name #f) + (password #f) + (recursive? #t)) + (mkdir-p directory) + (with-output-to-file (string-append directory "/foo") + (lambda () + (display "source"))))) + (let ((result (texlive->guix-package "example" + #:package-database + (lambda _ %fake-tlpdb)))) + (match result + (('package + ('name "texlive-example") + ('version _) + ('source ('texlive-origin + 'name 'version + ('list "tex/latex/example/") + ('base32 (? string? hash)))) + ('build-system 'texlive-build-system) + ('home-page (? string?)) + ('synopsis (? string?)) + ('description (? string?)) + ('license _)) + #true) + (_ + (begin + (format #t "~s~%" result) + (pk 'fail result #f))))))) + (test-assert "texlive->guix-package" ;; Replace network resources with sample data. (mock ((guix build svn) svn-fetch @@ -174,27 +217,30 @@ (define %fake-tlpdb #:package-database (lambda _ %fake-tlpdb)))) (match result - (`(package - (inherit (simple-texlive-package - "texlive-texsis" - (list "bibtex/bst/texsis/" - "doc/man/man1/" + (('package + ('name "texlive-texsis") + ('version _) + ('source ('texlive-origin + 'name 'version + ('list "bibtex/bst/texsis/" + "doc/man/man1/texsis.1" + "doc/man/man1/texsis.man1.pdf" "doc/otherformats/texsis/base/" "tex/texsis/base/" "tex/texsis/config/") - (base32 ,(? string? hash)) - #:trivial? #t)) - (version ,_) - (propagated-inputs - (list texlive-cm - texlive-hyphen-base - texlive-knuth-lib - texlive-plain - texlive-tex)) - (home-page ,(? string?)) - (synopsis ,(? string?)) - (description ,(? string?)) - (license lppl)) + ('base32 (? string? hash)))) + ('outputs ''("out" "doc")) + ('build-system 'texlive-build-system) + ('propagated-inputs + ('list 'texlive-cm + 'texlive-hyphen-base + 'texlive-knuth-lib + 'texlive-plain + 'texlive-tex)) + ('home-page (? string?)) + ('synopsis (? string?)) + ('description (? string?)) + ('license 'lppl)) #true) (_ (begin -- cgit v1.2.3