about summary refs log tree commit diff
path: root/pkgs/development/python-modules/maestral/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/maestral/default.nix')
-rw-r--r--pkgs/development/python-modules/maestral/default.nix146
1 files changed, 86 insertions, 60 deletions
diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix
index 92c8dee9b0bec..6f1aa28e9f0c9 100644
--- a/pkgs/development/python-modules/maestral/default.nix
+++ b/pkgs/development/python-modules/maestral/default.nix
@@ -1,35 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, makePythonPath
-, pythonOlder
-, python
-, click
-, dbus-python
-, desktop-notifier
-, dropbox
-, fasteners
-, importlib-metadata
-, keyring
-, keyrings-alt
-, packaging
-, pathspec
-, pyro5
-, requests
-, rich
-, setuptools
-, survey
-, typing-extensions
-, watchdog
-, pytestCheckHook
-, nixosTests
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  makePythonPath,
+  pythonOlder,
+  python,
+  click,
+  dbus-python,
+  desktop-notifier,
+  dropbox,
+  fasteners,
+  importlib-metadata,
+  keyring,
+  keyrings-alt,
+  packaging,
+  pathspec,
+  pyro5,
+  requests,
+  rich,
+  rubicon-objc,
+  setuptools,
+  survey,
+  typing-extensions,
+  watchdog,
+  xattr,
+  fetchpatch,
+  pytestCheckHook,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
   pname = "maestral";
-  version = "1.8.0";
-  format = "pyproject";
+  version = "1.9.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -37,10 +41,12 @@ buildPythonPackage rec {
     owner = "SamSchott";
     repo = "maestral";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YYbdd0GLVKE7+Oi0mpQjqhFdjdlquk/XnIg5WrtKcfI=";
+    hash = "sha256-h7RDaCVICi3wl6/b1s01cINhFirDOpOXoxTPZIBH3jE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     desktop-notifier
     dbus-python
@@ -58,48 +64,65 @@ buildPythonPackage rec {
     survey
     typing-extensions
     watchdog
+    xattr
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ rubicon-objc ];
+
+  patches = [
+    (fetchpatch {
+      name = "upgrade-dropbox-version-bounds";
+      url = "https://github.com/samschott/maestral/commit/8fd581fa503391534913afbc33a61132ff2e21ce.patch";
+      hash = "sha256-2Dke9iF/5Ptsf3CSRHUkjdFRrmdKY+L3sILRMyYrUH0=";
+    })
   ];
 
   makeWrapperArgs = [
     # Add the installed directories to the python path so the daemon can find them
-    "--prefix PYTHONPATH : ${makePythonPath propagatedBuildInputs}"
+    "--prefix PYTHONPATH : ${makePythonPath dependencies}"
     "--prefix PYTHONPATH : $out/${python.sitePackages}"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pythonRelaxDepsHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonRelaxDeps = [
-    # https://github.com/samschott/maestral/commit/2c50d2ddb49a845ea97bd6b0f68c45d723fb304c
-    # Allow the use of survey >= 5
-    # Remove after new maestral release along with pythonRelaxDepsHook
-    "survey"
-  ];
+  # ModuleNotFoundError: No module named '_watchdog_fsevents'
+  doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64);
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # We don't want to benchmark
-    "test_performance"
-    # Requires systemd
-    "test_autostart"
-    # Requires network access
-    "test_check_for_updates"
-    # Tries to look at /usr
-    "test_filestatus"
-    "test_path_exists_case_insensitive"
-    "test_cased_path_candidates"
-    # AssertionError
-    "test_locking_multiprocess"
-  ];
+  disabledTests =
+    [
+      # We don't want to benchmark
+      "test_performance"
+      # Requires systemd
+      "test_autostart"
+      # Requires network access
+      "test_check_for_updates"
+      # Tries to look at /usr
+      "test_filestatus"
+      "test_path_exists_case_insensitive"
+      "test_cased_path_candidates"
+      # AssertionError
+      "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 = [
-    "maestral"
-  ];
+  pythonImportsCheck = [ "maestral" ];
 
   passthru.tests.maestral = nixosTests.maestral;
 
@@ -109,7 +132,10 @@ 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
+    ];
   };
 }