# htmlxref.cnf - reference file for free Texinfo manuals on the web. # Modified by Ludovic Courtès for the GNU Guix manual. htmlxrefversion=2018-07-05.20; # UTC # Copyright 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. # # The latest version of this file is available at # http://ftpmirror.gnu.org/texinfo/htmlxref.cnf. # Email corrections or additions to bug-texinfo@gnu.org. # The primary goal is to list all relevant GNU manuals; # other free manuals are also welcome. # # To be included in this list, a manual must: # # - have a generic url, e.g., no version numbers; # - have a unique file name (e.g., manual identifier), i.e., be related to the # package name. Things like "refman" or "tutorial" don't work. # - follow the naming convention for nodes described at # http://www.gnu.org/software/texinfo/manual/
aboutsummaryrefslogtreecommitdiff
path: root/tests/texlive.scm
blob: a6f08046a82fc8eb509dae768d5a342567b387ea (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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 xml
  "\
<entry id=\"foo\">
   <name>foo</name>
   <caption>Foomatic frobnication in LuaLaTeX</caption>
   <authorref id=\"rekado\"/>
   <license type=\"lppl1.3\"/>
   <version number=\"2.6a\"/>
   <description>
     <p>
          Foo is a package for LuaLaTeX. It provides an interface to frobnicate gimbals
          in a foomatic way with the LuaTeX engine.
     </p>
     <p>
          The package requires the bar and golly
          bundles for extremely special specialties.
     </p>
   </description>
   <ctan path=\"/macros/latex/contrib/foo\" file=\"true\"/>
   <texlive location=\"foo\"/>
   <keyval key=\"topic\" value=\"tests\"/>
  null
</entry>")

(define sxml
  '(*TOP* (entry (@ (id "foo"))
                 (name "foo")
                 (caption "Foomatic frobnication in LuaLaTeX")
                 (authorref (@ (id "rekado")))
                 (license (@ (type "lppl1.3")))
                 (version (@ (number "2.6a")))
                 (description
                  (p "\n          Foo is a package for LuaLaTeX. It provides an interface to frobnicate gimbals\n          in a foomatic way with the LuaTeX engine.\n     ")
                  (p "\n          The package requires the bar and golly\n          bundles for extremely special specialties.\n     "))
                 (ctan (@ (path "/macros/latex/contrib/foo") (file "true")))
                 (texlive (@ (location "foo")))
                 (keyval (@ (value "tests") (key "topic")))
                 "\n  null\n")))

(test-equal "fetch-sxml: returns SXML for valid XML"
  sxml
  (with-http-server `((200 ,xml))
    (parameterize ((current-http-proxy (%local-url)))
      (fetch-sxml "foo"))))

;; TODO:
(test-assert "sxml->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))
           (mkdir-p directory)
           (with-output-to-file (string-append directory "/foo")
             (lambda ()
               (display "source")))))
        (let ((result (sxml->package sxml)))
          (match result
            (('package
               ('name "texlive-latex-foo")
               ('version "2.6a")
               ('source ('origin
                          ('method 'svn-fetch)
                          ('uri ('texlive-ref "latex" "foo"))
                          ('sha256
                           ('base32
                            (? string? hash)))))
               ('build-system 'texlive-build-system)
               ('arguments ('quote (#:tex-directory "latex/foo")))
               ('home-page "http://www.ctan.org/pkg/foo")
               ('synopsis "Foomatic frobnication in LuaLaTeX")
               ('description
                "Foo is a package for LuaLaTeX.  It provides an interface to \
frobnicate gimbals in a foomatic way with the LuaTeX engine.  The package \
requires the bar and golly bundles for extremely special specialties.")
               ('license 'lppl1.3+))
             #t)
            (_
             (begin
               (format #t "~s\n" result)
               (pk 'fail result #f)))))))

(test-end "texlive")
anual/guile.html guile node ${GS}/guile/manual/html_node/ guile-avahi mono http://nongnu.org/guile-avahi/doc/guile-avahi.html GUILE_GNOME = ${GS}/guile-gnome/docs gobject node ${GUILE_GNOME}/gobject/html/ glib node ${GUILE_GNOME}/glib/html/ atk node ${GUILE_GNOME}/atk/html/ pango node ${GUILE_GNOME}/pango/html/ pangocairo node ${GUILE_GNOME}/pangocairo/html/ gdk node ${GUILE_GNOME}/gdk/html/ gtk node ${GUILE_GNOME}/gtk/html/ libglade node ${GUILE_GNOME}/libglade/html/ gnome-vfs node ${GUILE_GNOME}/gnome-vfs/html/ libgnomecanvas node ${GUILE_GNOME}/libgnomecanvas/html/ gconf node ${GUILE_GNOME}/gconf/html/ libgnome node ${GUILE_GNOME}/libgnome/html/ libgnomeui node ${GUILE_GNOME}/libgnomeui/html/ corba node ${GUILE_GNOME}/corba/html/ clutter node ${GUILE_GNOME}/clutter/html/ clutter-glx node ${GUILE_GNOME}/clutter-glx/html/ guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/ guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html guile-rpc node ${GS}/guile-rpc/manual/html_node/ guix mono ${GS}/guix/manual/guix.html guix node ${GS}/guix/manual/html_node/ guix.fr mono ${GS}/guix/manual/fr/guix.html guix.fr node ${GS}/guix/manual/fr/html_node/ gv mono ${GS}/gv/manual/gv.html gv node ${GS}/gv/manual/html_node/ gzip mono ${GS}/gzip/manual/gzip.html gzip node ${GS}/gzip/manual/html_node/ hello mono ${GS}/hello/manual/hello.html hello node ${GS}/hello/manual/html_node/ help2man mono ${GS}/help2man/help2man.html idutils mono ${GS}/idutils/manual/idutils.html idutils node ${GS}/idutils/manual/html_node/ inetutils mono ${GS}/inetutils/manual/inetutils.html inetutils node ${GS}/inetutils/manual/html_node/ jwhois mono ${GS}/jwhois/manual/jwhois.html jwhois node ${GS}/jwhois/manual/html_node/ libc mono ${GS}/libc/manual/html_mono/libc.html libc node ${GS}/libc/manual/html_node/ LIBCDIO = ${GS}/libcdio libcdio mono ${LIBCDIO}/libcdio.html cd-text mono ${LIBCDIO}/cd-text-format.html libextractor mono ${GS}/libextractor/manual/libextractor.html libextractor node ${GS}/libextractor/manual/html_node/ libidn mono ${GS}/libidn/manual/libidn.html libidn node ${GS}/libidn/manual/html_node/ librejs mono ${GS}/librejs/manual/librejs.html librejs node ${GS}/librejs/manual/html_node/ libmatheval mono ${GS}/libmatheval/manual/libmatheval.html LIBMICROHTTPD = ${GS}/libmicrohttpd libmicrohttpd mono ${LIBMICROHTTPD}/manual/libmicrohttpd.html libmicrohttpd node ${LIBMICROHTTPD}/manual/html_node/ microhttpd-tutorial mono ${LIBMICROHTTPD}/tutorial.html libtasn1 mono ${GS}/libtasn1/manual/libtasn1.html libtasn1 node ${GS}/libtasn1/manual/html_node/ libtool mono ${GS}/libtool/manual/libtool.html libtool node ${GS}/libtool/manual/html_node/ lightning mono ${GS}/lightning/manual/lightning.html lightning node ${GS}/lightning/manual/html_node/ # The stable/ url redirects immediately, but that's ok. # The .html extension is omitted on their web site, but it works if given. LILYPOND = http://lilypond.org/doc/stable/Documentation lilypond-internals node ${LILYPOND}/internals/ lilypond-learning node ${LILYPOND}/learning/ lilypond-notation node ${LILYPOND}/notation/ lilypond-snippets node ${LILYPOND}/snippets/ lilypond-usage node ${LILYPOND}/usage/ lilypond-web node ${LILYPOND}/web/ music-glossary node ${LILYPOND}/music-glossary/ liquidwar6 mono ${GS}/liquidwar6/manual/liquidwar6.html liquidwar6 node ${GS}/liquidwar6/manual/html_node/ lispintro mono ${GS}/emacs/emacs-lisp-intro/html_mono/emacs-lisp-intro.html lispintro node ${GS}/emacs/emacs-lisp-intro/html_node/index.html LSH = http://www.lysator.liu.se/~nisse/lsh lsh mono ${LSH}/lsh.html m4 mono ${GS}/m4/manual/m4.html m4 node ${GS}/m4/manual/html_node/ mailutils mono ${GS}/mailutils/manual/mailutils.html mailutils chapter ${GS}/mailutils/manual/html_chapter/ mailutils section ${GS}/mailutils/manual/html_section/ mailutils node ${GS}/mailutils/manual/html_node/ make mono ${GS}/make/manual/make.html make node ${GS}/make/manual/html_node/ mcron mono ${GS}/mcron/manual/mcron.html mcron node ${GS}/mcron/manual/html_node/ mdk mono ${GS}/mdk/manual/mdk.html mdk node ${GS}/mdk/manual/html_node/ METAEXCHANGE = http://ftp.gwdg.de/pub/gnu2/iwfmdh/doc/texinfo iwf_mh node ${METAEXCHANGE}/iwf_mh.html scantest node ${METAEXCHANGE}/scantest.html MIT_SCHEME = ${GS}/mit-scheme/documentation mit-scheme-ref node ${MIT_SCHEME}/mit-scheme-ref/ mit-scheme-user node ${MIT_SCHEME}/mit-scheme-user/ sos node ${MIT_SCHEME}/mit-scheme-sos/ mit-scheme-imail node ${MIT_SCHEME}/mit-scheme-imail/ moe mono ${GS}/moe/manual/moe_manual.html motti node ${GS}/motti/manual/ mpc node http://www.multiprecision.org/index.php?prog=mpc&page=html mpfr mono http://www.mpfr.org/mpfr-current/mpfr.html mtools mono ${GS}/mtools/manual/mtools.html myserver node http://www.myserverproject.net/documentation/ nano mono http://www.nano-editor.org/dist/latest/nano.html nettle chapter http://www.lysator.liu.se/~nisse/nettle/nettle.html ocrad mono ${GS}/ocrad/manual/ocrad_manual.html parted mono ${GS}/parted/manual/parted.html parted node ${GS}/parted/manual/html_node/ pascal mono http://www.gnu-pascal.de/gpc/ # can't use pcb since url's contain dates --30nov10 perl mono ${GS}/perl/manual/perldoc-all.html PIES = http://www.gnu.org.ua/software/pies/manual pies mono ${PIES}/pies.html pies chapter ${PIES}/html_chapter/ pies section ${PIES}/html_section/ pies node ${PIES}/html_node/ plotutils mono ${GS}/plotutils/manual/en/plotutils.html plotutils node ${GS}/plotutils/manual/en/html_node/ proxyknife mono ${GS}/proxyknife/manual/proxyknife.html proxyknife node ${GS}/proxyknife/manual/html_node/ pspp mono ${GS}/pspp/manual/pspp.html pspp node ${GS}/pspp/manual/html_node/ pyconfigure mono ${GS}/pyconfigure/manual/pyconfigure.html pyconfigure node ${GS}/pyconfigure/manual/html_node/ R = http://cran.r-project.org/doc/manuals R-intro mono ${R}/R-intro.html R-lang mono ${R}/R-lang.html R-exts mono ${R}/R-exts.html R-data mono ${R}/R-data.html R-admin mono ${R}/R-admin.html R-ints mono ${R}/R-ints.html rcs mono ${GS}/rcs/manual/rcs.html rcs node ${GS}/rcs/manual/html_node/ READLINE = http://cnswww.cns.cwru.edu/php/chet/readline readline mono ${READLINE}/readline.html rluserman mono ${READLINE}/rluserman.html history mono ${READLINE}/history.html recode mono http://recode.progiciels-bpi.ca/manual/index.html recutils mono ${GS}/recutils/manual/recutils.html recutils node ${GS}/recutils/manual/html_node/ reftex mono ${GS}/auctex/manual/reftex.html reftex node ${GS}/auctex/manual/reftex/ remotecontrol mono ${GS}/remotecontrol/manual/remotecontrol.html remotecontrol node ${GS}/remotecontrol/manual/html_node/ rottlog mono ${GS}/rottlog/manual/rottlog.html rottlog node ${GS}/rottlog/manual/html_node/ RUSH = http://www.gnu.org.ua/software/rush/manual rush mono ${RUSH}/rush.html rush chapter ${RUSH}/html_chapter/ rush section ${RUSH}/html_section/ rush node ${RUSH}/html_node/ screen mono ${GS}/screen/manual/screen.html screen node ${GS}/screen/manual/html_node/ sed mono ${GS}/sed/manual/sed.html sed node ${GS}/sed/manual/html_node/ sharutils mono ${GS}/sharutils/manual/html_mono/sharutils.html sharutils chapter ${GS}/sharutils/manual/html_chapter/ sharutils node ${GS}/sharutils/manual/html_node/ shepherd mono ${GS}/shepherd/manual/shepherd.html shepherd node ${GS}/shepherd/manual/html_node/ # can't use mono files since they have generic names SMALLTALK = ${GS}/smalltalk smalltalk node ${SMALLTALK}/manual/html_node/ smalltalk-base node ${SMALLTALK}/manual-base/html_node/ smalltalk-libs node ${SMALLTALK}/manual-libs/html_node/ sourceinstall mono ${GS}/sourceinstall/manual/sourceinstall.html sourceinstall node ${GS}/sourceinstall/manual/html_node/ sqltutor mono ${GS}/sqltutor/manual/sqltutor.html sqltutor node ${GS}/sqltutor/manual/html_node/ src-highlite mono ${GS}/src-highlite/source-highlight.html swbis mono ${GS}/swbis/manual.html tar mono ${GS}/tar/manual/tar.html tar chapter ${GS}/tar/manual/html_chapter/ tar section ${GS}/tar/manual/html_section/ tar node ${GS}/autoconf/manual/html_node/ teseq mono ${GS}/teseq/teseq.html teseq node ${GS}/teseq/html_node/ TEXINFO = ${GS}/texinfo/manual texinfo mono ${TEXINFO}/texinfo/texinfo.html texinfo node ${TEXINFO}/texinfo/html_node/ # info mono ${TEXINFO}/info/info.html info node ${TEXINFO}/info/html_node/ # info-stnd mono ${TEXINFO}/info-stnd/info-stnd.html info-stnd node ${TEXINFO}/info-stnd/html_node/ thales node ${GS}/thales/manual/ units mono ${GS}/units/manual/units.html units node ${GS}/units/manual/html_node/ vc-dwim mono ${GS}/vc-dwim/manual/vc-dwim.html vc-dwim node ${GS}/vc-dwim/manual/html_node/ wdiff mono ${GS}/wdiff/manual/wdiff.html wdiff node ${GS}/wdiff/manual/html_node/ websocket4j mono ${GS}/websocket4j/manual/websocket4j.html websocket4j node ${GS}/websocket4j/manual/html_node/ wget mono ${GS}/wget/manual/wget.html wget node ${GS}/wget/manual/html_node/ xboard mono ${GS}/xboard/manual/xboard.html xboard node ${GS}/xboard/manual/html_node/ # emacs-page # Free TeX-related Texinfo manuals on tug.org. T = http://tug.org/texinfohtml dvipng mono ${T}/dvipng.html dvips mono ${T}/dvips.html eplain mono ${T}/eplain.html kpathsea mono ${T}/kpathsea.html latex2e mono ${T}/latex2e.html tlbuild mono ${T}/tlbuild.html web2c mono ${T}/web2c.html # Local Variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "htmlxrefversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: