From 4aaa0a81f6a8154849bd9c179ad51c1ad3aab09d Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Thu, 22 Sep 2022 13:45:36 +1000 Subject: [PATCH] 1password-gui: fix crash opening file selector --- pkgs/applications/misc/1password-gui/beta.nix | 25 ++++++++++++------- .../misc/1password-gui/default.nix | 24 +++++++++++------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/pkgs/applications/misc/1password-gui/beta.nix b/pkgs/applications/misc/1password-gui/beta.nix index bd1b0b6e0e63..7e89044f3784 100644 --- a/pkgs/applications/misc/1password-gui/beta.nix +++ b/pkgs/applications/misc/1password-gui/beta.nix @@ -2,6 +2,7 @@ , stdenv , fetchurl , makeWrapper +, wrapGAppsHook , alsa-lib , at-spi2-atk , at-spi2-core @@ -58,11 +59,13 @@ in stdenv.mkDerivation rec { sha256 = "0vqrcwn5y350g91w3kh8n43gw21kck1cwim92dw9i0xxxch91hrg"; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + buildInputs = [ glib ]; dontConfigure = true; dontBuild = true; dontPatchELF = true; + dontWrapGApps = true; installPhase = let rpath = lib.makeLibraryPath [ @@ -123,17 +126,21 @@ in stdenv.mkDerivation rec { patchelf --set-rpath ${rpath}:$out/share/1password $file done - # Electron is trying to open udev via dlopen() - # and for some reason that doesn't seem to be impacted from the rpath. - # Adding udev to LD_LIBRARY_PATH fixes that. - # Make xdg-open overrideable at runtime. - makeWrapper $out/share/1password/1password $out/bin/1password \ - --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \ - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]} - runHook postInstall ''; + preFixup = '' + # Electron is trying to open udev via dlopen() + # and for some reason that doesn't seem to be impacted from the rpath. + # Adding udev to LD_LIBRARY_PATH fixes that. + # Make xdg-open overrideable at runtime. + makeWrapper $out/share/1password/1password $out/bin/1password \ + ''${gappsWrapperArgs[@]} \ + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]} + ''; + + meta = with lib; { description = "Multi-platform password manager"; homepage = "https://1password.com/"; diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix index ead45054cc28..88598410d76f 100644 --- a/pkgs/applications/misc/1password-gui/default.nix +++ b/pkgs/applications/misc/1password-gui/default.nix @@ -2,6 +2,7 @@ , stdenv , fetchurl , makeWrapper +, wrapGAppsHook , alsa-lib , at-spi2-atk , at-spi2-core @@ -58,11 +59,13 @@ in stdenv.mkDerivation rec { sha256 = "1rcvxxcz2q7kgf6qbcjnjhysnx9z81hvl0jfv0nkp0p1w8bf1h66"; }; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper wrapGAppsHook ]; + buildInputs = [ glib ]; dontConfigure = true; dontBuild = true; dontPatchELF = true; + dontWrapGApps = true; installPhase = let rpath = lib.makeLibraryPath [ @@ -123,17 +126,20 @@ in stdenv.mkDerivation rec { patchelf --set-rpath ${rpath}:$out/share/1password $file done - # Electron is trying to open udev via dlopen() - # and for some reason that doesn't seem to be impacted from the rpath. - # Adding udev to LD_LIBRARY_PATH fixes that. - # Make xdg-open overrideable at runtime. - makeWrapper $out/share/1password/1password $out/bin/1password \ - --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \ - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]} - runHook postInstall ''; + preFixup = '' + # Electron is trying to open udev via dlopen() + # and for some reason that doesn't seem to be impacted from the rpath. + # Adding udev to LD_LIBRARY_PATH fixes that. + # Make xdg-open overrideable at runtime. + makeWrapper $out/share/1password/1password $out/bin/1password \ + ''${gappsWrapperArgs[@]} \ + --suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ udev ]} + ''; + meta = with lib; { description = "Multi-platform password manager"; homepage = "https://1password.com/";