Hi! While this sounds like a great idea, should this be a GCD (already)?
I'd assume that as long as hardware/funding and sysadmins are found, no one would be opposed to having non-EU binary substitute servers. If Guix has disposable funds, a GCD of the form "let's use some of those to set up servers" would make sense to me, or if servers had been secured "let's use those servers as a binary substitute server" would make sense, but imo in its current form this GCD lacks actionability: there's no clarity as to who would do what if this were to be accepted Kind regards, pinoaffe Antero Mejr <m...@antr.me> writes: > I am looking for feedback/sponsors for a new GCD proposal to set up one > or more international (outside EU) binary substitute servers in order to > improve download speeds. > > The PR is not ready yet because the proposal needs to be a more concrete > plan. I would like to collect people's feedback before updating it - if > you all think this issue is important, whether colocation vs. cloud > would be preferable, where the servers should be located, or any other > comments/concerns. > > The working repository is here: > https://codeberg.org/antero/guix-consensus-documents/src/branch/wip-substitutes > > Here is the initial markdown text: > > title: International substitute servers > id: 6 > 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 > > 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.