Hi,

On Mon, 08 Dec 2025 12:27:03 +0100
Cayetano Santos <[email protected]> wrote:

>   I’ve been recently thinking about how Guix relates to sobriety, its
>   ecological impact, and more specially, on how Guix envisions to
> afford possible limitations on available resources in the times to
> come. I’m thinking here mainly about bandwidth, storage resources and
> energy consumption, but not only.

I agree that spending time to make storage smaller is useful. 

But about the energy consumption I don't think we are on the right
track, quite the opposite.

I've a completely different option in mind: Guix enables to conduct
testing and bisecting more easily.

And my idea would be to use Guix as a shared/distributed resource to
make sure old hardware continue working, so we do need good testing, at
least for the hardware related parts.

And here we probably need more storage not less in the builders to be
able to keep more substitutes to make bisecting faster, or more
builders that are distributed and enabled to enable people to still
have substitute for older revisions and through that be able to bisect
issues.

Why?
----

Changing computer is extremely wasteful and at least with personal
computers almost most the environmental cost is related to hardware
manufacturing. This is even recognized by governments like the French
government.

Making new hardware also requires mining, and right now there is way
too much demand on minerals. This pressure create wars like in Congo.
In turn this increases violence up to the point where communities
living in the zones devastated by mining can't bear the cost anymore
(the number of death is order of magnitude higher than what it used to
be, so it's really catastrophic).

When computers stop working, people are forced to change, and this
means making new hardware and somehow being trap in a cycle where we
have to renew again and again the hardware.

So more testing would be good, but this also goes hand in hand with
making the use of old hardware desirable and boot software
distributions like Canoeboot, GNU Boot, etc do help to achieve that.

In addition, recently also Tanguy found that armv7h was still
working in Guix[1]. This affect *a lot* of devices, so we could simply
add as much armv7h devices as we can upstream to facilitate testing and
fixing.

But all that also requires to spend time to actually report and fix
issues upstream.

For instance right now, the graphical stack is a mess for older
computers:

- On a ThinkPad X200, dual screen is broken with GDM and Xorg (and
  probably wayland too).

- Nvidia kepler GPUs used to work stopped being reliable. They
  make Xorg and/or wayland crash. Personally I've some NV40 and NV50
  and that stopped working fine since ages.

And we badly need help to fix all that mess, but I'm unsure if they are
people that really care about that.

So here it would be good to at least not have more problems to care
about, like testing being worse because on the surface it would appear
that it would be ecologically bad, because there were no consideration
of the bigger picture.

So maybe some notoriously long tests (NSS?) that don't have any impact
on hardware support could be made less long, because if we can't store
the substitutes, that could actually help with bisecting issues as
bisects would be faster, but I think that in general we do need
good testing, especially for hardware related parts.

Note that we also need time to fix things, especially to reserve time
to make sure old hardware keeps working, so not wasting too much time
with other issues also helps here, and testing help in that regard.

An example of issue is that armv7h was broken probably for years in
Guix but it got repaired at some point.

And note that while stable distributions like Trisquel are not affected
yet by some of these issues (like the mesa issues described above),
relying on it is not a solution at all here because we need to catch
issues as soon as possible, bisect them and fix them. 

Parabola also can't help much even if it is rolloing release, as it is
not possible to bisect anything with Parabola because we can't go back.

Since doing all that work takes resources and that resources do not
magically appear out of the blue, I'm also thinking of creating a
business to do exactly that: to make sure specific old hardware
continue working, and we'd try to do that based on donations. So it'll
be a bit like Linaro but for people, not companies.

And here the problem is also that we are probably very few that really
care about that and we can't alone bear the increasing cost of being
left aside.

For instance, I kept using i686 for years after everyone stopped just
to make sure we could continue supporting old hardware but I had to
stop because it became too much to bear alone.

So here if the same thing happens for ThinkPad X200 and so on, because
testing isn't sufficient anymore, I've no clue whatsoever on what to do
(stop using computers?) because I also depend on these old computers in
many different ways.

My only excuse for new buying computers is precisely to make sure things
work upstream to make sure people can continue using a specific
computers for as long as possible. For ARM devices it's probably worth
the cost of buying one more computer, as otherwise all the other people
that bought them are going to throw them away as soon as the vendor
images stop working because the vendor don't update them forever.

References:
-----------
[1]https://codeberg.org/guix/guix/pulls/4960

Denis.

Attachment: pgpZwE5CD9_MM.pgp
Description: OpenPGP digital signature

Reply via email to