@ -1,6 +1,6 @@
{ lib , stdenv
{ lib
, stdenv
, fetchurl
, appimageTools
, makeWrapper
, electron_11
, openssl
@ -11,18 +11,12 @@ stdenv.mkDerivation rec {
version = " 8 . 0 . 3 0 " ;
src = fetchurl {
url = " h t t p s : / / o n e p a s s w o r d . s 3 . a m a z o n a w s . c o m / l i n u x / a p p i m a g e / ${ pname } - ${ version } . A p p I m a g e " ;
hash = " s h a 2 5 6 - j + f p / f 8 n t a + O O u O F U 4 m m U r G Y l V m A q d a X O 4 r L J 0 i n + m 8 = " ;
url = " h t t p s : / / d o w n l o a d s . 1 p a s s w o r d . c o m / l i n u x / t a r / 1 p a s s w o r d - ${ version } . t a r . g z " ;
hash = " s h a 2 5 6 - R 4 T b u 2 T A i g 0 i F / I N 8 h n O 3 B z q q j 6 R u 1 Y y y G h z r a M 7 / 9 Y = " ;
} ;
nativeBuildInputs = [ makeWrapper ] ;
appimageContents = appimageTools . extractType2 {
name = " ${ pname } - ${ version } " ;
inherit src ;
} ;
dontUnpack = true ;
dontConfigure = true ;
dontBuild = true ;
@ -35,20 +29,33 @@ stdenv.mkDerivation rec {
mkdir - p $ out/bin $ out/share/1password
# Applications files.
cp - a $ { appimageContents } / { locales , resources } $ out/share / $ { pname }
cp - a { locales , resources } $ out/share / $ { pname }
install - Dm0755 - t $ out/share / $ { pname } { 1 Password-BrowserSupport , 1 Password-KeyringHelper }
# Desktop file.
install - Dt $ out/share/applications $ { appimageContents } / $ { pname } . desktop
install - Dt $ out/share/applications usr/share/applications / $ { pname } . desktop
substituteInPlace $ out/share/applications / $ { pname } . desktop \
- - replace ' Exec = AppRun ' ' Exec = $ { pname } '
- - replace ' Exec = /opt/1Password / $ { pname } ' ' Exec = $ { pname } '
# Icons.
cp - a $ { appimageContents } / usr/share/icons $ out/share
cp - a usr/share/icons $ out/share
# Wrap the application with Electron.
makeWrapper " ${ electron_11 } / b i n / e l e c t r o n " " $ o u t / b i n / ${ pname } " \
- - add-flags " $ o u t / s h a r e / ${ pname } / r e s o u r c e s / a p p . a s a r " \
- - prefix LD_LIBRARY_PATH : " ${ lib . makeLibraryPath runtimeLibs } "
# Set the interpreter for the helper binaries and wrap them with
# the runtime libraries.
interp = " $ ( c a t $ N I X _ C C / n i x - s u p p o r t / d y n a m i c - l i n k e r ) "
patchelf - - set-interpreter $ interp \
$ out/share / $ pname / { 1 Password-BrowserSupport , 1 Password-KeyringHelper }
wrapProgram $ out/share / $ { pname } /1Password-BrowserSupport \
- - prefix LD_LIBRARY_PATH : " ${ lib . makeLibraryPath runtimeLibs } "
wrapProgram $ out/share / $ { pname } /1Password-KeyringHelper \
- - prefix LD_LIBRARY_PATH : " ${ lib . makeLibraryPath runtimeLibs } "
'' ;
passthru . updateScript = ./update.sh ;