From 1894eec539ca6ff03ed878552747894328303be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Qui=C3=B1ones?= Date: Tue, 31 Dec 2024 15:51:25 -0500 Subject: [PATCH] feat(flake): support for aarch64-linux --- flake.nix | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/flake.nix b/flake.nix index ceb19df..98af0f1 100644 --- a/flake.nix +++ b/flake.nix @@ -7,22 +7,10 @@ self, nixpkgs, }: let - system = "x86_64-linux"; + mkZen = name: system: let + pkgs = import nixpkgs {inherit system;}; + variant = (builtins.fromJSON (builtins.readFile ./sources.json)).${name}.${system}; - getSource = let - sources = builtins.fromJSON (builtins.readFile ./sources.json); - in - name: sources.${name}.${system}; - - pkgs = import nixpkgs {inherit system;}; - - mkZen = { - name, - url, - sha256, - version, - ... - }: let runtimeLibs = with pkgs; [ libGL @@ -82,10 +70,10 @@ }); in pkgs.stdenv.mkDerivation { - inherit version; + inherit (variant) version; pname = "zen-browser"; - src = builtins.fetchTarball {inherit url sha256;}; + src = builtins.fetchTarball {inherit (variant) url sha256;}; desktopSrc = ./.; phases = ["installPhase" "fixupPhase"]; @@ -93,12 +81,12 @@ nativeBuildInputs = [pkgs.makeWrapper pkgs.copyDesktopItems pkgs.wrapGAppsHook]; installPhase = '' - mkdir -p $out/{bin,opt/zen,lib/zen-${version}/distribution} && cp -r $src/* $out/opt/zen + mkdir -p $out/{bin,opt/zen,lib/zen-${variant.version}/distribution} && cp -r $src/* $out/opt/zen ln -s $out/opt/zen/zen $out/bin/zen - ln -s ${policiesJson} "$out/lib/zen-${version}/distribution/policies.json" - ln -s $out/bin/zen $out/bin/zen-${name} + ln -s ${policiesJson} "$out/lib/zen-${variant.version}/distribution/policies.json" + ln -s $out/bin/zen $out/bin/zen-${variant.name} - install -D $desktopSrc/zen-${name}.desktop $out/share/applications/zen.desktop + install -D $desktopSrc/zen-${variant.name}.desktop $out/share/applications/zen.desktop install -D $src/browser/chrome/icons/default/default16.png $out/share/icons/hicolor/16x16/apps/zen.png install -D $src/browser/chrome/icons/default/default32.png $out/share/icons/hicolor/32x32/apps/zen.png @@ -140,11 +128,18 @@ meta.mainProgram = "zen"; }; + + supportedSystems = [ + "x86_64-linux" + "aarch64-linux" + ]; + + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; in { - packages."${system}" = { - default = mkZen (getSource "beta"); - beta = mkZen (getSource "beta"); - twilight = mkZen (getSource "twilight"); - }; + packages = forAllSystems (system: { + default = mkZen "beta" system; + beta = mkZen "beta" system; + twilight = mkZen "twilight" system; + }); }; }