Subject: bug#48024: glib-2.62.6 build fails i686

From: Mark H Weaver <[email-masked]>
Date: Thu, 06 May 2021 04:46:10 -0400

Hi,

Bone Baboon <[email-masked]> writes:

> Thank you for sharing this.  Also thank you for the warning about
> 'significant caveats and "rough edges"'.

The "rough edges" could surely be smoothed out with some effort.  I
haven't been motivated to work on it, partly because until recently,
I've felt quite alone in my preference for using Guix in this way.
However, you are now the second person to express interest in this in
the last couple of months.

> As a new user of Guix I think I will initially try to use the official
> Guix repository.

That's probably best for now, at least until you have a compelling
reason to do otherwise.

> However the message from Tobias Geerinckx-Rice in
> https://issues.guix.gnu.org/48213 gives me the idea that your flexible
> approach could be very useful if I find myself in a situation where I
> have an issue that will not be addressed by an upstream project and
> that has too much of a maintenance burden for Guix maintainers to take
> on.

Yes, it enables one to exercise an extraordinary amount of individual
control over one's system, while still benefitting from the work of the
larger Guix community.  Several of the commits on my private branch are
reversions of upstream changes in Guix that I disagreed with.

One more important note: regardless of whether you run Guix from a git
checkout or use the official 'master' branch, if you build everything
locally, then it's important to pass "--gc-keep-derivations=yes" and
"--gc-keep-outputs=yes" to the Guix daemon.

Those flags change the way the Guix garbage collector operates, such
that more store items are retained.  I've forgotten the precise details,
but roughly, these flags cause not only the run-time requirements of the
currently-installed software to be retained, but also the *build*
requirements of that software.  Without these flags, "guix gc" will
delete far too much, and you'll likely end up having to rebuild a great
many packages that are needed at build time only.

I have something close to this in the 'services' field of my OS config:

--8<---------------cut here---------------start------------->8---
  (modify-services %desktop-services
    (guix-service-type config =>
                       (guix-configuration
                         (inherit config)
                         (use-substitutes? #f)
                         (authorize-key?   #f)
                         (authorized-keys '())
                         (substitute-urls '())
                         (extra-options '("--gc-keep-derivations=yes"
                                          "--gc-keep-outputs=yes")))))
--8<---------------cut here---------------end--------------->8---

    Regards,
      Mark

-- 
Disinformation flourishes because many people care deeply about injustice
but very few check the facts.  Ask me about <https://stallmansupport.org>.