unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* prevent gc of texlive-...-texmf.tar.xz
@ 2020-02-12 12:53 Thomas Danckaert
  2020-02-12 18:08 ` zimoun
  2020-02-12 20:45 ` Leo Famulari
  0 siblings, 2 replies; 5+ messages in thread
From: Thomas Danckaert @ 2020-02-12 12:53 UTC (permalink / raw)
  To: help-guix

Hi,

I have limited space on my root file system, and therefore need to 
run 'guix gc' regularly.  One problem with that is that the texlive 
source package (currently 
/gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz) 
regularly gets deleted that way.  When I upgrade after running guix 
gc, I often find I need to download this very large (2.5G) tarball 
again.

How do I add a gc root for this tarball (or is that a bad idea)?  I 
tried 'guix build texlive --source --root ...', but I get a warning 
'package texlive has no source'.

All ideas are welcome!

Thomas

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

* Re: prevent gc of texlive-...-texmf.tar.xz
  2020-02-12 12:53 prevent gc of texlive-...-texmf.tar.xz Thomas Danckaert
@ 2020-02-12 18:08 ` zimoun
  2020-02-12 20:45 ` Leo Famulari
  1 sibling, 0 replies; 5+ messages in thread
From: zimoun @ 2020-02-12 18:08 UTC (permalink / raw)
  To: Thomas Danckaert; +Cc: help-guix

Hi,

On Wed, 12 Feb 2020 at 13:54, Thomas Danckaert <post@thomasdanckaert.be> wrote:

> I have limited space on my root file system, and therefore need to
> run 'guix gc' regularly.  One problem with that is that the texlive
> source package (currently
> /gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz)
> regularly gets deleted that way.  When I upgrade after running guix
> gc, I often find I need to download this very large (2.5G) tarball
> again.

What does it mean "upgrade after running guix gc"?

If 'texlive' is installed in a profile, "guix gc" cannot delete it. Or
I miss a point.

Do you mean that you work only with temporary profile ("guix
environment") and you garbage collect each time you have ended with
this temporary profile and you create often the same temporary profile
(say '--ad-hoc texlive')? Is it what you mean?


However, note that 'texlive' could even be downloaded twice, I guess,

--8<---------------cut here---------------start------------->8---
$ guix package -i texlive -p /tmp/texlive
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following package will be installed:
   texlive      20180414
/gnu/store/wlba9v03ypi0z5qz7p89sa0w12lh37zb-texlive-20180414

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/4zlvfr2qv4ky1r7ski9inpaixqx7ingz-profile.drv
   /gnu/store/2s9f925wx29p75i6yzv3svki6ldb3ngp-texlive-texmf-20180414.drv
2,595.2 MB will be downloaded:
   /gnu/store/5aq60gx42sfs5drigb5g7fpa7fh1pq4z-texlive-20180414
   /gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz
The following grafts will be made:
   /gnu/store/al6wnvipcns3pkz4d9j1xg40cf9vg9qh-texlive-20180414.drv
   /gnu/store/3jpxlpgjabr5ilrn8pisl07sl2vsns7a-texlive-texmf-20180414.drv
The following profile hooks will be built:
   /gnu/store/03ry4vji3qz300wbx2a71bq6bilx2c50-ca-certificate-bundle.drv
   /gnu/store/cbjz3ydan5ach8vzcbmvwa92zqb4f0nn-manual-database.drv
   /gnu/store/i5j5896wcslgrz6nx8jd8hfw50qkwkhw-fonts-dir.drv
   /gnu/store/kik4kvwv7s3hpb0k5sbzv3dc97fwh1bb-info-dir.drv

downloading from
https://ci.guix.gnu.org/nar/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz...
 texlive-20180414-texmf.tar.xz  2.42GiB
               10.2MiB/s 04:03 [##################] 100.0%

downloading from
https://ci.guix.gnu.org/nar/lzip/zkcd3i5r98rh36cp9is1l5griiyrgvap-texlive-texmf-20180414...
 texlive-texmf-20180414  2.38GiB

[...]
 --8<---------------cut here---------------end--------------->8---


> How do I add a gc root for this tarball (or is that a bad idea)?  I
> tried 'guix build texlive --source --root ...', but I get a warning
> 'package texlive has no source'.

A quick workaround could be to create your own channel containing for
example this definition:

--8<---------------cut here---------------start------------->8---
(define-public my-texlive
  (package
    (inherit texlive)
    (version "mine")
    (source (origin
              (method url-fetch)
              (uri "file:////your/local/path/to/texlive-20180414-texmf.tar.xz")
              (sha256
               (base32
                "xxxx"))))))
--8<---------------cut here---------------end--------------->8---

So, you download once the texlive archive and you locate it somewhere
on your local disk. Then each time, you run "guix install
texlive@mine", Guix will compute the derivations etc. and will fetch
the source directly from your local disk.


It does not answer your question for protecting from GC but it should
avoid to download it again and again when you did a mistake with "guix
gc".



Hope that helps,
simon

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

* Re: prevent gc of texlive-...-texmf.tar.xz
  2020-02-12 12:53 prevent gc of texlive-...-texmf.tar.xz Thomas Danckaert
  2020-02-12 18:08 ` zimoun
@ 2020-02-12 20:45 ` Leo Famulari
  2020-02-13 16:21   ` Thomas Danckaert
  1 sibling, 1 reply; 5+ messages in thread
From: Leo Famulari @ 2020-02-12 20:45 UTC (permalink / raw)
  To: Thomas Danckaert; +Cc: help-guix

On Wed, Feb 12, 2020 at 01:53:45PM +0100, Thomas Danckaert wrote:
> Hi,
> 
> I have limited space on my root file system, and therefore need to run 'guix
> gc' regularly.  One problem with that is that the texlive source package
> (currently
> /gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz)
> regularly gets deleted that way.  When I upgrade after running guix gc, I
> often find I need to download this very large (2.5G) tarball again.
> 
> How do I add a gc root for this tarball (or is that a bad idea)?  I tried
> 'guix build texlive --source --root ...', but I get a warning 'package
> texlive has no source'.

The simplest way to make a gcroot is to symlink the store item into
/var/guix/gcroots.

In fact, I've had this exact symlink for a few years now:

lrwxrwxrwx 1 root root   73 Aug  5  2017 texlive-20170524-texmf.tar.xz -> /gnu/store/5rnvmy02yazy8iwaa91kijbbqp8qmflz-texlive-20170524-texmf.tar.xz

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

* Re: prevent gc of texlive-...-texmf.tar.xz
  2020-02-12 20:45 ` Leo Famulari
@ 2020-02-13 16:21   ` Thomas Danckaert
  2020-02-23 17:19     ` Andreas Enge
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Danckaert @ 2020-02-13 16:21 UTC (permalink / raw)
  To: Leo Famulari; +Cc: help-guix

On 2020-02-12 21:45, Leo Famulari wrote:
> The simplest way to make a gcroot is to symlink the store item into
> /var/guix/gcroots.
> 
> In fact, I've had this exact symlink for a few years now:
> 
> lrwxrwxrwx 1 root root   73 Aug  5  2017 texlive-20170524-texmf.tar.xz
> ->
> /gnu/store/5rnvmy02yazy8iwaa91kijbbqp8qmflz-texlive-20170524-texmf.tar.xz

Ah, thanks, that should do it!  I wondered if I was the only one with 
this problem.

@Zimoun: texlive-texmf.tar.xz is only a build input of texlive, so it 
can be gc'ed even when texlive is installed in  a profile.  As far as I 
remember, updates to texlive often seem to require the original texmf 
tarball and apply patches to it (not sure how this works precisely -- 
somehow there are no substitutes for the patched/updated version of 
texlive-texmf?).  Interesting that you saw 2 downloads of texlive-texmf 
(a 2.5GB nar file *and* the 2.5GB original tarball?).  I don't 
understand why that happens (but even in this case, eliminating at least 
the tar.xz download saves a lot of time and bandwidth).

Thank you!

Thomas

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

* Re: prevent gc of texlive-...-texmf.tar.xz
  2020-02-13 16:21   ` Thomas Danckaert
@ 2020-02-23 17:19     ` Andreas Enge
  0 siblings, 0 replies; 5+ messages in thread
From: Andreas Enge @ 2020-02-23 17:19 UTC (permalink / raw)
  To: Thomas Danckaert; +Cc: help-guix

Hello,

On Thu, Feb 13, 2020 at 05:21:48PM +0100, Thomas Danckaert wrote:
> As far as I remember,
> updates to texlive often seem to require the original texmf tarball and
> apply patches to it (not sure how this works precisely -- somehow there are
> no substitutes for the patched/updated version of texlive-texmf?).

as to why this happens, here are the relevant lines of the package recipe
for texlive-texmf, an input to texlive:
   (arguments
    `(
      ;; This package takes 4 GiB, which we can't afford to distribute from
      ;; our servers.
      #:substitutable? #f

In fact, texlive-texmf is essentially a data package: its output is more or
less the same as the input tarball, with a bit of not very heavy processing
done in-between. So it helps our servers if users do not download the output
from us, but the input from the source servers, and then do the bit of
processing themselves.

Andreas

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

end of thread, other threads:[~2020-02-23 17:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-12 12:53 prevent gc of texlive-...-texmf.tar.xz Thomas Danckaert
2020-02-12 18:08 ` zimoun
2020-02-12 20:45 ` Leo Famulari
2020-02-13 16:21   ` Thomas Danckaert
2020-02-23 17:19     ` Andreas Enge

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).