diff mbox series

[bug#41818] gnu: Add syncthing-gtk.

Message ID 20200611213707.22562-1-goodoldpaul@autistici.org
State Accepted
Headers show
Series [bug#41818] gnu: Add syncthing-gtk. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Giacomo Leidi June 11, 2020, 9:37 p.m. UTC
* gnu/packages/syncthing.scm (syncthing-gtk): New variable.
---
 gnu/packages/syncthing.scm | 57 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 1 deletion(-)

Comments

Leo Famulari June 14, 2020, 3:28 a.m. UTC | #1
On Thu, Jun 11, 2020 at 11:37:07PM +0200, Giacomo Leidi wrote:
> * gnu/packages/syncthing.scm (syncthing-gtk): New variable.

Thanks!

> +    (arguments
> +     `(#:python ,python-2))

Can it use Python 3?
Giacomo Leidi June 14, 2020, 4:01 p.m. UTC | #2
Hi Leo,

On 6/14/20 5:28 AM, Leo Famulari wrote:
> On Thu, Jun 11, 2020 at 11:37:07PM +0200, Giacomo Leidi wrote:
>> * gnu/packages/syncthing.scm (syncthing-gtk): New variable.
> Thanks!
>
>> +    (arguments
>> +     `(#:python ,python-2))
> Can it use Python 3?

It seems not: upstream's README [0] says Python 2.7 is needed. When 
actually trying to build the package with Python 3 the build process 
fails during phase "check" throwing

TabError: inconsistent use of tabs and spaces in indentation


Thanks for reviewing,


Giacomo


[0]: https://github.com/kozec/syncthing-gtk
Marius Bakke June 22, 2020, 8:16 p.m. UTC | #3
Giacomo Leidi <goodoldpaul@autistici.org> writes:

> * gnu/packages/syncthing.scm (syncthing-gtk): New variable.

[...]
  
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:python ,python-2))
> +    (propagated-inputs
> +     `(("python2-bcrypt" ,python2-bcrypt)
> +       ("python2-dateutil" ,python2-dateutil)
> +       ("python2-pycairo" ,python2-pycairo)
> +       ("python2-pygobject" ,python2-pygobject)
> +       ("python-nautilus" ,python-nautilus)
> +       ("libappindicator" ,libappindicator)
> +       ("libnotify" ,libnotify)
> +       ("psmisc" ,psmisc)
> +       ("syncthing" ,syncthing)))

I don't think these needs to be propagated, as the 'syncthing-gtk'
executable will be automatically wrapped with a PYTHONPATH that contains
the Python inputs.

I'm not sure about libappindicator, libnotify and psmisc though.
Ideally we'd insert absolute references where appropriate to avoid
propagation.  In the worst case we can wrap it with those in PATH.

Can you look into it and send an updated patch?
diff mbox series

Patch

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 99bdd7704b..69fd1148ab 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -3,6 +3,7 @@ 
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,13 +22,23 @@ 
 
 (define-module (gnu packages syncthing)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix licenses)
   #:use-module (gnu packages)
-  #:use-module (gnu packages golang))
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages golang)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages time))
 
 (define-public syncthing
   (package
@@ -177,6 +188,50 @@  Protocol.")
     (home-page "https://github.com/syncthing/syncthing")
     (license mpl2.0)))
 
+(define-public syncthing-gtk
+  (package
+    (name "syncthing-gtk")
+    (version "0.9.4.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/syncthing/syncthing-gtk.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nc0wd7qvyri7841c3dd9in5d7367hys0isyw8znv5fj4c0a6v1f"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2))
+    (propagated-inputs
+     `(("python2-bcrypt" ,python2-bcrypt)
+       ("python2-dateutil" ,python2-dateutil)
+       ("python2-pycairo" ,python2-pycairo)
+       ("python2-pygobject" ,python2-pygobject)
+       ("python-nautilus" ,python-nautilus)
+       ("libappindicator" ,libappindicator)
+       ("libnotify" ,libnotify)
+       ("psmisc" ,psmisc)
+       ("syncthing" ,syncthing)))
+    (inputs
+     `(("gtk+" ,gtk+)))
+    (native-inputs
+     `(("python2-setuptools" ,python2-setuptools)))
+    (home-page "https://github.com/syncthing/syncthing-gtk")
+    (synopsis "GTK3 based GUI and notification area icon for Syncthing")
+    (description "@code{syncthing-gtk} is a GTK3 Python based GUI and
+notification area icon for Syncthing.  Supported Syncthing features:
+
+@itemize
+@item Everything that WebUI can display
+@item Adding, editing and deleting nodes
+@item Adding, editing and deleting repositories
+@item Restart, shutdown server
+@item Editing daemon settings
+@end itemize\n")
+    (license gpl2)))
+
 (define-public go-github-com-jackpal-go-nat-pmp
   (package
     (name "go-github-com-jackpal-go-nat-pmp")