[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#26645] Potluck still relivant
From: |
Ricardo Wurmus |
Subject: |
[bug#26645] Potluck still relivant |
Date: |
Wed, 29 Apr 2020 08:02:56 +0200 |
User-agent: |
mu4e 1.2.0; emacs 26.3 |
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:
--8<---------------cut here---------------start------------->8---
[
{
"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"]
}
]
--8<---------------cut here---------------end--------------->8---
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.)
--
Ricardo