about summary refs log tree commit diff
path: root/pkgs/applications/audio
diff options
context:
space:
mode:
authorPeder Bergebakken Sundt2023-10-29 02:23:25 +0100
committerPeder Bergebakken Sundt2023-10-29 02:23:38 +0100
commit122689763ab33ae2ebeb21f1e25961dd8d639fa4 (patch)
tree90ce1e65022a2dbcf5c6d9415d2f28c0e4338bc0 /pkgs/applications/audio
parent16d9fd5a86541e6007081c95c6eb9b615e14b86e (diff)
vgmstream: unstable-2022-02-21 -> 1879
Diffstat (limited to 'pkgs/applications/audio')
-rw-r--r--pkgs/applications/audio/vgmstream/default.nix20
-rwxr-xr-xpkgs/applications/audio/vgmstream/update.sh77
2 files changed, 9 insertions, 88 deletions
diff --git a/pkgs/applications/audio/vgmstream/default.nix b/pkgs/applications/audio/vgmstream/default.nix
index f696c5061864..6b5e6460172d 100644
--- a/pkgs/applications/audio/vgmstream/default.nix
+++ b/pkgs/applications/audio/vgmstream/default.nix
@@ -1,21 +1,23 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config
 , mpg123, ffmpeg, libvorbis, libao, jansson, speex
+, nix-update-script
 }:
-let
-  vgmstreamVersion = "r1702-5596-00bdb165b";
-in
+
 stdenv.mkDerivation rec {
   pname = "vgmstream";
-  version = "unstable-2022-02-21";
+  version = "1879";
 
   src = fetchFromGitHub {
     owner = "vgmstream";
     repo = "vgmstream";
-    rev = "00bdb165ba6b55420bbd5b21f54c4f7a825d15a0";
-    sha256 = "18g1yqlnf48hi2xn2z2wajnjljpdbfdqmcmi7y8hi1r964ypmfcr";
+    rev = "refs/tags/r${version}";
+    sha256 = "sha256-m7M9oIEym/jzuw2HAbjdF6fZsfTew1KK0g1D4SePiiE=";
   };
 
-  passthru.updateScript = ./update.sh;
+  passthru.updateScript = nix-update-script {
+    attrPath = "vgmstream";
+    extraArgs = [ "--version-regex" "r(.*)" ];
+  };
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -28,10 +30,6 @@ stdenv.mkDerivation rec {
     "-DUSE_CELT=OFF"
   ];
 
-  postConfigure = ''
-    echo "#define VGMSTREAM_VERSION \"${vgmstreamVersion}\"" > ../version.h
-  '';
-
   meta = with lib; {
     description = "A library for playback of various streamed audio formats used in video games";
     homepage    = "https://vgmstream.org";
diff --git a/pkgs/applications/audio/vgmstream/update.sh b/pkgs/applications/audio/vgmstream/update.sh
deleted file mode 100755
index 5353480dd335..000000000000
--- a/pkgs/applications/audio/vgmstream/update.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash --pure --keep GITHUB_TOKEN -p gnused jq nix-prefetch-git curl cacert
-
-set -euo pipefail
-
-ROOT="$(dirname "$(readlink -f "$0")")"
-if [[ ! "$(basename $ROOT)" == "vgmstream" || ! -f "$ROOT/default.nix" ]]; then
-    echo "ERROR: Not in the vgmstream folder"
-    exit 1
-fi
-
-if [[ ! -v GITHUB_TOKEN ]]; then
-    echo "ERROR: \$GITHUB_TOKEN not set"
-    exit 1
-fi
-
-
-payload=$(jq -cn --rawfile query /dev/stdin '{"query": $query}' <<EOF | curl -s -H "Authorization: bearer $GITHUB_TOKEN" -d '@-' https://api.github.com/graphql
-{
-  repository(owner: "vgmstream", name: "vgmstream") {
-    branch: ref(qualifiedName: "refs/heads/master") {
-      target {
-        oid
-        ... on Commit {
-          committedDate
-          history {
-            totalCount
-          }
-        }
-      }
-    }
-
-    tag: refs(refPrefix: "refs/tags/", first: 1, orderBy: {field: TAG_COMMIT_DATE, direction: DESC}) {
-      nodes {
-        name
-      }
-    }
-  }
-}
-EOF
-)
-
-committed_full_date=$(jq -r .data.repository.branch.target.committedDate <<< "$payload")
-committed_date=$(sed -nE 's/^([0-9]{4}-[0-9]{2}-[0-9]{2}).+$/\1/p' <<< $committed_full_date)
-commit_unix=$(date --utc --date="$committed_date" +%s)
-last_updated_unix=$(date --utc --date=$(sed -nE 's/^\s*version\s*=\s*\"unstable-([0-9]{4}-[0-9]{2}-[0-9]{2})\";$/\1/p' default.nix) +%s)
-
-commit_sha=$(jq -r .data.repository.branch.target.oid <<< "$payload")
-major_ver=$(jq -r .data.repository.tag.nodes[0].name <<< "$payload" | sed 's/^v//g')
-commit_count=$(jq -r .data.repository.branch.target.history.totalCount <<< "$payload")
-final_ver="$major_ver-$commit_count-${commit_sha::9}"
-
-
-echo "INFO: Latest commit is $commit_sha"
-echo "INFO: Latest commit date is $committed_full_date"
-echo "INFO: Latest version is $final_ver"
-
-##
-# VGMStream has no stable releases, so only update if there's been at
-# least a week between commits to reduce maintainer pressure.
-##
-time_diff=$(( $commit_unix - $last_updated_unix ))
-if [[ $time_diff -lt 604800 ]]; then
-  echo "INFO: Not updating, less than a week between commits."
-  echo "INFO: $time_diff < 604800"
-  exit 0
-fi
-
-nix_sha256=$(nix-prefetch-git --quiet https://github.com/vgmstream/vgmstream.git "$commit_sha" | jq -r .sha256)
-echo "INFO: SHA256 is $nix_sha256"
-
-sed -i -E \
-    -e "s/vgmstreamVersion\s*=\s*\"[a-z0-9-]+\";$/vgmstreamVersion = \"${final_ver}\";/g" \
-    -e "s/version\s*=\s*\"[a-z0-9-]+\";$/version = \"unstable-${committed_date}\";/g" \
-    -e "s/rev\s*=\s*\"[a-z0-9]+\";$/rev = \"${commit_sha}\";/g" \
-    -e "s/sha256\s*=\s*\"[a-z0-9]+\";$/sha256 = \"${nix_sha256}\";/g" \
-    "$ROOT/default.nix"