diff --git a/pkgs/applications/misc/pass-secret-service/default.nix b/pkgs/applications/misc/pass-secret-service/default.nix new file mode 100644 index 000000000000..678bc06f8004 --- /dev/null +++ b/pkgs/applications/misc/pass-secret-service/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchFromGitHub, python3, dbus, gnupg }: + +python3.pkgs.buildPythonApplication rec { + pname = "pass-secret-service"; + # PyPI has old alpha version. Since then the project has switched from using a + # seemingly abandoned D-Bus package pydbus and started using maintained + # dbus-next. So let's use latest from GitHub. + version = "unstable-2020-04-12"; + + src = fetchFromGitHub { + owner = "mdellweg"; + repo = "pass_secret_service"; + rev = "f6fbca6ac3ccd16bfec407d845ed9257adf74dfa"; + sha256 = "0rm4pbx1fiwds1v7f99khhh7x3inv9yniclwd95mrbgljk3cc6a4"; + }; + + + # Need to specify session.conf file for tests because it won't be found under + # /etc/ in check phase. + postPatch = '' + substituteInPlace Makefile \ + --replace \ + "dbus-run-session" \ + "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf" + ''; + + propagatedBuildInputs = with python3.pkgs; [ + click + cryptography + dbus-next + decorator + pypass + secretstorage + ]; + + checkInputs = + let + ps = python3.pkgs; + in + [ + dbus + gnupg + ps.pytest + ps.pytest-asyncio + ps.pypass + ]; + + checkPhase = '' + runHook preCheck + make test + runHook postCheck + ''; + + meta = { + description = "Libsecret D-Bus API with pass as the backend"; + homepage = "https://github.com/mdellweg/pass_secret_service/"; + license = stdenv.lib.licenses.gpl3Only; + platforms = stdenv.lib.platforms.all; + maintainers = with stdenv.lib.maintainers; [ jluttine ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e65aa28b25b8..b33c46b6eb93 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21401,6 +21401,8 @@ in musikcube = callPackage ../applications/audio/musikcube {}; + pass-secret-service = callPackage ../applications/misc/pass-secret-service { }; + pinboard = with python3Packages; toPythonApplication pinboard; pinboard-notes-backup = haskell.lib.overrideCabal