diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix index faf1f96f7f10..2e2f70d0065d 100644 --- a/pkgs/by-name/go/google-chrome/package.nix +++ b/pkgs/by-name/go/google-chrome/package.nix @@ -181,10 +181,24 @@ let inherit pname meta passthru; version = "150.0.7871.186"; - src = fetchurl { - url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb"; - hash = "sha256-QZPgC21dWWnuY/emlZaGj1RqoOjLB3s+C/nMHixxnQA="; - }; + src = + let + debArch = + { + aarch64-linux = "arm64"; + x86_64-linux = "amd64"; + } + .${stdenvNoCC.hostPlatform.system}; + in + fetchurl { + url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_${debArch}.deb"; + hash = + { + amd64 = "sha256-QZPgC21dWWnuY/emlZaGj1RqoOjLB3s+C/nMHixxnQA="; + arm64 = "sha256-AllqLQfbFu7EJCK5Xeo3TuItGMnOqunpMBKY4OJnj7M="; + } + .${debArch}; + }; # With strictDeps on, some shebangs were not being patched correctly # ie, $out/share/google/chrome/google-chrome @@ -338,7 +352,10 @@ let iedame mdaniels5757 ]; - platforms = lib.platforms.darwin ++ [ "x86_64-linux" ]; + platforms = lib.platforms.darwin ++ [ + "aarch64-linux" + "x86_64-linux" + ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; mainProgram = "google-chrome-stable"; }; diff --git a/pkgs/by-name/go/google-chrome/update.sh b/pkgs/by-name/go/google-chrome/update.sh index 7889ac11eaf5..32a897e05161 100755 --- a/pkgs/by-name/go/google-chrome/update.sh +++ b/pkgs/by-name/go/google-chrome/update.sh @@ -27,8 +27,10 @@ update_linux() { local version_info local version local current_version + local arch + local download_url local new_hash - local new_sri_hash + local -A new_hashes read -ra version_info <<< "$(get_version_info "linux" "linux = stdenvNoCC.mkDerivation" "});")" version="${version_info[0]}" @@ -39,14 +41,18 @@ update_linux() { return 0 fi - local download_url="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${version}-1_amd64.deb" - new_hash="$(nix-prefetch-url "$download_url" 2>/dev/null)" - new_sri_hash="$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri "$new_hash")" + for arch in amd64 arm64; do + download_url="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${version}-1_${arch}.deb" + new_hash="$(nix-prefetch-url "$download_url" 2>/dev/null)" + new_hashes["$arch"]="$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri "$new_hash")" + done sed -i "/^ linux = stdenvNoCC.mkDerivation/,/^ });/s/version = \".*\"/version = \"$version\"/" "$DEFAULT_NIX" - sed -i "/^ linux = stdenvNoCC.mkDerivation/,/^ });/s|hash = \".*\"|hash = \"$new_sri_hash\"|" "$DEFAULT_NIX" - echo "[Nix] Linux google-chrome: $current_version -> $version with hash $new_hash" + for arch in amd64 arm64; do + sed -i "/^ linux = stdenvNoCC.mkDerivation/,/^ });/s|^\([[:space:]]*\)${arch} = \".*\";|\1${arch} = \"${new_hashes[$arch]}\";|" "$DEFAULT_NIX" + echo "[Nix] Linux ${arch} google-chrome: $current_version -> $version with hash ${new_hashes[$arch]}" + done } update_darwin() {