diff mbox series

[bug#41555] gnu: xaos: Update to 4.0.

Message ID 20200527021008.29726-1-kkebreau@posteo.net
State Accepted
Headers show
Series [bug#41555] gnu: xaos: Update to 4.0. | 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

Kei Kebreau May 27, 2020, 2:10 a.m. UTC
* gnu/packages/maths.scm (xaos): Update to 4.0.
[source]: Use git-fetch.
[native-inputs]: Add qtbase and qttools.
[arguments]: Remove #:make-flags options; replace 'configure' phase and add
'install-data' phase.
[home-page]: Update URL.
---
 gnu/packages/maths.scm | 50 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 42 insertions(+), 8 deletions(-)

Comments

Leo Famulari May 28, 2020, 5:55 p.m. UTC | #1
On Tue, May 26, 2020 at 10:10:08PM -0400, Kei Kebreau wrote:
> * gnu/packages/maths.scm (xaos): Update to 4.0.
> [source]: Use git-fetch.
> [native-inputs]: Add qtbase and qttools.
> [arguments]: Remove #:make-flags options; replace 'configure' phase and add
> 'install-data' phase.
> [home-page]: Update URL.

LGTM, thanks Kei!
Kei Kebreau May 30, 2020, 12:11 a.m. UTC | #2
On Thu, 2020-05-28 at 13:55 -0400, Leo Famulari wrote:
> On Tue, May 26, 2020 at 10:10:08PM -0400, Kei Kebreau wrote:
> > * gnu/packages/maths.scm (xaos): Update to 4.0.
> > [source]: Use git-fetch.
> > [native-inputs]: Add qtbase and qttools.
> > [arguments]: Remove #:make-flags options; replace 'configure' phase
> > and add
> > 'install-data' phase.
> > [home-page]: Update URL.
> 
> LGTM, thanks Kei!

Thanks for the review! 

FYI, I added a 'make-qt-deterministic' phase which sets the environment
variable QT_RCC_SOURCE_DATE_OVERRIDE to 1 to remove a non-determinism
issue.

Anyway, this has been pushed to master as 49de32748d.
Leo Famulari May 30, 2020, 5:11 p.m. UTC | #3
On Fri, May 29, 2020 at 08:11:43PM -0400, Kei wrote:
> Thanks for the review! 
> 
> FYI, I added a 'make-qt-deterministic' phase which sets the environment
> variable QT_RCC_SOURCE_DATE_OVERRIDE to 1 to remove a non-determinism
> issue.

Nice! There is a qt-build-system now. Should we add that to it?
Marius Bakke May 30, 2020, 5:26 p.m. UTC | #4
Leo Famulari <leo@famulari.name> writes:

> On Fri, May 29, 2020 at 08:11:43PM -0400, Kei wrote:
>> Thanks for the review! 
>> 
>> FYI, I added a 'make-qt-deterministic' phase which sets the environment
>> variable QT_RCC_SOURCE_DATE_OVERRIDE to 1 to remove a non-determinism
>> issue.
>
> Nice! There is a qt-build-system now. Should we add that to it?

Maxim pointed out in another message that Qt 5.14 (currently on staging)
no longer needs this variable.

The staging branch is currently stalled due to
<https://issues.guix.gnu.org/41596> and
<https://issues.guix.gnu.org/41598> though, so it may take a few
months.
diff mbox series

Patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 3424aaa15e..2e648e3665 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4036,30 +4036,64 @@  evaluates expressions using the standard order of operations.")
 (define-public xaos
   (package
     (name "xaos")
-    (version "3.6")
+    (version "4.0")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/xaos/XaoS/" version
-                                  "/xaos-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/xaos-project/XaoS")
+                    (commit (string-append "release-" version))))
               (sha256
                (base32
-                "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq"))))
+                "00110p5xscjsmn7avfqgydn656zbmdj3l3y2fpv9b4ihzpid8n7a"))))
     (build-system gnu-build-system)
-    (native-inputs `(("gettext" ,gettext-minimal)))
+    (native-inputs `(("gettext" ,gettext-minimal)
+                     ("qtbase" ,qtbase)
+                     ("qttools" ,qttools)))
     (inputs `(("libx11" ,libx11)
               ("zlib" ,zlib)
               ("libpng" ,libpng)
               ("gsl" ,gsl)))
+    ;; The upstream project file ("XaoS.pro") and the Makefile it generates are
+    ;; not enough for this package to install properly.  These phases fix that.
     (arguments
      `(#:tests? #f ;no "check" target
-       #:make-flags '("LOCALEDIR=$DATAROOTDIR/locale")))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; The DESTDIR is originally set to install the xaos binary to
+               ;; the "bin" folder inside the build directory.  Setting make
+               ;; flags doesn't seem to change this.
+               (substitute* "XaoS.pro"
+                 (("DESTDIR.*$")
+                  (string-append "DESTDIR=" out "/bin")))
+               (substitute* "src/include/config.h"
+                 (("/usr/share/XaoS")
+                  (string-append out "/share/XaoS")))
+               (invoke "qmake"))))
+         (add-after 'install 'install-data
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share")))
+               (mkdir-p share)
+               (for-each
+                (lambda (folder)
+                  (copy-recursively folder
+                                    (string-append share "/XaoS/" folder)))
+                '("catalogs" "examples" "tutorial"))
+               (install-file "xdg/xaos.png"
+                             (string-append share "/pixmaps"))
+               (install-file "xdg/xaos.desktop"
+                             (string-append share "/applications")))
+             #t)))))
     (synopsis "Real-time fractal zoomer")
     (description "GNU XaoS is a graphical program that generates fractal
 patterns and allows you to zoom in and out of them infinitely in a fluid,
 continuous manner.  It also includes tutorials that help to explain how fractals
 are built.  It can generate many different fractal types such as the Mandelbrot
 set.")
-    (home-page "https://www.gnu.org/software/xaos/")
+    (home-page "https://xaos-project.github.io/")
     (license license:gpl2+)))
 
 (define-public hypre