From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 8A13A1rKRl/yYwAA0tVLHw (envelope-from ) for ; Wed, 26 Aug 2020 20:47:22 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id CJK3OlnKRl+bEgAAbx9fmQ (envelope-from ) for ; Wed, 26 Aug 2020 20:47:21 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 460F79402CC for ; Wed, 26 Aug 2020 20:47:21 +0000 (UTC) Received: from localhost ([::1]:47616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kB2KF-0004rh-IA for larch@yhetil.org; Wed, 26 Aug 2020 16:47:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58816) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kB2K8-0004rW-TB for help-guix@gnu.org; Wed, 26 Aug 2020 16:47:12 -0400 Received: from mira.cbaines.net ([212.71.252.8]:55614) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kB2K7-00084I-0g for help-guix@gnu.org; Wed, 26 Aug 2020 16:47:12 -0400 Received: from localhost (unknown [46.237.160.133]) by mira.cbaines.net (Postfix) with ESMTPSA id AE6FC27BBE5; Wed, 26 Aug 2020 21:47:08 +0100 (BST) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 51fb793c; Wed, 26 Aug 2020 20:47:05 +0000 (UTC) References: <87r1rtwtes.fsf@web.de> <87o8mxwt8o.fsf@web.de> User-agent: mu4e 1.4.13; emacs 26.3 From: Christopher Baines To: "Dr. Arne Babenhauserheide" Subject: Re: How to create a substitute server with substitutes that failed? In-reply-to: <87o8mxwt8o.fsf@web.de> Date: Wed, 26 Aug 2020 21:47:03 +0100 Message-ID: <87h7spw2wo.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=212.71.252.8; envelope-from=mail@cbaines.net; helo=mira.cbaines.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/26 16:47:09 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: help-guix@gnu.org Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Spam-Score: -2.11 X-TUID: yM1OwbyHrpHB --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Dr. Arne Babenhauserheide writes: > I=E2=80=99d 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-coordinat= or/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-c= oordinator-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 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl9GykdfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcACgkQXiijOwuE 9XfIWA//ZSN+Wd28wZnPYAJbFZKaGGG1qoyuXam3M6YNmCRJpJFr3wLCwiZTnvmQ 5+rWjPe7t8P8+xlukbqRGot5lbYXWRqVQ7d6DEBHXGndtF6hGArfuCb2g34w+vbE MVwRyZwhdVcStTCw/G4H0qZkq4WsBFwwNtwpg6qGaQylp7xdpL1RtIWULv5O99S6 igKKv3QG/utX6ORe2b5YlFT12SCcnk4/FYN8XD+0prd2nHn2E7FUKYDdD7PAtKdS fQY9ENFxSDIkrgF/K14KbUYsVWKS42CEOx7/0JfOpd0z5FPpo3QchVX7/wqevutF 651p2bvPDSZD7LmeLVnmU6tSEnt9VzvpA90i6qmfG1OyEnm3Xn0mJ09M6Dhn3NBh 5mz7gjQOisHHLAiLL/RxZE90sr+YEZ8+lNfULYA+YC+LFVpWXzHoVU7G8DJfhNH8 UBm5kcJsLHPQnqc1tMbdpdBUqqjV0IUH9kAcEeSqs5DmAt5NexNMYwEh5lM4iWxp eLAdj/6hMXAUjKzNzFYnd/Wyh7LpJs75+x/2DTaWb8lwGfugmqHmZ2AKzX6Fh/Ys /7Tfiq/2BMs78u+9pQfhqBV+bQiPPjOv7YbCT/tm/SVYqwkZ9EjUV7NVoxHBXsmc ENAMNa89ZEA8hAz9B7tSL2E0wPzQ871XxWh2+PPREWd+uEJvpAM= =PhJQ -----END PGP SIGNATURE----- --=-=-=--