123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802 |
- ;;; GNU Guix --- Functional package management for GNU
- ;;; Copyright © 2017, 2022 Ricardo Wurmus <rekado@elephly.net>
- ;;; Copyright © 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
- ;;;
- ;;; This file is part of GNU Guix.
- ;;;
- ;;; GNU Guix is free software; you can redistribute it and/or modify it
- ;;; under the terms of the GNU General Public License as published by
- ;;; the Free Software Foundation; either version 3 of the License, or (at
- ;;; your option) any later version.
- ;;;
- ;;; GNU Guix is distributed in the hope that it will be useful, but
- ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
- ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;;; GNU General Public License for more details.
- ;;;
- ;;; You should have received a copy of the GNU General Public License
- ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
- (define-module (test-texlive)
- #:use-module (gnu packages tex)
- #:use-module (guix import texlive)
- #:use-module (guix tests)
- #:use-module (guix tests http)
- #:use-module (guix build utils)
- #:use-module (srfi srfi-1)
- #:use-module (srfi srfi-64)
- #:use-module (srfi srfi-26)
- #:use-module (web client)
- #:use-module (ice-9 match))
- (test-begin "texlive")
- (define %fake-tlpdb
- '(("12many"
- . ((name
- . "12many")
- (catalogue
- . "one2many")
- (shortdesc
- . "Generalising mathematical index sets")
- (longdesc
- . "In the discrete branches of mathematics...")
- (docfiles
- . ("texmf-dist/doc/latex/12many/12many.pdf"
- "texmf-dist/doc/latex/12many/README"))
- (srcfiles
- . ("texmf-dist/source/latex/12many/12many.dtx"
- "texmf-dist/source/latex/12many/12many.ins"))
- (runfiles
- . ("texmf-dist/tex/latex/12many/12many.sty"))
- (catalogue-license . "lppl")))
- ("adforn"
- (name . "adforn")
- (shortdesc . "OrnementsADF font with TeX/LaTeX support")
- (longdesc . "The bundle provides the Ornements ADF font...")
- (execute "addMap OrnementsADF.map")
- (docfiles
- "texmf-dist/doc/fonts/adforn/COPYING"
- "texmf-dist/doc/fonts/adforn/NOTICE"
- "texmf-dist/doc/fonts/adforn/README"
- "texmf-dist/doc/fonts/adforn/adforn.pdf")
- (runfiles
- "texmf-dist/fonts/afm/arkandis/adforn/OrnementsADF.afm"
- "texmf-dist/fonts/enc/dvips/adforn/OrnementsADF.enc"
- "texmf-dist/fonts/map/dvips/adforn/OrnementsADF.map"
- "texmf-dist/fonts/tfm/arkandis/adforn/OrnementsADF.tfm"
- "texmf-dist/fonts/type1/arkandis/adforn/OrnementsADF.pfb"
- "texmf-dist/tex/latex/adforn/adforn.sty"
- "texmf-dist/tex/latex/adforn/uornementsadf.fd")
- (catalogue-license . "lppl gpl2"))
- ("authorindex"
- (name . "authorindex")
- (shortdesc . "Index citations by author names")
- (longdesc . "This package allows the user to...")
- (depend "authorindex.ARCH")
- (docfiles "texmf-dist/doc/latex/authorindex/COPYING")
- (runfiles
- "texmf-dist/scripts/authorindex/authorindex"
- "texmf-dist/tex/latex/authorindex/authorindex.sty")
- (catalogue-license . "lppl"))
- ("authorindex.x86_64-linux"
- (name . "authorindex.x86_64-linux")
- (binfiles "bin/amd64-netbsd/authorindex"))
- ("chs-physics-report"
- . ((name . "ch-physics-report")
- (shortdesc . "Physics lab reports...")
- (longdesc . "This package may...")
- (docfiles
- .
- ("texmf-dist/doc/latex/chs-physics-report/README.txt"
- "texmf-dist/doc/latex/chs-physics-report/chs-physics-report.pdf"))
- (runfiles
- .
- ("texmf-dist/tex/latex/chs-physics-report/chs-physics-report.sty"))
- (catalogue-license . "pd cc-by-sa-3")))
- ("collection-basic"
- (name . "collection-basic")
- (shortdesc . "Essential programs and files")
- (longdesc . "These files are regarded as basic...")
- (depend "amsfonts" "hyph-utf8" "hyphen-base" "texlive-common"
- "texlive.infra" "tlshell"))
- ("collection-texworks"
- (name . "collection-texworks")
- (shortdesc . "TeXworks editor...")
- (longdesc . "See http...")
- (depend "texworks" "collection-basic"))
- ("cyrillic-bin"
- (name . "cyrillic-bin")
- (shortdesc . "Cyrillic bibtex and makeindex")
- (depend "cyrillic-bin.ARCH")
- (docfiles
- "texmf-dist/doc/man/man1/rubibtex.1"
- "texmf-dist/doc/man/man1/rubibtex.man1.pdf")
- (runfiles
- "texmf-dist/scripts/texlive-extra/rumakeindex.sh"
- "texmf-dist/scripts/texlive-extra/rubibtex.sh"))
- ("cyrillic-bin.x86_64-linux"
- (name . "cyrillic-bin.x86_64-linux")
- (shortdesc . "x86_64-linux files of cyrillic-bin")
- (binfiles
- "bin/x86_64-linux/rubibtex"
- "bin/x86_64-linux/rumakeindex"))
- ("example"
- . ((name . "example")
- (shortdesc . "Typeset examples...")
- (longdesc . "The package makes it easier...")
- (runfiles
- .
- ("texmf-dist/tex/latex/example/example.sty"))
- (catalogue-license . "gpl")))
- ("lollipop"
- (name . "lollipop")
- (shortdesc . "TeX made easy")
- (longdesc . "Lollipop is TeX made easy...")
- (execute "AddFormat name=lollipop engine=tex options=\"lollipop.ini\"...")
- (docfiles
- "texmf-dist/doc/otherformats/lollipop/README"
- "texmf-dist/doc/otherformats/lollipop/manual/address.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/appendix.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/btxmac.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/comm.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/comment.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/example.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/extern.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/head.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/list.tex"
- "texmf-dist/doc/otherformats/lollipop/manual/lollipop-manual.bib"
- "texmf-dist/doc/otherformats/lollipop/manual/lollipop-manual.pdf")
- (runfiles
- "texmf-dist/tex/lollipop/lollipop-define.tex"
- "texmf-dist/tex/lollipop/lollipop-document.tex"
- "texmf-dist/tex/lollipop/lollipop-float.tex"
- "texmf-dist/tex/lollipop/lollipop-fontdefs.tex"
- "texmf-dist/tex/lollipop/lollipop-fonts.tex"
- "texmf-dist/tex/lollipop/lollipop-heading.tex"
- "texmf-dist/tex/lollipop/lollipop-lists.tex"
- "texmf-dist/tex/lollipop/lollipop-output.tex"
- "texmf-dist/tex/lollipop/lollipop-plain.tex"
- "texmf-dist/tex/lollipop/lollipop-text.tex"
- "texmf-dist/tex/lollipop/lollipop-tools.tex"
- "texmf-dist/tex/lollipop/lollipop.ini"
- "texmf-dist/tex/lollipop/lollipop.tex")
- (catalogue-license . "gpl3"))
- ("pax"
- (name . "pax")
- (shortdesc . "Extract and reinsert PDF...")
- (longdesc . "If PDF files are...")
- (depend "pax.ARCH")
- (docfiles
- "texmf-dist/doc/latex/pax/README")
- (srcfiles
- "texmf-dist/source/latex/pax/Makefile"
- "texmf-dist/source/latex/pax/build.xml")
- (runfiles
- "texmf-dist/scripts/pax/pdfannotextractor.pl")
- (catalogue-license . "lppl gpl"))
- ("pax.x86_64-linux"
- (name . "pax.x86_64-linux")
- (shortdesc . "x86_64-linux files of pax")
- (binfiles
- "bin/x86_64-linux/pdfannotextractor"))
- ("stricttex"
- . ((name
- . "stricttex")
- (shortdesc
- . "Strictly balanced brackets and numbers in command names")
- (longdesc
- . "This is a small, LuaLaTeX-only package providing you with three,
- sometimes useful features: It allows you to make brackets [...] \"strict\",
- meaning that each [ must be balanced by a ]. It allows you to use numbers in
- command names, so that you can do stuff like \\newcommand\\pi12{\\pi_{12}}. It
- allows you to use numbers and primes in command names, so that you can do
- stuff like \\newcommand\\pi'12{\\pi '_{12}}.")
- (docfiles
- . ("texmf-dist/doc/lualatex/stricttex/README.md"
- "texmf-dist/doc/lualatex/stricttex/stricttex.pdf"))
- (runfiles
- . ("texmf-dist/tex/lualatex/stricttex/stricttex.lua"
- "texmf-dist/tex/lualatex/stricttex/stricttex.sty"))
- (catalogue-license . "lppl1.3c")))
- ("tex"
- (name . "tex")
- (shortdesc . "A sophisticated typesetting engine")
- (longdesc . "TeX is a typesetting system that incorporates...")
- (depend "cm" "hyphen-base" "tex.ARCH")
- (docfiles "texmf-dist/doc/man/man1/tex.1")
- (catalogue-license . "knuth"))
- ("texsis"
- . ((name
- . "texsis")
- (shortdesc
- . "Plain TeX macros for Physicists")
- (longdesc
- . "TeXsis is a TeX macro package which provides useful features for
- typesetting research papers and related documents. For example, it includes
- support specifically for: Automatic numbering of equations, figures, tables
- and references; Simplified control of type sizes, line spacing, footnotes,
- running headlines and footlines, and tables of contents, figures and tables;
- Specialized document formats for research papers, preprints and \"e-prints\",
- conference proceedings, theses, books, referee reports, letters, and
- memoranda; Simplified means of constructing an index for a book or thesis;
- Easy to use double column formatting; Specialized environments for lists,
- theorems and proofs, centered or non-justified text, and listing computer
- 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 . ("tex" "plain" "knuth-lib" "hyphen-base" "cm"))
- (docfiles
- . ("texmf-dist/doc/man/man1/texsis.1"
- "texmf-dist/doc/man/man1/texsis.man1.pdf"
- "texmf-dist/doc/otherformats/texsis/base/COPYING"
- "texmf-dist/doc/otherformats/texsis/base/Example.tex"
- "texmf-dist/doc/otherformats/texsis/base/Fonts.tex"
- "texmf-dist/doc/otherformats/texsis/base/INSTALL"
- "texmf-dist/doc/otherformats/texsis/base/Install.tex"
- "texmf-dist/doc/otherformats/texsis/base/MANIFEST"
- "texmf-dist/doc/otherformats/texsis/base/Manual.fgl"
- "texmf-dist/doc/otherformats/texsis/base/Manual.ref"
- "texmf-dist/doc/otherformats/texsis/base/Manual.tbl"
- "texmf-dist/doc/otherformats/texsis/base/Manual.tex"
- "texmf-dist/doc/otherformats/texsis/base/NEWS"
- "texmf-dist/doc/otherformats/texsis/base/README"
- "texmf-dist/doc/otherformats/texsis/base/TXSapxF.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXScover.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSdcol.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSdoc.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSdoc0.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSdocM.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSend.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSenvmt.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSeqns.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSfigs.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSfmts.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSfonts.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSinstl.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSintro.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSletr.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSmisc.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSprns.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSrefs.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSrevs.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSruled.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSsects.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXSsite.000"
- "texmf-dist/doc/otherformats/texsis/base/TXSsymb.doc"
- "texmf-dist/doc/otherformats/texsis/base/TXStags.doc"
- "texmf-dist/doc/otherformats/texsis/base/index.tex"
- "texmf-dist/doc/otherformats/texsis/base/letr"
- "texmf-dist/doc/otherformats/texsis/base/penguin.eps"
- "texmf-dist/doc/otherformats/texsis/base/penguin2.eps"
- "texmf-dist/doc/otherformats/texsis/base/texsis.el"
- "texmf-dist/doc/otherformats/texsis/base/texsis.lsm"))
- (runfiles
- . ("texmf-dist/bibtex/bst/texsis/texsis.bst"
- "texmf-dist/tex/texsis/base/AIP.txs"
- "texmf-dist/tex/texsis/base/CVformat.txs"
- "texmf-dist/tex/texsis/base/Elsevier.txs"
- "texmf-dist/tex/texsis/base/Exam.txs"
- "texmf-dist/tex/texsis/base/Formletr.txs"
- "texmf-dist/tex/texsis/base/IEEE.txs"
- "texmf-dist/tex/texsis/base/PhysRev.txs"
- "texmf-dist/tex/texsis/base/Spanish.txs"
- "texmf-dist/tex/texsis/base/Swedish.txs"
- "texmf-dist/tex/texsis/base/TXSconts.tex"
- "texmf-dist/tex/texsis/base/TXSdcol.tex"
- "texmf-dist/tex/texsis/base/TXSenvmt.tex"
- "texmf-dist/tex/texsis/base/TXSeqns.tex"
- "texmf-dist/tex/texsis/base/TXSfigs.tex"
- "texmf-dist/tex/texsis/base/TXSfmts.tex"
- "texmf-dist/tex/texsis/base/TXSfonts.tex"
- "texmf-dist/tex/texsis/base/TXShead.tex"
- "texmf-dist/tex/texsis/base/TXSinit.tex"
- "texmf-dist/tex/texsis/base/TXSletr.tex"
- "texmf-dist/tex/texsis/base/TXSmacs.tex"
- "texmf-dist/tex/texsis/base/TXSmemo.tex"
- "texmf-dist/tex/texsis/base/TXSprns.tex"
- "texmf-dist/tex/texsis/base/TXSrefs.tex"
- "texmf-dist/tex/texsis/base/TXSruled.tex"
- "texmf-dist/tex/texsis/base/TXSsects.tex"
- "texmf-dist/tex/texsis/base/TXSsite.tex"
- "texmf-dist/tex/texsis/base/TXSsymb.tex"
- "texmf-dist/tex/texsis/base/TXStags.tex"
- "texmf-dist/tex/texsis/base/TXStitle.tex"
- "texmf-dist/tex/texsis/base/Tablebod.txs"
- "texmf-dist/tex/texsis/base/WorldSci.txs"
- "texmf-dist/tex/texsis/base/color.txs"
- "texmf-dist/tex/texsis/base/nuclproc.txs"
- "texmf-dist/tex/texsis/base/printfont.txs"
- "texmf-dist/tex/texsis/base/spine.txs"
- "texmf-dist/tex/texsis/base/texsis.tex"
- "texmf-dist/tex/texsis/base/thesis.txs"
- "texmf-dist/tex/texsis/base/twin.txs"
- "texmf-dist/tex/texsis/config/texsis.ini"))
- (catalogue-license . "lppl")))
- ("trsym"
- (name . "trsym")
- (shortdesc . "Symbols for transformations")
- (longdesc . "The bundle provides Metafont...")
- (docfiles "texmf-dist/doc/latex/trsym/README"
- "texmf-dist/doc/latex/trsym/manifest.txt"
- "texmf-dist/doc/latex/trsym/trsym.pdf")
- (srcfiles "texmf-dist/source/latex/trsym/trsym.dtx"
- "texmf-dist/source/latex/trsym/trsym.ins")
- (runfiles "texmf-dist/fonts/source/public/trsym/trsy.mf"
- "texmf-dist/fonts/source/public/trsym/trsy10.mf"
- "texmf-dist/fonts/source/public/trsym/trsy12.mf"
- "texmf-dist/fonts/tfm/public/trsym/trsy10.tfm"
- "texmf-dist/fonts/tfm/public/trsym/trsy12.tfm"
- "texmf-dist/tex/latex/trsym/trsym.sty"
- "texmf-dist/tex/latex/trsym/utrsy.fd")
- (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
- (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 "texsis"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('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))))
- ('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
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, with METAFONT files"
- ;; 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 "trsym"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name _)
- ('version _)
- ('source _)
- ('outputs _)
- ('build-system _)
- ('native-inputs
- ('list 'texlive-metafont))
- ('home-page (? string?))
- ('synopsis (? string?))
- ('description (? string?))
- ('license _))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, with catalogue entry, no inputs"
- ;; 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 "12many"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-12many")
- ('version _)
- ('source ('texlive-origin
- 'name 'version
- ('list "doc/latex/12many/"
- "source/latex/12many/"
- "tex/latex/12many/")
- ('base32 (? string? hash))))
- ('outputs ''("out" "doc"))
- ('build-system 'texlive-build-system)
- ('home-page "https://ctan.org/pkg/one2many")
- ('synopsis (? string?))
- ('description (? string?))
- ('license 'lppl))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, multiple licenses"
- ;; 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 "chs-physics-report"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-chs-physics-report")
- ('version _)
- ('source ('texlive-origin
- 'name 'version
- ('list "doc/latex/chs-physics-report/"
- "tex/latex/chs-physics-report/")
- ('base32 (? string? hash))))
- ('outputs ''("out" "doc"))
- ('build-system 'texlive-build-system)
- ('home-page (? string?))
- ('synopsis (? string?))
- ('description (? string?))
- ('license ('list 'public-domain 'cc-by-sa3.0)))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, meta-package"
- ;; 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 "collection-texworks"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-collection-texworks")
- ('version _)
- ('source #f)
- ('build-system 'trivial-build-system)
- ('arguments
- ('list '#:builder ('gexp ('mkdir ('ungexp 'output)))))
- ('propagated-inputs
- ('list 'texlive-collection-basic))
- ('home-page "https://www.tug.org/texlive/")
- ('synopsis (? string?))
- ('description (? string?))
- ('license
- ('fsf-free "https://www.tug.org/texlive/copying.html")))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, with TeX format"
- ;; 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 "lollipop"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-lollipop")
- ('version _)
- ('source ('texlive-origin
- 'name 'version
- ('list "doc/otherformats/lollipop/"
- "tex/lollipop/")
- ('base32 (? string? hash))))
- ('outputs ''("out" "doc"))
- ('build-system 'texlive-build-system)
- ('arguments ('list '#:create-formats ('gexp ('list "lollipop"))))
- ('home-page (? string?))
- ('synopsis (? string?))
- ('description (? string?))
- ('license 'gpl3))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, execute but no TeX format"
- ;; 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 "adforn"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-adforn")
- ('version _)
- ('source _)
- ('outputs ''("out" "doc"))
- ('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, translate dependencies"
- ;; 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 "collection-basic"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-collection-basic")
- ('version _)
- ('source _)
- ('build-system 'trivial-build-system)
- ('arguments
- ('list '#:builder ('gexp ('mkdir ('ungexp 'output)))))
- ('propagated-inputs
- ('list 'texlive-amsfonts 'texlive-hyphen-complete))
- ('home-page (? string?))
- ('synopsis (? string?))
- ('description (? string?))
- ('license _))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, lonely `hyphen-base' dependency and ARCH"
- ;; 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 "tex"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-tex")
- ('version _)
- ('source _)
- ('outputs _)
- ('build-system 'texlive-build-system)
- ('arguments ('list '#:texlive-latex-bin? #f))
- ('propagated-inputs
- ('list 'texlive-cm 'texlive-hyphen-base))
- ('home-page (? string?))
- ('synopsis (? string?))
- ('description (? string?))
- ('license _))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, single script, no extension"
- ;; 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 "authorindex"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-authorindex")
- ('version _)
- ('source _)
- ('outputs _)
- ('build-system 'texlive-build-system)
- ('arguments
- ('list '#:link-scripts ('gexp ('list "authorindex"))))
- ('home-page (? string?))
- ('synopsis (? string?))
- ('description (? string?))
- ('license _))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, multiple scripts, with extensions"
- ;; 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 "cyrillic-bin"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-cyrillic-bin")
- ('version _)
- ('source _)
- ('outputs _)
- ('build-system 'texlive-build-system)
- ('arguments
- ('list '#:link-scripts
- ('gexp ('list "rubibtex.sh" "rumakeindex.sh"))))
- ('home-page _)
- ('synopsis _)
- ('description _)
- ('license _))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-assert "texlive->guix-package, script with associated input"
- ;; 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 "pax"
- #:package-database
- (lambda _ %fake-tlpdb))))
- (match result
- (('package
- ('name "texlive-pax")
- ('version _)
- ('source _)
- ('outputs _)
- ('build-system 'texlive-build-system)
- ('arguments
- ('list '#:link-scripts ('gexp ('list "pdfannotextractor.pl"))))
- ('inputs
- ('list 'perl))
- ('home-page _)
- ('synopsis _)
- ('description _)
- ('license _))
- #true)
- (_
- (begin
- (format #t "~s~%" result)
- (pk 'fail result #f)))))))
- (test-end "texlive")
|