On 19-08-2022 02:20, Aleix Conchillo Flaqué wrote: > So, what do you think would be the way to proceed in order to include > a base64 implementation in Guile itself? > > For example: > > 1. Add (ice-9 base64) (or (encoding base64)) to Guile and let new > projects and existing projects to update with conditional module > loading to support old versions of Guile. > 2. Do unbundling in Guix packages both for projects that have not > updated upstream and for projects in (1). The unbundling would be done > by pointing to Guix's (or guile-gcrypt) base64 implementation, or is > there a way they could point to Guile's implementation? If the canonical location of base64 becomes Guile itself instead of guile-gcrypt, then it needs to be pointed at Guile's base64. Likewise, Guix' base64 implementation would need to be replaced by Guile's, with a fallback. I don't see why we would point to Guix' implementation, it's missing some bug fixes. > > Does that make sense or am I still missing something (I'm about to > catch a cold so my brain is not working quite well this week)? > Originally, I was thinking only in (1). Except for the remark about (1), I think so.  I think the following list is a bit more clear though: 1. Add (ice-9 base64) to Guile (or another name (encoding base64)). 2. Inform a few upstreams that used to include a copy of base64 that it is now part of Guile itself -- those upstreams can then remove their local copy and use Guile's base64, and do conditional module loading if they cannot increase their minimal Guile version yet. 3. In Guix, we will have to update Guile to a new version that has the base64 module and remove the local fallback copies.  And if upstream refuses patches to use Guile's base64 (maybe with a fallback), then it will need to be patched locally in Guix. On (2): I don't think it's necessary to contact _all_ the upstreams, though to give a good example it would be nice to contact some of them. (3) is a Guix concern, not really a Guile concern. Greetings, Maxime.