summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-08-13 19:49:03 +0300
committerEfraim Flashner <efraim@flashner.co.il>2020-08-16 11:43:34 +0300
commite0945a02a41afe31d99e3920aa9f7e2239df7bb7 (patch)
treec41f98f69f2897857633a875996d7a604a43d684
parentcfa7d0cbdc443431f82689ec778448f8f080f8a2 (diff)
downloadguix-e0945a02a41afe31d99e3920aa9f7e2239df7bb7.tar.gz
gnu: Add dbxfs.
* gnu/packages/file-systems.scm (dbxfs): New variable.
* gnu/packages/patches/dbxfs-remove-sentry-sdk.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/file-systems.scm30
-rw-r--r--gnu/packages/patches/dbxfs-remove-sentry-sdk.patch64
3 files changed, 95 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 71b964e465..87bd7094bf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -887,6 +887,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-CVE-2020-12049.patch		\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
+  %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
   %D%/packages/patches/dconf-meson-0.52.patch			\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 7d06e3e899..b8612ac3b2 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -889,3 +889,33 @@ compatible directories.")
     (description "This package provides a Python SDK for integrating with the
 Dropbox API v2.")
     (license license:expat)))
+
+(define-public dbxfs
+  (package
+    (name "dbxfs")
+    (version "1.0.43")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "dbxfs" version))
+        (sha256
+         (base32
+          "1f9sy2ax215dxiwszrrcadffjdsmrlxm4kwrbiap9dhxvzm226ks"))
+        (patches (search-patches "dbxfs-remove-sentry-sdk.patch"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f)) ; tests requires safefs
+    (propagated-inputs
+     `(("python-appdirs" ,python-appdirs)
+       ("python-block-tracing" ,python-block-tracing)
+       ("python-dropbox" ,python-dropbox)
+       ("python-keyring" ,python-keyring)
+       ("python-keyrings.alt" ,python-keyrings.alt)
+       ("python-privy" ,python-privy)
+       ("python-userspacefs" ,python-userspacefs)))
+  (home-page "https://github.com/rianhunter/dbxfs")
+  (synopsis "User-space file system for Dropbox")
+  (description
+   "@code{dbxfs} allows you to mount your Dropbox folder as if it were a
+local filesystem using FUSE.")
+  (license license:gpl3+)))
diff --git a/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
new file mode 100644
index 0000000000..7079fa8c3c
--- /dev/null
+++ b/gnu/packages/patches/dbxfs-remove-sentry-sdk.patch
@@ -0,0 +1,64 @@
+sentry-sdk provides a link to sentry.io, a service which monitors applications deployed in the wild.
+Defaults to true. Best to just remove the option.
+
+---
+ dbxfs/main.py | 16 ----------------
+ setup.py      |  1 -
+ 2 files changed, 17 deletions(-)
+
+diff --git a/dbxfs/main.py b/dbxfs/main.py
+index 5a6cea1..5d00818 100755
+--- a/dbxfs/main.py
++++ b/dbxfs/main.py
+@@ -40,8 +40,6 @@ import userspacefs
+ import keyring
+ from keyring.errors import KeyringError
+ 
+-import sentry_sdk
+-
+ from block_tracing import block_tracing, BLOCK_TRACING_INHERITS
+ 
+ from dbxfs.dbxfs import FileSystem as DropboxFileSystem
+@@ -299,12 +297,6 @@ def _main(argv=None):
+             config['keyring_user'] = keyring_user
+             save_config = True
+ 
+-    if not config.get("asked_send_error_reports", False):
+-        if yes_no_input("Would you like to help us improve %s by providing anonymous error reports?" % (APP_NAME,), default_yes=True):
+-            config['send_error_reports'] = True
+-        config['asked_send_error_reports'] = True
+-        save_config = True
+-
+     if save_access_token and yes_no_input("Do you want \"%s\" to be the default mount point?" % (mount_point,), default_yes=True):
+         config['mount_point'] = mount_point
+         save_config = True
+@@ -315,14 +307,6 @@ def _main(argv=None):
+ 
+     log.info("Starting %s...", APP_NAME)
+ 
+-    if config.get('send_error_reports', False):
+-        try:
+-            sentry_sdk.init("https://b4b13ebd300849bd92260507a594e618@sentry.io/1293235",
+-                            release='%s@%s' % (APP_NAME, version),
+-                            with_locals=False)
+-        except Exception:
+-            log.warning("Failed to initialize sentry", exc_info=True)
+-
+     if cache_folder is None:
+         cache_folder = os.path.join(appdirs.user_cache_dir(APP_NAME), "file_cache")
+         try:
+diff --git a/setup.py b/setup.py
+index 89e25c6..f940d47 100644
+--- a/setup.py
++++ b/setup.py
+@@ -43,7 +43,6 @@ setup(
+         "privy>=6.0,<7",
+         "keyring>=15.1.0",
+         "keyrings.alt>=3.1,<4",
+-        "sentry_sdk>=0.3,<1",
+     ],
+     extras_require={
+         'safefs': ["safefs"],
+-- 
+2.28.0
+