GNU bug report logs - #76324
[PATCH 0/6] Add seafile-client, seadrive-fuse, seadrive-client and dependencies

Previous Next

Package: guix-patches;

Reported by: flypaper <flypaper <at> disroot.org>

Date: Sun, 16 Feb 2025 06:01:01 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 76324 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 06:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to flypaper <flypaper <at> disroot.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 16 Feb 2025 06:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: guix-patches <at> gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 0/6] Add seafile-client, seadrive-fuse,
 seadrive-client and dependencies
Date: Sat, 15 Feb 2025 21:46:18 +0200
Hey Guix!

The following is a patch-series to have Seafile programs in Guix. mostly seadrive-fuse and seafile-client.
Given that the seafile dependencies were not packaged before, I added them here.
Each of these patches will build, given that the previous patches have been applied.
I tested of the patches one by one.
Seafile is an open-source self-hostable file-sharing solution similar to nextcloud.
Some institutes, like universities host their own.
These patches do not include server-side programs.

Kind regards,
flypaper-ultimat

flypaper (6):
  gnu: sync: add libsearpc
  gnu: sync: add seafile
  gnu: sync: add seafile-client
  gnu: sync: add seafile-client-qt5
  gnu: sync: add seadrive-fuse
  gnu: sync: add seadrive-gui

 gnu/packages/sync.scm | 272 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 271 insertions(+), 1 deletion(-)


base-commit: 05ab9bd7f36659ac3d116134891aca23da102144
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 09:40:02 GMT) Full text and rfc822 format available.

Message #8 received at 76324 <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: 76324 <at> debbugs.gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 2/6] gnu: sync: add seafile
Date: Sun, 16 Feb 2025 11:38:45 +0200
* gnu/packages/sync.scm (seafile): New package.

Change-Id: Ieefb70e70a5e13c574513f2cf36d16475e693c48
---
 gnu/packages/sync.scm | 64 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 63 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 854cc075ea..d65f1db018 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -31,6 +31,7 @@ (define-module (gnu packages sync)
   #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system qt)
+  #:use-module (guix build-system python)
   #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix download)
@@ -70,7 +71,10 @@ (define-module (gnu packages sync)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages web))
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages password-utils)
+  #:use-module (gnu packages cmake))
 
 (define-public nextcloud-client
   (package
@@ -630,3 +634,61 @@ (define-public libsearpc
         #:configure-flags '(list "--disable-compile-demo")))
       (inputs (list glib jansson python))
       (native-inputs (list autoconf automake libtool pkg-config)))))
+
+(define-public seafile
+  (package
+    (name "seafile")
+    (version "9.0.9")
+    (home-page "https://github.com/haiwen/seafile")
+    (source
+     (origin
+       (method git-fetch)
+       (file-name (git-file-name name version))
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "0c5j1xwx6pailx7x8xkrhrkmcn87aff3hvq4af5nzrqbpyiin5xb"))))
+    (arguments
+     (list
+      #:imported-modules `(,@%python-build-system-modules)
+      #:modules '((guix build gnu-build-system)
+                  ((guix build python-build-system)
+                   #:prefix python:)
+                  (guix build utils))
+      #:phases #~(modify-phases %standard-phases
+                   ;; seaf-cli requires libsearpc and itself on its PYTHONPATH
+                   ;; so we wrap it so that we dont need to use propagated modules
+                   (add-after 'install 'wrap
+                     (lambda* (#:key inputs outputs #:allow-other-keys)
+                       (wrap-program (string-append #$output "/bin/seaf-cli")
+                         `("GUIX_PYTHONPATH" =
+                           (,(getenv "GUIX_PYTHONPATH") ,(python:site-packages
+                                                          inputs outputs)))))))))
+
+    (build-system gnu-build-system)
+    (inputs (list libsearpc
+                  libevent
+                  libwebsockets
+                  curl
+                  gtk
+                  util-linux ;known in debian as uuid-dev
+                  sqlite
+                  jansson
+                  openssl ;debian libssl-dev
+                  glib
+                  argon2
+                  python
+                  bash-minimal))
+    (synopsis
+     "Command-line client and daemon for syncing with Seafile servers")
+    (description "This package provides @code{seaf-cli} and @{seaf-daemon}.")
+    (license license:gpl3+)
+    (native-inputs (list vala
+                         intltool
+                         cmake-minimal
+                         autoconf
+                         automake
+                         libtool
+                         pkg-config))))
+
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 09:40:02 GMT) Full text and rfc822 format available.

Message #11 received at 76324 <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: 76324 <at> debbugs.gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 1/6] gnu: sync: add libsearpc
Date: Sun, 16 Feb 2025 11:38:44 +0200
* gnu/packages/sync.scm (libsearpc): New package.

Change-Id: Id581536d6d13033c33a7316568a18bf1520ccc77
---
 gnu/packages/sync.scm | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index a4d4e03b91..854cc075ea 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -69,7 +69,8 @@ (define-module (gnu packages sync)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
-  #:use-module (gnu packages tls))
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages web))
 
 (define-public nextcloud-client
   (package
@@ -600,3 +601,32 @@ (define-public rclone
 @end itemize")
     (home-page "https://rclone.org/")
     (license license:expat)))
+
+
+(define-public libsearpc
+  (let ((revision "0")
+        (commit "255d5dedd2b446b58e4b8ca97ed6c270b3921047")
+        (version "3.3"))
+    (package
+      (name "libsearpc")
+      (version (git-version version revision commit))
+      (home-page "https://github.com/haiwen/libsearpc")
+      (source
+       (origin
+         (method git-fetch)
+         (file-name (git-file-name name version))
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (sha256
+          (base32 "1nrn7djyslszd26bg1yd5wdqyyjyh8hfc6zz8hwxk9bbdvjkpv9b"))))
+      (build-system gnu-build-system)
+      (license license:asl2.0)
+      (synopsis "RPC framework for server and client")
+      (description
+       "A simple C language RPC framework (including both server side & client side).")
+      (arguments
+       (list
+        #:configure-flags '(list "--disable-compile-demo")))
+      (inputs (list glib jansson python))
+      (native-inputs (list autoconf automake libtool pkg-config)))))
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 09:40:03 GMT) Full text and rfc822 format available.

Message #14 received at 76324 <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: 76324 <at> debbugs.gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 3/6] gnu: sync: add seafile-client
Date: Sun, 16 Feb 2025 11:38:46 +0200
* gnu/packages/sync.scm (seafile-client): New package.

Change-Id: I57b8ed9c0b1edf61283d3cc1276a64660e74ed8a
---
 gnu/packages/sync.scm | 62 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index d65f1db018..391ed57e0c 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -62,6 +62,7 @@ (define-module (gnu packages sync)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages rsync)
@@ -692,3 +693,64 @@ (define-public seafile
                          libtool
                          pkg-config))))
 
+(define-public seafile-client
+  (package
+    (name "seafile-client")
+    (version "9.0.9")
+    (home-page "https://github.com/haiwen/seafile-client")
+    (license license:asl2.0)
+    (build-system qt-build-system)
+    (inputs (list sqlite
+                  gtk
+                  curl
+                  util-linux
+                  openssl
+                  jansson
+                  libevent
+                  libwebsockets
+                  libsearpc
+                  seafile
+                  python
+                  qttools
+                  python-simplejson
+                  qtwebengine
+                  qt5compat))
+    (arguments
+     (list
+      #:qtbase qtbase
+      #:tests? ;cmakefile only has tests for qt5
+      #f
+      #:phases '(modify-phases %standard-phases
+                  ;; seafile-client expects seaf-daemon in %PATH
+                  ;; but we can just replace it in the source with a path to store
+                  ;; so that we dont anymore.
+                  (add-after 'unpack 'replace-daemon-executable
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "src/daemon-mgr.cpp"
+                        (("seaf-daemon" all)
+                         (search-input-file inputs
+                                            (string-append "bin/" all)))))))
+
+      #:configure-flags '(list "-DBUILD_DOCS=ON"
+                               "-DBUILD_SHIBBOLETH_SUPPORT=ON"
+                               "-DCMAKE_BUILD_TYPE=Release")))
+    (native-inputs (list autoconf
+                         automake
+                         libtool
+                         pkg-config
+                         vala
+                         intltool
+                         cmake-minimal))
+    (synopsis "Seafile GUI desktop client")
+    (description
+     "The Graphical desktop client that is used to connect to Seafile servers")
+    (source
+     (origin
+       (method git-fetch)
+       (file-name (git-file-name name version))
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1hivlwbpkj4j42s49z0fj0xp1wyxr67nl6sqy1ydbiij65f48bkp"))))))
+
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 09:40:03 GMT) Full text and rfc822 format available.

Message #17 received at 76324 <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: 76324 <at> debbugs.gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 4/6] gnu: sync: add seafile-client-qt5
Date: Sun, 16 Feb 2025 11:38:47 +0200
* gnu/packages/sync.scm (seafile-client-qt5): New package.

Change-Id: Iac6e62db24f5a9445d1ee2ebfa0a4713c17abd91
---
 gnu/packages/sync.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 391ed57e0c..a5dfa17afd 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -754,3 +754,20 @@ (define-public seafile-client
        (sha256
         (base32 "1hivlwbpkj4j42s49z0fj0xp1wyxr67nl6sqy1ydbiij65f48bkp"))))))
 
+(define-public seafile-client-qt5
+  (package
+    (inherit seafile-client)
+    (name "seafile-client-qt5")
+    (inputs (modify-inputs (package-inputs seafile-client)
+              (replace "qttools" qttools-5)
+              (replace "qtwebengine" qtwebengine-5)
+              (delete "qt5compat")))
+    (arguments
+     (substitute-keyword-arguments (package-arguments seafile-client)
+       ((#:qtbase x)
+        qtbase-5)
+       ((#:configure-flags flags)
+        `(cons "-DBUILD_TESTING=ON"
+               ,flags))
+       ((#:tests? x)
+        #t)))))
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 09:40:04 GMT) Full text and rfc822 format available.

Message #20 received at 76324 <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: 76324 <at> debbugs.gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 5/6] gnu: sync: add seadrive-fuse
Date: Sun, 16 Feb 2025 11:38:48 +0200
* gnu/packages/sync.scm (seadrive-fuse): New package.

Change-Id: I2a2855656e4cc3783ead70f6fe7793c7289b316d
---
 gnu/packages/sync.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index a5dfa17afd..6f09ae20b2 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -771,3 +771,40 @@ (define-public seafile-client-qt5
                ,flags))
        ((#:tests? x)
         #t)))))
+
+(define-public seadrive-fuse
+  (package
+    (name "seadrive-fuse")
+    (home-page "https://github.com/haiwen/seadrive-fuse")
+    (version "2.0.28")
+    (source
+     (origin
+       (method git-fetch)
+       (file-name (git-file-name name version))
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "0z8j8a04qi01cxbgk5kdrjzff5j2kigf0v6yzklvrshyb1jk3j5p"))))
+    (build-system gnu-build-system)
+    (inputs (list sqlite
+                  gtk
+                  curl
+                  util-linux
+                  openssl
+                  jansson
+                  libevent
+                  fuse-2
+                  libwebsockets
+                  libsearpc
+                  python))
+    (native-inputs (list autoconf
+                         automake
+                         libtool
+                         pkg-config
+                         vala
+                         intltool))
+    (synopsis "Mount Seafile libraries as FUSE drive")
+    (description
+     "This package provides the @{seadrive} command, allowing for seadrive libraries to be mounted as FUSE drive.")
+    (license license:gpl3+)))
-- 
2.46.0





Information forwarded to guix-patches <at> gnu.org:
bug#76324; Package guix-patches. (Sun, 16 Feb 2025 09:40:04 GMT) Full text and rfc822 format available.

Message #23 received at 76324 <at> debbugs.gnu.org (full text, mbox):

From: flypaper <flypaper <at> disroot.org>
To: 76324 <at> debbugs.gnu.org
Cc: flypaper <flypaper <at> disroot.org>
Subject: [PATCH 6/6] gnu: sync: add seadrive-gui
Date: Sun, 16 Feb 2025 11:38:49 +0200
* gnu/packages/sync.scm (seadrive-gui): New package.

Change-Id: I6dc3ffff73611788e5b40ef4a0d09f2492c2da2b
---
 gnu/packages/sync.scm | 62 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 6f09ae20b2..25ec140d75 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2019 Clément Lassieur <clement <at> lassieur.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2021 Stefan Reichör <stefan <at> xsteve.at>
+;;; Copyright © 2025 flypaper-ultimat <flypaper <at> disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -808,3 +809,64 @@ (define-public seadrive-fuse
     (description
      "This package provides the @{seadrive} command, allowing for seadrive libraries to be mounted as FUSE drive.")
     (license license:gpl3+)))
+
+(define-public seadrive-gui
+  (package
+    (name "seadrive-gui")
+    (version "3.0.12")
+    (home-page "https://github.com/haiwen/seadrive-gui")
+    (synopsis "SeaDrive daemon with FUSE interface")
+    (description
+     "This package provides the graphical interface for mounting seadrive libraries as a FUSE drive.")
+    (license license:gpl3+)
+    (native-inputs (list autoconf
+                         automake
+                         libtool
+                         pkg-config
+                         vala
+                         intltool
+                         cmake-minimal))
+    (inputs (list sqlite
+                  gtk
+                  curl
+                  util-linux
+                  openssl
+                  jansson
+                  libevent
+                  fuse-2
+                  libwebsockets
+                  libsearpc
+                  python
+                  qtbase-5
+                  qttools-5
+                  python-simplejson
+                  qtwebengine-5
+                  seadrive-fuse))
+    (arguments
+     (list
+      #:configure-flags #~(list "-DCMAKE_BUILD_TYPE=Release")
+      #:tests? #f ;there are no tests
+      #:phases '(modify-phases %standard-phases
+                  ;; seafile-client expects seaf-daemon in %PATH
+                  ;; but we can just replace it in the source with a path to store
+                  ;; so that we dont anymore.
+                  (add-after 'unpack 'replace-daemon-executable
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (substitute* "src/daemon-mgr.cpp"
+                        (("\"(seadrive)\"" all program)
+                         (string-append "\""
+                                        (search-input-file inputs
+                                                           (string-append
+                                                            "bin/" program))
+                                        "\""))))))))
+    (build-system qt-build-system)
+    (source
+     (origin
+       (method git-fetch)
+       (file-name (git-file-name name version))
+       (modules '((guix build utils)))
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "1xaq1rlyfnp7xnq2xbc77hrblpw8apqmf3l5mrnvkhwifgs0p8xs"))))))
-- 
2.46.0





This bug report was last modified 51 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.