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
signature.asc
Description: PGP signature
