aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/tools/security/1password-gui/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/security/1password-gui/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/security/1password-gui/default.nix75
1 files changed, 75 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/1password-gui/default.nix b/nixpkgs/pkgs/tools/security/1password-gui/default.nix
new file mode 100644
index 00000000000..d03f2c551b9
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/1password-gui/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron_9
+, openssl
+}:
+
+let
+ electron = electron_9;
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "1password";
+ version = "0.8.5-1";
+
+ src = fetchurl {
+ url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
+ sha256 = "1jardsyxkf7qfhz8jwzwick5r9jf9yjwsdqvmc2rrnrflzzpscm9";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ appimageContents = appimageTools.extractType2 {
+ name = "${pname}-${version}";
+ inherit src;
+ };
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = let
+ runtimeLibs = [
+ openssl.out
+ stdenv.cc.cc
+ ];
+ in ''
+ mkdir -p $out/bin $out/share/1password
+
+ # Applications files.
+ cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+
+ # Desktop file.
+ install -Dt $out/share/applications ${appimageContents}/${pname}.desktop
+ substituteInPlace $out/share/applications/${pname}.desktop \
+ --replace 'Exec=AppRun' 'Exec=${pname}'
+
+ # Icons.
+ cp -a ${appimageContents}/usr/share/icons $out/share
+
+ # Wrap the application with Electron.
+ makeWrapper "${electron}/bin/electron" "$out/bin/${pname}" \
+ --add-flags "$out/share/${pname}/resources/app.asar" \
+ --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath runtimeLibs}"
+ '';
+
+ passthru.updateScript = ./update.sh;
+
+ meta = with stdenv.lib; {
+ description = "Multi-platform password manager";
+ longDescription = ''
+ 1Password is a multi-platform package manager.
+
+ The Linux version is currently a development preview and can
+ only be used to search, view, and copy items. However items
+ cannot be created or edited.
+ '';
+ homepage = "https://1password.com/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ danieldk ];
+ platforms = [ "x86_64-linux" ];
+ };
+}