~ruther/guix-local

4a82b3f92e0f301d0677bacf4918720093a64165 — Bruno Victal 2 years ago 1ddb4dd
gnu: dblatex: Fix missing texlive binaries and fig2dev.

The binaries for dblatex aren't provided by texlive-updmap.cfg but by
texlive-bin.

* gnu/packages/patches/dblatex-inkscape-1.0.patch: New file.
* gnu/local.mk: Register it.
* gnu/packages/docbook.scm (dblatex)[source]: Use dblatex-inkscape-1.0.patch.
[arguments]<#:tests?>: Enable tests.
<#:phases>: Rename 'set-path to 'wrap-dblatex. Wrap with texlive-bin rather
than texlive-updmap.cfg in PATH and wrap GUIX_TEXMF in 'wrap-dblatex. Add
'check-wrap phase.
[native-inputs]: Add docbook-mathml-1.0.
[inputs]: Restyle. Add texlive-bin. Replace inkscape/stable with inkscape.
Within texlive-updmap.cfg add previously missing: texlive-amsmath,
texlive-auxhook, texlive-bigintcalc, texlive-bin, texlive-bitset,
texlive-bookmark, texlive-colortbl, texlive-courier, texlive-eepic,
texlive-epstopdf-pkg, texlive-eso-pic, texlive-etexcmds, texlive-fancyhdr,
texlive-gettitlestring, texlive-graphics, texlive-graphics-cfg,
texlive-helvetic, texlive-hycolor, texlive-hyperref, texlive-infwarerr,
texlive-intcalc, texlive-kpathsea, texlive-kvdefinekeys, texlive-kvoptions,
texlive-kvsetkeys, texlive-l3backend, texlive-latex, texlive-latex-bin,
texlive-letltxmacro, texlive-ltxcmds, texlive-pdfescape, texlive-pdflscape,
texlive-pdftexcmds, texlive-psnfss, texlive-rerunfilecheck, texlive-symbol,
texlive-times, texlive-tools, texlive-uniquecounter, texlive-url and
texlive-zapfding. Add fig2dev.
(dblatex/stable)[inputs]: Replace inkscape with inkscape/stable.

Co-authored-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I4fb2e1f894b98a4e33a0438a1dda569eeb9eae81
3 files changed, 126 insertions(+), 33 deletions(-)

M gnu/local.mk
M gnu/packages/docbook.scm
A gnu/packages/patches/dblatex-inkscape-1.0.patch
M gnu/local.mk => gnu/local.mk +2 -1
@@ 1112,7 1112,8 @@ dist_patch_DATA =						\
  %D%/packages/patches/date-output-pkg-config-files.patch	\
  %D%/packages/patches/datefudge-gettimeofday.patch		\
  %D%/packages/patches/dbacl-include-locale.h.patch		\
  %D%/packages/patches/dbacl-icheck-multiple-definitions.patch		\
  %D%/packages/patches/dbacl-icheck-multiple-definitions.patch	\
  %D%/packages/patches/dblatex-inkscape-1.0.patch		\
  %D%/packages/patches/dbus-helper-search-path.patch		\
  %D%/packages/patches/dbus-c++-gcc-compat.patch		\
  %D%/packages/patches/dbus-c++-threading-mutex.patch		\

M gnu/packages/docbook.scm => gnu/packages/docbook.scm +85 -32
@@ 51,7 51,8 @@
  #:use-module (guix git-download)
  #:use-module (guix build-system copy)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system python))
  #:use-module (guix build-system python)
  #:use-module (srfi srfi-26))

;; The fetch-plan, install-plan and phases for docbook-xml tend to vary
;; between releases therefore we use a “template” package for the


@@ 750,7 751,9 @@ the in DocBook SGML DTDs.")
                                  version ".tar.bz2"))
              (sha256
               (base32
                "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n"))))
                "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n"))
              (patches
               (search-patches "dblatex-inkscape-1.0.patch"))))
    (outputs '("out" "doc"))
    (build-system python-build-system)
    (arguments


@@ 773,40 776,89 @@ the in DocBook SGML DTDs.")
                    (new (string-append #$output:doc "/share/doc")))
                (mkdir-p (dirname new))
                (rename-file old new))))
          (add-after 'wrap 'set-path
          (add-after 'wrap 'wrap-dblatex
            (lambda* (#:key inputs #:allow-other-keys)
              (let ((path (map (lambda (x)
                                 (string-append (assoc-ref inputs x)
                                                "/bin"))
                               (list "libxslt"
                                     "imagemagick" "inkscape"
                                     "texlive-updmap.cfg"))))
              (let ((path
                     (search-path-as-list
                      '("bin")
                      '#$(map (cut this-package-input <>)
                              (list "libxslt" "imagemagick" "inkscape"
                                    "fig2dev" "texlive-bin")))))
                ;; dblatex executes helper programs at runtime.
                (wrap-program (string-append #$output "/bin/dblatex")
                  `("PATH" ":" prefix ,path))))))))
                  `("PATH" ":" prefix ,path)
                  `("GUIX_TEXMF" prefix (,(getenv "GUIX_TEXMF")))))))
          (add-after 'check 'check-wrap
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (unsetenv "GUIX_TEXMF")
                (invoke/quiet (string-append #$output "/bin/dblatex")
                              "--quiet" "tests/mathml/mmltest2.xml")))))))
    (native-inputs (list docbook-mathml-1.0))
    (inputs
     (list (texlive-updmap.cfg (list texlive-anysize
                                             texlive-appendix
                                             texlive-changebar
                                             texlive-fancybox
                                             texlive-fancyvrb
                                             texlive-float
                                             texlive-footmisc
                                             texlive-jknapltx
                                             texlive-listings
                                             texlive-multirow
                                             texlive-overpic
                                             texlive-pdfpages
                                             texlive-refcount
                                             texlive-rsfs
                                             texlive-stmaryrd
                                             texlive-subfigure
                                             texlive-titlesec
                                             texlive-wasysym))
           ;; FIXME: transfig causes the build to fail.
           ;;transfig                   ;for fig2dev
     (list texlive-bin
           (texlive-updmap.cfg (list texlive-amsmath
                                     texlive-anysize
                                     texlive-appendix
                                     texlive-auxhook
                                     texlive-bigintcalc
                                     texlive-bin
                                     texlive-bitset
                                     texlive-bookmark
                                     texlive-changebar
                                     texlive-colortbl
                                     texlive-courier
                                     texlive-eepic
                                     texlive-epstopdf-pkg
                                     texlive-eso-pic
                                     texlive-etexcmds
                                     texlive-fancybox
                                     texlive-fancyhdr
                                     texlive-fancyvrb
                                     texlive-float
                                     texlive-footmisc
                                     texlive-gettitlestring
                                     texlive-graphics
                                     texlive-graphics-cfg
                                     texlive-helvetic
                                     texlive-hycolor
                                     texlive-hyperref
                                     texlive-infwarerr
                                     texlive-intcalc
                                     texlive-jknapltx
                                     texlive-kpathsea
                                     texlive-kvdefinekeys
                                     texlive-kvoptions
                                     texlive-kvsetkeys
                                     texlive-l3backend
                                     texlive-latex
                                     texlive-latex-bin
                                     texlive-letltxmacro
                                     texlive-listings
                                     texlive-ltxcmds
                                     texlive-multirow
                                     texlive-overpic
                                     texlive-pdfescape
                                     texlive-pdflscape
                                     texlive-pdfpages
                                     texlive-pdftexcmds
                                     texlive-psnfss
                                     texlive-refcount
                                     texlive-rerunfilecheck
                                     texlive-rsfs
                                     texlive-stmaryrd
                                     texlive-subfigure
                                     texlive-symbol
                                     texlive-times
                                     texlive-titlesec
                                     texlive-tools
                                     texlive-uniquecounter
                                     texlive-url
                                     texlive-wasysym
                                     texlive-zapfding))
           fig2dev
           imagemagick                  ;for convert
           inkscape/stable              ;for svg conversion
           inkscape                     ;for svg conversion
           docbook-xml
           libxslt))                    ;for xsltproc
    ;; lib/dbtexmf/xslt/4xslt.py shows that this package


@@ 832,7 884,8 @@ DB2LaTeX.")
  (hidden-package
   (package/inherit dblatex
     (inputs (modify-inputs (package-inputs dblatex)
               (replace "imagemagick" imagemagick/stable))))))
               (replace "imagemagick" imagemagick/stable)
               (replace "inkscape" inkscape/stable))))))

(define-public docbook-utils
  (package

A gnu/packages/patches/dblatex-inkscape-1.0.patch => gnu/packages/patches/dblatex-inkscape-1.0.patch +39 -0
@@ 0,0 1,39 @@
# Imported from <https://sourceforge.net/p/dblatex/dblatex/merge-requests/4/>

# HG changeset patch
# User Jan Tojnar <jtojnar@gmail.com>
# Date 1588714251 -7200
#      Tue May 05 23:30:51 2020 +0200
# Branch inkscape1
# Node ID 611cc4a4a878d57f5877f2d418864560f68d25cf
# Parent  3ddf5d6cedcbc9c8b98c4da77fd545b2478d90a3
Port to Inkscape 1.0

Inkscape revamped the CLI flags:

https://gitlab.com/inkscape/inbox/issues/2416

diff -r 3ddf5d6cedcb -r 611cc4a4a878 docs/custom/dblatex.xconf
--- a/docs/custom/dblatex.xconf	Tue Sep 10 00:40:26 2019 +0200
+++ b/docs/custom/dblatex.xconf	Tue May 05 23:30:51 2020 +0200
@@ -18,7 +18,7 @@
   <imagedata>
     <converter src="svg" dst="*" docformat="pdf">
       <command>
-        inkscape -z -D --export-dpi=600 --export-%(dst)s=%(output)s %(input)s
+        inkscape -D --export-dpi=600 --export-type=%(dst)s --export-filename=%(output)s %(input)s
       </command>
     </converter>
   </imagedata>
diff -r 3ddf5d6cedcb -r 611cc4a4a878 lib/dbtexmf/core/imagedata.py
--- a/lib/dbtexmf/core/imagedata.py	Tue Sep 10 00:40:26 2019 +0200
+++ b/lib/dbtexmf/core/imagedata.py	Tue May 05 23:30:51 2020 +0200
@@ -178,7 +178,7 @@
 class SvgConverter(ImageConverter):
     def __init__(self, imgsrc, imgdst="", docformat="", backend=""):
         ImageConverter.__init__(self, imgsrc="svg", imgdst=imgdst)
-        self.add_command(["inkscape", "-z", "-D", "--export-%(dst)s=%(output)s",
+        self.add_command(["inkscape", "-D", "--export-type=%(dst)s", "--export-filename=%(output)s",
                           "%(input)s"])