> Then, if I understood correctly, IMO I would say Guile should not > really care about Guix's bundling/unbundling. That is, adding (ice-9 > base64) (or however we want to call it... maybe (encoding base64) > following Golang and Guile's (web ....) module) should be totally > independent of Guix. So, if we add (ice-9 base64) to Guile then Guix > should figure out what to do with it, but it's Guix's concern not Guile's. It's not some Guix-specific quirk. It's the same for at least Debian. It benefits not only Guix itself but all users of the software: > [...] allows [...] to make transverse changes > such as applying security updates for a given software package in a > single place and have them affect the whole system—something that > bundled copies prevent. ... that was written with Guix in mind, but it applies to every distribution and everyone. Besides, your goal appears to be to unbundle the base64 into a single location (as a module of Guile), if we do that I think we should go all the way -- just adding it to Guile increases bundling instead of decreasing bundling, only if the various upstreams are modified to unbundle and use the new location then the unbundling is completed. On 18-08-2022 02:09, Aleix Conchillo Flaqué wrote: > About Guix's unbundling (maybe that's something that should go on > Guix's mailing list), I don't see why, there's nothing to write about except "oops some packages are bundling base64, let's unbundle those", and for unbundling those, it seems more practical to write about that here on guile-devel. Also I noticed I sent some messages to guix-devel instead of guile-devel, correcting now. > I don't think currently there's any unbundling for base64 modules or > at least not in a package I maintain guile-jwt (guile-jwt bundles > base64). And probably there's no unbundling because there's no > canonical implementation? Even if there was a canonical > implementation, how would that look like in Guix's guile-jwt package? > What would the snippet actually do? Currently, it's not done yet, presumably for that reason and maybe also due to nobody having noticed it yet? How it would look like, for upstreams that refuse to unbundle or are unresponsive: #~(begin         (delete-file "local/copy/of/base64.scm")         [also remove it from the Makefile.am]         (substitute* (find-files "." "\\.scm$")           (("(\\local base64 module\\)") "(gcrypt base64)"))) For responsive upstreams that do not mind these kind of improvements, there is a preference for submitting a patch upstream -- that way, everyone benefits, not only Guix. Greetings, Maxime.