From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Maxime Devos Newsgroups: gmane.comp.gnu.guix.devel,gmane.lisp.guile.devel Subject: Re: (ice-9 base64)? Date: Fri, 19 Aug 2022 12:06:01 +0200 Message-ID: References: <33556713-c85b-ab0f-554e-94a40f9d418e@telenet.be> <5331d2f3-13a5-e40c-f3bb-398438a0b103@telenet.be> <2dea77ed-4f1b-b799-62d7-149072fd2103@telenet.be> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------3ZhYbj4laAEt5dr3ZekObmDl" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2337"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Cc: Guix-devel , guile-devel To: =?UTF-8?Q?Aleix_Conchillo_Flaqu=c3=a9?= Original-X-From: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Fri Aug 19 12:06:26 2022 Return-path: Envelope-to: gcggd-guix-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oOytV-0000LU-Uv for gcggd-guix-devel@m.gmane-mx.org; Fri, 19 Aug 2022 12:06:26 +0200 Original-Received: from localhost ([::1]:38694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oOytU-0004Wp-Dq for gcggd-guix-devel@m.gmane-mx.org; Fri, 19 Aug 2022 06:06:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOytI-0004TB-FX for guix-devel@gnu.org; Fri, 19 Aug 2022 06:06:12 -0400 Original-Received: from albert.telenet-ops.be ([2a02:1800:110:4::f00:1a]:37476) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oOytF-0001LX-Kp for guix-devel@gnu.org; Fri, 19 Aug 2022 06:06:12 -0400 Original-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 9N622800B20ykKC06N64GU; Fri, 19 Aug 2022 12:06:05 +0200 Content-Language: en-US In-Reply-To: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1660903565; bh=7WOIryTdTUbBTQaGgEFkldMuee7wXoQXG4pmk8sB4Do=; h=Date:To:Cc:References:From:Subject:In-Reply-To; b=AWfurrrXJkYrj6CY7WPhWNkE5kxH31BJ8DUdFFFynh35/rKh5X8MUwfAbIVxjo1rq KHMlGnZA04JRcetMojO+gJ8lpEGnracdhNTmBboP/slkIy2D2V4mN3imKHPqc+yfNM jYc04ONSnDGJ6IYGzVcy6ucmCb/7yhYois8TO9kfhpGtFaKHZ8y7KJ6JmYUqvjCWTJ WPDyqtHVNByULg86pvrLcVEqVdsOMzWZB3Q5TY/nazA1p537h8jomEE2C3ilZXRxWo FNfdKpNRzfzhCd4gWcRHWK0cUDHcKYrISI1JYK2MdKHI+QJN/hbEduoXqiyMSuusis WPfmPkw85POjA== 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: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane-mx.org@gnu.org Original-Sender: "Guix-devel" Xref: news.gmane.io gmane.comp.gnu.guix.devel:63562 gmane.lisp.guile.devel:21309 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------3ZhYbj4laAEt5dr3ZekObmDl Content-Type: multipart/mixed; boundary="------------NBBvICyMSiT8p8XMLNPwhFJy"; protected-headers="v1" From: Maxime Devos To: =?UTF-8?Q?Aleix_Conchillo_Flaqu=c3=a9?= Cc: Guix-devel , guile-devel Message-ID: Subject: Re: (ice-9 base64)? References: <33556713-c85b-ab0f-554e-94a40f9d418e@telenet.be> <5331d2f3-13a5-e40c-f3bb-398438a0b103@telenet.be> <2dea77ed-4f1b-b799-62d7-149072fd2103@telenet.be> In-Reply-To: --------------NBBvICyMSiT8p8XMLNPwhFJy Content-Type: multipart/mixed; boundary="------------BW08JCQyfdaFB136Gy3miK3A" --------------BW08JCQyfdaFB136Gy3miK3A Content-Type: multipart/alternative; boundary="------------SXAr4fISkUxv7dsizkD4aCqI" --------------SXAr4fISkUxv7dsizkD4aCqI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gMTktMDgtMjAyMiAwMjoyMCwgQWxlaXggQ29uY2hpbGxvIEZsYXF1w6kgd3JvdGU6DQoN Cj4gU28sIHdoYXQgZG8geW91IHRoaW5rIHdvdWxkIGJlIHRoZSB3YXkgdG8gcHJvY2VlZCBp biBvcmRlciB0byBpbmNsdWRlIA0KPiBhIGJhc2U2NCBpbXBsZW1lbnRhdGlvbiBpbiBHdWls ZSBpdHNlbGY/DQo+DQo+IEZvciBleGFtcGxlOg0KPg0KPiAxLiBBZGQgKGljZS05IGJhc2U2 NCkgKG9yIChlbmNvZGluZyBiYXNlNjQpKSB0byBHdWlsZSBhbmQgbGV0IG5ldyANCj4gcHJv amVjdHMgYW5kIGV4aXN0aW5nIHByb2plY3RzIHRvIHVwZGF0ZSB3aXRoIGNvbmRpdGlvbmFs IG1vZHVsZSANCj4gbG9hZGluZyB0byBzdXBwb3J0IG9sZCB2ZXJzaW9ucyBvZiBHdWlsZS4N Cj4gMi4gRG8gdW5idW5kbGluZyBpbiBHdWl4IHBhY2thZ2VzIGJvdGggZm9yIHByb2plY3Rz IHRoYXQgaGF2ZSBub3QgDQo+IHVwZGF0ZWQgdXBzdHJlYW0gYW5kIGZvciBwcm9qZWN0cyBp biAoMSkuIFRoZSB1bmJ1bmRsaW5nIHdvdWxkIGJlIGRvbmUgDQo+IGJ5IHBvaW50aW5nIHRv IEd1aXgncyAob3IgZ3VpbGUtZ2NyeXB0KSBiYXNlNjQgaW1wbGVtZW50YXRpb24sIG9yIGlz IA0KPiB0aGVyZSBhIHdheSB0aGV5IGNvdWxkIHBvaW50IHRvIEd1aWxlJ3MgaW1wbGVtZW50 YXRpb24/DQoNCklmIHRoZSBjYW5vbmljYWwgbG9jYXRpb24gb2YgYmFzZTY0IGJlY29tZXMg R3VpbGUgaXRzZWxmIGluc3RlYWQgb2YgDQpndWlsZS1nY3J5cHQsIHRoZW4gaXQgbmVlZHMg dG8gYmUgcG9pbnRlZCBhdCBHdWlsZSdzIGJhc2U2NC4gTGlrZXdpc2UsIA0KR3VpeCcgYmFz ZTY0IGltcGxlbWVudGF0aW9uIHdvdWxkIG5lZWQgdG8gYmUgcmVwbGFjZWQgYnkgR3VpbGUn cywgd2l0aCBhIA0KZmFsbGJhY2suDQoNCkkgZG9uJ3Qgc2VlIHdoeSB3ZSB3b3VsZCBwb2lu dCB0byBHdWl4JyBpbXBsZW1lbnRhdGlvbiwgaXQncyBtaXNzaW5nIA0Kc29tZSBidWcgZml4 ZXMuDQoNCj4NCj4gRG9lcyB0aGF0IG1ha2Ugc2Vuc2Ugb3IgYW0gSSBzdGlsbCBtaXNzaW5n IHNvbWV0aGluZyAoSSdtIGFib3V0IHRvIA0KPiBjYXRjaCBhIGNvbGQgc28gbXkgYnJhaW4g aXMgbm90IHdvcmtpbmcgcXVpdGUgd2VsbCB0aGlzIHdlZWspPyANCj4gT3JpZ2luYWxseSwg SSB3YXMgdGhpbmtpbmcgb25seSBpbiAoMSkuDQoNCkV4Y2VwdCBmb3IgdGhlIHJlbWFyayBh Ym91dCAoMSksIEkgdGhpbmsgc28uwqAgSSB0aGluayB0aGUgZm9sbG93aW5nIGxpc3QgDQpp cyBhIGJpdCBtb3JlIGNsZWFyIHRob3VnaDoNCg0KIDEuIEFkZCAoaWNlLTkgYmFzZTY0KSB0 byBHdWlsZSAob3IgYW5vdGhlciBuYW1lIChlbmNvZGluZyBiYXNlNjQpKS4NCiAyLiBJbmZv cm0gYSBmZXcgdXBzdHJlYW1zIHRoYXQgdXNlZCB0byBpbmNsdWRlIGEgY29weSBvZiBiYXNl NjQgdGhhdCBpdA0KICAgIGlzIG5vdyBwYXJ0IG9mIEd1aWxlIGl0c2VsZiAtLSB0aG9zZSB1 cHN0cmVhbXMgY2FuIHRoZW4gcmVtb3ZlIHRoZWlyDQogICAgbG9jYWwgY29weSBhbmQgdXNl IEd1aWxlJ3MgYmFzZTY0LCBhbmQgZG8gY29uZGl0aW9uYWwgbW9kdWxlIGxvYWRpbmcNCiAg ICBpZiB0aGV5IGNhbm5vdCBpbmNyZWFzZSB0aGVpciBtaW5pbWFsIEd1aWxlIHZlcnNpb24g eWV0Lg0KIDMuIEluIEd1aXgsIHdlIHdpbGwgaGF2ZSB0byB1cGRhdGUgR3VpbGUgdG8gYSBu ZXcgdmVyc2lvbiB0aGF0IGhhcyB0aGUNCiAgICBiYXNlNjQgbW9kdWxlIGFuZCByZW1vdmUg dGhlIGxvY2FsIGZhbGxiYWNrIGNvcGllcy7CoCBBbmQgaWYgdXBzdHJlYW0NCiAgICByZWZ1 c2VzIHBhdGNoZXMgdG8gdXNlIEd1aWxlJ3MgYmFzZTY0IChtYXliZSB3aXRoIGEgZmFsbGJh Y2spLCB0aGVuDQogICAgaXQgd2lsbCBuZWVkIHRvIGJlIHBhdGNoZWQgbG9jYWxseSBpbiBH dWl4Lg0KDQpPbiAoMik6IEkgZG9uJ3QgdGhpbmsgaXQncyBuZWNlc3NhcnkgdG8gY29udGFj dCBfYWxsXyB0aGUgdXBzdHJlYW1zLCANCnRob3VnaCB0byBnaXZlIGEgZ29vZCBleGFtcGxl IGl0IHdvdWxkIGJlIG5pY2UgdG8gY29udGFjdCBzb21lIG9mIHRoZW0uDQoNCigzKSBpcyBh IEd1aXggY29uY2Vybiwgbm90IHJlYWxseSBhIEd1aWxlIGNvbmNlcm4uDQoNCkdyZWV0aW5n cywNCk1heGltZS4NCg0K --------------SXAr4fISkUxv7dsizkD4aCqI Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

On 19-08-2022 02:20, Aleix Conchillo Flaqu=C3=A9 wrote:

So, what do yo= u 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.=C2=A0 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.=C2=A0= 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.

--------------SXAr4fISkUxv7dsizkD4aCqI-- --------------BW08JCQyfdaFB136Gy3miK3A 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----- --------------BW08JCQyfdaFB136Gy3miK3A-- --------------NBBvICyMSiT8p8XMLNPwhFJy-- --------------3ZhYbj4laAEt5dr3ZekObmDl Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYv9giQUDAAAAAAAKCRBJ4+4iGRcl7pdJ AQCCMxkYzmfBN4Yu55np2iahs34HyXIWpmy+lSvRMaeMNQD/Qt8Dvhyk7yW1X0HMOkl5KG/oK6K6 KAxne2/8klUH4QY= =7guO -----END PGP SIGNATURE----- --------------3ZhYbj4laAEt5dr3ZekObmDl--