Package: guix-patches;
Reported by: Antero Mejr <mail <at> antr.me>
Date: Sun, 17 Aug 2025 17:49:01 UTC
Severity: normal
Tags: patch
View this message in rfc822 format
From: Antero Mejr <mail <at> antr.me> To: 79260 <at> debbugs.gnu.org Subject: [bug#79260] [GCD PATCH] 00X-international-substitutes.md: New proposal. Date: Sun, 17 Aug 2025 17:48:21 +0000
--- 00X-international-substitutes.md | 109 +++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 00X-international-substitutes.md diff --git a/00X-international-substitutes.md b/00X-international-substitutes.md new file mode 100644 index 0000000..11c6a4f --- /dev/null +++ b/00X-international-substitutes.md @@ -0,0 +1,109 @@ +title: International substitute servers +id: <the next available number> +status: draft +discussion: <draft|submitted|accepted|withdrawn|deprecated> +authors: Antero Mejr +sponsors: <Sponsor Name> +date: <date when the discussion period starts> +draft-date: 2025-08-07 +discussion-date: <date when the discussion period starts> +deliberation-date: <date when the deliberation starts> +SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-or-later +--- + +# Summary + +The official binary substitute servers for Guix, `ci.guix.gnu.org` and +`bordeaux`, are both located in Western Europe. Users outside Western Europe may +experience slower speeds when downloading substitutes: 50-200 kbps is not +uncommon. Since substitutes can be quite large, this causes significant slow +down when performing package operations. This RFC proposes the establishment of +additional substitute servers in other regions. + +# Motivation + +In the present state, users outside Europe experience substitute download speeds +on the order of kilobits per second. This comprises some of the perceived +"slowness" of Guix, as mentioned in all three of the [Guix +surveys](https://guix.gnu.org/en/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-1/). +Other package managers with distributed substitute servers achieve download +speeds of tens or even hundreds of megabytes per second, many times faster than +the single Guix substitute server can provide. + +Common dependency packages such as LLVM can be large, around 50-200 MB. +Downloading substitutes for them on such a slow connection will take at least 5 +minutes, and that is only for a single dependency. This is a significant +impediment to package management operations and workflows. + +Distributing substitutes can also increase reliability. As it stands, if +`ci.guix.gnu.org` is not available, the user will not be able to download +substitutes at all. It also assists with reproducibility: more identical +substitute builds means a higher degree of assurance of deterministic, +reproducible packages. + +# Detailed Design + +Many package managers make available dozens of substitute servers (often called +"mirrors") from which to download compiled packages. Usually package managers +have some sort of configuration option to select the mirror with the fastest +connection, typically the mirror that is geographically closest, and possibly +some sort of auto-detection of connection speeds. Guix does not currently have +such a configuration option, and defaults to `ci.guix.gnu.org`. The addition of +a mirror selection configuration option is part of this proposal. Such an option +could be a `guix-configuration` option of `guix-service-type`. + +The Guix installer, for both the ISO and foreign-distro forms, would have an +additional prompt to select a substitute server from a list. + +Since many Guix users and developers are based in the United States, a US-based +server would be a sensible first step beyond the European region. From there +community feedback can be solicited to determine locations for future servers, +so long as sufficient funds are available. + +## Cost of Reverting + +Cost scale: 0 - No incompatibility + +Users of Guix System would experience no change, as substitute server +authentication is handled automatically. Users of Guix on foreign distros who +are installing for the first time would experience no change, so long as they +choose to authorize binary substitutes at install time. + +For users of Guix that is already installed on a foreign distro, they may need +to follow [these +steps](https://guix.gnu.org/manual/en/html_node/Substitute-Server-Authorization.html) +to authorize the new substitute servers if they wish to use them. Otherwise they +would not see the benefits. + +No deprecation of existing substitute servers would be necessary. + +Depending on whether colocation is used, maintenance of the substitute server +may require a Guix developer in the geographic area of the server, with proper +vetting/access clearance to perform administrative tasks directly on the +hardware. Remote maintenance of the server(s) would be possible for most +operations. + +Should a new substitute server need to be decommissioned (for whatever reason), +there would need to be a process established for doing so without breaking +compatibility. This would involve having the decommissioned substitute server +URL redirect to a different active and authorized substitute server. + +# Drawbacks and Open Issues + +TODO: Decide specifics (colocate vs. cloud, location) + +The main drawback of maintaining additional substitute servers is cost, in both +the initial investment and recurring costs. For example, Nix serves their +infrastructure through [Amazon +AWS](https://discourse.nixos.org/t/s3-sponsorship-extension-more-resources-to-build-a-more-sustainable-nix/50936) +and their recurring costs are $15,000 per month. + +However, Guix could potentially mitigate some of the costs. Making use of +donated hardware, and using colocation instead of the cloud could reduce the +monthly spend. Also the FSF may have resources that can provide servers or +colocation services at a reduced price. Guix also has an FSF [Working Together +Fund](https://my.fsf.org/civicrm/contribute/transact?reset=1&id=50) that could +potentially be used to fund substitute servers. + +The [Guix Foundation](https://foundation.guix.info/) may also be interested in +providing financial support for international substitute servers. -- 2.50.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.