Subject: Re: bug#45656: The TeX Live importer crashes with Wrong type (expecting string): #f

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 04 Jan 2021 13:30:05 -0500

Hello,

Maxim Cournoyer <[email-masked]> writes:

> Hello,
>
> The TeX Live importer doesn't appear to be functional:
>
> $ guix import texlive lh
> following redirection to `https://ctan.org/xml/1.2/pkg/lh'...
> command "svn" "export" "--non-interactive" "--trust-server-cert" "-r" "51265" "svn://www.tug.org/texlive/tags/texlive-2019.3/Master/texmf-dist/source/latex/lh" "/tmp/guix-directory.vfSCcU/svn" failed with signal 11
> Backtrace:
> In ice-9/boot-9.scm:
>   1736:10 15 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In unknown file:
>           14 (apply-smob/0 #<thunk 7fb1a712a4a0>)
> In ice-9/boot-9.scm:
>     718:2 13 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
> In ice-9/eval.scm:
>     619:8 12 (_ #(#(#<directory (guile-user) 7fb1a6d67f00>)))
> In guix/ui.scm:
>   2118:12 11 (run-guix-command _ . _)
> In guix/scripts/import.scm:
>    120:11 10 (guix-import . _)
> In guix/scripts/import/texlive.scm:
>     91:19  9 (guix-import-texlive . _)
> In guix/memoization.scm:
>      98:0  8 (mproc "lh" "latex")
> In unknown file:
>            7 (_ #<procedure 7fb1a4c85a20 at guix/memoization.scm:179:32 ()> #<procedure list _> ("lh" …))
> In ice-9/boot-9.scm:
>   1736:10  6 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In guix/store.scm:
>    632:37  5 (thunk)
> In guix/import/texlive.scm:
>    162:25  4 (_ _)
> In guix/serialization.scm:
>     324:6  3 (dump #f)
>    257:34  2 (_ _)
> In unknown file:
>            1 (lstat #f)
> In ice-9/boot-9.scm:
>   1669:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> Wrong type (expecting string): #f
>
> The same happens with other packages, such as 'ec'.

The reason appears to be that the svn reference URL is wrong;
unfortunately this information is not present in the SXML metadata
retrieved; it seems the best option when such an URL does not exist
would be to fallback to a SVN multi-fetch (perhaps using the
simple-texlive-package procedure to derive a template) of the components
found in the texlive.tlpdb listing found in the output of our
texlive-bin package.

TODO!

Maxim