Hi, zimoun <zimon.touto...@gmail.com> skribis:
> Or even, it can be confusing: > > $ guix shell curl@7.79.1 -- curl --version > curl 7.84.0 (x86_64-unknown-linux-gnu) libcurl/7.84.0 GnuTLS/3.7.2 > zlib/1.2.11 libidn2/2.3.1 nghttp2/1.44.0 > Release-Date: 2022-06-27 > [..] > > The issue is not new, e.g., see [1]. I proposed a patch [2] (see below) > which addresses the issue with “guix show”. > > However, it does not address issue with “guix package -A | grep ^curl”; > and it is potentially not fixable because it uses > ’fold-available-packages’ which loads the cache (for performance) and > this cache does not contain the ’replacement’ field – it is not a good > idea to introduce it, IMHO. Usually, when the replacement is a different version, we make it public, so it also shows up in ‘guix package -A’. It’s just a convention, but it’s probably good enough? > diff --git a/guix/ui.scm b/guix/ui.scm > index 7fbd4c63a2..b6497f5e5c 100644 > --- a/guix/ui.scm > +++ b/guix/ui.scm > @@ -1528,9 +1528,18 @@ HYPERLINKS? is true, emit hyperlink escape sequences > when appropriate." > (define (package<? p1 p2) > (string<? (package-full-name p1) (package-full-name p2))) > > + (define replacement > + (package-replacement p)) > + > ;; Note: Don't i18n field names so that people can post-process it. > (format port "name: ~a~%" (package-name p)) > (format port "version: ~a~%" (package-version p)) > + (when replacement > + (unless > + (string=? > + (package-version p) > + (package-version replacement)) > + (format port "replacement: ~a~%" (package-version replacement)))) > (format port "outputs: ~a~%" (string-join (package-outputs p))) > (format port "systems: ~a~%" > (string-join (package-transitive-supported-systems p))) I’m all for it! If you want you can resent the whole thing produced by ‘git format-patch’, or I can apply it and provide a commit message on your behalf. Thanks, Ludo’.