proton-pass: enable on darwin (#472021)

This commit is contained in:
Marcin Serwin
2026-02-22 12:28:29 +00:00
committed by GitHub
4 changed files with 101 additions and 50 deletions
+5
View File
@@ -24567,6 +24567,11 @@
githubId = 67710369;
keys = [ { fingerprint = "EA88 EA07 26E9 6CBF 6365 3966 163B 16EE 76ED 24CE"; } ];
};
shunueda = {
name = "Shun Ueda";
github = "shunueda";
githubId = 62182668;
};
shved = {
name = "Yury Shvedov";
email = "mestofel13@gmail.com";
+30
View File
@@ -0,0 +1,30 @@
{
stdenv,
pname,
version,
meta,
undmg,
fetchurl,
}:
stdenv.mkDerivation (finalAttrs: {
inherit pname version meta;
src = fetchurl {
url = "https://proton.me/download/PassDesktop/darwin/universal/ProtonPass_${version}.dmg";
hash = "sha256-oo02IYOKZEsr0+4zimSFkutTGuS63ZvMZTeUTapZrVw=";
};
nativeBuildInputs = [ undmg ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -r *.app $out/Applications
runHook postInstall
'';
})
+57
View File
@@ -0,0 +1,57 @@
{
stdenvNoCC,
dpkg,
makeWrapper,
electron,
asar,
lib,
version,
fetchurl,
pname,
meta,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname version meta;
nativeBuildInputs = [
dpkg
makeWrapper
asar
];
src = fetchurl {
url = "https://proton.me/download/pass/linux/x64/proton-pass_${version}_amd64.deb";
hash = "sha256-i5QQ1uzQ2tSDX4I/APL60QcHh9Ovc7ciueRnz7cZUuE=";
};
dontConfigure = true;
dontBuild = true;
# Rebuild the ASAR archive, hardcoding the resourcesPath
preInstall = ''
asar extract usr/lib/proton-pass/resources/app.asar tmp
rm usr/lib/proton-pass/resources/app.asar
substituteInPlace tmp/.webpack/main/index.js \
--replace-fail "process.resourcesPath" "'$out/share/proton-pass'"
asar pack tmp/ usr/lib/proton-pass/resources/app.asar
rm -fr tmp
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/proton-pass
cp -r usr/share/ $out/
cp -r usr/lib/proton-pass/resources/{app.asar,assets} $out/share/proton-pass/
runHook postInstall
'';
preFixup = ''
makeWrapper ${lib.getExe electron} $out/bin/proton-pass \
--add-flags $out/share/proton-pass/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--set-default ELECTRON_FORCE_IS_PACKAGED 1 \
--set-default ELECTRON_IS_DEV 0 \
--inherit-argv0
'';
})
+9 -50
View File
@@ -1,57 +1,12 @@
{
lib,
stdenvNoCC,
fetchurl,
dpkg,
makeWrapper,
electron,
asar,
stdenv,
callPackage,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
let
pname = "proton-pass";
version = "1.34.2";
src = fetchurl {
url = "https://proton.me/download/pass/linux/x64/proton-pass_${finalAttrs.version}_amd64.deb";
hash = "sha256-i5QQ1uzQ2tSDX4I/APL60QcHh9Ovc7ciueRnz7cZUuE=";
};
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [
dpkg
makeWrapper
asar
];
# Rebuild the ASAR archive, hardcoding the resourcesPath
preInstall = ''
asar extract usr/lib/proton-pass/resources/app.asar tmp
rm usr/lib/proton-pass/resources/app.asar
substituteInPlace tmp/.webpack/main/index.js \
--replace-fail "process.resourcesPath" "'$out/share/proton-pass'"
asar pack tmp/ usr/lib/proton-pass/resources/app.asar
rm -fr tmp
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/proton-pass
cp -r usr/share/ $out/
cp -r usr/lib/proton-pass/resources/{app.asar,assets} $out/share/proton-pass/
runHook postInstall
'';
preFixup = ''
makeWrapper ${lib.getExe electron} $out/bin/proton-pass \
--add-flags $out/share/proton-pass/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--set-default ELECTRON_FORCE_IS_PACKAGED 1 \
--set-default ELECTRON_IS_DEV 0 \
--inherit-argv0
'';
meta = {
description = "Desktop application for Proton Pass";
homepage = "https://proton.me/pass";
@@ -60,9 +15,13 @@ stdenvNoCC.mkDerivation (finalAttrs: {
luftmensch-luftmensch
massimogengarelli
sebtm
shunueda
];
platforms = [ "x86_64-linux" ];
platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
mainProgram = "proton-pass";
};
})
in
callPackage (if stdenv.hostPlatform.isDarwin then ./darwin.nix else ./linux.nix) {
inherit pname version meta;
}