summary refs log tree commit diff
path: root/Documentation/installation/binary-cache.adoc
blob: 93ab240a6c5b22f6099d11abf3a8922f6c9d43fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
= Setting Up Binary Cache
:page-parent: Build and Run
:page-nav_order: 1

// SPDX-FileCopyrightText: 2022-2023 Alyssa Ross <hi@alyssa.is>
// SPDX-License-Identifier: GFDL-1.3-no-invariants-or-later OR CC-BY-SA-4.0

Building Spectrum from source can take a very long time.  To avoid
having to wait when building the system to try it out or test patches,
an x86_64 binary cache service is available.  If configured to do so,
Nix will download build outputs from the cache, instead of building
them locally.

The binary cache is populated by doing a Spectrum
xref:../development/release.adoc[release build], on the latest NixOS
unstable, on https://www.vultr.com/[Vultr], and are signed to ensure
authenticity.  The build infrastructure and signing key are accessible
by Alyssa Ross and Puck Meerburg.  Storage is provided by Daniel
Kuehn.  Please xref:../contributing/communication.adoc[get in touch]
if you encounter any trouble with it.

== For NixOS

Add the following configuration to /etc/nixos/configuration.nix:

[source,nix]
----
{ ... }:

{
  nix.settings.substituters = [ "https://cache.dataaturservice.se/spectrum/" ];
  nix.settings.trusted-public-keys = [
    "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
    "spectrum-os.org-1:rnnSumz3+Dbs5uewPlwZSTP0k3g/5SRG4hD7Wbr9YuQ="
  ];
}
----

This configuration adds the Spectrum binary cache as a substituter and makes
Nix trust builds signed with its public key.

To apply changes, rebuild your system with the https://nixos.wiki/wiki/Nixos-rebuild[nixos-rebuild] command.


== For Non-NixOS Systems

Add the following configuration to /etc/nix/nix.conf:

[source]
----
substituters = https://cache.dataaturservice.se/spectrum/ https://cache.nixos.org/
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= spectrum-os.org-1:rnnSumz3+Dbs5uewPlwZSTP0k3g/5SRG4hD7Wbr9YuQ=
----

Run `systemctl restart nix-daemon.service` after making any changes in the Nix
configuration.  After that the binary cache will be used automatically when
`nix-build` is run.

If you have other binary caches configured besides cache.nixos.org,
make sure to add the Spectrum cache URL and public key to the existing
configuration lines in your nix.conf file.