diff --git a/pkgs/development/python-modules/desktop-notifier/default.nix b/pkgs/development/python-modules/desktop-notifier/default.nix index b56a6b0849d0..708c971943ec 100644 --- a/pkgs/development/python-modules/desktop-notifier/default.nix +++ b/pkgs/development/python-modules/desktop-notifier/default.nix @@ -6,6 +6,7 @@ , packaging , setuptools , dbus-next +, rubicon-objc }: buildPythonPackage rec { @@ -30,6 +31,8 @@ buildPythonPackage rec { packaging ] ++ lib.optionals stdenv.isLinux [ dbus-next + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + rubicon-objc ]; # no tests available, do the imports check instead @@ -45,6 +48,5 @@ buildPythonPackage rec { changelog = "https://github.com/samschott/desktop-notifier/releases/tag/v${version}"; license = licenses.mit; maintainers = with maintainers; [ sfrijters ]; - platforms = platforms.linux; }; } diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix index 5e658bdea69f..885911b181c8 100644 --- a/pkgs/development/python-modules/maestral/default.nix +++ b/pkgs/development/python-modules/maestral/default.nix @@ -1,4 +1,5 @@ { lib +, stdenv , buildPythonPackage , fetchFromGitHub , makePythonPath @@ -17,6 +18,7 @@ , pyro5 , requests , rich +, rubicon-objc , setuptools , survey , typing-extensions @@ -59,6 +61,8 @@ buildPythonPackage rec { typing-extensions watchdog xattr + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + rubicon-objc ]; makeWrapperArgs = [ @@ -71,6 +75,9 @@ buildPythonPackage rec { pytestCheckHook ]; + # ModuleNotFoundError: No module named '_watchdog_fsevents' + doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64); + preCheck = '' export HOME=$(mktemp -d) ''; @@ -90,6 +97,19 @@ buildPythonPackage rec { "test_locking_multiprocess" # OSError: [Errno 95] Operation not supported "test_move_preserves_xattrs" + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # maetral daemon does not start but worked in real environment + "test_catching_non_ignored_events" + "test_connection" + "test_event_handler" + "test_fs_ignore_tree_creation" + "test_lifecycle" + "test_notify_level" + "test_notify_snooze" + "test_receiving_events" + "test_remote_exceptions" + "test_start_already_running" + "test_stop" ]; pythonImportsCheck = [ @@ -104,7 +124,6 @@ buildPythonPackage rec { homepage = "https://maestral.app"; changelog = "https://github.com/samschott/maestral/releases/tag/v${version}"; license = licenses.mit; - maintainers = with maintainers; [ peterhoeg sfrijters ]; - platforms = platforms.unix; + maintainers = with maintainers; [ natsukium peterhoeg sfrijters ]; }; } diff --git a/pkgs/development/python-modules/rubicon-objc/default.nix b/pkgs/development/python-modules/rubicon-objc/default.nix new file mode 100644 index 000000000000..f12f08e0ad47 --- /dev/null +++ b/pkgs/development/python-modules/rubicon-objc/default.nix @@ -0,0 +1,62 @@ +{ lib +, buildPythonPackage +, darwin +, fetchFromGitHub +, pythonOlder +, setuptools +, setuptools-scm +, unittestCheckHook +}: + +buildPythonPackage rec { + pname = "rubicon-objc"; + version = "0.4.8"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "beeware"; + repo = "rubicon-objc"; + rev = "refs/tags/v${version}"; + hash = "sha256-aFKzLeVYn5u8hTEgXCum3XpZxI7C/Wql41jkWkCF0HQ="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools==69.2.0" "setuptools" \ + --replace-fail "setuptools_scm==8.0.4" "setuptools_scm" + ''; + + build-system = [ + setuptools + setuptools-scm + ]; + + preCheck = '' + make -C tests/objc + ''; + + nativeCheckInputs = [ + unittestCheckHook + ]; + + checkInputs = [ + darwin.apple_sdk.frameworks.Foundation + ]; + + pythonImportsCheck = [ + "rubicon.objc" + ]; + + __darwinAllowLocalNetworking = true; + + meta = { + description = "A bridge interface between Python and Objective-C"; + homepage = "https://github.com/beeware/rubicon-objc/"; + changelog = "https://github.com/beeware/rubicon-objc/releases/tag/v${version}"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ natsukium ]; + platforms = lib.platforms.darwin; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 73bfae351858..90291a45829c 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -13412,6 +13412,8 @@ self: super: with self; { ruamel-yaml-clib = callPackage ../development/python-modules/ruamel-yaml-clib { }; + rubicon-objc = callPackage ../development/python-modules/rubicon-objc { }; + rubymarshal = callPackage ../development/python-modules/rubymarshal { }; ruffus = callPackage ../development/python-modules/ruffus { };