python3Packages.notify-py: hardcode paths to aplay, notify-send, and which

launchpad/nixpkgs/master
Robert Schütz 3 years ago
parent b633a6d1f7
commit 0010e0bb58
  1. 13
      pkgs/development/python-modules/notify-py/darwin-paths.patch
  2. 43
      pkgs/development/python-modules/notify-py/default.nix
  3. 54
      pkgs/development/python-modules/notify-py/linux-paths.patch

@ -0,0 +1,13 @@
diff --git a/notifypy/os_notifiers/macos.py b/notifypy/os_notifiers/macos.py
index 68731fb..53fcee3 100644
--- a/notifypy/os_notifiers/macos.py
+++ b/notifypy/os_notifiers/macos.py
@@ -75,7 +75,7 @@ class MacOSNotifier(BaseNotifier):
def _find_installed_afplay():
"""Function to find the path for afplay"""
try:
- run_which_for_aplay = subprocess.check_output(["which", "afplay"])
+ run_which_for_aplay = subprocess.check_output(["@which@", "afplay"])
return run_which_for_aplay.decode("utf-8")
except subprocess.CalledProcessError:
logger.exception("Unable to find aplay.")

@ -1,5 +1,17 @@
{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, coreutils, alsa-utils
, libnotify, which, jeepney, loguru, pytestCheckHook }:
{ lib
, stdenv
, buildPythonPackage
, isPy3k
, fetchFromGitHub
, substituteAll
, alsa-utils
, libnotify
, which
, jeepney
, loguru
, pytestCheckHook
, coreutils
}:
buildPythonPackage rec {
pname = "notify-py";
@ -14,15 +26,28 @@ buildPythonPackage rec {
sha256 = "1n35adwsyhz304n4ifnsz6qzkymwhyqc8sg8d76qv5psv2xsnzlf";
};
propagatedNativeBuildInputs = [ which ]
++ lib.optionals stdenv.isLinux [ alsa-utils libnotify ];
patches = lib.optionals stdenv.isLinux [
# hardcode paths to aplay and notify-send
(substituteAll {
src = ./linux-paths.patch;
aplay = "${alsa-utils}/bin/aplay";
notifysend = "${libnotify}/bin/notify-send";
})
] ++ lib.optionals stdenv.isDarwin [
# hardcode path to which
(substituteAll {
src = ./darwin-paths.patch;
which = "${which}/bin/which";
})
];
propagatedBuildInputs = [ loguru ]
++ lib.optionals stdenv.isLinux [ jeepney ];
checkInputs = [ coreutils pytestCheckHook ];
checkInputs = [ pytestCheckHook ];
# Tests search for "afplay" binary which is built in to MacOS and not available in nixpkgs
preCheck = ''
preCheck = lib.optionalString stdenv.isDarwin ''
mkdir $TMP/bin
ln -s ${coreutils}/bin/true $TMP/bin/afplay
export PATH="$TMP/bin:$PATH"
@ -31,9 +56,9 @@ buildPythonPackage rec {
pythonImportsCheck = [ "notifypy" ];
meta = with lib; {
description = "Python Module for sending cross-platform desktop notifications on Windows, macOS, and Linux.";
homepage = "https://github.com/ms7m/notify-py/";
description = "Cross-platform desktop notification library for Python";
homepage = "https://github.com/ms7m/notify-py";
license = licenses.mit;
maintainers = with maintainers; [ austinbutler ];
maintainers = with maintainers; [ austinbutler dotlambda ];
};
}

@ -0,0 +1,54 @@
diff --git a/notifypy/os_notifiers/linux.py b/notifypy/os_notifiers/linux.py
index ee89216..5201574 100644
--- a/notifypy/os_notifiers/linux.py
+++ b/notifypy/os_notifiers/linux.py
@@ -53,30 +53,12 @@ class LinuxNotifierLibNotify(BaseNotifier):
@staticmethod
def _find_installed_aplay():
"""Function to find the path for notify-send"""
- try:
- run_which_for_aplay = subprocess.check_output(["which", "aplay"])
- return run_which_for_aplay.decode("utf-8")
- except subprocess.CalledProcessError:
- logger.exception("Unable to find aplay.")
- return False
- except Exception:
- logger.exception("Unhandled exception for finding aplay.")
- return False
+ return "@aplay@"
@staticmethod
def _find_installed_notify_send():
"""Function to find the path for notify-send"""
- try:
- run_which_for_notify_send = subprocess.check_output(
- ["which", "notify-send"]
- )
- return run_which_for_notify_send.decode("utf-8")
- except subprocess.CalledProcessError:
- logger.exception("Unable to find notify-send.")
- return False
- except Exception:
- logger.exception("Unhandled exception for finding notify-send.")
- return False
+ return "@notifysend@"
def send_notification(
self,
@@ -159,15 +141,7 @@ class LinuxNotifier(BaseNotifier):
@staticmethod
def _find_installed_aplay():
"""Function to find the path for notify-send"""
- try:
- run_which_for_aplay = subprocess.check_output(["which", "aplay"])
- return run_which_for_aplay.decode("utf-8")
- except subprocess.CalledProcessError:
- logger.exception("Unable to find aplay.")
- return False
- except Exception:
- logger.exception("Unhandled exception for finding aplay.")
- return False
+ return "@aplay@"
def send_notification(
self,
Loading…
Cancel
Save