Loading pkgs/applications/misc/1password-gui/darwin.nix +18 −9 Original line number Diff line number Diff line { stdenv , pname , version , src , meta , unzip , undmg { stdenv, pname, version, src, meta, unzip, undmg, }: stdenv.mkDerivation { inherit pname version src meta; inherit pname version src meta ; nativeBuildInputs = [ unzip undmg ]; nativeBuildInputs = [ unzip undmg ]; sourceRoot = "."; Loading pkgs/applications/misc/1password-gui/default.nix +44 −16 Original line number Diff line number Diff line { stdenv , callPackage , channel ? "stable" , fetchurl , lib { stdenv, callPackage, channel ? "stable", fetchurl, lib, # This is only relevant for Linux, so we need to pass it through , polkitPolicyOwners ? [ ] }: polkitPolicyOwners ? [ ], }: let pname = "1password"; version = if channel == "stable" then "8.10.36" else "8.10.38-13.BETA"; Loading Loading @@ -51,19 +52,46 @@ let }; src = fetchurl { inherit (sources.${channel}.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")) url hash; inherit (sources.${channel}.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")) url hash ; }; meta = with lib; { meta = { # Requires to be installed in "/Application" which is not possible for now (https://github.com/NixOS/nixpkgs/issues/254944) broken = stdenv.isDarwin; description = "Multi-platform password manager"; homepage = "https://1password.com/"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ timstott savannidgerinel sebtm ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = lib.licenses.unfree; maintainers = with lib.maintainers; [ timstott savannidgerinel sebtm ]; platforms = builtins.attrNames sources.${channel}; mainProgram = "1password"; }; in if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version src meta; } else callPackage ./linux.nix { inherit pname version src meta polkitPolicyOwners; } in if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version src meta ; } else callPackage ./linux.nix { inherit pname version src meta polkitPolicyOwners ; } pkgs/applications/misc/1password-gui/linux.nix +91 −76 Original line number Diff line number Diff line { lib , stdenv , pname , version , src , meta , makeShellWrapper , wrapGAppsHook3 , alsa-lib , at-spi2-atk , at-spi2-core , atk , cairo , cups , dbus , expat , gdk-pixbuf , glib , gtk3 , libX11 , libXcomposite , libXdamage , libXext , libXfixes , libXrandr , libdrm , libxcb , libxkbcommon , libxshmfence , libGL , libappindicator-gtk3 , mesa , nspr , nss , pango , systemd , udev , xdg-utils { lib, stdenv, pname, version, src, meta, makeShellWrapper, wrapGAppsHook3, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3, libX11, libXcomposite, libXdamage, libXext, libXfixes, libXrandr, libdrm, libxcb, libxkbcommon, libxshmfence, libGL, libappindicator-gtk3, mesa, nspr, nss, pango, systemd, udev, xdg-utils, # The 1Password polkit file requires a list of users for whom polkit # integrations should be enabled. This should be a list of strings that # correspond to usernames. , polkitPolicyOwners ? [] polkitPolicyOwners ? [ ], }: let # Convert the polkitPolicyOwners variable to a polkit-compatible string for the polkit file. policyOwners = lib.concatStringsSep " " (map (user: "unix-user:${user}") polkitPolicyOwners); in stdenv.mkDerivation { inherit pname version src meta; in stdenv.mkDerivation { inherit pname version src meta ; nativeBuildInputs = [ makeShellWrapper wrapGAppsHook3 ]; nativeBuildInputs = [ makeShellWrapper wrapGAppsHook3 ]; buildInputs = [ glib ]; dontConfigure = true; Loading @@ -58,7 +68,9 @@ in stdenv.mkDerivation { dontWrapGApps = true; installPhase = let rpath = lib.makeLibraryPath [ let rpath = lib.makeLibraryPath [ alsa-lib at-spi2-atk at-spi2-core Loading Loading @@ -87,8 +99,10 @@ in stdenv.mkDerivation { nss pango systemd ] + ":${stdenv.cc.cc.lib}/lib64"; in '' ] + ":${stdenv.cc.cc.lib}/lib64"; in '' runHook preInstall mkdir -p $out/bin $out/share/1password Loading @@ -99,12 +113,13 @@ in stdenv.mkDerivation { substituteInPlace $out/share/applications/${pname}.desktop \ --replace 'Exec=/opt/1Password/${pname}' 'Exec=${pname}' '' + (lib.optionalString (polkitPolicyOwners != [ ]) '' + (lib.optionalString (polkitPolicyOwners != [ ]) '' # Polkit file mkdir -p $out/share/polkit-1/actions substitute com.1password.1Password.policy.tpl $out/share/polkit-1/actions/com.1password.1Password.policy --replace "\''${POLICY_OWNERS}" "${policyOwners}" '') + '' '') + '' # Icons cp -a resources/icons $out/share Loading Loading
pkgs/applications/misc/1password-gui/darwin.nix +18 −9 Original line number Diff line number Diff line { stdenv , pname , version , src , meta , unzip , undmg { stdenv, pname, version, src, meta, unzip, undmg, }: stdenv.mkDerivation { inherit pname version src meta; inherit pname version src meta ; nativeBuildInputs = [ unzip undmg ]; nativeBuildInputs = [ unzip undmg ]; sourceRoot = "."; Loading
pkgs/applications/misc/1password-gui/default.nix +44 −16 Original line number Diff line number Diff line { stdenv , callPackage , channel ? "stable" , fetchurl , lib { stdenv, callPackage, channel ? "stable", fetchurl, lib, # This is only relevant for Linux, so we need to pass it through , polkitPolicyOwners ? [ ] }: polkitPolicyOwners ? [ ], }: let pname = "1password"; version = if channel == "stable" then "8.10.36" else "8.10.38-13.BETA"; Loading Loading @@ -51,19 +52,46 @@ let }; src = fetchurl { inherit (sources.${channel}.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")) url hash; inherit (sources.${channel}.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}")) url hash ; }; meta = with lib; { meta = { # Requires to be installed in "/Application" which is not possible for now (https://github.com/NixOS/nixpkgs/issues/254944) broken = stdenv.isDarwin; description = "Multi-platform password manager"; homepage = "https://1password.com/"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; maintainers = with maintainers; [ timstott savannidgerinel sebtm ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; license = lib.licenses.unfree; maintainers = with lib.maintainers; [ timstott savannidgerinel sebtm ]; platforms = builtins.attrNames sources.${channel}; mainProgram = "1password"; }; in if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version src meta; } else callPackage ./linux.nix { inherit pname version src meta polkitPolicyOwners; } in if stdenv.isDarwin then callPackage ./darwin.nix { inherit pname version src meta ; } else callPackage ./linux.nix { inherit pname version src meta polkitPolicyOwners ; }
pkgs/applications/misc/1password-gui/linux.nix +91 −76 Original line number Diff line number Diff line { lib , stdenv , pname , version , src , meta , makeShellWrapper , wrapGAppsHook3 , alsa-lib , at-spi2-atk , at-spi2-core , atk , cairo , cups , dbus , expat , gdk-pixbuf , glib , gtk3 , libX11 , libXcomposite , libXdamage , libXext , libXfixes , libXrandr , libdrm , libxcb , libxkbcommon , libxshmfence , libGL , libappindicator-gtk3 , mesa , nspr , nss , pango , systemd , udev , xdg-utils { lib, stdenv, pname, version, src, meta, makeShellWrapper, wrapGAppsHook3, alsa-lib, at-spi2-atk, at-spi2-core, atk, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3, libX11, libXcomposite, libXdamage, libXext, libXfixes, libXrandr, libdrm, libxcb, libxkbcommon, libxshmfence, libGL, libappindicator-gtk3, mesa, nspr, nss, pango, systemd, udev, xdg-utils, # The 1Password polkit file requires a list of users for whom polkit # integrations should be enabled. This should be a list of strings that # correspond to usernames. , polkitPolicyOwners ? [] polkitPolicyOwners ? [ ], }: let # Convert the polkitPolicyOwners variable to a polkit-compatible string for the polkit file. policyOwners = lib.concatStringsSep " " (map (user: "unix-user:${user}") polkitPolicyOwners); in stdenv.mkDerivation { inherit pname version src meta; in stdenv.mkDerivation { inherit pname version src meta ; nativeBuildInputs = [ makeShellWrapper wrapGAppsHook3 ]; nativeBuildInputs = [ makeShellWrapper wrapGAppsHook3 ]; buildInputs = [ glib ]; dontConfigure = true; Loading @@ -58,7 +68,9 @@ in stdenv.mkDerivation { dontWrapGApps = true; installPhase = let rpath = lib.makeLibraryPath [ let rpath = lib.makeLibraryPath [ alsa-lib at-spi2-atk at-spi2-core Loading Loading @@ -87,8 +99,10 @@ in stdenv.mkDerivation { nss pango systemd ] + ":${stdenv.cc.cc.lib}/lib64"; in '' ] + ":${stdenv.cc.cc.lib}/lib64"; in '' runHook preInstall mkdir -p $out/bin $out/share/1password Loading @@ -99,12 +113,13 @@ in stdenv.mkDerivation { substituteInPlace $out/share/applications/${pname}.desktop \ --replace 'Exec=/opt/1Password/${pname}' 'Exec=${pname}' '' + (lib.optionalString (polkitPolicyOwners != [ ]) '' + (lib.optionalString (polkitPolicyOwners != [ ]) '' # Polkit file mkdir -p $out/share/polkit-1/actions substitute com.1password.1Password.policy.tpl $out/share/polkit-1/actions/com.1password.1Password.policy --replace "\''${POLICY_OWNERS}" "${policyOwners}" '') + '' '') + '' # Icons cp -a resources/icons $out/share Loading