From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id wGoGEAzx+2Lh/wAAbAwnHQ (envelope-from ) for ; Tue, 16 Aug 2022 21:33:32 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id UDolDwzx+2JVDwAAG6o9tA (envelope-from ) for ; Tue, 16 Aug 2022 21:33:32 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id C768F3B72E for ; Tue, 16 Aug 2022 21:33:31 +0200 (CEST) Received: from localhost ([::1]:58234 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oO1rr-0007Yp-E4 for larch@yhetil.org; Tue, 16 Aug 2022 15:04:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO1rM-0007Yg-68 for guix-devel@gnu.org; Tue, 16 Aug 2022 15:04:16 -0400 Received: from albert.telenet-ops.be ([2a02:1800:110:4::f00:1a]:58102) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oO1rJ-0007h8-66 for guix-devel@gnu.org; Tue, 16 Aug 2022 15:04:15 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by albert.telenet-ops.be with bizsmtp id 8K482800A20ykKC06K48R4; Tue, 16 Aug 2022 21:04:08 +0200 Message-ID: Date: Tue, 16 Aug 2022 21:04:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US References: <33556713-c85b-ab0f-554e-94a40f9d418e@telenet.be> From: Maxime Devos To: Guix-devel Cc: =?UTF-8?Q?Aleix_Conchillo_Flaqu=c3=a9?= Subject: Re: (ice-9 base64)? In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------5G1biIz8fyKTKAtNAKPU19ak" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1660676648; bh=uAkRPddkgsyKwDAz9vz/kprE5a5syzVC/hJCiNPmuEM=; h=Date:References:From:To:Cc:Reply-To:Subject:In-Reply-To; b=KPXnNzWcsCGGP+zBnZgCmYBJ9sGyNNnFW2nDDqF93uZt2WzSPWINZR0H1s1E6IQqp z3pJaqepEr7vwqFTW53/7uftBWeKT8KuMYvA03Qx5W68cjN5yprxOsbNZEA5xor57H sLpQLsFLXTg8maOqQN8N7u/3Xyck9BNxcFwTCNkIR9giZJJKzNUbuDJ7ebPpM9BkQw 2Lv7AQAtSZ2qsdUpeJ8hEZ9wg1npBBYVZ0oma/hyz5fsL1Tgd5ZO2ecHucHoq4GjYD tVYbwaur7ZWurw/Fx4GoCn28HAD0QhA6SLoGsa74nScIUwzuvUTUw3WxBZy4AIEBWx NqepMpr4Gs27Q== Received-SPF: pass client-ip=2a02:1800:110:4::f00:1a; envelope-from=maximedevos@telenet.be; helo=albert.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Guix-devel Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1660678411; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=23aHH4Sqyq1ZH2Kc/PpNXo+CBdY1nlMYo8ZYU4wMmW8=; b=nF/PjRsRWcwTVyT+pPT32b5Mr03J7li3hvnvza/K7a/Kh5EHxZkHhQcipbSzkelSJJVbXY 7GdCzrKt41KqA6DK7T0EaLdkYnkDzuSrBJoZkXvL4yf+RYilFt9/3ta8g+2KnJZvjxbPwT svHjKT6B2e879Va5mZBNgyV4XeOby3jsvmL+beGeEcLOEgPGIUy6PItbXqED3/pzHMvhT6 9Z/ESqlA+FoQ6SSpgc4Zl62BY5bb9Oa49Tf/8w3bDble9tQvksfEGmtRiCqEasNih4GRLx mJ9T0fdi5kndv4A+vqTGl2zPcv8FP3SAaVA9sFinqUwgS3MQd58s2u1+p9L/4Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1660678411; a=rsa-sha256; cv=none; b=bm9V7U7b8ozb9D3naHiaqyuPxFAiFvdqVplZbkgCj6WTuAqSaB/MX1A4LjivI7v9uQtZWS ExPXkdT7Ie2Ls0b2BI4IWY3lp1F/T4oyxfdHvuiidlK3zS2jFLfh9yhbN1o85PdehsYWQq zDmCMkOVDjbXMU9KhndvRjNdcQfVIb264dzFJzB9g8ZKY+KSd5L09I/jtxBU/0YJuDNw92 qz82tCATgftMzJtO1UyNFWXxbZYHBhAgiEtOEbQk5objEKU2lA1/r3b/7U/0bLZoypnM/q pC5KZPtIKzXuU+S+gAeGItSOVALeujthM7wTuOVxy1INeKG2j1XJzkT9ZNVRgg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=KPXnNzWc; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 4.54 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=KPXnNzWc; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: C768F3B72E X-Spam-Score: 4.54 X-Migadu-Scanner: scn0.migadu.com X-TUID: r9F3FpcoYNrs This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------5G1biIz8fyKTKAtNAKPU19ak Content-Type: multipart/mixed; boundary="------------qLbLl6C0WPSGNqKe2foanvqc"; protected-headers="v1" From: Maxime Devos Reply-To: Guix-devel To: Guix-devel Cc: =?UTF-8?Q?Aleix_Conchillo_Flaqu=c3=a9?= Message-ID: Subject: Re: (ice-9 base64)? References: <33556713-c85b-ab0f-554e-94a40f9d418e@telenet.be> In-Reply-To: --------------qLbLl6C0WPSGNqKe2foanvqc Content-Type: multipart/mixed; boundary="------------JNMGoeGqfv9Cbhe5UOjv0vEe" --------------JNMGoeGqfv9Cbhe5UOjv0vEe Content-Type: multipart/alternative; boundary="------------HoqapmWGG2jmU0QILnRJeS8q" --------------HoqapmWGG2jmU0QILnRJeS8q Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAxNi0wOC0yMDIyIDE5OjIxLCBBbGVpeCBDb25jaGlsbG8gRmxhcXXDqSB3cm90ZToN Cj4NCj4NCj4gT24gVHVlLCBBdWcgMTYsIDIwMjIgYXQgOTo1OSBBTSBNYXhpbWUgRGV2b3Mg PG1heGltZWRldm9zQHRlbGVuZXQuYmU+IA0KPiB3cm90ZToNCj4NCj4NCj4gICAgIE9uIDE2 LTA4LTIwMjIgMTg6MTAsIEFsZWl4IENvbmNoaWxsbyBGbGFxdcOpIHdyb3RlOg0KPj4gICAg IEhpLA0KPj4NCj4+ICAgICBJbiBtYW55IHByb2plY3RzIEkndmUgYmVlbiBjb3B5aW5nIEfD tnJhbiBXZWluaG9sdCdzIGJhc2U2NA0KPj4gICAgIGltcGxlbWVudGF0aW9uIGFuZCBJJ3Zl IGFsc28gc2VlbiBpdCBpbiBvdGhlciBwcm9qZWN0cywgd291bGQgaXQNCj4+ICAgICBtYWtl IHNlbnNlIHRvIGluY2x1ZGUgaXQgaW4gR3VpbGUncyBzdGFuZGFyZCBsaWJyYXJ5PyBbLi4u XQ0KPg0KPiAgICAgSWYgd2UgZG8gdGhpcywgd2Ugc2hvdWxkIGNvbnRhY3QgdGhlIHZhcmlv dXMgb3RoZXIgcHJvamVjdHMgdG8NCj4gICAgIG1ha2UgdGhlbSB1c2UgKGljZS05IGJhc2U2 NCkuDQo+DQo+DQo+IEkgdGhpbmsgdGhleSBjb3VsZCBzd2l0Y2ggd2hlbmV2ZXIgdGhleSB3 YW50IChpLmUuIHdoZW5ldmVyIHRoaXMgd2FzIA0KPiBhZGRlZCB0byBHdWlsZSkgb3IgZXZl biBub3Qgc3dpdGNoIGF0IGFsbC4NCg0KU3VyZSwgYnV0IHRoZXkgY2FuJ3Qgc3dpdGNoIGlm IHRoZXkgZG9uJ3Qga25vdyBhYm91dCBpdC4gQW5kIGlmIHRoZXkgDQpkb24ndCBrbm93IGFi b3V0IGl0IGFuZCBoZW5jZSBkb24ndCBzd2l0Y2gsIHRoZSBwcm9wb3NhbCBmYWlscyBhdCBp dHMgDQpwdXJwb3NlIG9mIHVuYnVuZGxpbmcgYmFzZTY0LiBCZXNpZGVzLCB3ZSBuZWVkIHRo ZW0gdG8gc3dpdGNoIChzZWUgR3VpeCANCm5vLWJ1bmRsaW5nIHBvbGljeSBhbmQgdGhlIHJl YXNvbnMgYmVoaW5kIGl0KSAtLSBpZiB1cHN0cmVhbSByZWZ1c2VzIHRvIA0KdW5idW5kbGUs IHRoZW4gaW4gb3VyIGxvY2FsbHkgbW9kaWZpZWQgdmVyc2lvbiBmb3IgR3VpeC4NCg0KPiAg ICAgSSB0aGluayBpdCB3b3VsZCBiZSBzaW1wbGVyIHRob3VnaCB0byBjb25zaWRlciB0aGUg YmFzZTY0IGluDQo+ICAgICBndWlsZS1nY3J5cHQgdG8gYmUgJ2Nhbm9uaWNhbCcsIGl0IHdv dWxkIGF2b2lkIHByb2JsZW1zIHdpdGggb2xkDQo+ICAgICB2ZXJzaW9ucyBvZiBHdWlsZSBu b3QgaGF2aW5nIHRoZSBiYXNlNjQgbW9kdWxlIGFuZCBuZXdlciB2ZXJzaW9uDQo+ICAgICBo YXZpbmcgaXQsIHdoaWNoIHdvdWxkIHByZXZlbnQgdXNpbmcgdGhlIHByb3Bvc2VkIChpY2Ut OSBiYXNlNjQpDQo+ICAgICBpbiBHdWlsZSBiZWNhdXNlIGl0IHdvdWxkIGJyZWFrIGJ1aWxk LWF1eC9idWlsZC1zZWxmLnNjbSB3aGVuDQo+ICAgICBwdWxsaW5nIG9yIHRpbWUtbWFjaGlu aW5nIGZyb20gb2xkIEd1aXggdGhhdCBoYXZlIGFuIG9sZCBHdWlsZS4NCj4NCj4NCj4gSSd2 ZSBiZWVuIHdhaXRpbmcgb24gYSBndWlsZS1nY3J5cHQgcmVsZWFzZSBmb3IgYSB3aGlsZSBu b3cgKEx1ZG8sIA0KPiBDaHJpc2l0aW5lLi4uIGFuecKgaGVscCBoZXJlPyA6LSkgKS7CoCBJ IHBvcnRlZCBndWlsZS1qd3QgdG8gdXNlIA0KPiBndWlsZS1nY3J5cHQgYnV0IEkgbmVlZCBh IHJlbGVhc2UgdG8gaGF2ZSBsYXRlc3QgYmFzZTY0IGNoYW5nZXM6DQo+DQo+IGh0dHBzOi8v bm90YWJ1Zy5vcmcvY3dlYmJlci9ndWlsZS1nY3J5cHQvY29tbWl0L2Y4OTM0ZWM5NGRmNTg2 OGVlOGJhZjFmYjBmOGVkMGYyNGU3ZTkxZWINClJpZ2h0LCBpdCBoYXMgc29tZSBmaXhlcyB0 aGF0IGFyZSBwcmVzdW1hYmx5IGltcG9ydGFudC4NCj4NCj4gQnV0IHlvdSBhcmUgcmlnaHQg dGhhdCB0aGlzIHdvdWxkIGNhdXNlIGEgYmFja3dhcmQgY29tcGF0aWJsZSBwcm9ibGVtLCAN Cj4gYnV0IEkgZ3Vlc3MgdGhhdCB3b3VsZCBkZXBlbmQgb24gZWFjaCBwcm9qZWN0LiBDYW4g d2UgZG8gY29uZGl0aW9uYWwgDQo+IG1vZHVsZSBsb2FkaW5nPyBJJ3ZlIGRvbmUgdGhpcyBp biB0aGUgcGFzdCB3aXRoIFB5dGhvbi4uLiBpZiB3ZSBhcmUgaW4gDQo+IFB5dGhvbiAyIGxv YWQgdGhpcyBtb2R1bGUsIG90aGVyd2lzZSBsb2FkIHRoaXMgb3RoZXIgb25lLiBTbyBwcm9q ZWN0cyANCj4gY291bGQgZG8gdGhhdC4NClllcywgdXNpbmcgcmVzb2x2ZS1tb2R1bGUgd2l0 aCAjOmVuc3VyZSAjZiAmIG1vZHVsZS1yZWYuIE9yIHdpdGggc3ludGF4IA0KdHJpY2tzIGFu ZCAodmVyc2lvbiksIHRvIGRlY2lkZSB0aGluZ3MgYXQgY29tcGlsZS10aW1lLiBTdGlsbCwg aWYgeW91IGRvIA0KYSBjb25kaXRpb25hbCBtb2R1bGUgbG9hZGluZywgeW91IHN0aWxsIG5l ZWQgYSBmYWxsYmFjaywgYW5kIHRoZSANCmZhbGxiYWNrIHdvdWxkIHN0aWxsIGJlIGJ1bmRs aW5nLg0KPg0KPiAgICAgV2hldGhlciB3ZSBzaW1wbHkgcmVwbGFjZSAoZ3VpeCBiYXNlNjQp IGJ5IChnY3J5cHQgYmFzZTY0KSBkZXBlbmRzDQo+ICAgICBvbiBob3cgb2xkIChnY3J5cHQg YmFzZTY0KSBpcyBjb21wYXJlZCB0byB0aGUgZWFybGllc3QgJ3N1cHBvcnRlZCcNCj4gICAg IEd1aXggZm9yIHB1bGwvdGltZS10cmF2ZWwsIGJ1dCBldmVuIGlmIGl0IGlzIG5vdCBwcmVz ZW50IGluIHRoZQ0KPiAgICAgb2xkIGdjcnlwdCwgd2UgY2FuIHdvcmstYXJvdW5kIHRoYXQg KHdlIGhhdmUgYSAnZmFrZS1nY3J5cHQtaGFzaCcNCj4gICAgIGluIGJ1aWxkLWF1eC9idWls ZC1zZWxmLnNjbSwgc28gd2UgY2FuIGVhc2lseSBoYXZlIGEgKGRlZmluZQ0KPiAgICAgZ2Ny eXB0LWJhc2U2NCBbc29tZSBjb3B5XSkpLsKgIE9yIHNpbXBseSB1cGRhdGUgdGhlIGxvY2Fs DQo+ICAgICBndWlsZS1nY3J5cHQgaW4gYnVpZC1hdXgvYnVpbGQtc2VsZi5zY20uDQo+DQo+ IGd1aWxlLWdjcnlwdCBiYXNlNjQgaXMgcHJldHR5IG5ldyB3aXRoIHRoZSBwYXRjaCBhYm92 ZSAoYnV0IG5vIHJlbGVhc2UgDQo+IGFmdGVyIHRoYXQpLCBJIGhhdmUgbm8gaWRlYSBpZiBH dWl4IGhhcyBhZGRlZCBhbnl0aGluZyBlbHNlLg0KDQpiYXNlNjQgaXMgYXZhaWxhYmxlIGlu IGF0IGxlYXN0IDAuMy4wLCB3aGljaCBpcyBwYWNrYWdlZCBpbiBEZWJpYW4gDQpidWxsc2V5 ZSAod2hpY2ggaXMgY29uc2lkZXJlZCAic3RhYmxlIiksIHNvIG5vdCB0b28gbmV3LCB0aG91 Z2ggd2UgbWlnaHQgDQpuZWVkIHRvIGNoYW5nZSBidWlsZC1hdXgvYnVpbGQtc2VsZi5zY20g aWYgMC4xLjAgZG9lc24ndCBoYXZlIGJhc2U2NC7CoCANCkd1aXggYXBwZWFycyB0byBoYXZl IHRoZSBwcmUtcXVvdGVkLXBhdGNoIHZlcnNpb24sIHdpdGhvdXQgY2hhbmdlcyBvZiANCml0 cyBvd24gZXhjZXB0IGZvciBhIGRpZmZlcmVudCBtb2R1bGUgbmFtZS4NCg0KPiAgICAgT1RP SCBhIHNpbWlsYXIgcmVwbGFjZW1lbnQgY2FuIGJlIGRvbmUgZm9yIChpY2UtOSBiYXNlNjQp LCBidXQNCj4gICAgIHRyYW5zaXRpb25pbmcgdG8gKGljZS05IGJhc2U2NCkgd291bGQgdGFr ZSBtdWNoIGxvbmdlciwgYXQgbGVhc3QNCj4gICAgIHVudGlsIHRoZSB2YXJpb3VzIGRpc3Ry aWJ1dGlvbnMgYXJlIHVwZGF0ZWQgdG8gYSBHdWlsZSB0aGF0IGhhcw0KPiAgICAgKGljZS05 IGJhc2U2NCksIHdoZXJlYXMgKGdjcnlwdCBiYXNlNjQpIGNvdWxkIGJlIHN3aXRjaGVkIHRv DQo+ICAgICBpbW1lZGlhdGVseS4NCj4NCj4gTWF5YmUgdGhpcyBjb3VsZCBiZSBoYW5kbGVk IGJ5IGVhY2ggcHJvamVjdCBpbmRlcGVuZGVudGx5Lg0KDQpUaGV5IHdvdWxkbid0IGhhdmUg dG8gaWYgdGhlIGJhc2U2NCBtb2R1bGUgaXMgcHV0IGluIChndWlsZSBnY3J5cHQpLg0KDQpH cmVldGluZ3MsDQpNYXhpbWUuDQoNCg== --------------HoqapmWGG2jmU0QILnRJeS8q Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On 16-08-2022 19:21, Aleix Conchillo Flaqu=C3=A9 wrote:


On Tue, Aug 16, 2022 at 9= :59 AM Maxime Devos <ma= ximedevos@telenet.be> wrote:


On 16-08-2022 18:10, Aleix Conchillo Flaqu=C3=A9 wrote= :
Hi,=
In many projects I've been copying G=C3=B6ran Weinholt's base64 implementation and I've also seen it in other projects, would it make sense to include it in Guile's standard library? [...]

If we do this, we should contact the various other projects to make them use (ice-9 base64).


I think they could switch whenever they want (i.e. whenever this was added to Guile) or even not switch at all.

Sure, but they can't switch if they don't know about it. And if they don't know about it and hence don't switch, the proposal fails at its purpose of unbundling base64. Besides, we need them to switch (see Guix no-bundling policy and the reasons behind it) -- if upstream refuses to unbundle, then in our locally modified version for Guix.

I think it would be simpler though to consider the base64 in guile-gcrypt to be 'canonical', it would avoid problems with old versions of Guile not having the base64 module and newer version having it, which would prevent using the proposed (ice-9 base64) in Guile because it would break build-aux/build-self.scm when pulling or time-machining from old Guix that have an old Guile.


I've been waiting on a guile-gcrypt release for a while now (Ludo, Chrisitine... any=C2=A0help here? :-) ).=C2=A0 I ported gui= le-jwt to use guile-gcrypt but I need a release to have latest base64 changes:

Right, it has some fixes that are presumably important.

But you are right that this would cause a backward compatible problem, but I guess that would depend on each project. Can we do conditional module loading? I've done this in the past with Python... if we are in Python 2 load this module, otherwise load this other one. So projects could do that.
Yes, using resolve-module with #:ensure #f & module-ref. Or with syntax tricks and (version), to decide things at compile-time.=C2=A0 Still, if you do a conditional module loading, you still need a fallback, and the fallback would still be bundling.

Whether we simply replace (guix base64) by (gcrypt base64) depends on how old (gcrypt base64) is compared to the earliest 'supported' Guix for pull/time-travel, but even if it is not present in the old gcrypt, we can work-around that (we have a 'fake-gcrypt-hash' in build-aux/build-self.scm, so we can easily have a (define gcrypt-base64 [some copy])).=C2=A0 Or simply upda= te the local guile-gcrypt in buid-aux/build-self.scm.

guile-gcry= pt base64 is pretty new with the patch above (but no release after that), I have no idea if Guix has added anything else.

base64 is available in at least 0.3.0, which is packaged in Debian bullseye (which is considered "stable"), so not too new, though we might need to change build-aux/build-self.scm if 0.1.0 doesn't have base64.=C2=A0 Guix appears to have the pre-quoted-patc= h version, without changes of its own except for a different module name.

OTOH a similar replacement can be done for (ice-9 base64), but transitioning to (ice-9 base64) would take much longer, at least until the various distributions are updated to a Guile that has (ice-9 base64), whereas (gcrypt base64) could be switched to immediately.

Maybe this= could be handled by each project independently.

They wouldn't have to if the base64 module is put in (guile gcrypt).

Greetings,
Maxime.

--------------HoqapmWGG2jmU0QILnRJeS8q-- --------------JNMGoeGqfv9Cbhe5UOjv0vEe Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------JNMGoeGqfv9Cbhe5UOjv0vEe-- --------------qLbLl6C0WPSGNqKe2foanvqc-- --------------5G1biIz8fyKTKAtNAKPU19ak Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYvvqKAUDAAAAAAAKCRBJ4+4iGRcl7qCk AP97cAfwrZbRYpq92W4rA7cvgUzcIw2GbAOju0TOFIakNAEA/L0H6qutqbNoBEyivnNNKRojjYpj CyCu85GuQCL/5AM= =sdT8 -----END PGP SIGNATURE----- --------------5G1biIz8fyKTKAtNAKPU19ak--