Hi,

On 2026-03-30 at 10:06+02:00, Ludovic Courtès wrote:
> Nguyễn Gia Phong skribis:
> > I am thinking of expanding the Guix package specification DSL
> > to support arbitrary property queries to specify package variants,
> > e.g. hello@2:out?foo&bar=baz.
> >
> > The most prominent use case for this is probably language implementation
> > or framework version like lua=5.4 or qt=5.  Not only this encourages
> > such metadata to be present as package-properties, it's also convenient
> > for guix shell invocations, since there's no longer the need to guess
> > where the namespace's version number goes in the name:
> >
> >     guix shell [email protected] lua-{lgi,penlight}?lua=5.4
> >     guix shell qt{base,svg}?qt=5
>
> To be clear, are you proposing a syntax for existing package
> transformations?  (Presumably ‘--with-input’ in the case above.)

I was thinking about querying, so packages still have
to be manually defined.  What's proposed here only tries
to make the specification more structural, e.g. lua-lgi?lua=5.4
vs lua-lgi-lua-5.4 (or the actual status quo of lua5.4-lgi).

--with-input is not sufficient because there could be anywhere
from 0 (e.g. no test) to >1 different "lua" packages in the (native)
input list.  An example for the latter case would be using Lua 5.3
for lua-ldoc while the package is for LuaJIT/Lua 5.1 API.

On 2026-03-30 at 10:06+02:00, Ludovic Courtès wrote:
> Nguyễn Gia Phong skribis:
> > Full disclosure, I'm maintaining a collection of bugs, which often
> > reveiled by sanitizers.  It'd be lovely too if the buggy packages
> > could be referred to as something like [email protected]?asan.
>
> You might have heard of previous proposals on “parameterized packages”,
> which may be relevant:
>
>   https://lists.gnu.org/archive/html/guix-devel/2020-11/msg00312.html
>   https://guix.gnu.org/en/blog/2023/parameterized-packages-for-gnu-guix/

I haven't heard of it, what was its outcome?

> combinatorial explosion

On the other hand, what I wanted to discuss on
is about concretely defined packages.  The ultimate goal
is the consistency of package-name, i.e. keeping the package's
original name while it can still be referred to.
To name more examples, we currently have:

- lua$LUA_VERSION-$NAME
- qt$NAME-$QT_VERSION
- qt$QT_VERSION$NAME
- zig-$NAME-for-zig-$ZIG_VERSION
- $NAME-for-$DEPENDENT
- $NAME-for-$FEATURE
- $NAME-next

In each of these name templete, it's guessing work
to determine what the package-name actually is.

Since we already have specification syntax for package-version,
I wonder how bad of an idea could it be for a syntax
for other variant-y properties.

All the best,
Phong

Attachment: signature.asc
Description: PGP signature

Reply via email to