Subject: Re: bug#26645: guix potluck
From: Maxim Cournoyer <[email-masked]>
To: Ricardo Wurmus <[email-masked]>
Cc: [email-masked], [email-masked], Jack Hill <[email-masked]>, Brice Waegeneire <[email-masked]>, [email-masked]
Date: Fri, 21 Jul 2023 12:57:56 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Ricardo Wurmus <[email-masked]> writes:

> Hi Brice,
>
>> Reading through the initial email[0] by Andy the potlock feature seems
>> to be way more extensive than channels: it allows one to create simple
>> packages in an interactive manner and centralize the discoverability of
>> such packages. Channels provide us a way to create package outise of
>> Guix proper but finding channels containing the package you are looking
>> for is still an unsolved problem.
>
> One of the objectives was to provide a simpler and more robust way to
> define packages that would not break when package variables in Guix
> proper are moved around:
>
>> +Guix's @dfn{potluck} facility fills this gap.  A @dfn{potluck package}
>> +is like a normal Guix package, except it expresses its inputs in the
>> +form of package specifications instead of direct references.
>> +@xref{potluck-package Reference}.  Potluck packages also have a simpler
>> +package structure with fewer fields; compared to normal Guix packages,
>> +they are less expressive but more isolated from details of upstream
>> +Guix.
>
> We have the same facilities in JSON package definitions such as this one:
>
> [
>   {
>     "name": "myhello",
>     "version": "2.10",
>     "source": "mirror://gnu/hello/hello-2.10.tar.gz",
>     "build-system": "gnu",
>     "arguments": {
>       "tests?": false
>     }
>     "home-page": "https://www.gnu.org/software/hello/",
>     "synopsis": "Hello, GNU world: An example GNU package",
>     "description": "GNU Hello prints a greeting.",
>     "license": "GPL-3.0+",
>     "native-inputs": ["gettext"]
>   },
>   {
>     "name": "greeter",
>     "version": "1.0",
>     "source": "https://example.com/greeter-1.0.tar.gz",
>     "build-system": "gnu",
>     "arguments": {
>       "test-target": "foo",
>       "parallel-build?": false,
>     },
>     "home-page": "https://example.com/",
>     "synopsis": "Greeter using GNU Hello",
>     "description": "This is a wrapper around GNU Hello.",
>     "license": "GPL-3.0+",
>     "inputs": ["myhello", "hello"]
>   }
> ]
>
> Since this can be fed to “guix build -f” directly, there doesn’t seem to
> be a need for “guix potluck init” any more.
>
> While I think it would be very convenient to be able to publish package
> definitions with “guix potluck update <url> <branch>”, it would require
> maintenance of the host-channel service that accepts possibly hostile
> user input.  To prevent denial of service it should probably require
> authentication and enforce quotas.
>
> Since users can also push packages for non-free software we cannot host
> this on Guix project infrastructure.  (I guess this was why the proposed
> domain was guix-potluck.org.)

OK.  I'm closing the issue since it's been opened for 6 years with no
sign of it being driven home.  Do send a refreshed version again if it's
still relevant/desired.

-- 
Thanks,
Maxim