summary refs log tree commit diff
path: root/pkgs/os-specific/linux/kernel
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-12-16 04:25:42 +0000
committerAlyssa Ross <hi@alyssa.is>2019-12-16 16:30:22 +0000
commit80a823eeca9ed3e9ceaa6843263b2579e6c3215e (patch)
tree91c91e8970721468ef29e8771e70b1e475d27816 /pkgs/os-specific/linux/kernel
parent821ff387daf87a24e5637db5b7a8c081fb8ff7ed (diff)
downloadnixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.tar
nixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.tar.gz
nixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.tar.bz2
nixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.tar.lz
nixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.tar.xz
nixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.tar.zst
nixpkgs-80a823eeca9ed3e9ceaa6843263b2579e6c3215e.zip
linux/update.sh: update linux-libre too
update-libre.sh doesn't commit by default so that it can be used as an
updateScript, where I don't think auto-committing is the norm.

The generated commit messages say "linux-libre_latest" rather than
"linux-libre", because even though linux-libre will also be rebuilt,
it's linux-libre_latest that is more likely to need it.
Diffstat (limited to 'pkgs/os-specific/linux/kernel')
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix3
-rwxr-xr-xpkgs/os-specific/linux/kernel/update-libre.sh26
-rwxr-xr-xpkgs/os-specific/linux/kernel/update.sh3
3 files changed, 29 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index d29a2382c2a..3340551e16d 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,9 +1,6 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-
-    # Update this if linux_latest-libre fails to build.
-    # $ curl https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/ | grep -Eo 'Revision [0-9]+'
     rev = "16794";
     sha256 = "1lpaka4hs7yrpnrzfybd6radjylwvw2p4aly68pypykqs2srvm7j";
   }
diff --git a/pkgs/os-specific/linux/kernel/update-libre.sh b/pkgs/os-specific/linux/kernel/update-libre.sh
new file mode 100755
index 00000000000..49d73e66d9a
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/update-libre.sh
@@ -0,0 +1,26 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p nix-prefetch-svn git curl
+set -euo pipefail
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+path="$nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix"
+
+old_rev="$(grep -o 'rev = ".*"' "$path" | awk -F'"' '{print $2}')"
+
+svn_url=https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/
+rev="$(curl -s "$svn_url" | grep -Em 1 -o 'Revision [0-9]+' | awk '{print $2}')"
+
+if [ "$old_rev" = "$rev" ]; then
+    echo "No updates for linux-libre"
+    exit 0
+fi
+
+sha256="$(QUIET=1 nix-prefetch-svn "$svn_url" "$rev" | tail -1)"
+
+sed -i -e "s/rev = \".*\"/rev = \"$rev\"/" \
+    -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" "$path"
+
+if [ -n "$COMMIT" ]; then
+    git commit -qm "linux-libre_latest: $old_rev -> $rev" "$path"
+    echo "Updated linux-libre_latest $old_rev -> $rev"
+fi
diff --git a/pkgs/os-specific/linux/kernel/update.sh b/pkgs/os-specific/linux/kernel/update.sh
index 7a86b05dafc..dbfa052d292 100755
--- a/pkgs/os-specific/linux/kernel/update.sh
+++ b/pkgs/os-specific/linux/kernel/update.sh
@@ -57,3 +57,6 @@ ls $NIXPKGS/pkgs/os-specific/linux/kernel | while read FILE; do
 
   echo "Updated $OLDVER -> $V"
 done
+
+# Update linux-libre
+COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh