GNU bug report logs - #65550
Don't add propagated-inputs for all outputs

Previous Next

Package: guix-patches;

Reported by: 宋文武 <iyzsong <at> envs.net>

Date: Sat, 26 Aug 2023 11:37:02 UTC

Severity: normal

Done: 宋文武 <iyzsong <at> envs.net>

Bug is archived. No further changes may be made.

Full log


Message #29 received at 65550 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 65550 <at> debbugs.gnu.org, 宋文武 <iyzsong <at> member.fsf.org>
Subject: Re: [bug#65550] [PATCH] profiles: Don't propagate inputs for
 non-development packages.
Date: Wed, 30 Aug 2023 18:55:20 +0800
Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:

> Am Dienstag, dem 29.08.2023 um 18:24 +0800 schrieb 宋文武:
>> [...]
>> If put headers and other development files into a "dev" output, then
>> those 300MiB can be saved (won't need to be substituted if
>> substitutes available).  Note that use a "include" output won't help
>> here if you leave pkg-config files in "lib", since pkg-config files
>> need reference its include and binaries need reference its libraries.
>> 
>> So it seems to me a "dev" output is unavoidable, also both Debian and
>> Alpine Linux use '-dev' packages for the same reason, it should be
>> familiar to learn..
> There is little point in a dev package when you blow up its size by
> propagating inputs…

Well propagated-inputs won't increase size of a package, they bring some
of its inputs when build other one to remove the need to list those some
inputs as inputs of the other one.

Consider gtk+ and mousepad:
  gtk+ propagated cairo, freetype, pango, etc.
  
  so I don't need add those inputs to mousepad, and if gtk+ doesn't
  propagated them then I must add them to mousepad because those are
  actually needed (because pkg-config check them and need link flags
  from those dependencies of gtk+).

But for runtime, when substitute of mousepad is available, if we split
thoes packages with "dev" outputs, guix size mousepad would still be
something like:

...
/gnu/store/xxxx-mesa-23.1.4
/gnu/store/xxxx-freetype-2.13.0
/gnu/store/xxxx-gtk+-3.24.37
...

It won't include any "dev" output of its dependencies packages, since
development files are not referenced by mousepad's binary, so the size
of headers and development files is saved (won't be substituted).

Only when substitute of mousepad is not available, you'll start by download
mesa-23.1.4-dev, gtk+3.24.37-dev, etc.  And after build, those "dev"
outputs can be GCed immediately.


Hope it's clear now!




This bug report was last modified 1 year and 255 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.