Mathieu Lirzin <m...@gnu.org> skribis: > l...@gnu.org (Ludovic Courtès) writes: > >> Mathieu Lirzin <m...@gnu.org> skribis: >> >>> From 7fef43249b704db3c4d511b2f1b62428740cfa73 Mon Sep 17 00:00:00 2001 >>> From: Mathieu Lirzin <m...@gnu.org> >>> Date: Sun, 24 Jan 2016 01:54:44 +0100 >>> Subject: [PATCH] utils: Use '@' for separating package names and version >>> numbers. >>> >> [...] >>> (define (package-name->name+version name) >>> - "Given NAME, a package name like \"foo-0.9.1b\", return two values: >>> -\"foo\" and \"0.9.1b\". When the version part is unavailable, NAME and >>> -#f are returned. The first hyphen followed by a digit is considered to >>> -introduce the version part." >>> + "Given NAME, a package name like \"foo@0.9.1b\", return two values: >>> \"foo\" >>> +and \"0.9.1b\". When the version part is unavailable, NAME and #f are >>> +returned. Both parts must not contain any '@'." >> >> I think this one should remain unchanged, first because it triggers a >> full rebuild ;-), and second because it has uses in >> {emacs,gnu}-build-system that expect exactly these semantics. >> >> So I think we have to simply provide a different version of that in >> (guix utils) or so. >> >> Also, I think that at least for some time, the new >> ‘package-name->name+version’ (maybe we could call it >> ‘package-specification->name+version’ for consistency) should fall back >> to the old method when: >> >> 1. The spec has no @ sign, and >> >> 2. The specified package name was not found. >> >> >> It could print a warning when the old method has been used *and* a >> matching package was found, explaining that this is deprecated syntax. >> >> WDYT? > > I have finally took some time to look into this, and actually > implementing ‘package-specification->name+version’ in (guix utils) with > the suggested fall back feature seems not desirable since checking for > package existence would require using the procedure > ‘find-packages-by-name’ from (gnu packages) which will then create a > circular dependency. Did I miss something?
No, good point. What about this: 1. Put the new ‘package-name->name+version’ in (guix utils) and keep it dumb (i.e., it insists on having an ‘@’, as is the case with the patch you posted.) 2. Add the fallback case in ‘specification->package’ and ‘specification->package+output’ in (gnu packages). How does that sound? Thanks! Ludo’.