spidermonkey: add update script

partially based on https://github.com/NixOS/nixpkgs/blob/6f31c2529024d14916da3ea3e84d886ef67d3084/pkgs/applications/networking/browsers/firefox/update.nix. tested with 140.13.0.
This commit is contained in:
whispers
2026-07-21 11:17:16 -04:00
parent bdc4d3982e
commit 40fa42a4a2
2 changed files with 45 additions and 2 deletions
@@ -166,11 +166,15 @@ stdenv.mkDerivation (finalAttrs: {
ln -s $out/bin/js${lib.versions.major version} $out/bin/js
'';
passthru.tests.run = callPackage ./test.nix {
spidermonkey = finalAttrs.finalPackage;
passthru = {
tests.run = callPackage ./test.nix {
spidermonkey = finalAttrs.finalPackage;
};
updateScript = lib.getExe (callPackage ./update.nix { version = lib.versions.major version; });
};
meta = {
changelog = "https://www.firefox.com/en-US/firefox/${version}/releasenotes/";
description = "Mozilla's JavaScript engine written in C/C++";
homepage = "https://spidermonkey.dev/";
license = lib.licenses.mpl20;
@@ -0,0 +1,39 @@
{
writeShellApplication,
common-updater-scripts,
xidel,
baseUrl ? "https://archive.mozilla.org/pub/firefox/releases/",
version ? "",
}:
writeShellApplication {
name = "update-spidermonkey_${version}";
runtimeInputs = [
common-updater-scripts
xidel
];
text = ''
set -eux
HOME=$(mktemp -d)
GNUPGHOME=$(mktemp -d)
export GNUPGHOME
curl https://keys.openpgp.org/vks/v1/by-fingerprint/09BEED63F3462A2DFFAB3B875ECB6497C1A20256 | gpg --import -
version=$(xidel --trace -s "${baseUrl}" --extract "//a" | \
grep "^${version}[0-9.]*esr/$" | \
sed s/[/]$// | \
sort --version-sort | \
tail -n 1)
curl --silent --show-error -o "$HOME"/shasums "${baseUrl}$version/SHA512SUMS"
curl --silent --show-error -o "$HOME"/shasums.asc "${baseUrl}$version/SHA512SUMS.asc"
gpgv --keyring="$GNUPGHOME"/pubring.kbx "$HOME"/shasums.asc "$HOME"/shasums
hash=$(grep '\.source\.tar\.xz$' "$HOME"/shasums | grep '^[^ ]*' -o)
sri_hash=$(nix hash convert --hash-algo sha512 --to sri "$hash")
update-source-version --file=pkgs/development/interpreters/spidermonkey/${version}.nix \
"spidermonkey_${version}" "''${version%esr}" "$sri_hash"
'';
}