[bug#34572] Add Drawpile

Message ID E1gwnpA-0005aL-Mm@rmmprod05.runbox
State Accepted
Headers show
Series [bug#34572] Add Drawpile | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

pkill9 Feb. 21, 2019, 12:51 p.m. UTC
Hi Rekado, thanks for looking at this patch. I've updated it.

> Please don’t use these inline module references.

Sorry, I forgot to remove them (I'm moving my package definitions to Guix upstream which have the modules inline).

> Please check the licenses more carefully.

Will do.


On Wed, 20 Feb 2019 22:01:30 +0100, Ricardo Wurmus <rekado@elephly.net> wrote:

> 
> Hi pkill9,
> 
> > * gnu/packages/graphics.scm (drawpile): New variable.
> 
> Thank you for your patch.
> 
> […]
> > +(define-public drawpile
> > +  (package
> > +    (name "drawpile")
> > +    (version "2.0.11")
> > +    (source
> > +     (origin
> > +       (method url-fetch)
> > +       (uri (string-append "https://drawpile.net/files/src/drawpile-" version ".tar.gz"))
> 
> Please break this line.
> 
> > +       (sha256
> > +        (base32
> > +         "0h018rxhc0lwpqwmlihalz634nd0xaafk4p2b782djjd87irnjpk"))))
> > +    (build-system cmake-build-system)
> > +    (native-inputs
> > +     `(("pkg-config" ,pkg-config)
> > +       ("qttools" ,qttools)))
> > +    (inputs
> > +     `(("qtbase" ,qtbase)
> > +       ("qtsvg" ,qtsvg)
> > +       ("qtmultimedia" ,qtmultimedia)
> > +       ("qtcolorwidgets" ,qtcolorwidgets)
> > +       ("karchive" ,karchive)
> > +       ("giflib" ,giflib) ; optional
> > +       ("kdnssd" ,kdnssd) ; optional
> > +       ("miniupnpc" ,(@ (gnu packages upnp) miniupnpc)) ; optional
> > +       ("libmicrohttpd" ,(@ (gnu packages gnunet) libmicrohttpd)) ; optional
> > +       ("libsodium" ,(@ (gnu packages crypto) libsodium)))) ; optional
> 
> Please don’t use these inline module references.
> 
> > +    (arguments
> > +     `(#:configure-flags (list "-DTESTS=on" "-DCMAKE_BUILD_TYPE=Release" "-DTOOLS=on"
> > +                               (string-append "-DLIBQTCOLORWIDGETS_LIBRARY="
> > +                                              (assoc-ref %build-inputs "qtcolorwidgets")
> > +                                              "/lib/libQtColorWidgets-Qt52.so"))))
> 
> Please put “(list” on a new line and then break after every item, so
> that you can add comments as to why these flags are required.
> 
> I don’t think you need "-DCMAKE_BUILD_TYPE=Release" as we’re building
> with “RelWithDebInfo” by default.
> 
> > +    (home-page "https://drawpile.net")
> > +    (synopsis "Collaborative drawing")
> 
> “Collaborative drawing program” would be better.
> 
> > +    (license license:gpl3)))
> 
> This looks like gpl3+.  See for example:
> 
>     https://github.com/drawpile/Drawpile/blob/master/src/server/initsys_systemd.cpp#L9
> 
> Please check the licenses more carefully.
> 
> Could you please send an updated patch?
> 
> -- 
> Ricardo

Comments

Tobias Geerinckx-Rice Feb. 21, 2019, 1:58 p.m. UTC | #1
Pkill -9,

Thanks for this patch, and your many others.

pkill9 wrote:
> +  #:use-module (gnu packages crypto) ; libsodium
> +  #:use-module (gnu packages gnunet) ; libmicrohttpd

In my experience, what little value such comments add is quickly 
lost.  Anyone adding new inputs will not update (or even notice) 
them.

> +       ("giflib" ,giflib) ; optional
> +       ("kdnssd" ,kdnssd) ; optional
> +       ("miniupnpc" ,miniupnpc) ; optional
> +       ("libmicrohttpd" ,libmicrohttpd) ; optional
> +       ("libsodium" ,libsodium))) ; optional

Same here: nothing wrong with these, I guess, but *many* package 
dependencies are optionally detected at build time and this isn't 
usually pointed out unless there's something more interesting 
going on.

> +    (arguments
> +     `(#:configure-flags
> +       (list "-DTESTS=on" ; build unit tests.

General remark: no full stop after inline comments.

   ;; Foo bar.
   (foo bar) ; foo bar

> +             "-DTOOLS=on" ; build dprec2txt command line tool.
> +             (string-append "-DLIBQTCOLORWIDGETS_LIBRARY="
> +                            (assoc-ref %build-inputs 
> "qtcolorwidgets")
> + 
> "/lib/libQtColorWidgets-Qt52.so"))))

What about using FIND-FILES "\*.so$" here instead of hard-coding 
"52"?  Overkill?

Kind regards,

T G-R

Patch

From 3003c82cf97e129e177011e34b5a208cf6bbf188 Mon Sep 17 00:00:00 2001
From: Pkill -9 <pkill9@runbox.com>
Date: Thu, 21 Feb 2019 12:47:37 +0000
Subject: [PATCH] gnu: Add drawpile.

* gnu/packages/graphics.scm (drawpile): New variable.
---
 gnu/packages/graphics.scm | 45 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index bf4cc89b0..07f801ef0 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -11,6 +11,7 @@ 
 ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2018 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +38,7 @@ 
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crypto) ; libsodium
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
@@ -45,12 +47,14 @@ 
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnunet) ; libmicrohttpd
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages haskell)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
+  #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -64,6 +68,7 @@ 
   #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages swig)
+  #:use-module (gnu packages upnp)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -856,3 +861,43 @@  your terminal.  It comes bundled with predefined styles:
 look.  The result can be uploaded on any web server without additional
 requirements.")
     (license license:gpl2+)))
+
+(define-public drawpile
+  (package
+    (name "drawpile")
+    (version "2.0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://drawpile.net/files/src/"
+                           "drawpile-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0h018rxhc0lwpqwmlihalz634nd0xaafk4p2b782djjd87irnjpk"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("qttools" ,qttools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtcolorwidgets" ,qtcolorwidgets)
+       ("karchive" ,karchive)
+       ("giflib" ,giflib) ; optional
+       ("kdnssd" ,kdnssd) ; optional
+       ("miniupnpc" ,miniupnpc) ; optional
+       ("libmicrohttpd" ,libmicrohttpd) ; optional
+       ("libsodium" ,libsodium))) ; optional
+    (arguments
+     `(#:configure-flags
+       (list "-DTESTS=on" ; build unit tests.
+             "-DTOOLS=on" ; build dprec2txt command line tool.
+             (string-append "-DLIBQTCOLORWIDGETS_LIBRARY="
+                            (assoc-ref %build-inputs "qtcolorwidgets")
+                            "/lib/libQtColorWidgets-Qt52.so"))))
+    (home-page "https://drawpile.net")
+    (synopsis "Collaborative drawing program")
+    (description "Drawpile is a collaborative drawing program that allows
+multiple users to sketch on the same canvas simultaneously.")
+    (license license:gpl3+)))
-- 
2.20.1