* Thoughtful updates to TexLive
@ 2024-10-26 1:13 Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-10-26 8:36 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 9+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2024-10-26 1:13 UTC (permalink / raw)
To: guix-devel@gnu.org
Hi,
Should updates to TexLive or its prerequisites fall under the
core-updates policy (or whatever its successor is)?
My Guix is heavily modified and building TexLive takes an hour and a
half. Grafting it takes nearly as long. Thanks!
Kind regards
Felix
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2024-10-26 1:13 Thoughtful updates to TexLive Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2024-10-26 8:36 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-10 7:01 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 9+ messages in thread
From: Nicolas Goaziou via Development of GNU Guix and the GNU System distribution. @ 2024-10-26 8:36 UTC (permalink / raw)
To: Felix Lechner via Development of GNU Guix and the GNU System distribution.
Cc: Felix Lechner
Hello,
Felix Lechner writes:
> Should updates to TexLive or its prerequisites fall under the
> core-updates policy (or whatever its successor is)?
>
> My Guix is heavily modified and building TexLive takes an hour and a
> half. Grafting it takes nearly as long. Thanks!
What TexLive are you talking about? There are two TeX Live distributions
in Guix: the monolithic one, i.e., `texlive', and the modular one, i.e.,
the set of all `texlive-*' packages.
Monolithic TeX Live is not substitutable so no matter how heavily
modified your Guix is, you will always rebuild it at every dependency
change.
My suggestion is to use modular TeX Live with a reasonable set of
packages. I.e., you certainly don't need to pull `texlive-scheme-full',
the modular counterpart of `texlive'.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2024-10-26 8:36 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
@ 2025-01-10 7:01 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2025-01-10 7:50 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 9+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2025-01-10 7:01 UTC (permalink / raw)
To: Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
Cc: Nicolas Goaziou
Hi Nicolas,
On Sat, Oct 26 2024, Nicolas Goaziou via "Development of GNU Guix and the GNU System distribution." wrote:
> What TexLive are you talking about?
I am talking about 'texlivetexmf-20240312'.
While I'm lucky that there is a substitute, I can hardly use it. At
3.95GB and 31 kB/sec download speed, it took twenty minutes to reach 1%.
If my math is right, two thousand minutes are about thirty-three hours.
What is the rationale for the monolithic package, please? I'm not using
it in any of my own stuff, I don't think. Thanks!
Kind regards
Felix
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2025-01-10 7:01 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2025-01-10 7:50 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-10 15:00 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2025-01-22 14:07 ` Andreas Enge
0 siblings, 2 replies; 9+ messages in thread
From: Nicolas Goaziou via Development of GNU Guix and the GNU System distribution. @ 2025-01-10 7:50 UTC (permalink / raw)
To: Felix Lechner via Development of GNU Guix and the GNU System distribution.
Cc: Felix Lechner, Andreas Enge
Hello,
Felix Lechner via "Development of GNU Guix and the GNU System
distribution." <guix-devel@gnu.org> writes:
> I am talking about 'texlivetexmf-20240312'.
>
> While I'm lucky that there is a substitute, I can hardly use it.
The `texlivetexmf' package has a `#:substitutable #f' flag. Unless I’m
mistaken, you’re probably downloading its source before building it.
> What is the rationale for the monolithic package, please? I'm not using
> it in any of my own stuff, I don't think. Thanks!
The monolithic package predates the modular one. Back in the days, it
was the only way to get a proper TeX Live experience within Guix.
It is not the case anymore. However, Andreas Enge (Cc’ed) prefers to
keep it as a no-brainer for anyone who wants to compile TeX documents
and can afford the download cost. I’d love to get feedback about the
comparison between using `texlive' and `texlive-scheme-full', as
I believe the latter can satisfy that user profile.
Admittedly, another advantage is that you can modify `texlive' without
rebuilding world.
As you put it, you, or anyone on this earth I bet, don’t need every
package in there. Some are provided for historical purpose only, for
example. Even if you don’t want to fiddle with TeX Live packages,
installing a couple of `texlive-collection-*' packages, such as the
massive `texlive-collection-latexextra', will be more manageable in the
long run.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2025-01-10 7:50 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
@ 2025-01-10 15:00 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2025-01-10 16:09 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-22 14:07 ` Andreas Enge
1 sibling, 1 reply; 9+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2025-01-10 15:00 UTC (permalink / raw)
To: Nicolas Goaziou
Cc: Felix Lechner via Development of GNU Guix and the GNU System distribution.,
Andreas Enge
Hi Nicolas,
On Fri, Jan 10 2025, Nicolas Goaziou wrote:
> don’t need every package in there
Thanks for that analysis! I had the innocuous-looking 'texlive' in my
Guix Home profile. That package pulls in texlivetexmf-${date}. [1] Was
that my error?
Kind regards
Felix
P.S. After a good night's sleep and eight hours later, sixteen percent
of the source were downloaded.
[1] https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/texlive.scm#n364
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2025-01-10 15:00 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2025-01-10 16:09 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
0 siblings, 0 replies; 9+ messages in thread
From: Nicolas Goaziou via Development of GNU Guix and the GNU System distribution. @ 2025-01-10 16:09 UTC (permalink / raw)
To: Felix Lechner via Development of GNU Guix and the GNU System distribution.
Cc: Felix Lechner, Andreas Enge
Hello,
Felix Lechner via "Development of GNU Guix and the GNU System
distribution." <guix-devel@gnu.org> writes:
> Thanks for that analysis! I had the innocuous-looking 'texlive' in my
> Guix Home profile. That package pulls in texlivetexmf-${date}. [1] Was
> that my error?
No, it wasn’t. The `texlive' package is more or less a meta package that
pulls the TeX Live binaries, `texlivebin', and the whole TeX Live tree,
`texlivetexmf', the latter being the 4Gb monster.
Note that modular TeX Live package have their name starting with
"texlive-", which is not the case of any of the packages above.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2025-01-10 7:50 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-10 15:00 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2025-01-22 14:07 ` Andreas Enge
2025-01-22 15:20 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
1 sibling, 1 reply; 9+ messages in thread
From: Andreas Enge @ 2025-01-22 14:07 UTC (permalink / raw)
To: Nicolas Goaziou
Cc: Felix Lechner via Development of GNU Guix and the GNU System distribution.,
Felix Lechner
Hello,
Am Fri, Jan 10, 2025 at 08:50:02AM +0100 schrieb Nicolas Goaziou:
> It is not the case anymore. However, Andreas Enge (Cc’ed) prefers to
> keep it as a no-brainer for anyone who wants to compile TeX documents
> and can afford the download cost. I’d love to get feedback about the
> comparison between using `texlive' and `texlive-scheme-full', as
> I believe the latter can satisfy that user profile.
these are interesting questions, and I thought I would give it a try
again.
My workflow when updating Guix is as follows:
I have a local copy of the 4GB file texlive-20240312-texmf.tar.xz in my
home directory, which I put into the store with "guix download". Then
"guix shell -D texlive" creates the texlivetexmf package locally while
downloading the binaries from the substitute server, and
"guix build texlive" finishes the process. It takes maybe half an hour
(I will have to measure next time I try it), and of course is a huge
waste of disk space: one 4GB copy in $HOME, one in the store; and only
then the usable unpacked data in the texlivetexmf package. But notice
that it requires no download of the texlive data. (Space and time
consumption have become much worse when texlivetexmf started to be
grafted, at some point in time: now there is yet another 4GB copy, or
worse, since in the package the data is uncompressed; and going through
it all takes quite a bit of time. But we can imagine doing an ungrafting
run.)
I tried texlive-scheme-full in the past, and it is not a real
alternative; as far as I remember, it took hours before I stopped it.
First of all, it needs to download the 4GB of data packages. And even
with a high-bandwidth Internet connection, the latency when downloading
thousands of packages is just too much. So this option is more
theoretical than practical.
A manageable alternative is to use "texlive-scheme-medium", plus a few
extra packages. When installing it, it fills the screen with hundreds of
lines of package names; and it takes quite a while:
real 21m39,704s
user 3m52,964s
sys 0m2,591s
This is although my download speed is somewhere between 2MB/s and
3MB/s, so it is really the latency for the big number of packages that
poses problems. But it is comparable to building texlivetexmf from
source. In my case, to compile my sample document, I needed more
packages: texlive-biblatex texlive-biblatex-software (hello, Software
Heritage!) texlive-xurl texlive-todonotes texlive-pgfplots, but these
are determined easily as they are just packages included with \usepackage
that are not found, and the Guix package name is just
(string-append "texlive-" tex-package-name)
So to conclude, I think using texlive-scheme-medium plus extra packages
is a real alternative, while texlive-scheme-full will never be one.
Or is there something between texlive-scheme-medium and
texlive-scheme-full?
Or something smaller than texlive-scheme-medium that still fulfills most
use cases with a few (more) extra packages?
Or a collection of texlive-collection-* that provides a good user
experience (on their own, or with a texlive-scheme-something to start it
off)?
I would be interested in hearing about other people's practices and
experiences.
Andreas
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2025-01-22 14:07 ` Andreas Enge
@ 2025-01-22 15:20 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-22 16:50 ` Andreas Enge
0 siblings, 1 reply; 9+ messages in thread
From: Nicolas Goaziou via Development of GNU Guix and the GNU System distribution. @ 2025-01-22 15:20 UTC (permalink / raw)
To: Andreas Enge
Cc: Felix Lechner via Development of GNU Guix and the GNU System distribution.,
Felix Lechner
Hello,
Andreas Enge <andreas@enge.fr> writes:
> My workflow when updating Guix is as follows:
> I have a local copy of the 4GB file texlive-20240312-texmf.tar.xz in my
> home directory, which I put into the store with "guix download". Then
> "guix shell -D texlive" creates the texlivetexmf package locally while
> downloading the binaries from the substitute server, and
> "guix build texlive" finishes the process.
That’s tantamount to cheating! It is smart, but since Guix provides
a `texlive' package, users are expected to be able to "guix install" it.
They will have to retrieve the 4GB tarball first.
> I tried texlive-scheme-full in the past, and it is not a real
> alternative; as far as I remember, it took hours before I stopped it.
> First of all, it needs to download the 4GB of data packages.
Note that, theoretically, it shouldn’t download 4GB in the first place,
because the largest part of it is documentation, living in separate
outputs. Unfortunately, due to grafting, I think everything is pulled,
which defeats having separate outputs.
> A manageable alternative is to use "texlive-scheme-medium", plus a few
> extra packages. When installing it, it fills the screen with hundreds of
> lines of package names; and it takes quite a while:
> real 21m39,704s
> user 3m52,964s
> sys 0m2,591s
> This is although my download speed is somewhere between 2MB/s and
> 3MB/s, so it is really the latency for the big number of packages that
> poses problems. But it is comparable to building texlivetexmf from
> source. In my case, to compile my sample document, I needed more
> packages: texlive-biblatex texlive-biblatex-software (hello, Software
> Heritage!) texlive-xurl texlive-todonotes texlive-pgfplots, but these
> are determined easily as they are just packages included with \usepackage
> that are not found, and the Guix package name is just
> (string-append "texlive-" tex-package-name)
>
> So to conclude, I think using texlive-scheme-medium plus extra packages
> is a real alternative, while texlive-scheme-full will never be one.
>
> Or is there something between texlive-scheme-medium and
> texlive-scheme-full?
> Or something smaller than texlive-scheme-medium that still fulfills most
> use cases with a few (more) extra packages?
> Or a collection of texlive-collection-* that provides a good user
> experience (on their own, or with a texlive-scheme-something to start it
> off)?
FWIW, I think texlive-scheme-* packages are opinionated collections that
have no other purpose than recreating past TeX distributions. One should
only rely on texlive-collection-* packages.
What collection to elect is another topic. If space is not an issue, and
you don’t want to bother with optimized dependencies,
texlive-collection-latexextra (1GB, around 1.4k packages) provides
almost everything needed to compile LaTeX documents, including PGF/TikZ
(no PSTricks, that’s in another collection). You may also want to add
texlive-babel-XXX for non-English languages.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Thoughtful updates to TexLive
2025-01-22 15:20 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
@ 2025-01-22 16:50 ` Andreas Enge
0 siblings, 0 replies; 9+ messages in thread
From: Andreas Enge @ 2025-01-22 16:50 UTC (permalink / raw)
To: Nicolas Goaziou
Cc: Felix Lechner via Development of GNU Guix and the GNU System distribution.,
Felix Lechner
Am Wed, Jan 22, 2025 at 04:20:01PM +0100 schrieb Nicolas Goaziou:
> > I have a local copy of the 4GB file texlive-20240312-texmf.tar.xz in my
> > home directory, which I put into the store with "guix download".
> That’s tantamount to cheating! It is smart, but since Guix provides
> a `texlive' package, users are expected to be able to "guix install" it.
> They will have to retrieve the 4GB tarball first.
Definitely! But in this way, one only needs to retrieve it once per
year, and not every time the texlive package gets updated (which happens
amazingly often) after the store has been cleaned with a "guix gc".
Andreas
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-01-22 16:51 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-26 1:13 Thoughtful updates to TexLive Felix Lechner via Development of GNU Guix and the GNU System distribution.
2024-10-26 8:36 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-10 7:01 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2025-01-10 7:50 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-10 15:00 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2025-01-10 16:09 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-22 14:07 ` Andreas Enge
2025-01-22 15:20 ` Nicolas Goaziou via Development of GNU Guix and the GNU System distribution.
2025-01-22 16:50 ` Andreas Enge
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).