add seafile-client package providing seafile-applet

  • Open
  • quality assurance status badge
Details
2 participants
  • Gabriel Wicki
  • Xinglu Chen
Owner
unassigned
Submitted by
Gabriel Wicki
Severity
normal
G
G
Gabriel Wicki wrote on 26 May 2021 19:47
(address . guix-patches@gnu.org)
20210526174751.ynfblmx64ppdl2is@silver
From 7665f6edf757ef385ef4f67aa106c38a8448c670 Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Wed, 26 May 2021 19:39:39 +0200
Subject: [PATCH] add package seafile-client

and it's dependencies libsearpc and seafile. the resulting binary is
called seafile-applet.

new file: gnu/packages/seafile.scm
---
gnu/packages/seafile.scm | 103 +++++++++++++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)
create mode 100644 gnu/packages/seafile.scm

Toggle diff (111 lines)
diff --git a/gnu/packages/seafile.scm b/gnu/packages/seafile.scm
new file mode 100644
index 0000000000..f95238b1a7
--- /dev/null
+++ b/gnu/packages/seafile.scm
@@ -0,0 +1,103 @@
+(define-module (seafile)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages web)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:))
+
+(define-public seafile-client
+ (package
+ (name "seafile-client")
+ (version "8.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/haiwen/seafile-client")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19z6lz34j62gazi9pd1y570jlp181cmb31rld4lfxznhkh9y2jfc"))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f)) ; there are no tests
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("qtlinguist" ,qttools)))
+ (inputs `(("glib" ,glib)
+ ("qtbase" ,qtbase)
+ ("seafile" ,seafile)))
+ (synopsis "Desktop client for cloud file storage system Seafile")
+ (description "seafile-client is a desktop client for your seafile server.")
+ (home-page "https://www.seafile.com")
+ (license license:gpl2)))
+
+(define seafile
+ (package
+ (name "seafile")
+ (version "8.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/haiwen/seafile")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kizf9ifcwb3scyvimv76p0lqd69hw7l48as1xk6i3m5mv2d7j4p"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs `(("libsearpc" ,libsearpc)
+ ("libevent" ,libevent)
+ ("openssl" ,openssl)
+ ("sqlite" ,sqlite)))
+ (inputs `(("curl" ,curl)
+ ("python" ,python)
+ ("vala" ,vala)))
+ (synopsis "Cloud storage system with privacy protection and teamwork features")
+ (description "Seafile is a high performance file syncing and sharing, with
+Markdown WYSIWYG editing, Wiki, file label and other knowledge management
+features.")
+ (home-page "https://www.seafile.com")
+ (license license:gpl2)))
+
+(define libsearpc
+ (package
+ (name "libsearpc")
+ (version "8.0")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/haiwen/libsearpc/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wbx0c64xyn22rzqpl1jmdps53zjb1a0760435znsg6j88h4k7yp"))))
+ (build-system gnu-build-system)
+ (propagated-inputs `(("jansson" ,jansson)))
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs `(("glib" ,glib)
+ ("python" ,python-wrapper)))
+ (synopsis "Simple C language RPC framework based on GObject system")
+ (description "libsearpc (from \"library\", \"Seafile\" and \"RPC\") handles the
+serialization/deserialization part of RPC, the transport part is left to users.")
+ (home-page "https://www.seafile.com")
+ (license license:gpl2)))
--
2.30.2
G
G
Gabriel Wicki wrote on 27 May 2021 21:19
Re: bug#48679: Acknowledgement (add seafile-client package providing seafile-applet)
(address . 48679@debbugs.gnu.org)
20210527191944.zzzv34ruxfky65ll@silver
updated commit message to conform to ChangeLog Format


From 60b4f30f4d75505dc3c2cd86c986fda582147b2d Mon Sep 17 00:00:00 2001
From: Gabriel Wicki <gabriel@erlikon.ch>
Date: Wed, 26 May 2021 19:39:39 +0200
Subject: [PATCH] add package seafile-client

* gnu/packages/seafile.scm (seafile-client): New file.
---
gnu/packages/seafile.scm | 103 +++++++++++++++++++++++++++++++++++++++
1 file changed, 103 insertions(+)
create mode 100644 gnu/packages/seafile.scm

Toggle diff (111 lines)
diff --git a/gnu/packages/seafile.scm b/gnu/packages/seafile.scm
new file mode 100644
index 0000000000..f95238b1a7
--- /dev/null
+++ b/gnu/packages/seafile.scm
@@ -0,0 +1,103 @@
+(define-module (seafile)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages web)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix licenses) #:prefix license:))
+
+(define-public seafile-client
+ (package
+ (name "seafile-client")
+ (version "8.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/haiwen/seafile-client")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19z6lz34j62gazi9pd1y570jlp181cmb31rld4lfxznhkh9y2jfc"))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f)) ; there are no tests
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("qtlinguist" ,qttools)))
+ (inputs `(("glib" ,glib)
+ ("qtbase" ,qtbase)
+ ("seafile" ,seafile)))
+ (synopsis "Desktop client for cloud file storage system Seafile")
+ (description "seafile-client is a desktop client for your seafile server.")
+ (home-page "https://www.seafile.com")
+ (license license:gpl2)))
+
+(define seafile
+ (package
+ (name "seafile")
+ (version "8.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/haiwen/seafile")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kizf9ifcwb3scyvimv76p0lqd69hw7l48as1xk6i3m5mv2d7j4p"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs `(("libsearpc" ,libsearpc)
+ ("libevent" ,libevent)
+ ("openssl" ,openssl)
+ ("sqlite" ,sqlite)))
+ (inputs `(("curl" ,curl)
+ ("python" ,python)
+ ("vala" ,vala)))
+ (synopsis "Cloud storage system with privacy protection and teamwork features")
+ (description "Seafile is a high performance file syncing and sharing, with
+Markdown WYSIWYG editing, Wiki, file label and other knowledge management
+features.")
+ (home-page "https://www.seafile.com")
+ (license license:gpl2)))
+
+(define libsearpc
+ (package
+ (name "libsearpc")
+ (version "8.0")
+ (source (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/haiwen/libsearpc/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wbx0c64xyn22rzqpl1jmdps53zjb1a0760435znsg6j88h4k7yp"))))
+ (build-system gnu-build-system)
+ (propagated-inputs `(("jansson" ,jansson)))
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs `(("glib" ,glib)
+ ("python" ,python-wrapper)))
+ (synopsis "Simple C language RPC framework based on GObject system")
+ (description "libsearpc (from \"library\", \"Seafile\" and \"RPC\") handles the
+serialization/deserialization part of RPC, the transport part is left to users.")
+ (home-page "https://www.seafile.com")
+ (license license:gpl2)))
--
2.30.2
X
X
Xinglu Chen wrote on 28 May 2021 22:35
Re: [bug#48679] Acknowledgement (add seafile-client package providing seafile-applet)
87sg26ppfb.fsf@yoctocell.xyz
On Thu, May 27 2021, Gabriel Wicki wrote:

Toggle quote (11 lines)
> From 60b4f30f4d75505dc3c2cd86c986fda582147b2d Mon Sep 17 00:00:00 2001
> From: Gabriel Wicki <gabriel@erlikon.ch>
> Date: Wed, 26 May 2021 19:39:39 +0200
> Subject: [PATCH] add package seafile-client
>
> * gnu/packages/seafile.scm (seafile-client): New file.
> ---
> gnu/packages/seafile.scm | 103 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 103 insertions(+)
> create mode 100644 gnu/packages/seafile.scm

This patch should be split into three separate patches, each containing
one new package.

Since Seafile is related to cloud storage I think it might make sense to
put the packages in (gnu packages sync), anyone else who wants to
comment on this?

Toggle quote (18 lines)
> +(define-public seafile-client
> + (package
> + (name "seafile-client")
> + (version "8.0.2")
> + (source (origin
> + (method git-fetch)
> + (uri
> + (git-reference
> + (url "https://github.com/haiwen/seafile-client")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "19z6lz34j62gazi9pd1y570jlp181cmb31rld4lfxznhkh9y2jfc"))))
> + (build-system cmake-build-system)
> + (arguments `(#:tests? #f)) ; there are no tests
> + (native-inputs `(("pkg-config" ,pkg-config)
> + ("qtlinguist" ,qttools)))

Why is the label not the same as the package name?

The inputs list should preferrably be on a new line, this applied to
‘native-inputs’, ‘inputs’, and ‘propagated-inputs’.

Toggle quote (8 lines)
> + (inputs `(("glib" ,glib)
> + ("qtbase" ,qtbase)
> + ("seafile" ,seafile)))
> + (synopsis "Desktop client for cloud file storage system Seafile")
> + (description "seafile-client is a desktop client for your seafile server.")
> + (home-page "https://www.seafile.com")
> + (license license:gpl2)))

The LICENSE says Apache 2.0[1].

Toggle quote (21 lines)
> +(define seafile
> + (package
> + (name "seafile")
> + (version "8.0.2")
> + (source (origin
> + (method git-fetch)
> + (uri
> + (git-reference
> + (url "https://github.com/haiwen/seafile")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "1kizf9ifcwb3scyvimv76p0lqd69hw7l48as1xk6i3m5mv2d7j4p"))))
> + (build-system gnu-build-system)
> + (native-inputs `(("autoconf" ,autoconf)
> + ("automake" ,automake)
> + ("libtool" ,libtool)
> + ("pkg-config" ,pkg-config)))
> + (propagated-inputs `(("libsearpc" ,libsearpc)
> + ("libevent" ,libevent)

Libraries are usually ‘inputs’ or ‘native-inputs’, what’s the reason for
propagating them?

Toggle quote (3 lines)
> + ("openssl" ,openssl)
> + ("sqlite" ,sqlite)))

These two packages are also usually ‘inputs’, would it be possible to
move them to ‘inputs’?

Toggle quote (10 lines)
> + (inputs `(("curl" ,curl)
> + ("python" ,python)
> + ("vala" ,vala)))
> + (synopsis "Cloud storage system with privacy protection and teamwork features")
> + (description "Seafile is a high performance file syncing and sharing, with
> +Markdown WYSIWYG editing, Wiki, file label and other knowledge management
> +features.")
> + (home-page "https://www.seafile.com")
> + (license license:gpl2)))

LICENSE.txt says[2]

This program is released under GPLv2, with the following addition
permission to link with OpenSSL library.

This should probably be mentioned as a comment.

Toggle quote (5 lines)
> +(define libsearpc
> + (package
> + (name "libsearpc")
> + (version "8.0")

I am not seeing version 8.0 on their repo[3].

Toggle quote (6 lines)
> + (source (origin
> + (method git-fetch)
> + (uri
> + (git-reference
> + (url "https://github.com/haiwen/libsearpc/")

This repo is a fork of another repo, we usually use the upstream one if
possible.

Toggle quote (2 lines)
> + (commit version)))

Again, I don’t see a tag named ‘8.0’.

Toggle quote (17 lines)
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "0wbx0c64xyn22rzqpl1jmdps53zjb1a0760435znsg6j88h4k7yp"))))
> + (build-system gnu-build-system)
> + (propagated-inputs `(("jansson" ,jansson)))
> + (native-inputs `(("autoconf" ,autoconf)
> + ("automake" ,automake)
> + ("libtool" ,libtool)
> + ("pkg-config" ,pkg-config)))
> + (inputs `(("glib" ,glib)
> + ("python" ,python-wrapper)))
> + (synopsis "Simple C language RPC framework based on GObject system")
> + (description "libsearpc (from \"library\", \"Seafile\" and \"RPC\") handles the
> +serialization/deserialization part of RPC, the transport part is left to users.")
> + (home-page "https://www.seafile.com")
> + (license license:gpl2)))

-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmCxVAgVHHB1YmxpY0B5
b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5OJUQAJkpICj6enHuZ8FvB/EjtJvSDqqa
jxZzmalwnuh1kyiZml45tZ2usI+w2w/tr+nd1dfva8uR7VdwZ/egDMpCX+R0UYsZ
Mwz77SzNRZhwviDHxzhe7TUHSl7pLJF3JDGl0nSR6jjuiFbOR8Pljx0IQempCdBB
ASarlRi7ZKu9DmJjKpGnFWhL+vgMGQ5mHOr9OUqQrKzIWtJPDW7S352JTiz/JW36
9pto2Jq2u2UKICbt1Z5Wjdcjd2uGVnNaa65PS/mn+qoZowlgBSaIvcWJxUSmGQvx
yPsSHkMQftDzcaPxGmFxxOg1koS+U4QqXdxWxmKP0x8WBN2RhPGqSl5Xm9jkhF7F
yhBSNLliKeWi9aIpDZONEGKnhmgaCUb6gleEly++rthAmr70stNkXtMdbp20Ch75
svopXlC1CG5YZiNcVMn9XsqEr4Ut2rP7/QylUZKzyTDmVwMsvaEp6vWnpsnPtNqF
/EWGipS3Wn4cFRNX2TJs4SI3rVr7FLx4Cw4coSzaYGWA8Mly01n32Wj7cONX06OU
pOWcn2H255BzeUsg3gnqCgQgLYh+MsmK5dhpnSmb4AO10/d38gGmQdW6TAjzwPNR
FG3CsjouK3BKkDxRA+j50YqrqTD8sICx9f/5L/IukCeGoWhxeZy4iu6vJyh7Wmbx
A64g/NKWR9SmOUQk
=E5PY
-----END PGP SIGNATURE-----

?