proton-pass: support darwin
This commit is contained in:
@@ -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
|
||||
'';
|
||||
})
|
||||
@@ -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
|
||||
'';
|
||||
})
|
||||
@@ -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";
|
||||
@@ -62,8 +17,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user