Subject: update GNOME Planner to current
From: Andrew Miloradovsky <[email-masked]>
To: [email-masked]
Date: Fri, 8 Feb 2019 01:54:08 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

The release is fairly old and contains prebuilt scripts.

From cbe5c7a354381c665735085a5eb262404e901385 Mon Sep 17 00:00:00 2001
From: Andrew Miloradovsky <[email-masked]>
Date: Fri, 8 Feb 2019 00:03:48 +0000
Subject: [PATCH] gnu: gnome-planner: update 0.14.6 to 2019-02-08

Build all from a modern version, enable Python bindings.

* gnu/packages/gnome.scm (gnome-planner):
  - Fetch the sources from GNOME's own GitLab.
  - Run `autogen.sh` with the proper shell paths.
  - Enable Python 2 bindings, because we can now.
  - Add all the inputs necessary for all of that.
---
 gnu/packages/gnome.scm | 102 +++++++++++++++++++++++++----------------
 1 file changed, 62 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5795a8d10..f57a20e11 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2018 Vasile Dumitrascu <[email-masked]>
 ;;; Copyright © 2018 Björn Höfling <[email-masked]>
 ;;; Copyright © 2018 Timothy Sample <[email-masked]>
+;;; Copyright © 2019 Andrew Miloradovsky <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -7018,45 +7019,66 @@ text views, and buttons to choose the language.")
     (license license:gpl2+)))
 
 (define-public gnome-planner
-  (package
-    (name "gnome-planner")
-    (version "0.14.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/planner/"
-                                  (version-major+minor version) "/planner-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     ;; Disable the Python bindings because the Planner program functions
-     ;; without them, and (as of 2017-06-13) we have not packaged all of
-     ;; packages that are necessary for building the Python bindings.
-     `(#:configure-flags
-       (list "--disable-python"
-             ,@(if (string=? "aarch64-linux" (%current-system))
-                   '("--build=aarch64-unknown-linux-gnu")
-                   '()))))
-    (inputs
-     `(("libgnomecanvas" ,libgnomecanvas)
-       ("libgnomeui" ,libgnomeui)
-       ("libglade" ,libglade)
-       ("gnome-vfs" ,gnome-vfs)
-       ("gconf" ,gconf)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("gtk+" ,gtk+)
-       ("glib" ,glib)))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("scrollkeeper" ,scrollkeeper)
-       ("pkg-config" ,pkg-config)))
-    (home-page "https://wiki.gnome.org/Apps/Planner")
-    (synopsis "Project management software for the GNOME desktop")
-    (description
-     "GNOME Planner is a project management tool based on the Work Breakdown
+  ;;; Warning:
+  ;;; The documentation generation mechanism is long broken. No Yelp yet.
+  ;;; So the output doesn't contain any docs, unlike the ancient release.
+  ;;; OTOH, that's probably not a huge concern, given the circumstances.
+  (let ((commit "fa7cbe309d5a705502ca46f808bcf78840804dbe")
+        (revision "2019-02-08"))
+    (package
+      (name "gnome-planner")
+      (version revision)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.gnome.org/GNOME/planner.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "06nws675nyxdxjjfxmkhsj6lqwxjj8fhzkg42hw00pfxjvbcr846"))))
+      (build-system glib-or-gtk-build-system)
+      (arguments
+       `(#:configure-flags
+         (list "--enable-python"
+               ,@(if (string=? "aarch64-linux" (%current-system))
+                     '("--build=aarch64-unknown-linux-gnu")
+                     '()))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'autogen
+             (lambda _
+               ;; Don't run configure in this phase.
+               (setenv "NOCONFIGURE" "1")
+               (invoke "sh" "autogen.sh"
+                       (string-append "SHELL=" (which "sh"))
+                       (string-append "CONFIG_SHELL=" (which "sh"))))))))
+      (inputs
+       `(("libgnomecanvas" ,libgnomecanvas)
+         ("libgnomeui" ,libgnomeui)
+         ("libglade" ,libglade)
+         ("python2" ,python-2)
+         ("python2-pygtk" ,python2-pygtk)
+         ("gnome-common" ,gnome-common)
+         ("gnome-vfs" ,gnome-vfs)
+         ("gconf" ,gconf)
+         ("libxml2" ,libxml2)
+         ("libxslt" ,libxslt)
+         ("gtk+" ,gtk+)
+         ("glib" ,glib)))
+      (native-inputs
+       `(("intltool" ,intltool)
+         ("scrollkeeper" ,scrollkeeper)
+         ("gtk-doc" ,gtk-doc)
+         ("automake" ,automake)
+         ("autoconf" ,autoconf-wrapper)
+         ("libtool" ,libtool)
+         ("which" ,which)
+         ("pkg-config" ,pkg-config)))
+      (home-page "https://wiki.gnome.org/Apps/Planner")
+      (synopsis "Project management software for the GNOME desktop")
+      (description
+       "GNOME Planner is a project management tool based on the Work Breakdown
 Structure (WBS).  Its goal is to enable you to easily plan projects.  Based on
 the resources, tasks, and constraints that you define, Planner generates
 various views into a project.  For example, Planner can show a Gantt chart of
@@ -7064,7 +7086,7 @@ the project.  It can show a detailed summary of tasks including their
 duration, cost, and current progress.  It can also show a report of resource
 utilization that highlights under-utilized and over-utilized resources.  These
 views can be printed as PDF or PostScript files, or exported to HTML.")
-    (license license:gpl2+)))
+      (license license:gpl2+))))
 
 (define-public lollypop
   (package
-- 
2.19.2