about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
authorOTABI Tomoya <tomoya.otabi@gmail.com>2024-05-02 00:12:53 +0900
committerGitHub <noreply@github.com>2024-05-02 00:12:53 +0900
commit1117d7b91dac51bdb4e00e255832668d0c5f42a7 (patch)
tree47044a2d288711bc93b71f81a8558c7c252aa529 /pkgs/development/python-modules
parent6950489db4e1efba9d359dfbcaec38bba2166b26 (diff)
parent83ecbc8fdc29c312dbd8808c7a6fc98598f9521f (diff)
Merge pull request #235871 from natsukium/maestral/darwin
maestral: enable darwin support
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/desktop-notifier/default.nix4
-rw-r--r--pkgs/development/python-modules/maestral/default.nix23
-rw-r--r--pkgs/development/python-modules/rubicon-objc/default.nix62
3 files changed, 86 insertions, 3 deletions
diff --git a/pkgs/development/python-modules/desktop-notifier/default.nix b/pkgs/development/python-modules/desktop-notifier/default.nix
index b56a6b0849d06..708c971943ec8 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 5e658bdea69f6..885911b181c8f 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 0000000000000..f12f08e0ad47f
--- /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;
+  };
+}