summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Documentation/about/architecture.adoc2
-rw-r--r--Documentation/contributing/building-documentation.adoc2
-rw-r--r--Documentation/installation/getting-spectrum.adoc8
-rw-r--r--lib/config.default.nix2
-rw-r--r--lib/nixpkgs.default.nix9
-rwxr-xr-xscripts/update-nixpkgs.sh35
6 files changed, 49 insertions, 9 deletions
diff --git a/Documentation/about/architecture.adoc b/Documentation/about/architecture.adoc
index 38e0a22..b5bb387 100644
--- a/Documentation/about/architecture.adoc
+++ b/Documentation/about/architecture.adoc
@@ -65,7 +65,7 @@ https://github.com/utdemir/nix-tree[nix-tree] in the Spectrum repository:
 
 [source,shell]
 [listing]
-nix-build img/live -I nixpkgs=https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-rootfs.tar.gz --no-out-link | xargs -o nix-tree
+nix-build img/live --no-out-link | xargs -o nix-tree
 
 See the https://diode.zone/w/8DBDQ6HQUe5UUdLkpDuL35[video] of Spectrum live
 image interactive analysis with nix-tree.
diff --git a/Documentation/contributing/building-documentation.adoc b/Documentation/contributing/building-documentation.adoc
index 1beffa8..fd3c903 100644
--- a/Documentation/contributing/building-documentation.adoc
+++ b/Documentation/contributing/building-documentation.adoc
@@ -26,7 +26,7 @@ cd spectrum/Documentation
 +
 [source,shell]
 ----
-nix-shell -I nixpkgs=https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-rootfs.tar.gz
+nix-shell
 ----
 . In the development shell, do an initial build of the documentation
 site:
diff --git a/Documentation/installation/getting-spectrum.adoc b/Documentation/installation/getting-spectrum.adoc
index 8ee31b7..3620c79 100644
--- a/Documentation/installation/getting-spectrum.adoc
+++ b/Documentation/installation/getting-spectrum.adoc
@@ -25,11 +25,8 @@ applications.
 [source,shell]
 ----
 git clone https://spectrum-os.org/git/spectrum
-git clone https://github.com/NixOS/nixpkgs
-git clone -b rootfs --reference nixpkgs \
-  https://spectrum-os.org/git/nixpkgs nixpkgs-spectrum
 cd spectrum/host/rootfs
-nix-shell -I nixpkgs=../../../nixpkgs-spectrum --run 'make run'
+nix-shell --run 'make run'
 ----
 
 This builds just enough of Spectrum to try it out in a VM, but it will
@@ -48,8 +45,7 @@ First, you need to build the Spectrum image:
 [source,shell]
 ----
 git clone https://spectrum-os.org/git/spectrum
-nix-build spectrum/release/combined \
-  -I nixpkgs=https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-rootfs.tar.gz
+nix-build spectrum/release/combined
 ----
 
 If you haven't set up the xref:binary-cache.adoc[binary cache], this
diff --git a/lib/config.default.nix b/lib/config.default.nix
index 682c0fc..af01756 100644
--- a/lib/config.default.nix
+++ b/lib/config.default.nix
@@ -2,5 +2,5 @@
 # SPDX-License-Identifier: MIT
 
 {
-  pkgs = import <nixpkgs> {};
+  pkgs = import ./nixpkgs.default.nix {};
 }
diff --git a/lib/nixpkgs.default.nix b/lib/nixpkgs.default.nix
new file mode 100644
index 0000000..196e5b7
--- /dev/null
+++ b/lib/nixpkgs.default.nix
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: CC0-1.0
+# SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+
+# Generated by scripts/update-nixpkgs.sh.
+
+import (builtins.fetchTarball {
+  url = "https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-1440f4cef2673f2a3a7a27114d225ec60d00c2e0.tar.gz";
+  sha256 = "062m49hpbkcsbd79nly9xrp9jamdiq3l61qnn7zq621h8fp1g9i1";
+})
diff --git a/scripts/update-nixpkgs.sh b/scripts/update-nixpkgs.sh
new file mode 100755
index 0000000..916e92b
--- /dev/null
+++ b/scripts/update-nixpkgs.sh
@@ -0,0 +1,35 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p curl
+
+# SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+# SPDX-License-Identifier: EUPL-1.2+
+# REUSE-IgnoreStart
+
+# shellcheck shell=bash
+
+set -ueo pipefail
+
+root="$(dirname "$0")/.."
+out="$(mktemp -p "$root/lib" -t nixpkgs.default.nix.XXXXXXXXXX)"
+
+exec > "$out"
+
+rev="$(
+	curl -fsLS https://spectrum-os.org/git/nixpkgs.git/info/refs |
+	awk '$2 == "refs/heads/rootfs" { print $1 }'
+)"
+url="https://spectrum-os.org/git/nixpkgs/snapshot/nixpkgs-$rev.tar.gz"
+
+cat <<EOF
+# SPDX-License-Identifier: CC0-1.0
+# SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is>
+
+# Generated by scripts/update-nixpkgs.sh.
+
+import (builtins.fetchTarball {
+  url = "$url";
+  sha256 = "$(nix-prefetch-url --unpack "$url")";
+})
+EOF
+
+mv -- "$out" "$root/lib/nixpkgs.default.nix"