From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cssfF-00068G-Oc for guix-patches@gnu.org; Tue, 28 Mar 2017 11:04:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cssfC-0005LD-V4 for guix-patches@gnu.org; Tue, 28 Mar 2017 11:04:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:51262) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cssfC-0005L9-SO for guix-patches@gnu.org; Tue, 28 Mar 2017 11:04:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cssfC-0002cA-Bg for guix-patches@gnu.org; Tue, 28 Mar 2017 11:04:02 -0400 Subject: bug#26264: [PATCH 0/1] Use '@' to separate name, version in package-full-name Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20170326122555.22366-1-alex@pompo.co> <6da6e290-feed-e500-e53a-d308e5dc9dde@tobias.gr> <877f3bx4m3.fsf@gmail.com> Date: Tue, 28 Mar 2017 17:03:07 +0200 In-Reply-To: <877f3bx4m3.fsf@gmail.com> (Alex Sassmannshausen's message of "Sun, 26 Mar 2017 20:41:40 +0200") Message-ID: <87h92d30lw.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Alex Sassmannshausen Cc: 26264@debbugs.gnu.org Hello! Thanks for addressing this longstanding issue! For the record =E2=80=98package-full-name=E2=80=99 was briefly discussed at= the time: https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00891.html I suppose we=E2=80=99ll have to grep for all uses in the code to see whether they rely on a hyphen for separation, including the web site (and prolly Emacs-Guix.) Alex Sassmannshausen skribis: > The example I encountered which caused me to bail (after having adapted > a few unit tests, e.g. in tests/profiles.scm, to expect the new name > format), is at `gnu/packages/commencement.scm`, line 234 ff (in > `gcc-boot0`): > -----------------8<------------------>8---------------- > ,@(map (lambda (lib) > ;; Drop trailing letters, as gmp-6.0.0a unpac= ks > ;; into gmp-6.0.0. > `(symlink ,(string-trim-right > (package-full-name lib) > char-set:letter) > ,(package-name lib))) > (list gmp-6.0 mpfr mpc)))) > -----------------8<------------------>8---------------- > > It seems `package-full-name` is here used to write symlinks. I'm afraid > I don't understand the context well enough to ascertain what effect > changing this to '@' based writing would have. This code definitely relies on =E2=80=98package-full-name=E2=80=99 using a = hyphen (it computes the name of the directory GMP etc. extract to.) >> - If someone's scripts do rely on parsing this kind of output, they're >> living on borrowed time, and will need to fix their scripts anyway. > > Well=E2=80=A6 I guess it all depends on whether the function is intended = for > file-system or UI name generation, and whether file-system filenames > should have a different format from UI names=E2=80=A6 Right, I think there have been uses beyond merely UI info, and these are those we need to find by grepping through the code. :-) >> - =E2=80=98-=E2=80=99's been deprecated for quite a long while, and th= e next >> core-updates cycle is a good time to purge the last remnants of it. >> Of course, this patch is about 2 cycles old by now... > > Right, agreed, in the UI context; don't know about filename schemes. +1! That can be done in a subsequent commit. >> - If we're rebuilding the whole world for this we should get it right. > > Agreed. This change should not trigger a full rebuild (the =E2=80=98package-full-na= me=E2=80=99 call in commencement.scm must be adjusted, but that=E2=80=99s fine.) So Alex (or Tobias?), the check list would be: 1. Make sure it=E2=80=99s a zero-rebuild change; if it=E2=80=99s not, it= =E2=80=99s a bug; 2. Grep =E2=80=98package-full-name=E2=80=99 through guix.git and guix-art= work.git and see if any use clearly requires a hyphen; 3. Change the uses in guix-artwork.git (the web site) that uses =E2=80=98package-full-name=E2=80=99 to compute anchors; 4. Make sure =E2=80=98make check=E2=80=99 passes. If we get a green light here, then we can go ahead! Thanks, Ludo=E2=80=99.