From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id eHliC52wwWZLcgEAqHPOHw:P1 (envelope-from ) for ; Sun, 18 Aug 2024 08:28:13 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id eHliC52wwWZLcgEAqHPOHw (envelope-from ) for ; Sun, 18 Aug 2024 10:28:13 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1723969692; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=hzCGWnrawYqHhWcyE5QfwHsl5rKTtatCWy2gWmj4IaU=; b=lQh7AKOZWaCSE9zQSRnAadvAE9C0naY/P2cLRoxF2KwV64i6k7tInm8RmJzeYOldeh7tMA DcJcjVnp5RGryVQzs3sWOLbDa0xFpyP6cSK0k0fITK1Mdt4ay9n64+XZSwfO1qszNByHX0 lPCRZvpRq2JGQ88lLsD7UstIW6p6E30NwbKmupDZE5BV54YJwR65pF1wG8I6nuZqXyEcG1 w0NSvmXDK2rapQ1Zl+5qMUvuW+rmMbBuDlrkgJyDr6OkOdAlUmvgUSKBGji7z14ORS9r2u zfDkWTJ0r5waOSLPym9fuLvQxQuolDx4r+RQhzCiOmEbk0qz9mIeaZTHUuevIA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Seal: i=1; s=key1; d=yhetil.org; t=1723969692; a=rsa-sha256; cv=none; b=mbipcZ3PRlkYl23pgZHhG4nm1t2JIyzLE1Kwcz6Qh8y2CY5QL9NIvpbh5mze/JP93D8gTJ 04T3nNMgc6U3t71ZpOCNO6YaJz3nRmR5PyO9iXj9WiiI0o+r/+qaLxkJk0akNKEsiZ9rW+ UVWpYQ/cGBMqxw2B0R1TakiBEtcjI4eMpxcipg/zkuLrp/oTwUdg03pguJgByxlW8a2yYL ajqzqiMI3WVAa7BjIh9+UX6aXjAj1hqK3/9UnFPKxxdAFixNy1nCblGZovtd2FYIj9UmzW O6P4lRZL4S9/oBPZh+xf9xc6IPx9Hnpm5uBK6DBjuPyop6SEy1unhg7q+Cj0ww== 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 B823176E8E for ; Sun, 18 Aug 2024 10:28:12 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sfbG7-0007xv-Ss; Sun, 18 Aug 2024 04:27:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sfbG6-0007xj-6u for guix-devel@gnu.org; Sun, 18 Aug 2024 04:27:30 -0400 Received: from mira.cbaines.net ([212.71.252.8]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sfbG4-0001fL-CI for guix-devel@gnu.org; Sun, 18 Aug 2024 04:27:29 -0400 Received: from localhost (136.249.6.51.dyn.plus.net [51.6.249.136]) by mira.cbaines.net (Postfix) with ESMTPSA id 8ABAC27BBE2; Sun, 18 Aug 2024 09:27:24 +0100 (BST) Received: from felis (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 140cbe5a; Sun, 18 Aug 2024 08:27:23 +0000 (UTC) From: Christopher Baines To: Ian Eure Cc: guix-devel Subject: Re: Static hosting of substitutes In-Reply-To: <878qwu6bfz.fsf@meson> (Ian Eure's message of "Sat, 17 Aug 2024 15:04:35 -0700") References: <878qwu6bfz.fsf@meson> User-Agent: mu4e 1.12.4; emacs 29.3 Date: Sun, 18 Aug 2024 09:27:21 +0100 Message-ID: <8734n2utg6.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-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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Spam-Score: -8.57 X-Migadu-Queue-Id: B823176E8E X-Migadu-Scanner: mx10.migadu.com X-Migadu-Spam-Score: -8.57 X-TUID: Njp8CnR+foYx --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ian Eure writes: > I=E2=80=99d like to provide substitutes for packages in my personal chann= el. > The ideal setup for this would be for a machine on my internal net to > perform the builds, then upload the results to another system on the > open internet. That could be a machine running a web server pointed > at a directory where the NARs get uploaded, or an S3-like object > store, or something like that -- dirt simple, just shifting bytes off > disk and out a socket. > > It seems that nothing like this exists, all the public substitute > servers appear to use `guix publish'. That=E2=80=99s not an option for m= e, > since it requires significantly more disk and compute than I have on > any public-facing system, and I can=E2=80=99t justify the cost of bigger > machines. > > What would it take to make a system like this work? I've run a few substitute servers like this, the required code is actually quite simple and the build coordinator includes the necessary bits in the form of some included hooks [1]. 1: build-success-publish-hook and build-success-s3-publish-hook in https://git.savannah.gnu.org/cgit/guix/build-coordinator.git/tree/guix-buil= d-coordinator/hooks.scm bordeaux.guix.gnu.org used to use the build-success-publish-hook to populate a directory with the narinfo and nar files, and NGinx simply served this directory, although now it uses the nar-herder to manage the nars (it still doesn't use guix publish). Maybe in the future the nar-herder could provide an easy utility for people to serve and manage substitutes like this. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmbBsGlfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XdEnw//Xzw/jDnTn6AiQzcm+Cea1CVN7eqncLJO L8IzO2X05JbgDiI6OhVTGrTXVD9/4ERzxBRb2mIhEEeuMHi58om0MuOwew6uI4kL GYRdnqyXtqgwwPyPBB5EtJPEehdEeNO3YkxCkC6601DDL+oiGtzNaleKYB4JkUvh APdIfcv86aeY+MiWGgXOXleFuRWht3IqPEwaKyfWyPxCWEeRtCnojTgP5Lb+7Kxm xERHAnN0o9VKf5oFTHvpR65NcyTHzrCNPtM1KrjwgshpUNwfa3CP65AeBXbRGH9x mby9U6uzUfca+slWjpyVqhb7h2Q7Tz/xxnJMSfeX3FJK74MnYLX7rqjfTrVltA9Q pm4yXeDkPRdvnPxD+hxMcGc36LR95mr2JHB1A1+3diOahVjo+rBpUQDPj/Men6Mb hy7SqkeSnjm1qlv1uR9paAnfNGnL1BrIKOKIedAdE4jgTMVTAru9622yAnSVyJ4I E0fDo5IkSNnwMLhSAZ1yX8nGA2+SCFJ87lrdxA+4mR0Eqw9zV99IHTu0SGRh4lMW k320OloCeZru/5vjjLlU2bty7rdwRZGCqGOMxQX1RSQRFfyImNYvJbpV39N5nQzR v2l0VywRAO1BLQtOIBzMuSKiU/GE2JInuWa8FeFNNZrLFpkTm0OQgGWhU6z+iwk4 NUbKX5NHeDU= =dehu -----END PGP SIGNATURE----- --=-=-=--