guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about packaging TexLive


From: Ricardo Wurmus
Subject: Re: Question about packaging TexLive
Date: Wed, 19 Apr 2023 11:36:46 +0200
User-agent: mu4e 1.10.2; emacs 28.2

Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:

> Hello,
>
> Simon Tournier <zimon.toutoune@gmail.com> writes:
>
>> Other said, any objection to go from this pattern:
>>
>> --8<---------------cut here---------------start------------->8---
>> (define-public texlive-foo
>>   (package
>>     (name "texlive-foo")
>>     (version (number->string %texlive-revision))
>>     (source (origin
>>               (method svn-multi-fetch)
>>               (uri (svn-multi-reference
>>                     (url (string-append "svn://www.tug.org/texlive/tags/"
>>                                         %texlive-tag "/Master/texmf-dist"))
>>                     (locations '("/metafont/"
>>                                  "/fonts/source/public/modes/"))
>>                     (revision %texlive-revision)))
>>               (file-name (string-append name "-" version "-checkout"))
>>               (sha256
>>                (base32
>>                 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"))))
>>     (build-system gnu-build-system)
>>     (arguments
>>      `(#:tests? #f ; no test target
>>        #:phases
>> [...]
>> --8<---------------cut here---------------end--------------->8---
>>
>>
>> to this pattern:
>>
>> --8<---------------cut here---------------start------------->8---
>> (define-public texlive-foo
>>   (package
>>     (inherit (simple-texlive-package
>>               "texlive-foo"
>>               (list "/tex/generic/foo")
>>               (base32
>>                "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
>>               #:trivial? #t))
>> --8<---------------cut here---------------end--------------->8---
>>
>> It is about ~35 packages, if I count correctly.
>>
>> WDYT?
>
> I think this is necessary but not sufficient.
>
> 1. "#:trivial? #t" means we're giving up generating ".sty" files from
>    source;

Trivial should only ever be used for packages where there aren’t any
sources to build from.

> 2. Some affected packages are also missing propagated inputs (e.g.,
>    texlive-latex-graphics for texlive-latex-fncychap);

Correct.  The old importer didn’t know about dependencies.  The newer
importer uses tlpdb to get a list of dependencies.

> 3. Some affected package also need to be renamed
>    (texlive-latex-fncychap, texlive-latex-framed).
>
> AFAIU, this changes will probably ease time travelling, but the massive
> rebuild it will entail will have to be repeated for the other steps.
>
> So maybe we could do every step above in one go?

Using svn-multi-reference is the old way; we should be using
simple-texlive-package for all packages wherever possible.

Yes, we still have a lot of old package names.  They all should be
renamed to the new style.

All packages must be checked for completeness.  All new packages I’ve
added have been checked.  All old packages must be checked before
renaming them.  The way to check them is to build them and then check
the outputs with something like this:

--8<---------------cut here---------------start------------->8---
,use (guix import texlive)
,pp (files-differ? "/gnu/store/…-texlive-amsfonts-fixed-59745/share/" 
"amsfonts")
--8<---------------cut here---------------end--------------->8---

This compares outputs with tlpdb.

Note that simple-texlive-package is far from perfect.  We have many
tex packages that require excessive workarounds to ensure that files end
up in the correct location and that superfluous files are removed.
simple-texlive-package should eventually take care of all of this, but I
haven’t been able to make time to work on it.

All this work should be done on a separate feature branch.

-- 
Ricardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]