gnu: Remove python2-pyaudio.
[jackhill/guix/guix.git] / gnu / packages / documentation.scm
index c4a8c02..9f87e67 100644 (file)
@@ -5,9 +5,13 @@
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.counoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
+  #:use-module (guix deprecation)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages qt)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
+
+(define-public latex2html
+  (package
+    (name "latex2html")
+    (version "2020.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/latex2html/latex2html")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "configure"
+               (("/usr/local")
+                (assoc-ref outputs "out"))
+               (("\\$\\{CONFIG_SHELL-/bin/sh\\}")
+                (which "bash")))
+             #t))
+         (replace 'configure
+           (lambda _
+             (invoke "./configure")
+             #t))
+         (add-after 'configure 'patch-cfgcache
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "cfgcache.pm"
+               (("/usr/local")
+                (assoc-ref outputs "out")))
+             #t)))))
+    (inputs
+     (list perl))
+    (synopsis "LaTeX documents to HTML")
+    (description "LaTeX2HTML is a utility that converts LaTeX documents to web
+pages in HTML.")
+    (home-page "https://www.latex2html.org/")
+    (license gpl2+)))
 
 (define-public asciidoc
   (package
     (name "asciidoc")
-    (version "8.6.10")
+    (version "9.1.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/asciidoc/asciidoc/"
-                                  "archive/" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/asciidoc/asciidoc-py")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "10xrl1iwyvs8aqm0vzkvs3dnsn93wyk942kk4ppyl6w9imbzhlly"))))
+                "1clf1axkns23wfmh48xfspzsnw04pjh4mq1pshpzvj0cwxhz0yaq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                     ; no 'check' target
@@ -103,13 +166,10 @@ release/xsl/current")
                                          "/xml/dtd/docbook/docbookx.dtd")))
                        #t)))))
     (native-inputs
-     `(("autoconf" ,autoconf)))
-    (inputs `(("python" ,python-2)
-              ("docbook-xml" ,docbook-xml)
-              ("docbook-xsl" ,docbook-xsl)
-              ("libxml2" ,libxml2)
-              ("libxslt" ,libxslt)))
-    (home-page "http://asciidoc.org/")
+     (list autoconf))
+    (inputs
+     (list python docbook-xml docbook-xsl libxml2 libxslt))
+    (home-page "https://asciidoc.org/")
     (synopsis "Text-based document generation system")
     (description
      "AsciiDoc is a text document format for writing notes, documentation,
@@ -122,11 +182,13 @@ the backend output markups (which can be almost any type of SGML/XML
 markup) can be customized and extended by the user.")
     (license gpl2+)))
 
+(define-deprecated asciidoc-py3 asciidoc)
+
 (define-public doxygen
   (package
     (name "doxygen")
-    (version "1.8.17")
-    (home-page "http://www.doxygen.nl/")
+    (version "1.9.1")
+    (home-page "https://www.doxygen.nl/")
     (source (origin
              (method url-fetch)
              (uri (list (string-append home-page "files/doxygen-"
@@ -136,15 +198,11 @@ markup) can be customized and extended by the user.")
                                        ".src.tar.gz")))
              (sha256
               (base32
-               "16dmv0gm1x8rvbm82fmjvi213q8fxqxinm75pcf595flya59ific"))
-             (patches (search-patches "doxygen-test.patch"
-                                      "doxygen-1.8.17-runtests.patch"))))
+               "1lcif1qi20gf04qyjrx7x367669g17vz2ilgi4cmamp1whdsxbk7"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("libxml2" ,libxml2)             ;provides xmllint for the tests
-       ("python" ,python)))             ;for creating the documentation
+     (list bison flex libxml2 ;provides xmllint for the tests
+           python))             ;for creating the documentation
     (inputs
      `(("bash" ,bash-minimal)))
     (arguments
@@ -158,6 +216,12 @@ markup) can be customized and extended by the user.")
              '())
        #:test-target "tests"
        #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-bibtex-test
+                    (lambda _
+                      ;; Disable test that requires bibtex to avoid a
+                      ;; circular dependency.
+                      (for-each delete-file-recursively
+                                '("testing/012" "testing/012_cite.dox"))))
                   (add-before 'configure 'patch-sh
                               (lambda* (#:key inputs #:allow-other-keys)
                                 (substitute* "src/portable.cpp"
@@ -188,17 +252,67 @@ and to some extent D.")
                                        "doc++-segfault-fix.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("gettext" ,gettext-minimal)))
+     (list flex gettext-minimal))
     (home-page "http://docpp.sourceforge.net/")
     (synopsis "Documentation system for C, C++, IDL, and Java")
     (description
      "DOC++ is a documentation system for C, C++, IDL, and Java.  It can
 generate both TeX output for high-quality hardcopies or HTML output for online
-brwosing.  The documentation is extracted directly from the C/C++/IDL source
+browsing.  The documentation is extracted directly from the C/C++/IDL source
 or Java class files.")
     (license gpl2+)))
 
+(define-public python-docrepr
+  (package
+    (name "python-docrepr")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/spyder-ide/docrepr")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ma5gwy93m1djd3zdlnqfrwhgr8ic1qbsz5kkrb9f987ax40lfkd"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-sources
+            (lambda _
+              ;; XXX: This fixes an issue where shutil.copytree would fail
+              ;; merging directories with same files copied by Sphinx from the
+              ;; store (hence read-only, throwing a Permission denied error).
+              ;; In the case this happens, it falls back to a manual copy
+              ;; routine that omits overwriting same-named files (see:
+              ;; https://github.com/spyder-ide/docrepr/issues/54).
+              (substitute* "docrepr/utils.py"
+                (("except TypeError")
+                 "except (TypeError, shutil.Error)"))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-p" "no:warnings" "-vv")))))))
+    (native-inputs
+     (list python-ipython
+           python-matplotlib
+           python-numpy
+           python-pytest
+           python-pytest-asyncio))
+    (propagated-inputs
+     (list python-docutils
+           python-jinja2
+           python-matplotlib
+           python-sphinx))
+    (home-page "https://github.com/spyder-ide/docrepr/")
+    (synopsis "Python docstrings to HTML renderer")
+    (description "Docrepr renders Python docstrings to HTML with Sphinx.  It
+can generate rich and plain representations of docstrings, alongside
+additional metadata about the object to which the docstring belongs.")
+    (license bsd-3)))
+
 (define-public scrollkeeper
   (package
     (name "scrollkeeper")
@@ -217,13 +331,11 @@ or Java class files.")
                             (assoc-ref %build-inputs "docbook-xml")
                             "/xml/dtd/docbook/catalog.xml"))))
     (inputs
-     `(("perl" ,perl)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ;; The configure script checks for either version 4.2 or 4.1.2.
-       ("docbook-xml" ,docbook-xml-4.2)))
+     (list perl libxml2 libxslt
+           ;; The configure script checks for either version 4.2 or 4.1.2.
+           docbook-xml-4.2))
     (native-inputs
-     `(("intltool" ,intltool)))
+     (list intltool))
     (home-page "http://scrollkeeper.sourceforge.net/")
     (synopsis "Open Documentation Cataloging Project")
     (description "ScrollKeeper is a cataloging system for documentation on open
@@ -233,3 +345,51 @@ sort, and search the document catalog.  It will also be able to communicate
 with catalog servers on the Net to search for documents which are not on the
 local system.")
     (license lgpl2.1+)))
+
+(define-public zeal
+  (let ((commit "d3c5521c501d24050f578348ff1b9d68244b992c")
+        (revision "1"))
+    (package
+      (name "zeal")
+      (version (git-version "0.6.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/zealdocs/zeal")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ky2qi2cmjckc51lm3i28815ixgqdm36j7smixxr16jxpmbqs6sl"))))
+      (build-system qt-build-system)
+      (arguments
+       `(#:tests? #f                    ;no tests
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'wrap 'wrap-qt-process-path
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin/zeal"))
+                      (qt-process-path (string-append
+                                        (assoc-ref inputs "qtwebengine")
+                                        "/lib/qt5/libexec/QtWebEngineProcess")))
+                 (wrap-program bin
+                   `("QTWEBENGINEPROCESS_PATH" = (,qt-process-path)))
+                 #t))))))
+      (native-inputs
+       (list extra-cmake-modules pkg-config))
+      (inputs
+       `(("libarchive" ,libarchive)
+         ("sqlite" ,sqlite)
+         ("qtbase" ,qtbase-5)
+         ("qtdeclarative" ,qtdeclarative)
+         ("qtwebchannel" ,qtwebchannel)
+         ("qtwebengine" ,qtwebengine)
+         ("qtquickcontrols" ,qtquickcontrols)
+         ("qtx11extras" ,qtx11extras)
+         ("xcb-util-keyms" ,xcb-util-keysyms)))
+      (home-page "https://zealdocs.org/")
+      (synopsis "Offline documentation browser inspired by Dash")
+      (description "Zeal is a simple offline documentation browser
+inspired by Dash.")
+      (license gpl3+))))