From: Tobias Geerinckx-Rice <me@tobias.gr>
To: "Wiktor Żelazny" <wz@freeshell.de>
Cc: help-guix@gnu.org
Subject: Re: "libc.so.6: version `GLIBC_2.33' not found" with guix time-machine --channels
Date: Sun, 09 Jan 2022 19:09:21 +0100 [thread overview]
Message-ID: <874k6cspts.fsf@nckx> (raw)
In-Reply-To: <20220109175706.e75fbkahrnzajacv@wzguix>
[-- Attachment #1: Type: text/plain, Size: 2612 bytes --]
Hi Wiktor,
Regarding only
> in an attempt to force removal of old store items in hope that
> they
> would be rebuilt and relinked to the new glibc. Unfortunately,
> the
> problem persists.
which reveals a fundamental misunderstanding about Guix that could
prevent you from grokking & fully enjoying it, which is why it's
so important to correct.
I can't improve on Leo's excellent answer, but I can certainly
repeat it, poorly, using different words!
Wiktor Żelazny 写道:
> Thank you for your prompt reply. What about a situation where
> glibc is
> not an explicit package input? I suspect it is determined by the
> build
> system definition in such a (common) scenario. I further assume
> that
> when one runs
>
> guix time-machine --commit=xxx -- environment pkg
>
> the pkg definition corresponding to the Guix version xxx is
> used, but a
> *current* Guix binary is used to execute the environment.
What you describe sounds less like Guix, than how the average
source-based package manager works today: using whatever random
components and GCC version it happens to find lying around on the
host system at build time.
Guix package builds are completely self-contained, and specify
their complete build environment (like a closure). This
environment is in effect frozen in time and will never change.
‘guix time machine --commit=COMMIT -- COMMAND’ builds guix@COMMIT,
and then everything to the right of the ‘--’ happens inside
guix@COMMIT, i.e., ‘the past’. There is no link to the present.
There is no way for an old package built with time-machine to link
to the new glibc because the new glibc didn't *exist* in ‘the
past’, which is all the build ‘sees’. Assuming package P is
bit-reproducible today, building it with guix time-machine in 25
years will produce a binarily-exact copy.
> I’ve got this intuition that the current binary may assume the
> build
> system involving a new glibc, whereas the cached xxx version of
> pkg
> can be from the time when Guix defined a build system as using
> an old
> glibc.
Understandable intuition coming from other systems, but not valid
for Guix.
Your kernel analogy is more accurate: somehow, once released from
its functionally pure build environment, package P is being fed a
glibc it was never compiled against.
There are many ways this could happen and there's (obviously) a
bug here, which can be fixed, but rebuilding old packages in the
hopes to change them is a complete waste of time.
Kind regards,
T G-R
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]
next prev parent reply other threads:[~2022-01-09 18:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-08 15:11 "libc.so.6: version `GLIBC_2.33' not found" with guix time-machine --channels Wiktor Żelazny
2022-01-08 18:50 ` Leo Famulari
2022-01-09 17:57 ` Wiktor Żelazny
2022-01-09 18:03 ` Ricardo Wurmus
2022-01-09 18:49 ` Wiktor Żelazny
2022-02-03 14:18 ` Wiktor Żelazny
2022-01-09 19:37 ` André A. Gomes
2022-01-09 20:51 ` Ricardo Wurmus
2022-01-09 18:09 ` Tobias Geerinckx-Rice [this message]
2022-01-10 19:04 ` Wiktor Żelazny
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=874k6cspts.fsf@nckx \
--to=me@tobias.gr \
--cc=help-guix@gnu.org \
--cc=wz@freeshell.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.