From: Ricardo Wurmus <rekado@elephly.net>
To: Pjotr Prins <pjotr.public12@thebird.nl>
Cc: guix-devel@gnu.org
Subject: Re: A registry for distributed sources and binaries
Date: Sun, 24 Jul 2016 22:35:43 +0200 [thread overview]
Message-ID: <87wpka7p0g.fsf@elephly.net> (raw)
In-Reply-To: <20160724033027.GA20236@thebird.nl>
Hi Pjotr,
> Registries solve the mentioned problems of GUIX_PACKAGE_PATH:
>
> 1. People are not aware about the work of others
> 2. Slightly complicated (you need a Guix source tree etc.)
> 3. No binary distribution
When I first read your email I thought you proposed a mechanism that
extends GUIX_PACKAGE_PATH. What you actually proposed seems a little
too big and complicated from my point of view, but I am interested in
discussing the idea of extending GUIX_PACKAGE_PATH.
Currently, GUIX_PACKAGE_PATH depends on some manual work to be done
first. Finding a third-party repository, downloading it, updating it
separately from Guix itself (it won’t get updated via “guix pull”),
setting the variable.
When binary substitutes are involved some more steps are required: find
and download the public key of the distributor (who might be running
hydra or something like “guix publish”) and authorise it.
Taken together it may seem a little too cumbersome compared to what
other package managers do. To enable a third-party repository for
Ubuntu, for example, I only need to run one command. When downloading
packages I may also need to verify and accept a GPG key.
Could it be enough if Guix offered a simpler way to fetch package
definitions and (optionally) binary substitutes from a third party who
maintains both the package definitions and (optionally) distributes
pre-built binary substitutes?
Here are some concrete proposals:
* Add a “guix config” command, which allows users to modify the
behaviour of their instance of Guix.
* Support adding repositories via “guix config”. A “repository” is a
remote set of Guile modules and (optionally) an public endpoint of
“guix publish” through which substitutes of only those packages that
are defined in the repository’s modules can be downloaded.
* The first time a repository is accessed, the specified modules are
cloned and stored in a per-user state directory
(“~/.cache/guix/<domain>” maybe?). Guix is automatically configured
to use the modules from “~/.cache/guix/<domain>” in addition to what
is on GUIX_PACKAGE_PATH. Additionally, the distribution public key
for binary substitutes is fetched from a well-known location (if
applicable) and users are asked to confirm.
* When a user runs “guix pull” all enabled repositories are also
updated. Otherwise the cached copy from last access is used.
* Update “guix --version” to also return the version of each configured
repository.
* Add a command line switch “--vanilla” (or similar) to disable any
custom configuration and any configured repositories.
With the mechanism described above it would be less intimidating for
users to add sources of Guix packages (or Guix features) and download
binary substitutes.
Third parties can distribute package descriptions (or experimental
features) along with binary substitutes by simply hosting the modules
and running “guix publish”. The Guix project doesn’t need to care.
Exactly how third-party collections are managed is completely up to the
respective maintainers.
While I feel strongly that we should focus our efforts on Guix upstream
I also think that it may be useful and convenient to expand the
GUIX_PACKAGE_PATH feature.
What do you think about that? Does this align with your vision?
What do others think? Is this something that would benefit the Guix
project and its audience?
~~ Ricardo
next prev parent reply other threads:[~2016-07-24 20:35 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-21 1:39 (unknown) Unknown, Pjotr Prins
2016-07-21 1:42 ` [PATCH] gnu: Add elixir Pjotr Prins
2016-07-21 11:43 ` Ben Woodcroft
2016-07-21 12:00 ` Pjotr Prins
2016-07-22 5:26 ` Leo Famulari
2016-07-22 12:55 ` Ludovic Courtès
2016-07-22 14:12 ` Leo Famulari
2016-07-21 12:51 ` none Ludovic Courtès
2016-07-22 0:41 ` none Pjotr Prins
2016-07-22 2:06 ` none Pjotr Prins
2016-07-22 3:25 ` none Jookia
2016-07-22 3:48 ` none Leo Famulari
2016-07-22 4:48 ` none Tobias Geerinckx-Rice
2016-07-22 11:07 ` none Pjotr Prins
2016-07-22 12:23 ` none Ricardo Wurmus
2016-07-22 12:50 ` none Jookia
2016-07-22 21:19 ` none Leo Famulari
2016-07-24 4:17 ` none Jookia
2016-07-24 6:35 ` none Leo Famulari
2016-07-24 7:47 ` none Jookia
2016-07-24 16:52 ` none Christopher Allan Webber
2016-07-24 17:03 ` none Andreas Enge
2016-07-22 8:15 ` none Roel Janssen
2016-07-22 14:07 ` none Leo Famulari
2016-07-22 14:15 ` none Vincent Legoll
2016-07-22 16:13 ` none Ludovic Courtès
2016-07-22 16:38 ` none myglc2
2016-07-23 7:03 ` none Tomáš Čech
2016-07-22 16:02 ` Review process Ludovic Courtès
2016-07-23 2:24 ` Pjotr Prins
2016-07-23 9:05 ` Alex Kost
2016-07-23 9:51 ` Mathieu Lirzin
2016-07-24 8:02 ` Alex Kost
2016-07-24 10:38 ` Mathieu Lirzin
2016-07-24 14:09 ` Ludovic Courtès
2016-07-24 3:30 ` A registry for distributed sources and binaries Pjotr Prins
2016-07-24 5:10 ` Tobias Geerinckx-Rice
2016-07-24 5:16 ` Pjotr Prins
2016-07-24 5:24 ` Pjotr Prins
2016-07-24 5:29 ` Mark H Weaver
2016-07-24 5:48 ` Jookia
2016-07-24 6:37 ` Tobias Geerinckx-Rice
2016-07-24 7:49 ` Jookia
2016-07-24 20:02 ` Ricardo Wurmus
2016-07-24 6:28 ` Tobias Geerinckx-Rice
2016-07-24 7:02 ` Pjotr Prins
2016-07-24 7:29 ` Leo Famulari
2016-07-24 7:41 ` Pjotr Prins
2016-07-24 9:50 ` Mathieu Lirzin
2016-07-24 22:46 ` Ludovic Courtès
2016-07-24 13:58 ` Andreas Enge
2016-07-24 15:21 ` Jookia
2016-07-24 15:58 ` Andreas Enge
2016-07-24 17:18 ` replying to a message of a mailing list you were not subscribed to Danny Milosavljevic
2016-07-24 17:25 ` Danny Milosavljevic
2016-07-25 5:38 ` Ricardo Wurmus
2016-07-25 7:34 ` icecat "mailto" handler does not work - and cannot be reconfigured by user Danny Milosavljevic
2020-10-13 13:23 ` bug#24066: " Maxim Cournoyer
2020-10-16 7:12 ` Brendan Tildesley
2020-10-26 16:39 ` Jonathan Brielmaier
2016-07-24 18:50 ` A registry for distributed sources and binaries John Darrington
2016-07-25 9:14 ` Replying to bug reports Ludovic Courtès
2016-07-25 8:25 ` A registry for distributed sources and binaries Andy Wingo
2016-07-25 22:00 ` Reviewer assignment Ludovic Courtès
2016-07-24 20:35 ` Ricardo Wurmus [this message]
2016-07-25 2:10 ` A registry for distributed sources and binaries Pjotr Prins
2016-07-25 3:42 ` Tobias Geerinckx-Rice
2016-07-25 4:57 ` Pjotr Prins
2016-07-25 7:18 ` Tomáš Čech
2016-07-25 9:21 ` Ludovic Courtès
2016-07-26 3:40 ` Pjotr Prins
2016-07-26 3:45 ` Pjotr Prins
2016-07-25 6:13 ` [PATCH] Add Elixir (was: ) Ricardo Wurmus
2016-07-25 6:31 ` Pjotr Prins
2016-07-28 7:27 ` Ricardo Wurmus
2016-07-28 8:30 ` Vincent Legoll
2016-07-28 10:35 ` Pjotr Prins
2016-07-28 20:35 ` Ricardo Wurmus
2016-07-29 2:38 ` Pjotr Prins
2016-07-29 6:32 ` Vincent Legoll
2016-08-02 8:56 ` Ricardo Wurmus
2016-08-02 14:30 ` Pjotr Prins
2016-08-02 8:44 ` [PATCH] Add Elixir Ricardo Wurmus
2016-08-02 14:29 ` Pjotr Prins
2016-08-02 17:26 ` Ludovic Courtès
2016-08-02 21:25 ` Ricardo Wurmus
2016-08-03 4:41 ` Pjotr Prins
2016-08-09 11:18 ` Pjotr Prins
2016-08-09 11:58 ` Alex Sassmannshausen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wpka7p0g.fsf@elephly.net \
--to=rekado@elephly.net \
--cc=guix-devel@gnu.org \
--cc=pjotr.public12@thebird.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.