help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to create a substitute server with substitutes that failed?


From: Christopher Baines
Subject: Re: How to create a substitute server with substitutes that failed?
Date: Wed, 26 Aug 2020 21:47:03 +0100
User-agent: mu4e 1.4.13; emacs 26.3

Dr. Arne Babenhauserheide <arne_bab@web.de> writes:

> I’d like to create a small server that provides substitutes for
> packages for which I often have to build a fallback (mostly ungoogled
> Chromium).
>
> How can I do that? Is there already a simply way?

It's not simple (yet), but I'm hoping to get there eventually with the
Guix Build Coordinator.

1: https://git.cbaines.net/guix/build-coordinator/about/

> It would be ideal if I could put it on a dumb public host with only
> HTTPS access and FTP for upload (since I already have that and it has
> unlimited bandwidth).

Using guix publish along with something to build the packages is
simpler, providing you want to serve them from the store. However, one
of the things on my mind when designing the Guix Build Coordinator was
specifically this use case. I was actually more thinking about
scalability, I didn't want to be limited by the storage of a single
machine.

Again, it's not simple (yet), but how this works currently is through
hooks [2]. You have the Guix Build Coordinator run some Guile code when
a build is successful, and this can do something with the outputs.

2: 
https://git.cbaines.net/guix/build-coordinator/tree/guix-build-coordinator/hooks.scm

For https://guix.cbaines.net/ I use the build-success-s3-publish-hook as
I use a hosted S3 service for the storage of the outputs. You could very
similarly implement a build-success-ftp-publish-hook and use this to
upload nars. Like guix publish, the Guix Build Coordinator can generate
the narinfo files you need to serve substitutes.

The Guix Build Coordinator is also close (but not quite there) to being
able to easily build a subset of Guix packages in an automated
way. Currently the
guix-build-coordinator-queue-builds-from-guix-data-service [3] script
will queue builds for all packages, and the channel instance
derivations, but it could and should in the future allow controlling
what to build.

3: 
https://git.cbaines.net/guix/build-coordinator/tree/scripts/guix-build-coordinator-queue-builds-from-guix-data-service.in

I realise the promise of being able to do this more easily in the future
isn't that helpful, but I still wanted to mention the Guix Build
Coordinator in case it's something you're interested in.

Chris

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]