Subject: bug#64509: Guile packages should install versioned aliases for binaries (guile-X.Y, guild-X.Y, etc.)

From: "Zack Weinberg" <[email-masked]>
Date: Tue, 05 Sep 2023 15:59:21 -0400

On Mon, Aug 21, 2023, at 3:37 AM, Janneke Nieuwenhuizen wrote:

> It's terrible that guile.m4 has this feature of preferring numbered
> binaries (even if they're later in PATH, and even if that binary
> doesn't match GUILE_LOAD_*PATHs)

I can see why it does this -- it wants to find the newest available
Guile and it wants to be sure that all the binaries it uses are a
matched set. The original design assumption was probably that, if you're
using numbered binaries, then the un-suffixed "guile" can't be relied on
to be the newest available.  (Not as strange as it might sound; I have a
login on a machine where un-suffixed "perl" still runs Perl 5.005_02,
because the admins want to make absolutely sure that they never break
any user's #! scripts.)

It would probably be a good idea for guile.m4 to be altered to take the
un-suffixed binaries if that's the only way it can get a full set, but
given how long it takes for Autoconf macro changes to propagate to the
world, I think Guix should provide the numbered binaries regardless.

> and that Guix doesn't provide them. What about a wrapper package that
> provides these?

Why bother with a wrapper?  It should be _easier_ to have the main guile
package supply the numbered binaries.

>> I think the solution is to use ‘guix shell -D guix -CP'
...
> Hmm, yeah -- that sounds like the proper way of doing things
...

Not an option for me, for reasons explained in my earlier reply to
Ludovic.

zw