From a375eff6d3ce617cdf35a3766661047195f9de46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Qui=C3=B1ones?= Date: Tue, 24 Dec 2024 21:08:29 -0500 Subject: [PATCH] fix: exposing package via `packages.${system}.default` in flake output --- .github/README.md | 2 +- flake.nix | 247 +++++++++++++++++++++++----------------------- 2 files changed, 126 insertions(+), 123 deletions(-) diff --git a/.github/README.md b/.github/README.md index 3316960..c436c54 100644 --- a/.github/README.md +++ b/.github/README.md @@ -18,7 +18,7 @@ inputs = { To integrate `Zen Browser` to your nixos configuration, add the following to your `environment.systemPackages` in `configuration.nix`: ```nix -inputs.zen-browser.packages."${system}" +inputs.zen-browser.packages."${system}".default ``` Afterwards you can just build your configuration and start the `Zen Browser` diff --git a/flake.nix b/flake.nix index d404bd7..1ad37a2 100644 --- a/flake.nix +++ b/flake.nix @@ -1,132 +1,135 @@ { description = "Zen Browser"; - inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; }; + inputs = {nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";}; - outputs = { self, nixpkgs }: - let - system = "x86_64-linux"; - version = "1.0.2-b.4"; - downloadUrl.url = - "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-x86_64.tar.bz2"; - downloadUrl.sha256 = - "0vqzins5g4xx6niylzjq071vyk4djpn6a7rh1ymbx83ns0xb4lb5"; + outputs = { + self, + nixpkgs, + }: let + system = "x86_64-linux"; + version = "1.0.2-b.4"; + downloadUrl.url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-x86_64.tar.bz2"; + downloadUrl.sha256 = "0vqzins5g4xx6niylzjq071vyk4djpn6a7rh1ymbx83ns0xb4lb5"; - pkgs = import nixpkgs { inherit system; }; + pkgs = import nixpkgs {inherit system;}; - runtimeLibs = with pkgs; - [ - libGL - libGLU - libevent - libffi - libjpeg - libpng - libstartup_notification - libvpx - libwebp - stdenv.cc.cc - fontconfig - libxkbcommon - zlib - freetype - gtk3 - libxml2 - dbus - xcb-util-cursor - alsa-lib - libpulseaudio - pango - atk - cairo - gdk-pixbuf - glib - udev - libva - mesa - libnotify - cups - pciutils - ffmpeg - libglvnd - pipewire - speechd - ] ++ (with pkgs.xorg; [ - libxcb - libX11 - libXcursor - libXrandr - libXi - libXext - libXcomposite - libXdamage - libXfixes - libXScrnSaver - ]); + runtimeLibs = with pkgs; + [ + libGL + libGLU + libevent + libffi + libjpeg + libpng + libstartup_notification + libvpx + libwebp + stdenv.cc.cc + fontconfig + libxkbcommon + zlib + freetype + gtk3 + libxml2 + dbus + xcb-util-cursor + alsa-lib + libpulseaudio + pango + atk + cairo + gdk-pixbuf + glib + udev + libva + mesa + libnotify + cups + pciutils + ffmpeg + libglvnd + pipewire + speechd + ] + ++ (with pkgs.xorg; [ + libxcb + libX11 + libXcursor + libXrandr + libXi + libXext + libXcomposite + libXdamage + libXfixes + libXScrnSaver + ]); - mkZen = { }: - let downloadData = downloadUrl; - in pkgs.stdenv.mkDerivation { - inherit version; - pname = "zen-browser"; + mkZen = {}: let + downloadData = downloadUrl; + in + pkgs.stdenv.mkDerivation { + inherit version; + pname = "zen-browser"; - src = builtins.fetchTarball { - url = downloadData.url; - sha256 = downloadData.sha256; - }; - - desktopSrc = ./.; - - phases = [ "installPhase" "fixupPhase" ]; - - nativeBuildInputs = - [ pkgs.makeWrapper pkgs.copyDesktopItems pkgs.wrapGAppsHook ]; - - installPhase = '' - mkdir -p $out/{bin,opt/zen} && cp -r $src/* $out/opt/zen - ln -s $out/opt/zen/zen $out/bin/zen - - install -D $desktopSrc/zen.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 - install -D $src/browser/chrome/icons/default/default48.png $out/share/icons/hicolor/48x48/apps/zen.png - install -D $src/browser/chrome/icons/default/default64.png $out/share/icons/hicolor/64x64/apps/zen.png - install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen.png - ''; - - fixupPhase = '' - chmod 755 $out/bin/zen $out/opt/zen/* - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen - wrapProgram $out/opt/zen/zen --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" \ - --set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen-bin - wrapProgram $out/opt/zen/zen-bin --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" \ - --set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/glxtest - wrapProgram $out/opt/zen/glxtest --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/updater - wrapProgram $out/opt/zen/updater --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" - - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/vaapitest - wrapProgram $out/opt/zen/vaapitest --set LD_LIBRARY_PATH "${ - pkgs.lib.makeLibraryPath runtimeLibs - }" - ''; - - meta.mainProgram = "zen"; + src = builtins.fetchTarball { + url = downloadData.url; + sha256 = downloadData.sha256; }; - in { packages."${system}" = mkZen { }; }; + + desktopSrc = ./.; + + phases = ["installPhase" "fixupPhase"]; + + nativeBuildInputs = [pkgs.makeWrapper pkgs.copyDesktopItems pkgs.wrapGAppsHook]; + + installPhase = '' + mkdir -p $out/{bin,opt/zen} && cp -r $src/* $out/opt/zen + ln -s $out/opt/zen/zen $out/bin/zen + + install -D $desktopSrc/zen.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 + install -D $src/browser/chrome/icons/default/default48.png $out/share/icons/hicolor/48x48/apps/zen.png + install -D $src/browser/chrome/icons/default/default64.png $out/share/icons/hicolor/64x64/apps/zen.png + install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen.png + ''; + + fixupPhase = '' + chmod 755 $out/bin/zen $out/opt/zen/* + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen + wrapProgram $out/opt/zen/zen --set LD_LIBRARY_PATH "${ + pkgs.lib.makeLibraryPath runtimeLibs + }" \ + --set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/zen-bin + wrapProgram $out/opt/zen/zen-bin --set LD_LIBRARY_PATH "${ + pkgs.lib.makeLibraryPath runtimeLibs + }" \ + --set MOZ_LEGACY_PROFILES 1 --set MOZ_ALLOW_DOWNGRADE 1 --set MOZ_APP_LAUNCHER zen --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/glxtest + wrapProgram $out/opt/zen/glxtest --set LD_LIBRARY_PATH "${ + pkgs.lib.makeLibraryPath runtimeLibs + }" + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/updater + wrapProgram $out/opt/zen/updater --set LD_LIBRARY_PATH "${ + pkgs.lib.makeLibraryPath runtimeLibs + }" + + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/opt/zen/vaapitest + wrapProgram $out/opt/zen/vaapitest --set LD_LIBRARY_PATH "${ + pkgs.lib.makeLibraryPath runtimeLibs + }" + ''; + + meta.mainProgram = "zen"; + }; + in { + packages."${system}".default = mkZen {}; + }; }