Subject: [bug#48679] Acknowledgement (add seafile-client package providing seafile-applet)

From: Xinglu Chen <[email-masked]>
Date: Fri, 28 May 2021 22:35:20 +0200

On Thu, May 27 2021, Gabriel Wicki wrote:

> From 60b4f30f4d75505dc3c2cd86c986fda582147b2d Mon Sep 17 00:00:00 2001
> From: Gabriel Wicki <[email-masked]>
> 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?

> +(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’.

> +   (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].

> +(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?

> +                        ("openssl" ,openssl)
> +                        ("sqlite" ,sqlite)))

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

> +   (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.

> +(define libsearpc
> +  (package
> +   (name "libsearpc")
> +   (version "8.0")

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

> +   (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.

> +              (commit version)))

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

> +            (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)))

LICENSE.txt says Apache 2.0[4].

Could you send a v2 patchset?

[1]: https://github.com/haiwen/seafile-client/blob/master/LICENSE
[2]: https://github.com/haiwen/seafile/blob/master/LICENSE.txt
[3]: https://github.com/haiwen/libsearpc/tags
[4]: https://github.com/haiwen/libsearpc/blob/master/LICENSE.txt