Subject: bug#47201: sbcl-cl-webkit doesn't protect webkitgtk from garbage collection

From: Guillaume Le Vaillant <[email-masked]>
Date: Wed, 17 Mar 2021 09:49:52 +0100

Leo Famulari <[email-masked]> skribis:

> On Tue, Mar 16, 2021 at 11:40:05PM +0000, pkill9 wrote:
>> I have nyxt installed, which has sbcl-cl-webkit as an input, which has
>> webkitgtk as an input, and recently it produced an error which was
>> fixed by building webkitgtk, so it wasn't in the store.
>> 
>> sbcl-cl-webkit won't be deleted by `guix gc`, however webkitgtk will
>> be, so it seems it's not protected from garbage collection by
>> sbcl-cl-webkit. Am I wrong in this?
>
> You can check on this with the `guix gc` tool.
>
> Specifically, like this:
>
> $ guix gc --references $(guix build sbcl-cl-webkit)
>
> That will show you the "store references" of the built sbcl-cl-webkit
> package. These store references are strings that refer to files in
> /gnu/store, found by scanning the result of building sbcl-cl-webkit. 
>
> These references are recorded in the Guix database at
> '/var/guix/db/db.sqlite'.
>
> The built package must keep references to its runtime dependencies, or
> they will be subject to garbage collection, and that would represent a
> bug in the package definition.
>
> Does that make sense?

I think this issue is identical to what has been reported a few years
ago in bug#33848 (https://issues.guix.gnu.org/33848) which is still
open.
The binaries created by SBCL store some pathnames as UTF-32 strings, and
the reference scanner of Guix doesn't support that, so it misses some
references.