all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: indieterminacy <indieterminacy@libre.brussels>
To: kiasoc5 <kiasoc5@disroot.org>
Cc: "Ludovic Courtès" <ludo@gnu.org>,
	"pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de>,
	guix-devel@gnu.org
Subject: Re: Packages grow, no longer fit on a 💾
Date: Wed, 18 Jan 2023 09:43:38 +0100	[thread overview]
Message-ID: <aef58fd2a67e7d8561833368ed862630@libre.brussels> (raw)
In-Reply-To: <7e2f18d8-98e6-335e-bcef-8882f9a8f336@disroot.org>

On 18-01-2023 03:41, kiasoc5 wrote:
> On 1/17/23 11:25, Ludovic Courtès wrote:
>> 
>> There are slight increases of each and every package, and there are 
>> also
>> new big dependencies being pulled in for what, from a distance, 
>> doesn’t
>> really add functionality.
>> 
>> Examples include libgccjit in Emacs and mozjs in polkit.
>> 
>> In a way, that’s the “unavoidable” (?) evolution of software, and the
>> problem extends largely beyond Guix.
>> 
>> Still, even compared to contemporary distros, we’re doing pretty bad.
>> Debian most likely does better, and people often cite Alpine as the
>> distro providing the smallest packages.  Do we have figures?  What can
>> we learn from them?  What tradeoffs to they make?
> 
> We can achieve smaller packages by splitting them more. Here is my 
> guess of the amount of package splitting by some distros, from least to 
> most:
> 
> Slackware < Arch < Fedora < Debian < Alpine
> 
> - Slackware I believe does not split anything, everything is included.
> - Arch splits packages on a case by case basis (QEMU for example)
> - Fedora typically splits packages into package X and package X-devel, 
> where X contains development headers, but usually not more.
> - Debian splits packages more aggressively. For example libreoffice is 
> split into 6 packages, 1 for each suite (draw, write, etc). And 
> programs may be separated from their outputs (eg zstd and libzstd are 
> split)
> - Alpine splits even more aggressively, they also split out man pages 
> and shell completions.
> 
> We may wish to utilize multiple package outputs to a greater extent. 
> Some Guix packages already have bin, doc, and lib outputs. We could 
> make it a policy to split this for all packages.
> 
> I also wonder how much of the space is taken by debug output. Would 
> making graft derivations substitutable help?
> 
> https://lists.gnu.org/archive/html/help-guix/2022-10/msg00225.html

I think Guix is missing a trick here.

All this effort to chain everything with inputs and yet we are using 
conventional 'package-boxes'.

Why not 'Dutch Auction' it and set a maximum amount of inheritants 
within one package file and then iteratively lower the threshhold (over 
time!) until there are noises in the guix-devel ML
that this principal is being taken far.

The outcome could allow more of a layers and multifaceted representation 
of tools and applications that give more of a distinction between lower 
level utilities and applications.


-- 
Jonathan McHugh
indieterminacy@libre.brussels


  reply	other threads:[~2023-01-18  8:44 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-14 22:07 Packages grow, no longer fit on a 💾 Ludovic Courtès
2023-01-15  5:51 ` kiasoc5
2023-01-15  8:07 ` Liliana Marie Prikler
2023-01-16  2:09   ` Maxim Cournoyer
2023-01-16  5:17     ` Liliana Marie Prikler
2023-01-16 13:27       ` Maxim Cournoyer
2023-01-17 16:15     ` Ludovic Courtès
2023-01-15 12:56 ` Akib Azmain Turja
2023-01-15 17:00 ` pelzflorian (Florian Pelz)
2023-01-17 16:25   ` Ludovic Courtès
2023-01-17 23:05     ` zimoun
2023-01-17 23:49       ` zimoun
2023-01-18 21:04         ` Grandfathering store paths considered harmful (was: Packages grow, no longer fit on a 💾) Liliana Marie Prikler
2023-01-19 14:28           ` Grandfathering store paths considered harmful Ludovic Courtès
2023-01-19 18:10             ` Liliana Marie Prikler
2023-01-19 14:14       ` Packages grow, no longer fit on a 💾 Ludovic Courtès
2023-01-20 10:51         ` Simon Tournier
2023-01-20 14:54           ` Maxim Cournoyer
2023-01-18  2:41     ` kiasoc5
2023-01-18  8:43       ` indieterminacy [this message]
2023-01-19 14:32       ` Ludovic Courtès
2023-01-20 11:06         ` Simon Tournier
2023-01-17  8:06 ` Efraim Flashner
2023-01-17 16:18   ` Ludovic Courtès
2023-01-17 21:54     ` John Kehayias
2023-01-19 15:30       ` Katherine Cox-Buday
2023-01-17 15:06 ` Simon Tournier
2023-01-19 14:34   ` Ludovic Courtès
2023-01-18 20:44 ` Paul Jewell via Development of GNU Guix and the GNU System distribution.
2023-01-19 13:04   ` Joshua Branson
2023-01-19 14:37   ` Ludovic Courtès
2023-01-19 16:12     ` Katherine Cox-Buday
2023-01-19 18:07   ` Akib Azmain Turja
2023-01-20 15:30     ` Csepp
2023-01-20 17:34       ` Akib Azmain Turja
2023-01-21 12:29         ` bokr
2023-01-21 15:55           ` Akib Azmain Turja
2023-01-20 12:11   ` Simon Tournier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aef58fd2a67e7d8561833368ed862630@libre.brussels \
    --to=indieterminacy@libre.brussels \
    --cc=guix-devel@gnu.org \
    --cc=kiasoc5@disroot.org \
    --cc=ludo@gnu.org \
    --cc=pelzflorian@pelzflorian.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.