[bug#34378] update GNOME Planner to current

Message ID 9bb349a5-a9a9-13b2-35c4-1ea63ffcbd43@interpretmath.pw
State Accepted
Headers show
Series [bug#34378] update GNOME Planner to current | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

Andrew Miloradovsky Feb. 8, 2019, 1:54 a.m. UTC
The release is fairly old and contains prebuilt scripts.
From cbe5c7a354381c665735085a5eb262404e901385 Mon Sep 17 00:00:00 2001
From: Andrew Miloradovsky <andrew@interpretmath.pw>
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(-)

Comments

Ludovic Courtès Feb. 12, 2019, 9:58 p.m. UTC | #1
Hi Andrew,

Andrew Miloradovsky <andrew@interpretmath.pw> skribis:

> The release is fairly old and contains prebuilt scripts.

What do you mean by “prebuilt scripts”?

> From cbe5c7a354381c665735085a5eb262404e901385 Mon Sep 17 00:00:00 2001
> From: Andrew Miloradovsky <andrew@interpretmath.pw>
> 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.

Please see ‘git log’ and
<https://www.gnu.org/software/guix/manual/en/html_node/Submitting-Patches.html>
for examples of the commit message format.

> +  ;;; 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"))

How did you pick this particular commit?  In general we only package
releases, unless there’s a compelling reason to build straight from the
VCS.  Do you think that’s the case here?

Thanks for the patch!

Ludo’.
Andrew Miloradovsky Feb. 13, 2019, 1:13 p.m. UTC | #2
Hi Ludovic,

On 2/12/19 9:58 PM, Ludovic Courtès wrote:
> Hi Andrew,
>
> Andrew Miloradovsky <andrew@interpretmath.pw> skribis:
>
>> The release is fairly old and contains prebuilt scripts.
> What do you mean by “prebuilt scripts”?

By pre-built scripts I mean things like `configure`, generated by
auto-tools and gnome-common.

>> From cbe5c7a354381c665735085a5eb262404e901385 Mon Sep 17 00:00:00 2001
>> From: Andrew Miloradovsky <andrew@interpretmath.pw>
>> 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.
> Please see ‘git log’ and
> <https://www.gnu.org/software/guix/manual/en/html_node/Submitting-Patches.html>
> for examples of the commit message format.

The changes made didn't fit well in the recommended commit message
structure (documenting the changes to each field separately).

>> +  ;;; 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"))
> How did you pick this particular commit?  In general we only package
> releases, unless there’s a compelling reason to build straight from the
> VCS.  Do you think that’s the case here?

I picked that commit just because it was the most recent: the release is
expected to be very difficult to make, a lot of things need to be
fixed/modernized first, and there are not many people to review the
patches (one to be exact, AFAICT).

I'm not sure there are really compelling reasons: most/all of the
changes made since the release are either about translations
(documentation generation is broken anyways), or fixes of deprecation
warnings (which otherwise would prevent it from building in Nixpkgs with
the default -Werror).

>
> Thanks for the patch!
>
> Ludo’.
Ludovic Courtès March 11, 2019, 3:45 p.m. UTC | #3
Hi Andrew,

Sorry for the loooong delay!

Andrew Miloradovsky <andrew@interpretmath.pw> skribis:

> On 2/12/19 9:58 PM, Ludovic Courtès wrote:
>> Hi Andrew,
>>
>> Andrew Miloradovsky <andrew@interpretmath.pw> skribis:
>>
>>> The release is fairly old and contains prebuilt scripts.
>> What do you mean by “prebuilt scripts”?
>
> By pre-built scripts I mean things like `configure`, generated by
> auto-tools and gnome-common.

Oh I see.  We currently accept scripts generated by the Autotools (it’s
pretty much an exception in our policy; perhaps that’ll change in the
future.)

>>> +  ;;; 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"))
>> How did you pick this particular commit?  In general we only package
>> releases, unless there’s a compelling reason to build straight from the
>> VCS.  Do you think that’s the case here?
>
> I picked that commit just because it was the most recent: the release is
> expected to be very difficult to make, a lot of things need to be
> fixed/modernized first, and there are not many people to review the
> patches (one to be exact, AFAICT).
>
> I'm not sure there are really compelling reasons: most/all of the
> changes made since the release are either about translations
> (documentation generation is broken anyways), or fixes of deprecation
> warnings (which otherwise would prevent it from building in Nixpkgs with
> the default -Werror).

OK.  I think it’s a case where we’d wait for upstream to push a new
release, rather than guess which commit is appropriate to distribute.

Thoughts?

Thanks,
Ludo’.
Maxim Cournoyer Aug. 23, 2022, 6:55 p.m. UTC | #4
Hello,

Ludovic Courtès <ludo@gnu.org> writes:

[...]

>>>> +  ;;; 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"))
>>> How did you pick this particular commit?  In general we only package
>>> releases, unless there’s a compelling reason to build straight from the
>>> VCS.  Do you think that’s the case here?
>>
>> I picked that commit just because it was the most recent: the release is
>> expected to be very difficult to make, a lot of things need to be
>> fixed/modernized first, and there are not many people to review the
>> patches (one to be exact, AFAICT).
>>
>> I'm not sure there are really compelling reasons: most/all of the
>> changes made since the release are either about translations
>> (documentation generation is broken anyways), or fixes of deprecation
>> warnings (which otherwise would prevent it from building in Nixpkgs with
>> the default -Werror).
>
> OK.  I think it’s a case where we’d wait for upstream to push a new
> release, rather than guess which commit is appropriate to distribute.
>
> Thoughts?

Agreed.  Closing.

Maxim

Patch

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 <va511e@yahoo.com>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
 ;;;
 ;;; 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