epiphany w/ gtk4 and webkitgtk 2.38
[jackhill/guix/guix.git] / tests / texlive.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2017, 2022 Ricardo Wurmus <rekado@elephly.net>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (test-texlive)
20 #:use-module (gnu packages tex)
21 #:use-module (guix import texlive)
22 #:use-module (guix tests)
23 #:use-module (guix tests http)
24 #:use-module (guix build utils)
25 #:use-module (srfi srfi-1)
26 #:use-module (srfi srfi-64)
27 #:use-module (srfi srfi-26)
28 #:use-module (web client)
29 #:use-module (ice-9 match))
30
31 (test-begin "texlive")
32
33 (define %fake-tlpdb
34 '(("stricttex"
35 . ((name
36 . "stricttex")
37 (shortdesc
38 . "Strictly balanced brackets and numbers in command names")
39 (longdesc
40 . "This is a small, LuaLaTeX-only package providing you with three,
41 sometimes useful features: It allows you to make brackets [...] \"strict\",
42 meaning that each [ must be balanced by a ]. It allows you to use numbers in
43 command names, so that you can do stuff like \\newcommand\\pi12{\\pi_{12}}. It
44 allows you to use numbers and primes in command names, so that you can do
45 stuff like \\newcommand\\pi'12{\\pi '_{12}}.")
46 (docfiles
47 . ("texmf-dist/doc/lualatex/stricttex/README.md"
48 "texmf-dist/doc/lualatex/stricttex/stricttex.pdf"))
49 (runfiles
50 . ("texmf-dist/tex/lualatex/stricttex/stricttex.lua"
51 "texmf-dist/tex/lualatex/stricttex/stricttex.sty"))
52 (catalogue-license . "lppl1.3c")))
53 ("texsis"
54 . ((name
55 . "texsis")
56 (shortdesc
57 . "Plain TeX macros for Physicists")
58 (longdesc
59 . "TeXsis is a TeX macro package which provides useful features for
60 typesetting research papers and related documents. For example, it includes
61 support specifically for: Automatic numbering of equations, figures, tables
62 and references; Simplified control of type sizes, line spacing, footnotes,
63 running headlines and footlines, and tables of contents, figures and tables;
64 Specialized document formats for research papers, preprints and \"e-prints\",
65 conference proceedings, theses, books, referee reports, letters, and
66 memoranda; Simplified means of constructing an index for a book or thesis;
67 Easy to use double column formatting; Specialized environments for lists,
68 theorems and proofs, centered or non-justified text, and listing computer
69 code; Specialized macros for easily constructing ruled tables. TeXsis was
70 originally developed for physicists, but others may also find it useful. It is
71 completely compatible with Plain TeX.")
72 (depend . ("cm" "hyphen-base" "knuth-lib" "plain" "tex"))
73 (docfiles
74 . ("texmf-dist/doc/man/man1/texsis.1"
75 "texmf-dist/doc/man/man1/texsis.man1.pdf"
76 "texmf-dist/doc/otherformats/texsis/base/COPYING"
77 "texmf-dist/doc/otherformats/texsis/base/Example.tex"
78 "texmf-dist/doc/otherformats/texsis/base/Fonts.tex"
79 "texmf-dist/doc/otherformats/texsis/base/INSTALL"
80 "texmf-dist/doc/otherformats/texsis/base/Install.tex"
81 "texmf-dist/doc/otherformats/texsis/base/MANIFEST"
82 "texmf-dist/doc/otherformats/texsis/base/Manual.fgl"
83 "texmf-dist/doc/otherformats/texsis/base/Manual.ref"
84 "texmf-dist/doc/otherformats/texsis/base/Manual.tbl"
85 "texmf-dist/doc/otherformats/texsis/base/Manual.tex"
86 "texmf-dist/doc/otherformats/texsis/base/NEWS"
87 "texmf-dist/doc/otherformats/texsis/base/README"
88 "texmf-dist/doc/otherformats/texsis/base/TXSapxF.doc"
89 "texmf-dist/doc/otherformats/texsis/base/TXScover.doc"
90 "texmf-dist/doc/otherformats/texsis/base/TXSdcol.doc"
91 "texmf-dist/doc/otherformats/texsis/base/TXSdoc.doc"
92 "texmf-dist/doc/otherformats/texsis/base/TXSdoc0.doc"
93 "texmf-dist/doc/otherformats/texsis/base/TXSdocM.doc"
94 "texmf-dist/doc/otherformats/texsis/base/TXSend.doc"
95 "texmf-dist/doc/otherformats/texsis/base/TXSenvmt.doc"
96 "texmf-dist/doc/otherformats/texsis/base/TXSeqns.doc"
97 "texmf-dist/doc/otherformats/texsis/base/TXSfigs.doc"
98 "texmf-dist/doc/otherformats/texsis/base/TXSfmts.doc"
99 "texmf-dist/doc/otherformats/texsis/base/TXSfonts.doc"
100 "texmf-dist/doc/otherformats/texsis/base/TXSinstl.doc"
101 "texmf-dist/doc/otherformats/texsis/base/TXSintro.doc"
102 "texmf-dist/doc/otherformats/texsis/base/TXSletr.doc"
103 "texmf-dist/doc/otherformats/texsis/base/TXSmisc.doc"
104 "texmf-dist/doc/otherformats/texsis/base/TXSprns.doc"
105 "texmf-dist/doc/otherformats/texsis/base/TXSrefs.doc"
106 "texmf-dist/doc/otherformats/texsis/base/TXSrevs.doc"
107 "texmf-dist/doc/otherformats/texsis/base/TXSruled.doc"
108 "texmf-dist/doc/otherformats/texsis/base/TXSsects.doc"
109 "texmf-dist/doc/otherformats/texsis/base/TXSsite.000"
110 "texmf-dist/doc/otherformats/texsis/base/TXSsymb.doc"
111 "texmf-dist/doc/otherformats/texsis/base/TXStags.doc"
112 "texmf-dist/doc/otherformats/texsis/base/index.tex"
113 "texmf-dist/doc/otherformats/texsis/base/letr"
114 "texmf-dist/doc/otherformats/texsis/base/penguin.eps"
115 "texmf-dist/doc/otherformats/texsis/base/penguin2.eps"
116 "texmf-dist/doc/otherformats/texsis/base/texsis.el"
117 "texmf-dist/doc/otherformats/texsis/base/texsis.lsm"))
118 (runfiles
119 . ("texmf-dist/bibtex/bst/texsis/texsis.bst"
120 "texmf-dist/tex/texsis/base/AIP.txs"
121 "texmf-dist/tex/texsis/base/CVformat.txs"
122 "texmf-dist/tex/texsis/base/Elsevier.txs"
123 "texmf-dist/tex/texsis/base/Exam.txs"
124 "texmf-dist/tex/texsis/base/Formletr.txs"
125 "texmf-dist/tex/texsis/base/IEEE.txs"
126 "texmf-dist/tex/texsis/base/PhysRev.txs"
127 "texmf-dist/tex/texsis/base/Spanish.txs"
128 "texmf-dist/tex/texsis/base/Swedish.txs"
129 "texmf-dist/tex/texsis/base/TXSconts.tex"
130 "texmf-dist/tex/texsis/base/TXSdcol.tex"
131 "texmf-dist/tex/texsis/base/TXSenvmt.tex"
132 "texmf-dist/tex/texsis/base/TXSeqns.tex"
133 "texmf-dist/tex/texsis/base/TXSfigs.tex"
134 "texmf-dist/tex/texsis/base/TXSfmts.tex"
135 "texmf-dist/tex/texsis/base/TXSfonts.tex"
136 "texmf-dist/tex/texsis/base/TXShead.tex"
137 "texmf-dist/tex/texsis/base/TXSinit.tex"
138 "texmf-dist/tex/texsis/base/TXSletr.tex"
139 "texmf-dist/tex/texsis/base/TXSmacs.tex"
140 "texmf-dist/tex/texsis/base/TXSmemo.tex"
141 "texmf-dist/tex/texsis/base/TXSprns.tex"
142 "texmf-dist/tex/texsis/base/TXSrefs.tex"
143 "texmf-dist/tex/texsis/base/TXSruled.tex"
144 "texmf-dist/tex/texsis/base/TXSsects.tex"
145 "texmf-dist/tex/texsis/base/TXSsite.tex"
146 "texmf-dist/tex/texsis/base/TXSsymb.tex"
147 "texmf-dist/tex/texsis/base/TXStags.tex"
148 "texmf-dist/tex/texsis/base/TXStitle.tex"
149 "texmf-dist/tex/texsis/base/Tablebod.txs"
150 "texmf-dist/tex/texsis/base/WorldSci.txs"
151 "texmf-dist/tex/texsis/base/color.txs"
152 "texmf-dist/tex/texsis/base/nuclproc.txs"
153 "texmf-dist/tex/texsis/base/printfont.txs"
154 "texmf-dist/tex/texsis/base/spine.txs"
155 "texmf-dist/tex/texsis/base/texsis.tex"
156 "texmf-dist/tex/texsis/base/thesis.txs"
157 "texmf-dist/tex/texsis/base/twin.txs"
158 "texmf-dist/tex/texsis/config/texsis.ini"))
159 (catalogue-license . "lppl")))))
160
161 (test-assert "texlive->guix-package"
162 ;; Replace network resources with sample data.
163 (mock ((guix build svn) svn-fetch
164 (lambda* (url revision directory
165 #:key (svn-command "svn")
166 (user-name #f)
167 (password #f)
168 (recursive? #t))
169 (mkdir-p directory)
170 (with-output-to-file (string-append directory "/foo")
171 (lambda ()
172 (display "source")))))
173 (let ((result (texlive->guix-package "texsis"
174 #:package-database
175 (lambda _ %fake-tlpdb))))
176 (match result
177 (('package
178 ('inherit ('simple-texlive-package
179 "texlive-texsis"
180 ('list "bibtex/bst/texsis/"
181 "doc/man/man1/"
182 "doc/otherformats/texsis/base/"
183 "tex/texsis/base/"
184 "tex/texsis/config/")
185 ('base32 (? string? hash))
186 #:trivial? #t))
187 ('version . any)
188 ('propagated-inputs
189 ('list 'texlive-cm
190 'texlive-hyphen-base
191 'texlive-knuth-lib
192 'texlive-plain
193 'texlive-tex))
194 ('home-page "https://www.tug.org/texlive/")
195 ('synopsis "Plain TeX macros for Physicists")
196 ('description (? string? description))
197 ('license 'lppl))
198 #true)
199 (_
200 (begin
201 (format #t "~s~%" result)
202 (pk 'fail result #f)))))))
203
204 (test-end "texlive")