unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler
@ 2022-01-18  6:37 elaexuotee--- via Bug reports for GNU Guix
  2022-01-20 10:20 ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: elaexuotee--- via Bug reports for GNU Guix @ 2022-01-18  6:37 UTC (permalink / raw)
  To: 53339; +Cc: Ricardo Wurmus

[-- Attachment #1: Type: text/plain, Size: 844 bytes --]

Hello Guix,

Attached patch on top of version-1.4.0 attempts to typset PDF docs for the
metamath package. However, the below error results, which seems to indicate
that the Euler fonts are not found, despite texlive-amsfonts existing in the
texlive-updmap.cfg input.

    (/gnu/store/s952x1vkbbcprklzlzimn3m2dn53mjx9-texlive-amsfonts-59745/share/texmf-dist/tex/latex/amsfonts/ueuf.fd)
    kpathsea: Running mktextfm eufm10
    mkdir: cannot create directory ?././homeless-shelter?: Permission denied
    mktextfm: mktexdir /homeless-shelter/.texlive2021/texmf-var/fonts/tfm/ams/euler failed.
    kpathsea: Appending font creation commands to missfont.log.
    
    ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.
    <to be read again>

Can you reproduce, or is this some simple PEBKAC error?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-WIP-gnu-Typset-PDF-documentation-for-metamath.patch --]
[-- Type: text/x-patch, Size: 13317 bytes --]

From 8dc9347d507a734aeef7e5add96928bf7dc4de84 Mon Sep 17 00:00:00 2001
From: "B. Wilson" <elaexuotee@wilsonb.com>
Date: Mon, 17 Jan 2022 19:17:05 +0900
Subject: [PATCH] WIP: gnu: Typset PDF documentation for metamath.
To: bug-guix@gnu.org

* gnu/packages/metamath.scm (metamath): Add build definition for docs.
* gnu/packages/tex.scm (texlive-mathstyle, texlive-flexisym): New variables.
(texlive-breqn, texlive-makecell, texlive-tabu): New variables.
---
 gnu/packages/maths.scm |  78 +++++++++++++++++++-----
 gnu/packages/tex.scm   | 132 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 194 insertions(+), 16 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index b0944f307b..378237f472 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
-;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
+;;; Copyright © 2020, 2022 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
@@ -3360,30 +3360,76 @@ (define-public python-slepc4py
 (define-public metamath
   (package
     (name "metamath")
-    (version "0.193")
+    (version "0.196")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/metamath/metamath-exe")
+             (url "https://github.com/metamath/metamath-exe.git")
              (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
        (sha256
-        (base32 "1s9hyknfvhj86g3giayyf3dxzg23iij0rs7bdvj075v9qbyhqn9b"))))
+        (base32 "1i9x9rg7lxs0qrf2fv4cqczd8v9l1cxp6h0hdmdlr5dvzbjwg1zy"))
+       (file-name (git-file-name name version))))
     (build-system gnu-build-system)
-    (native-inputs
-     (list autoconf automake))
+    (inputs
+     `(("book"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://github.com/metamath/"
+                               "metamath-book/archive/second_edition.tar.gz"))
+           (sha256
+            (base32
+             "1kbgajik9dn870db1zslqyvhn2j8g7shb8d6dm6njwqfkygiliir"))))))
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("texlive" ,(texlive-updmap.cfg
+                                  (list texlive-amsfonts
+                                        texlive-bibtex
+                                        texlive-breqn
+                                        texlive-fonts-ec
+                                        texlive-hyperref
+                                        texlive-latex-anysize
+                                        texlive-latex-needspace
+                                        texlive-latex-tools
+                                        texlive-makecell
+                                        texlive-microtype
+                                        texlive-tabu)))))
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (let ((book-builddir "metamath-book-second_edition"))
+         (modify-phases %standard-phases
+           (add-after 'unpack 'unpack-doc
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((book-tar (assoc-ref inputs "book")))
+                 (invoke "tar" "xzf" book-tar))))
+           (add-after 'build 'build-doc
+             (lambda _
+               (with-directory-excursion book-builddir
+                 (invoke "touch" "metamath.ind")
+                 (invoke "pdflatex" "metamath")
+                 (invoke "pdflatex" "metamath")
+                 (invoke "bibtex" "metamath")
+                 (invoke "makeindex" "metamath")
+                 (invoke "pdflatex" "metamath")
+                 (invoke "pdflatex" "metamath"))))
+           (add-after 'build-doc 'install-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((pkg (strip-store-file-name (assoc-ref outputs "out")))
+                      (out-doc (assoc-ref outputs "doc")))
+                 (install-file (string-append book-builddir "/metamath.pdf")
+                               (string-append out-doc "/share/doc/" pkg))
+                 #t)))))))
     (home-page "http://us.metamath.org/")
     (synopsis "Proof verifier based on a minimalistic formalism")
-    (description
-     "Metamath is a tiny formal language and that can express theorems in
-abstract mathematics, with an accompyaning @command{metamath} executable that
-verifies databases of these proofs.  There is a public database,
-@url{https://github.com/metamath/set.mm, set.mm}, implementing first-order
-logic and Zermelo-Frenkel set theory with Choice, along with a large swath of
-associated, high-level theorems, e.g.@: the fundamental theorem of arithmetic,
-the Cauchy-Schwarz inequality, Stirling's formula, etc.  See the Metamath
-book.")
+    (description "Metamath is a tiny formal language and that can express
+theorems in abstract mathematics, with an accompyaning @code{metamath}
+executable that verifies databases of these proofs.  There is a public
+database, @url{https://github.com/metamath/set.mm, set.mm}, implementing
+first-order logic and Zermelo-Frenkel set theory with Choice, along with a
+large swath of associated, high-level theorems (e.g. the Fundamental Theorem of
+Arithmetic, the Cauchy-Schwarz Inequality, or Striling's Formula).  For more
+details see the Metamath book provided in the @code{doc} output.")
     (license license:gpl2+)))
 
 (define-public minizinc
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index bd4c2461a2..12f69f7686 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
+;;; Copyright © 2022 B. Wilson <elaexuotee@wilsonb.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9816,3 +9817,134 @@ (define-public bibtool
 sorting and merging of BibTeX databases, generation of uniform reference keys,
 and selecting references used in a publication.")
     (license license:gpl2+)))
+
+(define-public texlive-mathstyle
+  (package
+    (inherit (simple-texlive-package
+              "texlive-mathstyle"
+              (list "/tex/latex/breqn/mathstyle.sty"
+                    "/doc/latex/breqn/mathstyle.pdf")
+              (base32 "0rqdbcigj0ipjq19j8rk7whcr5j33rvr6fxchvycnrnsv5i5hvrg")
+              #:trivial? #t))
+    (propagated-inputs `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)))
+    (home-page "https://www.ctan.org/pkg/mathstyle")
+    (synopsis "Manage mathematics typesetting style")
+    (description "Flexisym converts mathematical symbol definitions to the form
+they need for breqn to work.  The package offers support for breqn and is part
+of the bundle of the same name.")
+    (license license:lppl1.3c+)))
+
+(define-public texlive-flexisym
+  (package
+    (inherit (simple-texlive-package
+              "texlive-flexisym"
+              (list "/tex/latex/breqn/flexisym.sty"
+                    "/tex/latex/breqn/cmbase.sym"
+                    "/tex/latex/breqn/mathpazo.sym"
+                    "/tex/latex/breqn/mathptmx.sym"
+                    "/tex/latex/breqn/msabm.sym")
+              (base32 "0wba8fa9zffldpybwyzha3bxfhxyjpnxl22vvlga6hz2yyrlshjy")
+              #:trivial? #t))
+    (propagated-inputs `(("texlive-latex-l3kernel" ,texlive-latex-l3kernel)
+                         ("texlive-mathstyle" ,texlive-mathstyle)))
+    (home-page "https://www.ctan.org/pkg/flexisym")
+    (synopsis "Symbol manipulation for breqn")
+    (description "Flexisym converts mathematical symbol definitions to the form
+they need for breqn to work.  The package offers support for breqn and is part
+of the bundle of the same name.")
+    (license license:lppl1.3c+)))
+
+(define-public texlive-breqn
+  (package
+    (inherit (simple-texlive-package
+              "texlive-breqn"
+              (list "/tex/latex/breqn/breqn.sty")
+              (base32 "000hf8sh41y197qj414fng88ig6b48zz5bd24n40z6wshh07qa4x")
+              #:trivial? #t))
+    (propagated-inputs `(("texlive-latex-amsmath" ,texlive-latex-amsmath)
+                         ("texlive-flexisym" ,texlive-flexisym)
+                         ("texlive-latex-graphics" ,texlive-latex-graphics)
+                         ("texlive-latex-l3kernel" ,texlive-latex-l3kernel)
+                         ("texlive-latex-tools" ,texlive-latex-tools)))
+    (home-page "http://wspr.io/breqn/")
+    (synopsis "Automated line breaking of displayed equations")
+    (description "The package provides solutions to a number of common
+difficulties in writing displayed equations and getting high-quality output.
+For example, it is a well-known inconvenience that if an equation must be
+broken into more than one line, @code{left...right} constructs cannot span
+lines.  The breqn package makes them work as one would expect whether or not
+there is an intervening line break.  The single most ambitious goal of the
+package, however, is to support automatic linebreaking of displayed equations.
+Such linebreaking cannot be done without substantial changes under the hood in
+the way formulae are processed; the code must be watched carefully, keeping an
+eye on possible glitches.  The bundle also contains the flexisym and mathstyle
+packages, which are both designated as support for breqn.")
+    (license license:lppl1.3c+)))
+
+(define-public texlive-makecell
+  (package
+    (inherit (simple-texlive-package
+              "texlive-makecell"
+              (list "/tex/latex/makecell/"
+                    "/doc/latex/makecell/makecell.pdf")
+              (base32 "1zdcmya5dxrnjf7lf0wmnhcjlwdha5gdzdx7xrgyi61gqwj7cxin")
+              #:trivial? #t))
+    (propagated-inputs `(("texlive-latex-tools" ,texlive-latex-tools)))
+    (home-page "https://www.ctan.org/pkg/makecell")
+    (synopsis "Tabular column heads and multilined cells")
+    (description "This package supports common layouts for tabular column heads
+in whole documents, based on one-column tabular environment.  In addition, it
+can create multi-lined tabular cells.
+
+The Package also offers:
+
+@itemize
+@item a macro which changes the vertical space around all the cells in a
+      tabular environment (similar to the function of the tabls package, but
+      using the facilities of the array);
+@item macros for multirow cells, which use the facilities of the multirow
+      package;
+@item macros to number rows in tables, or to skip cells;
+@item diagonally divided cells;
+@item horizontal lines in tabular environments with defined thickness.
+@end itemize")
+    (license license:lppl)))
+
+(define-public texlive-tabu
+  (package
+    (inherit (simple-texlive-package
+              "texlive-tabu"
+              (list "/tex/latex/tabu/"
+                    "/doc/latex/tabu/")
+              (base32 "156lkisyrpvn82ng2kxdlly60ny5vaz4lp9xlc66azy5ma06agvw")
+              #:trivial? #t))
+    (propagated-inputs
+     `(("texlive-latex-tools" ,texlive-latex-tools)
+       ("texlive-latex-varwidth" ,texlive-latex-varwidth)))
+    (home-page "https://www.ctan.org/pkg/tabu")
+    (synopsis "Flexible LaTeX tabulars")
+    (description "The package provides an environment, @code{tabu}, which will
+make any sort of tabular (that doesn’t need to split across pages), and an
+environment @code{longtabu} which provides the facilities of @code{tabu} in a
+modified longtable environment.  (Note that this latter offers an enhancement
+of ltxtable.)
+
+The package requires the array package, and needs e-TeX to run (since array.sty
+is present in every conforming distribution of LaTeX, and since every publicly
+available LaTeX format is built using e-TeX, the requirements are provided by
+default on any reasonable system).  The package also requires xcolor for
+coloured rules in tables, and colortbl for coloured cells.  The @code{longtabu}
+environment further requires that longtable be loaded.  The package itself does
+not load any of these packages for the user.
+
+The @code{tabu} environment may be used in place of @code{tabular},
+@code{tabular*} and @code{tabularx} environments, as well as the @code{array}
+environment in maths mode.  It overloads @code{tabularx}’s X-column
+specification, allowing a width specification, alignment (@code{l}, @code{r},
+@code{c} and @code{j}) and column type indication (@code{p}, @code{m} and
+@code{b}).
+
+@code{\begin@{tabu@}} to @code{<dimen>} specifies a target width, and
+@code{\begin@{tabu@}} spread @code{<dimen>} enlarges the environment’s
+natural width.")
+    (license license:lppl1.3c+)))
-- 
2.34.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler
  2022-01-18  6:37 bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler elaexuotee--- via Bug reports for GNU Guix
@ 2022-01-20 10:20 ` Ricardo Wurmus
  2022-01-20 21:58   ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2022-01-20 10:20 UTC (permalink / raw)
  To: 53339; +Cc: elaexuotee


elaexuotee@wilsonb.com writes:

> Attached patch on top of version-1.4.0 attempts to typset PDF docs for the
> metamath package. However, the below error results, which seems to indicate
> that the Euler fonts are not found, despite texlive-amsfonts existing in the
> texlive-updmap.cfg input.
>
>     (/gnu/store/s952x1vkbbcprklzlzimn3m2dn53mjx9-texlive-amsfonts-59745/share/texmf-dist/tex/latex/amsfonts/ueuf.fd)
>     kpathsea: Running mktextfm eufm10
>     mkdir: cannot create directory ?././homeless-shelter?: Permission denied
>     mktextfm: mktexdir /homeless-shelter/.texlive2021/texmf-var/fonts/tfm/ams/euler failed.
>     kpathsea: Appending font creation commands to missfont.log.
>     
>     ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.
>     <to be read again>

This is a problem with the texlive-amsfonts package.  The tlpdb says
that it should provide eufm10.tfm, but it doesn’t.

We’re building the fonts from source:

--8<---------------cut here---------------start------------->8---
                   ;; Frustratingly, not all fonts can be created this way.  To
                   ;; generate eufm8.tfm, for example, we first scale down
                   ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
                   ;; the pl file.
                   (setenv "TEXINPUTS"
                           (string-append ":" build "//:"
                                          (getcwd) "/fonts/afm/public/amsfonts//:"
                                          (getcwd) "/source/latex/amsfonts//:"))
                   (with-directory-excursion build
                     (for-each (match-lambda
                                 (((target-base target-size)
                                   (source-base source-size))
                                  (let ((factor (number->string
                                                 (truncate/ (* 1000 target-size)
                                                            source-size))))
                                    (invoke "tex"
                                            "-interaction=scrollmode"
                                            (string-append "\\input fontinst.sty "
                                                           "\\transformfont{" target-base "}"
                                                           "{\\scalefont{" factor "}"
                                                           "{\\fromafm{" source-base "}}} "
                                                           "\\bye")))
                                  (invoke "pltotf"
                                          (string-append target-base ".pl")
                                          (string-append target-base ".tfm"))
                                  (delete-file (string-append target-base ".pl"))))

                               '((("eufm8" 8) ("eufm10" 10))

                                 (("eufb6" 6) ("eufb7" 7))
                                 (("eufb8" 8) ("eufb10" 10))
                                 (("eufb9" 9) ("eufb10" 10))

                                 (("eufm6" 6) ("eufb7" 7))
                                 (("eufm9" 9) ("eufb10" 10))

                                 (("eurb6" 6) ("eurb7" 7))
                                 (("eurb8" 8) ("eurb10" 10))
                                 (("eurb9" 9) ("eurb10" 10))

                                 (("eurm6" 6) ("eurm7" 7))
                                 (("eurm8" 8) ("eurm10" 10))
                                 (("eurm9" 9) ("eurm10" 10)))))
--8<---------------cut here---------------end--------------->8---

As you can see, we’re not building eufm10.tfm from the pl file.  Oops.
Fixing this is easy, but any change to texlive-amsfonts will require
rebuilding the world — unless we use grafts.

We can avoid these problems by checking that all texlive packages
produce all the outputs that the tlpdb specifies.  The texlive importer
already works with the tlpdb; we’d just need some sort of automatic
test.  We could do this as part of an optional build phase.

-- 
Ricardo




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler
  2022-01-20 10:20 ` Ricardo Wurmus
@ 2022-01-20 21:58   ` Ricardo Wurmus
  2022-01-21  1:51     ` elaexuotee--- via Bug reports for GNU Guix
  2022-01-23 17:16     ` Ricardo Wurmus
  0 siblings, 2 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2022-01-20 21:58 UTC (permalink / raw)
  To: 53339; +Cc: elaexuotee


Ricardo Wurmus <rekado@elephly.net> writes:

> elaexuotee@wilsonb.com writes:
>
>> Attached patch on top of version-1.4.0 attempts to typset PDF docs for the
>> metamath package. However, the below error results, which seems to indicate
>> that the Euler fonts are not found, despite texlive-amsfonts existing in the
>> texlive-updmap.cfg input.
>>
>>     (/gnu/store/s952x1vkbbcprklzlzimn3m2dn53mjx9-texlive-amsfonts-59745/share/texmf-dist/tex/latex/amsfonts/ueuf.fd)
>>     kpathsea: Running mktextfm eufm10
>>     mkdir: cannot create directory ?././homeless-shelter?: Permission denied
>>     mktextfm: mktexdir /homeless-shelter/.texlive2021/texmf-var/fonts/tfm/ams/euler failed.
>>     kpathsea: Appending font creation commands to missfont.log.
>>     
>>     ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.
>>     <to be read again>
>
> This is a problem with the texlive-amsfonts package.  The tlpdb says
> that it should provide eufm10.tfm, but it doesn’t.

It now does.

Commit 374464a3bbd38f43784af0cdf54ddceed93e41bd adds a new
texlive-amsfonts/fixed and adds it to the replacement field of
texlive-amsfonts, so it should be grafted.

> We can avoid these problems by checking that all texlive packages
> produce all the outputs that the tlpdb specifies.  The texlive importer
> already works with the tlpdb; we’d just need some sort of automatic
> test.  We could do this as part of an optional build phase.

Commit 5ecb4acdcb95478c6efe63bf9caa4db6bda82aba implements the most
basic check.  We can’t use it during the build, because tlpdb currently
needs modules that aren’t available on the build side (e.g. those to
build texlive-bin and look up a file it provides), but it can be used in
a REPL:

    ,use (guix import texlive)
    (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts")

This should return the empty list.  As should this, which lists files
that should not have been installed according to the tlpdb:

    (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts" #:direction 'extra)

The fixed package installs exactly the files it is supposed to and
nothing more.

Could you please try again?

-- 
Ricardo




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler
  2022-01-20 21:58   ` Ricardo Wurmus
@ 2022-01-21  1:51     ` elaexuotee--- via Bug reports for GNU Guix
  2022-01-21  8:04       ` Ricardo Wurmus
  2022-01-23 17:16     ` Ricardo Wurmus
  1 sibling, 1 reply; 6+ messages in thread
From: elaexuotee--- via Bug reports for GNU Guix @ 2022-01-21  1:51 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 53339

Ricardo Wurmus <rekado@elephly.net> wrote:
> 
> Ricardo Wurmus <rekado@elephly.net> writes:
> 
> > elaexuotee@wilsonb.com writes:
> >
> >> Attached patch on top of version-1.4.0 attempts to typset PDF docs for the
> >> metamath package. However, the below error results, which seems to indicate
> >> that the Euler fonts are not found, despite texlive-amsfonts existing in the
> >> texlive-updmap.cfg input.
> >>
> >>     (/gnu/store/s952x1vkbbcprklzlzimn3m2dn53mjx9-texlive-amsfonts-59745/share/texmf-dist/tex/latex/amsfonts/ueuf.fd)
> >>     kpathsea: Running mktextfm eufm10
> >>     mkdir: cannot create directory ?././homeless-shelter?: Permission denied
> >>     mktextfm: mktexdir /homeless-shelter/.texlive2021/texmf-var/fonts/tfm/ams/euler failed.
> >>     kpathsea: Appending font creation commands to missfont.log.
> >>     
> >>     ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.
> >>     <to be read again>
> >
> > This is a problem with the texlive-amsfonts package.  The tlpdb says
> > that it should provide eufm10.tfm, but it doesn’t.
> 
> It now does.

That was quick.

> Commit 374464a3bbd38f43784af0cdf54ddceed93e41bd adds a new
> texlive-amsfonts/fixed and adds it to the replacement field of
> texlive-amsfonts, so it should be grafted.
> 
> > We can avoid these problems by checking that all texlive packages
> > produce all the outputs that the tlpdb specifies.  The texlive importer
> > already works with the tlpdb; we’d just need some sort of automatic
> > test.  We could do this as part of an optional build phase.

Okay. I see that commit on master.
Building again, however, the original problem persists:

    ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.

The new texlive-amsfonts/fixed don't need to list eufm10 targets?

> Commit 5ecb4acdcb95478c6efe63bf9caa4db6bda82aba implements the most
> basic check.  We can’t use it during the build, because tlpdb currently
> needs modules that aren’t available on the build side (e.g. those to
> build texlive-bin and look up a file it provides), but it can be used in
> a REPL:
> 
>     ,use (guix import texlive)
>     (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts")
> 
> This should return the empty list.  As should this, which lists files
> that should not have been installed according to the tlpdb:
> 
>     (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts" #:direction 'extra)
> 
> The fixed package installs exactly the files it is supposed to and
> nothing more.

Both of those files-differ? invocations do indeed return empty lists for me. As a
sanity check, I re-confirmed that the document typesets within a texlive --pure
environment. So what gives?

$ guix time-machine --commit=4821e3eb4edd532bb236973a986e609634d0ab28 -- shell --pure texlive findutils
bash-5.1$ find -L $GUIX_ENVIRONMENT -name '*eufm10*'
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/afm/public/amsfonts/euler/eufm10.afm
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/tfm/public/amsfonts/euler/eufm10.tfm
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfb
/gnu/store/r0dn677n122jqi3wh0sp3b3kpjavyv2r-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfm

but...

$ ./pre-inst-env guix shell texlive-asmfosnts  # on commit fad6a742351a599219dabcd152327afc39e4e3cf
$ find -L $GUIX_ENVIRONMENT -name '*eufm10*'
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/afm/public/amsfonts/euler/eufm10.afm
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/tfm/public/amsfonts/euler/eufm10.tfm
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfb
/gnu/store/77vyrxxaa7xn0wfmam20477nakc7v5di-profile/share/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfm

Is my package definition just missing something obvious?




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler
  2022-01-21  1:51     ` elaexuotee--- via Bug reports for GNU Guix
@ 2022-01-21  8:04       ` Ricardo Wurmus
  0 siblings, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2022-01-21  8:04 UTC (permalink / raw)
  To: elaexuotee; +Cc: 53339


elaexuotee@wilsonb.com writes:

> The new texlive-amsfonts/fixed don't need to list eufm10 targets?

No, because eufm10 is generated from the corresponding afm file.  That
was broken before.

-- 
Ricardo




^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler
  2022-01-20 21:58   ` Ricardo Wurmus
  2022-01-21  1:51     ` elaexuotee--- via Bug reports for GNU Guix
@ 2022-01-23 17:16     ` Ricardo Wurmus
  1 sibling, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2022-01-23 17:16 UTC (permalink / raw)
  To: 53339; +Cc: elaexuotee


Ricardo Wurmus <rekado@elephly.net> writes:

> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> elaexuotee@wilsonb.com writes:
>>
>>> Attached patch on top of version-1.4.0 attempts to typset PDF docs for the
>>> metamath package. However, the below error results, which seems to indicate
>>> that the Euler fonts are not found, despite texlive-amsfonts existing in the
>>> texlive-updmap.cfg input.
>>>
>>>     (/gnu/store/s952x1vkbbcprklzlzimn3m2dn53mjx9-texlive-amsfonts-59745/share/texmf-dist/tex/latex/amsfonts/ueuf.fd)
>>>     kpathsea: Running mktextfm eufm10
>>>     mkdir: cannot create directory ?././homeless-shelter?: Permission denied
>>>     mktextfm: mktexdir /homeless-shelter/.texlive2021/texmf-var/fonts/tfm/ams/euler failed.
>>>     kpathsea: Appending font creation commands to missfont.log.
>>>     
>>>     ! Font U/euf/m/n/10=eufm10 at 10.0pt not loadable: Metric (TFM) file not found.
>>>     <to be read again>
>>
>> This is a problem with the texlive-amsfonts package.  The tlpdb says
>> that it should provide eufm10.tfm, but it doesn’t.
>
> It now does.
>
> Commit 374464a3bbd38f43784af0cdf54ddceed93e41bd adds a new
> texlive-amsfonts/fixed and adds it to the replacement field of
> texlive-amsfonts, so it should be grafted.
>
>> We can avoid these problems by checking that all texlive packages
>> produce all the outputs that the tlpdb specifies.  The texlive importer
>> already works with the tlpdb; we’d just need some sort of automatic
>> test.  We could do this as part of an optional build phase.
>
> Commit 5ecb4acdcb95478c6efe63bf9caa4db6bda82aba implements the most
> basic check.  We can’t use it during the build, because tlpdb currently
> needs modules that aren’t available on the build side (e.g. those to
> build texlive-bin and look up a file it provides), but it can be used in
> a REPL:
>
>     ,use (guix import texlive)
>     (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts")
>
> This should return the empty list.  As should this, which lists files
> that should not have been installed according to the tlpdb:
>
>     (files-differ? "/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/" "amsfonts" #:direction 'extra)
>
> The fixed package installs exactly the files it is supposed to and
> nothing more.

I just applied your patch and then tried to reproduce the problem.  I
can reproduce the problem.  I then explicitly asked for
texlive-amsfonts/fixed instead of texlive-amsfonts and I got past the
failure to find eufm10.

It’s not surprising, because grafts happen *after* the build, but it did
confuse me for a bit.

The new error looks a lot like bug 40558 which I had just closed:

--8<---------------cut here---------------start------------->8---
starting phase `build-doc'
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/GNU Guix) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./metamath.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-02-18>

LaTeX Warning: Writing file `./realref.sty'.



LaTeX Warning: Writing file `./metamath.bib'.


(/gnu/store/587a5yig52dyj2bfdg44dqcyqmdv0qqp-texlive-latex-base-59745/share/texmf-dist/tex/latex/base/book.cls
Document Class: book 2020/04/10 v1.4m Standard LaTeX document class
(/gnu/store/587a5yig52dyj2bfdg44dqcyqmdv0qqp-texlive-latex-base-59745/share/texmf-dist/tex/latex/base/leqno.clo) (/gnu/store/587a5yig52dyj2bfdg44dqcyqmdv0qqp-texlive-latex-base-59745/share/texmf-dist/tex/latex/base/bk10.clo)) (/gnu/store/rvpgbbds8lk81yzx6775j6ch2xdwvv52-texlive-hyperref-59745/share/texmf-dist/tex/latex/hyperref/hyperref.sty (/gnu/store/z3l6hyyrjha51phkfcd47pmd0qfd3dk0-texlive-generic-ltxcmds-59745/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty) (/gnu/store/9bdsk0lyzci4mh2zjsd2xhr46xjnpbwr-texlive-generic-iftex-59745/share/texmf-dist/tex/generic/iftex/iftex.sty) (/gnu/store/sj5mmzvpj1rvf7qhmj14lqm8s55lhafc-texlive-latex-pdftexcmds-59745/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty (/gnu/store/8m9dsi7b7g0zm79xfxl92hyzn1frs9a2-texlive-generic-infwarerr-59745/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty)) (/gnu/store/7amifddw49zp8h212nn8ks9jkw75sf4k-texlive-latex-graphics-59745/share/texmf-dist/tex/latex/graphics/keyval.sty)
(/gnu/store/65jpn1a6ypq5wsdnvmjzw1yw283ibqy9-texlive-generic-kvsetkeys-59745/share/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty) (/gnu/store/scks7081fji2a504l8bgcfxmqss391xj-texlive-generic-kvdefinekeys-59745/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty) (/gnu/store/3ghkimjblf7cpgnrjjj84r2n7jwcq4wd-texlive-generic-pdfescape-59745/share/texmf-dist/tex/generic/pdfescape/pdfescape.sty) (/gnu/store/nl3vss7x4q0kxyx7hn5x955ixcsgxqy4-texlive-latex-hycolor-59745/share/texmf-dist/tex/latex/hycolor/hycolor.sty) (/gnu/store/mwkfbyky333q7wwirzbhkp6n7qcrq7ns-texlive-latex-letltxmacro-59745/share/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty) (/gnu/store/gv2parvnl34qwqkvq3rjb5i910kvgfi8-texlive-latex-auxhook-59745/share/texmf-dist/tex/latex/auxhook/auxhook.sty) (/gnu/store/57an07pvwb6g4n06i7c0v9m3agd4w73q-texlive-latex-kvoptions-59745/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty)
(/gnu/store/rvpgbbds8lk81yzx6775j6ch2xdwvv52-texlive-hyperref-59745/share/texmf-dist/tex/latex/hyperref/pd1enc.def) (/gnu/store/rvpgbbds8lk81yzx6775j6ch2xdwvv52-texlive-hyperref-59745/share/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def) (/gnu/store/d9y4xwdybmc4lww1m5rfclg6wnjq2m5s-texlive-generic-intcalc-59745/share/texmf-dist/tex/generic/intcalc/intcalc.sty) (/gnu/store/9fnwbv8rh4xam8fd7iq5ixga0kf59m1y-texlive-generic-etexcmds-59745/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty) (/gnu/store/rvpgbbds8lk81yzx6775j6ch2xdwvv52-texlive-hyperref-59745/share/texmf-dist/tex/latex/hyperref/puenc.def) (/gnu/store/mxwk2779z4c9rdpfw336llfjwvq8b1m8-texlive-url-59745/share/texmf-dist/tex/latex/url/url.sty) (/gnu/store/kv80m72v0a370946z23f3mqb9qi09kxf-texlive-generic-bitset-59745/share/texmf-dist/tex/generic/bitset/bitset.sty (/gnu/store/1sq5ckqm8pfk992vsf8vbknnr2jvzdpj-texlive-generic-bigintcalc-59745/share/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty))
(/gnu/store/587a5yig52dyj2bfdg44dqcyqmdv0qqp-texlive-latex-base-59745/share/texmf-dist/tex/latex/base/atbegshi-ltx.sty)) (/gnu/store/rvpgbbds8lk81yzx6775j6ch2xdwvv52-texlive-hyperref-59745/share/texmf-dist/tex/latex/hyperref/hpdftex.def (/gnu/store/587a5yig52dyj2bfdg44dqcyqmdv0qqp-texlive-latex-base-59745/share/texmf-dist/tex/latex/base/atveryend-ltx.sty) (/gnu/store/nbb28djqw81mh34x2g1ff5sxk7wrpcdw-texlive-latex-rerunfilecheck-59745/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty (/gnu/store/bsqw8xzx6s6727sq75z0ay46awpg7qbv-texlive-generic-uniquecounter-59745/share/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty))) (/gnu/store/1z0lv49q68hmr239gyhkl0fhii9w2k29-texlive-latex-needspace-59745/share/texmf-dist/tex/latex/needspace/needspace.sty) (/gnu/store/xj2g5msy7iaz3a8kbpd2cwcbjbd6248b-texlive-breqn-59745/share/texmf-dist/tex/latex/breqn/breqn.sty (/gnu/store/yfw2ldhvy8ppxjcaff5cjw990dxqjzpf-texlive-latex-l3kernel-59745/share/texmf-dist/tex/latex/l3kernel/expl3.sty
(/gnu/store/c5nji3vqx4y317kcicr3lqijvphvgv5v-texlive-latex-l3backend-59745/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)) (/gnu/store/znfkb5mi7zxvyrcxbv2mbmq7l9v4327l-texlive-latex-amsmath-59745/share/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/gnu/store/znfkb5mi7zxvyrcxbv2mbmq7l9v4327l-texlive-latex-amsmath-59745/share/texmf-dist/tex/latex/amsmath/amstext.sty (/gnu/store/znfkb5mi7zxvyrcxbv2mbmq7l9v4327l-texlive-latex-amsmath-59745/share/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/gnu/store/znfkb5mi7zxvyrcxbv2mbmq7l9v4327l-texlive-latex-amsmath-59745/share/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/gnu/store/znfkb5mi7zxvyrcxbv2mbmq7l9v4327l-texlive-latex-amsmath-59745/share/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/gnu/store/7amifddw49zp8h212nn8ks9jkw75sf4k-texlive-latex-graphics-59745/share/texmf-dist/tex/latex/graphics/graphicx.sty (/gnu/store/7amifddw49zp8h212nn8ks9jkw75sf4k-texlive-latex-graphics-59745/share/texmf-dist/tex/latex/graphics/graphics.sty (/gnu/store/7amifddw49zp8h212nn8ks9jkw75sf4k-texlive-latex-graphics-59745/share/texmf-dist/tex/latex/graphics/trig.sty) (/gnu/store/zga4xvyy7h1ww3isg35l6y2yp3m2hcs0-texlive-graphics-cfg-59745/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)
(/gnu/store/s7bg33d6knlkn7bab9756pk7g747clps-texlive-graphics-def-59745/share/texmf-dist/tex/latex/graphics-def/pdftex.def))) (/gnu/store/vywyhkvz2nr5037jfz8f10mzcszh5ldh-texlive-flexisym-59745/share/texmf-dist/tex/latex/breqn/flexisym.sty (/gnu/store/vywyhkvz2nr5037jfz8f10mzcszh5ldh-texlive-flexisym-59745/share/texmf-dist/tex/latex/breqn/cmbase.sym) (/gnu/store/wszi2z0hz9wk21ylfyvzgrfwdd78gkl4-texlive-mathstyle-59745/share/texmf-dist/tex/latex/breqn/mathstyle.sty)) (/gnu/store/igzyhzbvn3nmr6fjn33kdxq6f5mmnlzz-texlive-latex-tools-59745/share/texmf-dist/tex/latex/tools/calc.sty)) (/gnu/store/gh6xyp556my7lxwbmv9aibvvc2844v2f-texlive-microtype-59745/share/texmf-dist/tex/latex/microtype/microtype.sty (/gnu/store/gh6xyp556my7lxwbmv9aibvvc2844v2f-texlive-microtype-59745/share/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/gnu/store/gh6xyp556my7lxwbmv9aibvvc2844v2f-texlive-microtype-59745/share/texmf-dist/tex/latex/microtype/microtype.cfg))
(/gnu/store/wdq836g7zd1a0vlsgj14nrq22iv0djb3-texlive-makecell-59745/share/texmf-dist/tex/latex/makecell/makecell.sty (/gnu/store/igzyhzbvn3nmr6fjn33kdxq6f5mmnlzz-texlive-latex-tools-59745/share/texmf-dist/tex/latex/tools/array.sty)) (/gnu/store/igzyhzbvn3nmr6fjn33kdxq6f5mmnlzz-texlive-latex-tools-59745/share/texmf-dist/tex/latex/tools/longtable.sty) (/gnu/store/br82d1v2rmx0vqljrqfvnj2mss5gp26c-texlive-tabu-59745/share/texmf-dist/tex/latex/tabu/tabu.sty (/gnu/store/3abywx5j53mvridad7ljz8zl10wjbilr-texlive-latex-varwidth-59745/share/texmf-dist/tex/latex/varwidth/varwidth.sty)) (./realref.sty) (/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/texmf-dist/tex/latex/amsfonts/amssymb.sty (/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/gnu/store/0jakmwvyf28fcjlvlbp7g4hbvikp7lry-texlive-latex-anysize-59745/share/texmf-dist/tex/latex/anysize/anysize.sty
document style option `anysize' loaded
Michael Salzenberg, Thomas Esser, Dirk Hillbrecht
Version 1.0, Aug 13, 1994
) (./special-settings.sty)
Writing index file metamath.idx
No file metamath.aux.
(/gnu/store/rvpgbbds8lk81yzx6775j6ch2xdwvv52-texlive-hyperref-59745/share/texmf-dist/tex/latex/hyperref/nameref.sty (/gnu/store/198aipzigqav60nyy1970fcfd019xyp1-texlive-latex-refcount-59745/share/texmf-dist/tex/latex/refcount/refcount.sty) (/gnu/store/ah1pabxq8q7p09mnp1djl3bklwl2r5nw-texlive-generic-gettitlestring-59745/share/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty)) (/gnu/store/rs64dc2d1b3zp9xbqxjrbprkhsyzw7i5-texlive-latex-epstopdf-pkg-59745/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty (/gnu/store/7imc8xwaa0xm5bg47barmvjnkgfqyypd-texlive-latexconfig-59745/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)) (/gnu/store/gh6xyp556my7lxwbmv9aibvvc2844v2f-texlive-microtype-59745/share/texmf-dist/tex/latex/microtype/mt-cmr.cfg) [1{/gnu/store/alvxjk3cfji845csj2ppr8bkmylj7wvx-texlive-updmap.cfg-59745/share/texmf-dist/fonts/map/pdftex/updmap/pdftex.map}]
(/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/texmf-dist/tex/latex/amsfonts/umsa.fd) (/gnu/store/gh6xyp556my7lxwbmv9aibvvc2844v2f-texlive-microtype-59745/share/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/gnu/store/aiknpz049bqbr73s58yaqk3ln7hq8n4x-texlive-amsfonts-fixed-59745/share/texmf-dist/tex/latex/amsfonts/umsb.fd) (/gnu/store/gh6xyp556my7lxwbmv9aibvvc2844v2f-texlive-microtype-59745/share/texmf-dist/tex/latex/microtype/mt-msb.cfg)
! Math formula deleted: Insufficient extension fonts.
l.861 $\sim$
            \ {\sc Public Domain}\ $\sim$
? 
! Emergency stop.
l.861 $\sim$
            \ {\sc Public Domain}\ $\sim$
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on metamath.log.
error: in phase 'build-doc': uncaught exception:
%exception #<&invoke-error program: "pdflatex" arguments: ("metamath") exit-status: 1 term-signal: #f stop-signal: #f> 
--8<---------------cut here---------------end--------------->8---

I don’t know what that’s about.

-- 
Ricardo




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-01-23 17:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-18  6:37 bug#53339: [version-1.4.0] Package with texlive-updmap.cfg and texlive-amsfonts failing to find Euler elaexuotee--- via Bug reports for GNU Guix
2022-01-20 10:20 ` Ricardo Wurmus
2022-01-20 21:58   ` Ricardo Wurmus
2022-01-21  1:51     ` elaexuotee--- via Bug reports for GNU Guix
2022-01-21  8:04       ` Ricardo Wurmus
2022-01-23 17:16     ` Ricardo Wurmus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).