feat(flake): support for aarch64-linux

This commit is contained in:
Luis Quiñones
2024-12-31 15:51:25 -05:00
parent 3d26db3a16
commit 1894eec539

View File

@@ -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;
});
};
}