GNU bug report logs - #29392
[PATCH 00/11] New scons build system

Previous Next

Package: guix-patches;

Reported by: Arun Isaac <arunisaac <at> systemreboot.net>

Date: Wed, 22 Nov 2017 09:29:02 UTC

Severity: normal

Tags: patch

Done: Arun Isaac <arunisaac <at> systemreboot.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 29392 in the body.
You can then email your comments to 29392 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:29:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Arun Isaac <arunisaac <at> systemreboot.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Wed, 22 Nov 2017 09:29:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: guix-patches <at> gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 00/11] New scons build system
Date: Wed, 22 Nov 2017 14:11:15 +0530
I have a working scons build system!

I have ported all scons built packages except aria-maestosa to the new build
system. aria-maestosa fails to build even on the current master branch.

I am also unable to build mongodb on my machine. It's probably due to
insufficient memory (I have 4 GB). Somebody should verify that the build works
on their machine. On my machine, it fails with the error:

collect2: error: ld returned 1 exit status
scons: *** [build/opt/mongo/db/pipeline/parsed_add_fields_test] Error 1
scons: building terminated because of errors.
build/opt/mongo/db/pipeline/parsed_add_fields_test failed: Error 1
phase `check' failed after 7004.3 seconds
builder for `/gnu/store/58qhwfl34zk1p10hnhvvpy9w7cv2pgvr-mongodb-3.4.9.drv' failed with exit code 1
@ build-failed /gnu/store/58qhwfl34zk1p10hnhvvpy9w7cv2pgvr-mongodb-3.4.9.drv - 1 builder for `/gnu/store/58qhwfl34zk1p10hnhvvpy9w7cv2pgvr-mongodb-3.4.9.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/58qhwfl34zk1p10hnhvvpy9w7cv2pgvr-mongodb-3.4.9.drv' failed

In the copyright headers of doc/guix.texi, do I need to add @* to the end of
the line?

Arun Isaac (11):
  gnu: scons: Update to 3.0.1.
  build-system: Add scons-build-system.
  gnu: linuxdcpp: Use scons-build-system.
  gnu: gpick: Use scons-build-system.
  gnu: serf: Use scons-build-system.
  gnu: metabat: Use scons-build-system.
  gnu: godot: Use scons-build-system.
  gnu: pingus: Use scons-build-system.
  gnu: klick: Use scons-build-system.
  gnu: mongodb: Use scons-build-system.
  gnu: pingus: Use HTTPS for home page.

 Makefile.am                       |   3 +
 doc/guix.texi                     |  10 +++
 gnu/packages/bioinformatics.scm   |  29 +++------
 gnu/packages/databases.scm        |   8 +--
 gnu/packages/direct-connect.scm   |  24 ++-----
 gnu/packages/game-development.scm |  44 ++++++-------
 gnu/packages/games.scm            |  14 ++---
 gnu/packages/image.scm            |  19 ++----
 gnu/packages/music.scm            |  21 ++-----
 gnu/packages/python.scm           |  13 ++--
 gnu/packages/web.scm              |  36 +++--------
 guix/build-system/scons.scm       | 127 ++++++++++++++++++++++++++++++++++++++
 guix/build/scons-build-system.scm |  65 +++++++++++++++++++
 13 files changed, 275 insertions(+), 138 deletions(-)
 create mode 100644 guix/build-system/scons.scm
 create mode 100644 guix/build/scons-build-system.scm

-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:02 GMT) Full text and rfc822 format available.

Message #8 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 02/11] build-system: Add scons-build-system.
Date: Wed, 22 Nov 2017 15:04:58 +0530
* guix/build-system/scons.scm: New file.
* guix/build/scons-build-system.scm: New file.
* Makefile.am (MODULES): Register them.
* doc/guix.texi (Build Systems): Add scons-build-system.
---
 Makefile.am                       |   3 +
 doc/guix.texi                     |  10 +++
 guix/build-system/scons.scm       | 127 ++++++++++++++++++++++++++++++++++++++
 guix/build/scons-build-system.scm |  65 +++++++++++++++++++
 4 files changed, 205 insertions(+)
 create mode 100644 guix/build-system/scons.scm
 create mode 100644 guix/build/scons-build-system.scm

diff --git a/Makefile.am b/Makefile.am
index eab49181a..24a803a21 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,6 +8,7 @@
 # Copyright © 2017 Leo Famulari <leo <at> famulari.name>
 # Copyright © 2017 Ricardo Wurmus <rekado <at> elephly.net>
 # Copyright © 2017 Jan Nieuwenhuizen <janneke <at> gnu.org>
+# Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 #
 # This file is part of GNU Guix.
 #
@@ -94,6 +95,7 @@ MODULES =					\
   guix/build-system/waf.scm			\
   guix/build-system/r.scm			\
   guix/build-system/ruby.scm			\
+  guix/build-system/scons.scm			\
   guix/build-system/texlive.scm			\
   guix/build-system/trivial.scm			\
   guix/ftp-client.scm				\
@@ -127,6 +129,7 @@ MODULES =					\
   guix/build/ocaml-build-system.scm		\
   guix/build/r-build-system.scm			\
   guix/build/ruby-build-system.scm		\
+  guix/build/scons-build-system.scm		\
   guix/build/texlive-build-system.scm		\
   guix/build/waf-build-system.scm		\
   guix/build/haskell-build-system.scm		\
diff --git a/doc/guix.texi b/doc/guix.texi
index 2b3ffc9a8..6f93b1c8e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -42,6 +42,7 @@ Copyright @copyright{} 2017 Hartmut Goebel@*
 Copyright @copyright{} 2017 Maxim Cournoyer@*
 Copyright @copyright{} 2017 Tobias Geerinckx-Rice@*
 Copyright @copyright{} 2017 George Clemmer
+Copyright @copyright{} 2017 Arun Isaac
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -3865,6 +3866,15 @@ Python package is used to run the script can be specified with the
 @code{#:python} parameter.
 @end defvr
 
+@defvr {Scheme Variable} scons-build-system
+This variable is exported by @code{(guix build-system scons)}.  It
+implements the build procedure used by the @code{scons} software
+construction tool.  This build system runs @code{scons} to build the
+package, @code{scons test} to run tests, and then @code{scons install}
+to install the package.  Additional flags to be passed to @code{scons}
+can be specified with the @code{#:scons-flags} parameter.
+@end defvr
+
 @defvr {Scheme Variable} haskell-build-system
 This variable is exported by @code{(guix build-system haskell)}.  It
 implements the Cabal build procedure used by Haskell packages, which
diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm
new file mode 100644
index 000000000..132a2d4df
--- /dev/null
+++ b/guix/build-system/scons.scm
@@ -0,0 +1,127 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build-system scons)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix derivations)
+  #:use-module (guix search-paths)
+  #:use-module (guix build-system)
+  #:use-module (guix build-system gnu)
+  #:use-module (ice-9 match)
+  #:export (%scons-build-system-modules
+            scons-build
+            scons-build-system))
+
+;; Commentary:
+;;
+;; Standard build procedure for applications using 'scons'. This is
+;; implemented as an extension of 'gnu-build-system'.
+;;
+;; Code:
+
+(define %scons-build-system-modules
+  ;; Build-side modules imported by default.
+  `((guix build scons-build-system)
+    ,@%gnu-build-system-modules))
+
+(define* (lower name
+                #:key source inputs native-inputs outputs system target
+                #:allow-other-keys
+                #:rest arguments)
+  "Return a bag for NAME."
+  (define private-keywords
+    '(#:source #:target #:inputs #:native-inputs))
+
+  (and (not target)                               ;XXX: no cross-compilation
+       (bag
+         (name name)
+         (system system)
+         (host-inputs `(,@(if source
+                              `(("source" ,source))
+                              '())
+                        ,@inputs
+
+                        ;; Keep the standard inputs of 'gnu-build-system'.
+                        ,@(standard-packages)))
+         (build-inputs `(("scons-python2" ,(module-ref (resolve-interface '(gnu packages python)) 'scons-python2))
+                         ,@native-inputs))
+         (outputs outputs)
+         (build scons-build)
+         (arguments (strip-keyword-arguments private-keywords arguments)))))
+
+(define* (scons-build store name inputs
+                      #:key
+                      (tests? #t)
+                      (scons-flags ''())
+                      (test-target "test")
+                      (phases '(@ (guix build scons-build-system)
+                                  %standard-phases))
+                      (outputs '("out"))
+                      (search-paths '())
+                      (system (%current-system))
+                      (guile #f)
+                      (imported-modules %scons-build-system-modules)
+                      (modules '((guix build scons-build-system)
+                                 (guix build utils))))
+  "Build SOURCE using SCONS, and with INPUTS.  This assumes that SOURCE
+provides a 'SConstruct' file as its build system."
+  (define builder
+    `(begin
+       (use-modules ,@modules)
+       (scons-build #:name ,name
+                    #:source ,(match (assoc-ref inputs "source")
+                                (((? derivation? source))
+                                 (derivation->output-path source))
+                                ((source)
+                                 source)
+                                (source
+                                 source))
+                    #:scons-flags ,scons-flags
+                    #:system ,system
+                    #:test-target ,test-target
+                    #:tests? ,tests?
+                    #:phases ,phases
+                    #:outputs %outputs
+                    #:search-paths ',(map search-path-specification->sexp
+                                          search-paths)
+                    #:inputs %build-inputs)))
+
+  (define guile-for-build
+    (match guile
+      ((? package?)
+       (package-derivation store guile system #:graft? #f))
+      (#f                                         ; the default
+       (let* ((distro (resolve-interface '(gnu packages commencement)))
+              (guile  (module-ref distro 'guile-final)))
+         (package-derivation store guile system #:graft? #f)))))
+
+  (build-expression->derivation store name builder
+                                #:inputs inputs
+                                #:system system
+                                #:modules imported-modules
+                                #:outputs outputs
+                                #:guile-for-build guile-for-build))
+
+(define scons-build-system
+  (build-system
+    (name 'scons)
+    (description "The standard scons build system")
+    (lower lower)))
+
+;;; scons.scm ends here
diff --git a/guix/build/scons-build-system.scm b/guix/build/scons-build-system.scm
new file mode 100644
index 000000000..b49e924d9
--- /dev/null
+++ b/guix/build/scons-build-system.scm
@@ -0,0 +1,65 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build scons-build-system)
+  #:use-module ((guix build gnu-build-system) #:prefix gnu:)
+  #:use-module (guix build utils)
+  #:export (%standard-phases
+            scons-build))
+
+;; Commentary:
+;;
+;; Builder-side code of the scons build system.
+;;
+;; Code:
+
+(define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+    (mkdir-p out)
+    (zero? (apply system* "scons"
+                  (append (if parallel-build?
+                              (list "-j" (number->string
+                                          (parallel-job-count)))
+                              (list))
+                          scons-flags)))))
+
+(define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys)
+  "Run the test suite of a given scons application."
+  (cond (tests?
+         (zero? (apply system* "scons" test-target scons-flags)))
+        (else
+         (format #t "test suite not run~%")
+         #t)))
+
+(define* (install #:key outputs (scons-flags '()) #:allow-other-keys)
+  "Install a given scons application."
+  (zero? (apply system* "scons" "install" scons-flags)))
+
+(define %standard-phases
+  (modify-phases gnu:%standard-phases
+    (delete 'configure)
+    (replace 'build build)
+    (replace 'check check)
+    (replace 'install install)))
+
+(define* (scons-build #:key inputs (phases %standard-phases)
+                       #:allow-other-keys #:rest args)
+  "Build a given scons application, applying all of PHASES in order."
+  (apply gnu:gnu-build #:inputs inputs #:phases phases args))
+
+;;; scons-build-system.scm ends here
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:02 GMT) Full text and rfc822 format available.

Message #11 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 10/11] gnu: mongodb: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:06 +0530
* gnu/packages/databases.scm (mongodb): Switch to scons-build-system.
---
 gnu/packages/databases.scm | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index db3361eb1..c4c4ef6da 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -98,6 +98,7 @@
   #:use-module (guix build-system ruby)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system r)
+  #:use-module (guix build-system scons)
   #:use-module (guix utils)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
@@ -387,7 +388,7 @@ applications.")
               (patches
                (list
                 (search-patch "mongodb-support-unknown-linux-distributions.patch")))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (inputs
      `(("openssl" ,openssl)
        ("pcre" ,pcre)
@@ -396,9 +397,7 @@ applications.")
        ("snappy" ,snappy)
        ("boost" ,boost)))
     (native-inputs
-     `(("scons" ,scons)
-       ("python" ,python-2)
-       ("valgrind" ,valgrind)
+     `(("valgrind" ,valgrind)
        ("perl" ,perl)))
     (arguments
      `(#:phases
@@ -417,7 +416,6 @@ applications.")
                 ,(format #f "--jobs=~a" (parallel-job-count))
                 "--ssl")))
          (modify-phases %standard-phases
-           (delete 'configure) ; There is no configure phase
            (add-after 'unpack 'scons-propagate-environment
              (lambda _
                ;; Modify the SConstruct file to arrange for
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:03 GMT) Full text and rfc822 format available.

Message #14 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 04/11] gnu: gpick: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:00 +0530
* gnu/packages/image.scm (gpick): Switch to scons-build-system.
---
 gnu/packages/image.scm | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index cb8e387f6..eabd4653f 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier <at> member.fsf.org>
-;;; Copyright © 2016 Arun Isaac <arunisaac <at> systemreboot.net>
+;;; Copyright © 2016, 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau <at> posteo.net>
 ;;; Copyright © 2017 ng0 <ng0 <at> infotropique.org>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
@@ -67,6 +67,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (guix build-system r)
+  #:use-module (guix build-system scons)
   #:use-module (srfi srfi-1))
 
 (define-public libpng
@@ -1202,33 +1203,25 @@ medical image data, e.g. magnetic resonance image (MRI) and functional MRI
               (sha256
                (base32
                 "0mxvxk15xhk2i5vfavjhnkk4j3bnii0gpf8di14rlbpq070hd5rs"))))
-    (build-system python-build-system)
+    (build-system scons-build-system)
     (native-inputs
      `(("boost" ,boost)
        ("gettext" ,gnu-gettext)
-       ("pkg-config" ,pkg-config)
-       ("scons" ,scons)))
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("expat" ,expat)
        ("gtk2" ,gtk+-2)
        ("lua" ,lua-5.2)))
     (arguments
      `(#:tests? #f
+       #:scons-flags (list (string-append "DESTDIR=" %output))
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-lua-reference
            (lambda _
              (substitute* "SConscript"
                (("lua5.2") "lua-5.2"))
-             #t))
-         (replace 'build
-           (lambda _
-             (zero? (system* "scons"))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((dest (assoc-ref outputs "out")))
-               (zero? (system* "scons" "install"
-                               (string-append "DESTDIR=" dest)))))))))
+             #t)))))
     (home-page "http://www.gpick.org/")
     (synopsis "Color picker")
     (description "Gpick is an advanced color picker and palette editing tool.")
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:03 GMT) Full text and rfc822 format available.

Message #17 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 08/11] gnu: pingus: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:04 +0530
* gnu/packages/games.scm (pingus): Switch to scons-build-system.
---
 gnu/packages/games.scm | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 73ffa74c7..dd0d83538 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -722,7 +722,7 @@ fight Morgoth, the Lord of Darkness.")
        (patches (search-patches "pingus-sdl-libs-config.patch"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scons" ,scons)))
+                     ("scons-python2" ,scons-python2)))
     (inputs `(("sdl" ,sdl)
               ("sdl-image" ,sdl-image)
               ("sdl-mixer" ,sdl-mixer)
@@ -731,15 +731,11 @@ fight Morgoth, the Lord of Darkness.")
               ("libpng" ,libpng)
               ("boost" ,boost)))
     (arguments
-     '(#:tests? #f                      ; no check target
+     '(#:make-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f                      ; no check target
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ; no configure script
-        (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (zero? (system* "make" "install"
-                            (string-append "PREFIX="
-                                           (assoc-ref outputs "out")))))))))
+         (delete 'configure)))) ; no configure script
     (home-page "http://pingus.seul.org/welcome.html")
     (synopsis "Lemmings clone")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:03 GMT) Full text and rfc822 format available.

Message #20 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 07/11] gnu: godot: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:03 +0530
* gnu/packages/game-development.scm (godot): Switch to scons-build-system.
---
 gnu/packages/game-development.scm | 44 +++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index be241cbd3..a98b40c49 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -37,6 +37,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system scons)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
@@ -1063,12 +1064,25 @@ games.")
               (file-name (string-append name "-" version))
               (sha256
                (base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests
+     `(#:scons-flags (list "platform=x11"
+                           ;; Avoid using many of the bundled libs.
+                           ;; Note: These options can be found in the SConstruct file.
+                           "builtin_freetype=no"
+                           "builtin_glew=no"
+                           "builtin_libmpdec=no"
+                           "builtin_libogg=no"
+                           "builtin_libpng=no"
+                           "builtin_libtheora=no"
+                           "builtin_libvorbis=no"
+                           "builtin_libwebp=no"
+                           "builtin_openssl=no"
+                           "builtin_opus=no"
+                           "builtin_zlib=no")
+       #:tests? #f ; There are no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
          (add-after 'unpack 'scons-use-env
            (lambda _
              ;; Scons does not use the environment variables by default,
@@ -1079,24 +1093,6 @@ games.")
                  "env_base = Environment(tools=custom_tools)\n"
                  "env_base = Environment(ENV=os.environ)")))
              #t))
-         (replace 'build
-           (lambda _
-             (zero? (system*
-                     "scons"
-                     "platform=x11"
-                     ;; Avoid using many of the bundled libs.
-                     ;; Note: These options can be found in the SConstruct file.
-                     "builtin_freetype=no"
-                     "builtin_glew=no"
-                     "builtin_libmpdec=no"
-                     "builtin_libogg=no"
-                     "builtin_libpng=no"
-                     "builtin_libtheora=no"
-                     "builtin_libvorbis=no"
-                     "builtin_libwebp=no"
-                     "builtin_openssl=no"
-                     "builtin_opus=no"
-                     "builtin_zlib=no"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1128,8 +1124,7 @@ games.")
                            Type=Application~%"
                            out)))
                #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scons" ,scons)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("alsa-lib" ,alsa-lib)
               ("freetype" ,freetype)
               ("glew" ,glew)
@@ -1144,8 +1139,7 @@ games.")
               ("mesa" ,mesa)
               ("openssl" ,openssl)
               ("opusfile" ,opusfile)
-              ("pulseaudio" ,pulseaudio)
-              ("python2" ,python-2)))
+              ("pulseaudio" ,pulseaudio)))
     (home-page "https://godotengine.org/")
     (synopsis "Advanced 2D and 3D game engine")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:04 GMT) Full text and rfc822 format available.

Message #23 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 05/11] gnu: serf: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:01 +0530
* gnu/packages/web.scm (serf): Switch to scons-build-system.
---
 gnu/packages/web.scm | 36 +++++++++---------------------------
 1 file changed, 9 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a4a8778ef..bf9d7bfdd 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -56,6 +56,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python)
   #:use-module (guix build-system ant)
+  #:use-module (guix build-system scons)
   #:use-module (gnu packages)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages check)
@@ -1068,10 +1069,7 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
                            version ".tar.bz2"))
        (sha256
         (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("scons" ,scons)
-       ("python" ,python-2)))
+    (build-system scons-build-system)
     (propagated-inputs
      `(("apr" ,apr)
        ("apr-util" ,apr-util)
@@ -1081,13 +1079,14 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
        ;;("gss" ,gss)
        ("zlib" ,zlib)))
     (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (srfi srfi-1))
+     `(#:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
+                           (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
+                           (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
+                           ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
+                           (string-append "ZLIB=" (assoc-ref %build-inputs "zlib"))
+                           (string-append "PREFIX=" %output))
        #:phases
-       ;; TODO: Add scons-build-system and use it here.
        (modify-phases %standard-phases
-         (delete 'configure)
          (add-after 'unpack 'scons-propagate-environment
                     (lambda _
                       ;; By design, SCons does not, by default, propagate
@@ -1098,21 +1097,6 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
                       (substitute* "SConstruct"
                         (("^env = Environment\\(")
                          "env = Environment(ENV=os.environ, "))))
-         (replace 'build
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (let ((out      (assoc-ref outputs "out"))
-                          (apr      (assoc-ref inputs "apr"))
-                          (apr-util (assoc-ref inputs "apr-util"))
-                          (openssl  (assoc-ref inputs "openssl"))
-                          ;;(gss      (assoc-ref inputs "gss"))
-                          (zlib     (assoc-ref inputs "zlib")))
-                      (zero? (system* "scons"
-                                      (string-append "APR=" apr)
-                                      (string-append "APU=" apr-util)
-                                      (string-append "OPENSSL=" openssl)
-                                      ;;(string-append "GSSAPI=" gss)
-                                      (string-append "ZLIB=" zlib)
-                                      (string-append "PREFIX=" out))))))
          (add-before 'check 'disable-broken-tests
            (lambda _
              ;; These tests rely on SSL certificates that expired 2017-04-18.
@@ -1139,9 +1123,7 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
                   (substitute* "test/test_context.c"
                     (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
                 broken-tests)
-               #t)))
-         (replace 'check   (lambda _ (zero? (system* "scons" "check"))))
-         (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
+               #t))))))
     (home-page "https://serf.apache.org/")
     (synopsis "High-performance asynchronous HTTP client library")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:04 GMT) Full text and rfc822 format available.

Message #26 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 11/11] gnu: pingus: Use HTTPS for home page.
Date: Wed, 22 Nov 2017 15:05:07 +0530
* gnu/packages/games.scm (pingus)[home-page]: Use HTTPS.
---
 gnu/packages/games.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index dd0d83538..72cd60c32 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -736,7 +736,7 @@ fight Morgoth, the Lord of Darkness.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)))) ; no configure script
-    (home-page "http://pingus.seul.org/welcome.html")
+    (home-page "https://pingus.seul.org/welcome.html")
     (synopsis "Lemmings clone")
     (description
      "Pingus is a free Lemmings-like puzzle game in which the player takes
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:52:05 GMT) Full text and rfc822 format available.

Message #29 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 06/11] gnu: metabat: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:02 +0530
* gnu/packages/bioinformatics.scm (metabat): Switch to scons-build-system.
---
 gnu/packages/bioinformatics.scm | 29 +++++++++--------------------
 1 file changed, 9 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a8d7361ff..850c7462d 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo <at> gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me <at> tobias.gr>
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system r)
   #:use-module (guix build-system ruby)
+  #:use-module (guix build-system scons)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
@@ -3439,9 +3441,13 @@ form of assemblies or reads.")
         (base32
          "1hmvdalz3zj5sqqklg0l4npjdv37cv2hsdi1al9iby2ndxjs1b73"))
        (patches (search-patches "metabat-fix-compilation.patch"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:phases
+     `(#:scons-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "BOOST_ROOT=" (assoc-ref %build-inputs "boost")))
+       #:tests? #f ;; Tests are run during the build phase.
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-includes
            (lambda _
@@ -3471,30 +3477,13 @@ form of assemblies or reads.")
                                "/lib'"))
                ;; Do not distribute README.
                (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
-             #t))
-         (delete 'configure)
-         (replace 'build
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (mkdir (assoc-ref outputs "out"))
-             (zero? (system* "scons"
-                             (string-append
-                              "PREFIX="
-                              (assoc-ref outputs "out"))
-                             (string-append
-                              "BOOST_ROOT="
-                              (assoc-ref inputs "boost"))
-                             "install"))))
-         ;; Check and install are carried out during build phase.
-         (delete 'check)
-         (delete 'install))))
+             #t)))))
     (inputs
      `(("zlib" ,zlib)
        ("perl" ,perl)
        ("samtools" ,samtools)
        ("htslib" ,htslib)
        ("boost" ,boost)))
-    (native-inputs
-     `(("scons" ,scons)))
     (home-page "https://bitbucket.org/berkeleylab/metabat")
     (synopsis
      "Reconstruction of single genomes from complex microbial communities")
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:53:01 GMT) Full text and rfc822 format available.

Message #32 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:04:59 +0530
* gnu/packages/direct-connect.scm (linuxdcpp): Switch to scons-build-system.
---
 gnu/packages/direct-connect.scm | 24 +++++-------------------
 1 file changed, 5 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm
index 6796bf3bc..49cadb5e3 100644
--- a/gnu/packages/direct-connect.scm
+++ b/gnu/packages/direct-connect.scm
@@ -17,7 +17,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages direct-connect)
-  #:use-module (guix build-system python)
+  #:use-module (guix build-system scons)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -44,23 +44,10 @@
        (sha256
         (base32
          "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6"))))
-    (build-system python-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:python ,python-2
-       #:tests? #f ; no tests
-       #:phases
-       ;; TODO: Add scons-build-system and use it here.
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p out)
-               (zero? (system* "scons" (string-append "PREFIX=" out)
-                               "-j" (number->string (parallel-job-count)))))))
-         (replace 'install
-           (lambda _
-             (zero? (system* "scons" "install")))))))
+     `(#:scons-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f)) ; no tests
     (inputs
      `(("boost" ,boost)
        ("bzip2" ,bzip2)
@@ -71,8 +58,7 @@
     (native-inputs
      `(("bazaar" ,bazaar)
        ("gettext-minimal" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("scons" ,scons)))
+       ("pkg-config" ,pkg-config)))
     (home-page "https://launchpad.net/linuxdcpp/")
     (synopsis "Direct Connect client")
     (description "LinuxDC++ is a Direct Connect (DC) client.  Direct Connect
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:53:02 GMT) Full text and rfc822 format available.

Message #35 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 01/11] gnu: scons: Update to 3.0.1.
Date: Wed, 22 Nov 2017 15:04:57 +0530
* gnu/packages/python.scm (scons): Update to 3.0.1.
(scons-python2): New variable.
---
 gnu/packages/python.scm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d46119718..34002245f 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1371,19 +1371,17 @@ existing ones.")
 (define-public scons
   (package
     (name "scons")
-    (version "2.5.1")
+    (version "3.0.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/scons/scons/" version
                                  "/scons-" version ".tar.gz"))
              (sha256
               (base32
-               "1wji1z9jdkhnmm99apx6fhld9cs52rr56aigniyrcsmlwy52298b"))))
+               "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4"))))
     (build-system python-build-system)
     (arguments
-     ;; With Python 3.x, fails to build with a syntax error.
-     `(#:python ,python-2
-       #:use-setuptools? #f                ; still relies on distutils
+     `(#:use-setuptools? #f                ; still relies on distutils
        #:tests? #f))                       ; no 'python setup.py test' command
     (home-page "http://scons.org/")
     (synopsis "Software construction tool written in Python")
@@ -1395,6 +1393,11 @@ In short, SCons is an easier, more reliable and faster way to build
 software.")
     (license license:x11)))
 
+(define-public scons-python2
+  (package
+    (inherit (package-with-python2 scons))
+    (name "scons-python2")))
+
 (define-public python-extras
   (package
     (name "python-extras")
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 22 Nov 2017 09:53:02 GMT) Full text and rfc822 format available.

Message #38 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>
Subject: [PATCH 09/11] gnu: klick: Use scons-build-system.
Date: Wed, 22 Nov 2017 15:05:05 +0530
* gnu/packages/music.scm (klick): Switch to scons-build-system.
---
 gnu/packages/music.scm | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 40eab5ba6..9055f6613 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2017 Rodger Fox <thylakoid <at> openmailbox.org>
 ;;; Copyright © 2017 Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois <at> gmx.com>
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,7 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system scons)
   #:use-module (guix build-system waf)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
@@ -508,19 +510,10 @@ audio and video).")
               (sha256
                (base32
                 "0hmcaywnwzjci3pp4xpvbijnnwvibz7gf9xzcdjbdca910y5728j"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:tests? #f ;no "check" target
-       #:phases
-       ;; TODO: Add scons-build-system and use it here.
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (let ((out (assoc-ref outputs "out")))
-                      (mkdir-p out)
-                      (zero? (system* "scons" (string-append "PREFIX=" out))))))
-         (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
+     `(#:scons-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f)) ;no "check" target
     (inputs
      `(("boost" ,boost)
        ("jack" ,jack-1)
@@ -529,9 +522,7 @@ audio and video).")
        ("liblo" ,liblo)
        ("rubberband" ,rubberband)))
     (native-inputs
-     `(("scons" ,scons)
-       ("python" ,python-2)
-       ("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "http://das.nasophon.de/klick/")
     (synopsis "Metronome for JACK")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sat, 25 Nov 2017 16:05:02 GMT) Full text and rfc822 format available.

Message #41 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 00/11] New scons build system
Date: Sat, 25 Nov 2017 11:04:26 -0500
[Message part 1 (text/plain, inline)]
On Wed, Nov 22, 2017 at 02:11:15PM +0530, Arun Isaac wrote:
> I have a working scons build system!

Awesome!

> I have ported all scons built packages except aria-maestosa to the new build
> system. aria-maestosa fails to build even on the current master branch.

Okay.

> I am also unable to build mongodb on my machine. It's probably due to
> insufficient memory (I have 4 GB). Somebody should verify that the build works
> on their machine. On my machine, it fails with the error:

It failed similarly for me, but at a different point. I'm trying again
after reverting the scons update.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sat, 25 Nov 2017 16:06:01 GMT) Full text and rfc822 format available.

Message #44 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 00/11] New scons build system
Date: Sat, 25 Nov 2017 11:05:02 -0500
[Message part 1 (text/plain, inline)]
On Wed, Nov 22, 2017 at 02:11:15PM +0530, Arun Isaac wrote:
> In the copyright headers of doc/guix.texi, do I need to add @* to the end of
> the line?

Yes, please add it to the penultimate line. That is, the one above
yours.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sun, 26 Nov 2017 01:28:02 GMT) Full text and rfc822 format available.

Message #47 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 00/11] New scons build system
Date: Sat, 25 Nov 2017 20:26:59 -0500
[Message part 1 (text/plain, inline)]
On Wed, Nov 22, 2017 at 02:11:15PM +0530, Arun Isaac wrote:
> I am also unable to build mongodb on my machine. It's probably due to
> insufficient memory (I have 4 GB). Somebody should verify that the build works
> on their machine. On my machine, it fails with the error:

It turns out that mongodb's test suite uses 45 GB of storage at its
peak.

But, mongodb does build and pass its test suite with this
scons-build-system if you have enough space.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sun, 26 Nov 2017 11:19:01 GMT) Full text and rfc822 format available.

Message #50 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: Leo Famulari <leo <at> famulari.name>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 00/11] New scons build system
Date: Sun, 26 Nov 2017 16:47:56 +0530
Leo Famulari <leo <at> famulari.name> writes:

> On Wed, Nov 22, 2017 at 02:11:15PM +0530, Arun Isaac wrote:
>> In the copyright headers of doc/guix.texi, do I need to add @* to the end of
>> the line?
>
> Yes, please add it to the penultimate line. That is, the one above
> yours.

Is this the only change? Shall I make this change and push all commits?




Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sun, 26 Nov 2017 16:19:01 GMT) Full text and rfc822 format available.

Message #53 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Leo Famulari <leo <at> famulari.name>
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 00/11] New scons build system
Date: Sun, 26 Nov 2017 17:17:59 +0100
Leo Famulari <leo <at> famulari.name> skribis:

> On Wed, Nov 22, 2017 at 02:11:15PM +0530, Arun Isaac wrote:
>> I am also unable to build mongodb on my machine. It's probably due to
>> insufficient memory (I have 4 GB). Somebody should verify that the build works
>> on their machine. On my machine, it fails with the error:
>
> It turns out that mongodb's test suite uses 45 GB of storage at its
> peak.

As mentioned on IRC, if it’s C++, it makes a huge difference to build
with “-g0” such that object files do not contain debugging info.
Perhaps worth checking if it helps here!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sun, 26 Nov 2017 18:52:01 GMT) Full text and rfc822 format available.

Message #56 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 00/11] New scons build system
Date: Sun, 26 Nov 2017 13:51:11 -0500
[Message part 1 (text/plain, inline)]
On Sun, Nov 26, 2017 at 05:17:59PM +0100, Ludovic Courtès wrote:
> Leo Famulari <leo <at> famulari.name> skribis:
> 
> > On Wed, Nov 22, 2017 at 02:11:15PM +0530, Arun Isaac wrote:
> >> I am also unable to build mongodb on my machine. It's probably due to
> >> insufficient memory (I have 4 GB). Somebody should verify that the build works
> >> on their machine. On my machine, it fails with the error:
> >
> > It turns out that mongodb's test suite uses 45 GB of storage at its
> > peak.
> 
> As mentioned on IRC, if it’s C++, it makes a huge difference to build
> with “-g0” such that object files do not contain debugging info.
> Perhaps worth checking if it helps here!

Right. Arun, I'm not sure how to apply this flag with Scons. Do we just
pass it to scons-flags? I can try it on my system with lots of storage
space.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Sun, 26 Nov 2017 21:05:01 GMT) Full text and rfc822 format available.

Message #59 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [bug#29392] [PATCH 02/11] build-system: Add scons-build-system.
Date: Sun, 26 Nov 2017 16:04:12 -0500
[Message part 1 (text/plain, inline)]
On Wed, Nov 22, 2017 at 03:04:58PM +0530, Arun Isaac wrote:
> * guix/build-system/scons.scm: New file.
> * guix/build/scons-build-system.scm: New file.
> * Makefile.am (MODULES): Register them.
> * doc/guix.texi (Build Systems): Add scons-build-system.

> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -42,6 +42,7 @@ Copyright @copyright{} 2017 Hartmut Goebel@*
>  Copyright @copyright{} 2017 Maxim Cournoyer@*
>  Copyright @copyright{} 2017 Tobias Geerinckx-Rice@*
>  Copyright @copyright{} 2017 George Clemmer
> +Copyright @copyright{} 2017 Arun Isaac

Make sure to add a line break (@*) after George's name.

https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Line-Breaks.html

> +@defvr {Scheme Variable} scons-build-system
> +This variable is exported by @code{(guix build-system scons)}.  It
> +implements the build procedure used by the @code{scons} software

Here we are not referring to SCons itself, but not a code variable. So,
I think we can skip using @code here.

> +construction tool.  This build system runs @code{scons} to build the
> +package, @code{scons test} to run tests, and then @code{scons install}
> +to install the package.  Additional flags to be passed to @code{scons}
                                                             ^
Same here ---------------------------------------------------|

> diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm

[...]

> +;; Standard build procedure for applications using 'scons'. This is

I would say SCons instead of 'scons', and anywhere we refer to SCons as
a project rather than a particular program. This is mostly in the
manual, comments, docstrings, etc.

> +         (build-inputs `(("scons-python2" ,(module-ref (resolve-interface '(gnu packages python)) 'scons-python2))
> +                         ,@native-inputs))

Is there a particular reason we use a Python 2 variant of SCons? If so,
can you explain it in a code comment?

> +(define* (scons-build store name inputs
> +                      #:key
> +                      (tests? #t)
> +                      (scons-flags ''())
> +                      (test-target "test")
> +                      (phases '(@ (guix build scons-build-system)
> +                                  %standard-phases))
> +                      (outputs '("out"))
> +                      (search-paths '())
> +                      (system (%current-system))
> +                      (guile #f)
> +                      (imported-modules %scons-build-system-modules)
> +                      (modules '((guix build scons-build-system)
> +                                 (guix build utils))))
> +  "Build SOURCE using SCONS, and with INPUTS.  This assumes that SOURCE

There isn't a variable named 'scons' here, so I think it would be
SCONS-PYTHON2.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:01 GMT) Full text and rfc822 format available.

Message #62 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 07/11] gnu: godot: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:47 +0530
* gnu/packages/game-development.scm (godot): Switch to scons-build-system.
---
 gnu/packages/game-development.scm | 45 +++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index be241cbd3..3c544f554 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -37,6 +37,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system scons)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
@@ -1063,12 +1064,26 @@ games.")
               (file-name (string-append name "-" version))
               (sha256
                (base32 "1mz89nafc1m7srbqvy7iagxrxmqvf5hbqi7i0lwaapkx6q0kpkq7"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:tests? #f ; There are no tests
+     `(#:scons ,scons-python2
+       #:scons-flags (list "platform=x11"
+                           ;; Avoid using many of the bundled libs.
+                           ;; Note: These options can be found in the SConstruct file.
+                           "builtin_freetype=no"
+                           "builtin_glew=no"
+                           "builtin_libmpdec=no"
+                           "builtin_libogg=no"
+                           "builtin_libpng=no"
+                           "builtin_libtheora=no"
+                           "builtin_libvorbis=no"
+                           "builtin_libwebp=no"
+                           "builtin_openssl=no"
+                           "builtin_opus=no"
+                           "builtin_zlib=no")
+       #:tests? #f ; There are no tests
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
          (add-after 'unpack 'scons-use-env
            (lambda _
              ;; Scons does not use the environment variables by default,
@@ -1079,24 +1094,6 @@ games.")
                  "env_base = Environment(tools=custom_tools)\n"
                  "env_base = Environment(ENV=os.environ)")))
              #t))
-         (replace 'build
-           (lambda _
-             (zero? (system*
-                     "scons"
-                     "platform=x11"
-                     ;; Avoid using many of the bundled libs.
-                     ;; Note: These options can be found in the SConstruct file.
-                     "builtin_freetype=no"
-                     "builtin_glew=no"
-                     "builtin_libmpdec=no"
-                     "builtin_libogg=no"
-                     "builtin_libpng=no"
-                     "builtin_libtheora=no"
-                     "builtin_libvorbis=no"
-                     "builtin_libwebp=no"
-                     "builtin_openssl=no"
-                     "builtin_opus=no"
-                     "builtin_zlib=no"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1128,8 +1125,7 @@ games.")
                            Type=Application~%"
                            out)))
                #t))))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scons" ,scons)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("alsa-lib" ,alsa-lib)
               ("freetype" ,freetype)
               ("glew" ,glew)
@@ -1144,8 +1140,7 @@ games.")
               ("mesa" ,mesa)
               ("openssl" ,openssl)
               ("opusfile" ,opusfile)
-              ("pulseaudio" ,pulseaudio)
-              ("python2" ,python-2)))
+              ("pulseaudio" ,pulseaudio)))
     (home-page "https://godotengine.org/")
     (synopsis "Advanced 2D and 3D game engine")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:02 GMT) Full text and rfc822 format available.

Message #65 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 08/11] gnu: pingus: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:48 +0530
* gnu/packages/games.scm (pingus): Switch to scons-build-system.
---
 gnu/packages/games.scm | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 565c0e822..a699fadc2 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -808,7 +808,7 @@ fight Morgoth, the Lord of Darkness.")
        (patches (search-patches "pingus-sdl-libs-config.patch"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)
-                     ("scons" ,scons)))
+                     ("scons-python2" ,scons-python2)))
     (inputs `(("sdl" ,sdl)
               ("sdl-image" ,sdl-image)
               ("sdl-mixer" ,sdl-mixer)
@@ -817,15 +817,11 @@ fight Morgoth, the Lord of Darkness.")
               ("libpng" ,libpng)
               ("boost" ,boost)))
     (arguments
-     '(#:tests? #f                      ; no check target
+     '(#:make-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f                      ; no check target
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)            ; no configure script
-        (replace 'install
-          (lambda* (#:key outputs #:allow-other-keys)
-            (zero? (system* "make" "install"
-                            (string-append "PREFIX="
-                                           (assoc-ref outputs "out")))))))))
+         (delete 'configure)))) ; no configure script
     (home-page "http://pingus.seul.org/welcome.html")
     (synopsis "Lemmings clone")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:03 GMT) Full text and rfc822 format available.

Message #68 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 04/11] gnu: gpick: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:44 +0530
* gnu/packages/image.scm (gpick): Switch to scons-build-system.
---
 gnu/packages/image.scm | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 0e1f02556..dfba83a21 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier <at> member.fsf.org>
-;;; Copyright © 2016 Arun Isaac <arunisaac <at> systemreboot.net>
+;;; Copyright © 2016, 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau <at> posteo.net>
 ;;; Copyright © 2017 ng0 <ng0 <at> infotropique.org>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel <at> crazy-compilers.com>
@@ -67,6 +67,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
   #:use-module (guix build-system r)
+  #:use-module (guix build-system scons)
   #:use-module (srfi srfi-1))
 
 (define-public libpng
@@ -1204,33 +1205,26 @@ medical image data, e.g. magnetic resonance image (MRI) and functional MRI
               (sha256
                (base32
                 "0mxvxk15xhk2i5vfavjhnkk4j3bnii0gpf8di14rlbpq070hd5rs"))))
-    (build-system python-build-system)
+    (build-system scons-build-system)
     (native-inputs
      `(("boost" ,boost)
        ("gettext" ,gnu-gettext)
-       ("pkg-config" ,pkg-config)
-       ("scons" ,scons)))
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("expat" ,expat)
        ("gtk2" ,gtk+-2)
        ("lua" ,lua-5.2)))
     (arguments
      `(#:tests? #f
+       #:scons ,scons-python2
+       #:scons-flags (list (string-append "DESTDIR=" %output))
        #:phases
        (modify-phases %standard-phases
          (add-before 'build 'fix-lua-reference
            (lambda _
              (substitute* "SConscript"
                (("lua5.2") "lua-5.2"))
-             #t))
-         (replace 'build
-           (lambda _
-             (zero? (system* "scons"))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((dest (assoc-ref outputs "out")))
-               (zero? (system* "scons" "install"
-                               (string-append "DESTDIR=" dest)))))))))
+             #t)))))
     (home-page "http://www.gpick.org/")
     (synopsis "Color picker")
     (description "Gpick is an advanced color picker and palette editing tool.")
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:03 GMT) Full text and rfc822 format available.

Message #71 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 01/11] gnu: scons: Update to 3.0.1.
Date: Tue, 28 Nov 2017 22:36:41 +0530
* gnu/packages/python.scm (scons): Update to 3.0.1.
(scons-python2): New variable.
---
 gnu/packages/python.scm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 7b2268d13..772564dd9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1365,19 +1365,17 @@ existing ones.")
 (define-public scons
   (package
     (name "scons")
-    (version "2.5.1")
+    (version "3.0.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/scons/scons/" version
                                  "/scons-" version ".tar.gz"))
              (sha256
               (base32
-               "1wji1z9jdkhnmm99apx6fhld9cs52rr56aigniyrcsmlwy52298b"))))
+               "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4"))))
     (build-system python-build-system)
     (arguments
-     ;; With Python 3.x, fails to build with a syntax error.
-     `(#:python ,python-2
-       #:use-setuptools? #f                ; still relies on distutils
+     `(#:use-setuptools? #f                ; still relies on distutils
        #:tests? #f))                       ; no 'python setup.py test' command
     (home-page "http://scons.org/")
     (synopsis "Software construction tool written in Python")
@@ -1389,6 +1387,11 @@ In short, SCons is an easier, more reliable and faster way to build
 software.")
     (license license:x11)))
 
+(define-public scons-python2
+  (package
+    (inherit (package-with-python2 scons))
+    (name "scons-python2")))
+
 (define-public python-extras
   (package
     (name "python-extras")
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:06 GMT) Full text and rfc822 format available.

Message #74 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 09/11] gnu: klick: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:49 +0530
* gnu/packages/music.scm (klick): Switch to scons-build-system.
---
 gnu/packages/music.scm | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 40eab5ba6..9055f6613 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2017 Rodger Fox <thylakoid <at> openmailbox.org>
 ;;; Copyright © 2017 Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois <at> gmx.com>
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +39,7 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system scons)
   #:use-module (guix build-system waf)
   #:use-module (gnu packages)
   #:use-module (gnu packages algebra)
@@ -508,19 +510,10 @@ audio and video).")
               (sha256
                (base32
                 "0hmcaywnwzjci3pp4xpvbijnnwvibz7gf9xzcdjbdca910y5728j"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:tests? #f ;no "check" target
-       #:phases
-       ;; TODO: Add scons-build-system and use it here.
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (let ((out (assoc-ref outputs "out")))
-                      (mkdir-p out)
-                      (zero? (system* "scons" (string-append "PREFIX=" out))))))
-         (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
+     `(#:scons-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f)) ;no "check" target
     (inputs
      `(("boost" ,boost)
        ("jack" ,jack-1)
@@ -529,9 +522,7 @@ audio and video).")
        ("liblo" ,liblo)
        ("rubberband" ,rubberband)))
     (native-inputs
-     `(("scons" ,scons)
-       ("python" ,python-2)
-       ("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "http://das.nasophon.de/klick/")
     (synopsis "Metronome for JACK")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:06 GMT) Full text and rfc822 format available.

Message #77 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:43 +0530
* gnu/packages/direct-connect.scm (linuxdcpp): Switch to scons-build-system.
---
 gnu/packages/direct-connect.scm | 25 ++++++-------------------
 1 file changed, 6 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm
index 6796bf3bc..ac0a49052 100644
--- a/gnu/packages/direct-connect.scm
+++ b/gnu/packages/direct-connect.scm
@@ -17,7 +17,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages direct-connect)
-  #:use-module (guix build-system python)
+  #:use-module (guix build-system scons)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -44,23 +44,11 @@
        (sha256
         (base32
          "12i92hirmwryl1qy0n3jfrpziwzb82f61xca9jcjwyilx502f0b6"))))
-    (build-system python-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:python ,python-2
-       #:tests? #f ; no tests
-       #:phases
-       ;; TODO: Add scons-build-system and use it here.
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p out)
-               (zero? (system* "scons" (string-append "PREFIX=" out)
-                               "-j" (number->string (parallel-job-count)))))))
-         (replace 'install
-           (lambda _
-             (zero? (system* "scons" "install")))))))
+     `(#:scons ,scons-python2
+       #:scons-flags (list (string-append "PREFIX=" %output))
+       #:tests? #f)) ; no tests
     (inputs
      `(("boost" ,boost)
        ("bzip2" ,bzip2)
@@ -71,8 +59,7 @@
     (native-inputs
      `(("bazaar" ,bazaar)
        ("gettext-minimal" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("scons" ,scons)))
+       ("pkg-config" ,pkg-config)))
     (home-page "https://launchpad.net/linuxdcpp/")
     (synopsis "Direct Connect client")
     (description "LinuxDC++ is a Direct Connect (DC) client.  Direct Connect
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:06 GMT) Full text and rfc822 format available.

Message #80 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 00/11] Add scons build system
Date: Tue, 28 Nov 2017 22:36:40 +0530
Here is a new patchset with all suggested changes incorporated.

> Make sure to add a line break (@*) after George's name.

Done.

> I would say SCons instead of 'scons', and anywhere we refer to SCons as a
> project rather than a particular program. This is mostly in the manual,
> comments, docstrings, etc.

Done.

> Is there a particular reason we use a Python 2 variant of SCons? If so, can
> you explain it in a code comment?

I have now added a new #:scons parameter so that each package can specify the
version of SCons that is required. This is much like the #:python parameter in
the python build system. I have mentioned the #:scons parameter in the manual
as well.

> Right. Arun, I'm not sure how to apply this flag with Scons. Do we just
> pass it to scons-flags? I can try it on my system with lots of storage
> space.

For mongodb, I have passed "-g0" to scons using "CXXFLAGS=-g0". Now, the build
seems to progress farther, but I still run out of memory. Could you test the
package on your machine?

Arun Isaac (11):
  gnu: scons: Update to 3.0.1.
  build-system: Add scons-build-system.
  gnu: linuxdcpp: Use scons-build-system.
  gnu: gpick: Use scons-build-system.
  gnu: serf: Use scons-build-system.
  gnu: metabat: Use scons-build-system.
  gnu: godot: Use scons-build-system.
  gnu: pingus: Use scons-build-system.
  gnu: klick: Use scons-build-system.
  gnu: mongodb: Use scons-build-system.
  gnu: pingus: Use HTTPS for home page.

 Makefile.am                       |   3 +
 doc/guix.texi                     |  16 ++++-
 gnu/packages/bioinformatics.scm   |  30 +++------
 gnu/packages/databases.scm        |  15 +++--
 gnu/packages/direct-connect.scm   |  25 ++-----
 gnu/packages/game-development.scm |  45 ++++++-------
 gnu/packages/games.scm            |  14 ++--
 gnu/packages/image.scm            |  20 ++----
 gnu/packages/music.scm            |  21 ++----
 gnu/packages/python.scm           |  13 ++--
 gnu/packages/web.scm              |  37 +++--------
 guix/build-system/scons.scm       | 134 ++++++++++++++++++++++++++++++++++++++
 guix/build/scons-build-system.scm |  65 ++++++++++++++++++
 13 files changed, 297 insertions(+), 141 deletions(-)
 create mode 100644 guix/build-system/scons.scm
 create mode 100644 guix/build/scons-build-system.scm

-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:07 GMT) Full text and rfc822 format available.

Message #83 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 06/11] gnu: metabat: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:46 +0530
* gnu/packages/bioinformatics.scm (metabat): Switch to scons-build-system.
---
 gnu/packages/bioinformatics.scm | 30 ++++++++++--------------------
 1 file changed, 10 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 833376ac2..ffe0e13ae 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Marius Bakke <mbakke <at> fastmail.com>
 ;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo <at> gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me <at> tobias.gr>
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system r)
   #:use-module (guix build-system ruby)
+  #:use-module (guix build-system scons)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
@@ -3643,9 +3645,14 @@ form of assemblies or reads.")
         (base32
          "1hmvdalz3zj5sqqklg0l4npjdv37cv2hsdi1al9iby2ndxjs1b73"))
        (patches (search-patches "metabat-fix-compilation.patch"))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (arguments
-     `(#:phases
+     `(#:scons ,scons-python2
+       #:scons-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             (string-append "BOOST_ROOT=" (assoc-ref %build-inputs "boost")))
+       #:tests? #f ;; Tests are run during the build phase.
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-includes
            (lambda _
@@ -3675,30 +3682,13 @@ form of assemblies or reads.")
                                "/lib'"))
                ;; Do not distribute README.
                (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
-             #t))
-         (delete 'configure)
-         (replace 'build
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (mkdir (assoc-ref outputs "out"))
-             (zero? (system* "scons"
-                             (string-append
-                              "PREFIX="
-                              (assoc-ref outputs "out"))
-                             (string-append
-                              "BOOST_ROOT="
-                              (assoc-ref inputs "boost"))
-                             "install"))))
-         ;; Check and install are carried out during build phase.
-         (delete 'check)
-         (delete 'install))))
+             #t)))))
     (inputs
      `(("zlib" ,zlib)
        ("perl" ,perl)
        ("samtools" ,samtools)
        ("htslib" ,htslib)
        ("boost" ,boost)))
-    (native-inputs
-     `(("scons" ,scons)))
     (home-page "https://bitbucket.org/berkeleylab/metabat")
     (synopsis
      "Reconstruction of single genomes from complex microbial communities")
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:07 GMT) Full text and rfc822 format available.

Message #86 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 05/11] gnu: serf: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:45 +0530
* gnu/packages/web.scm (serf): Switch to scons-build-system.
---
 gnu/packages/web.scm | 37 ++++++++++---------------------------
 1 file changed, 10 insertions(+), 27 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b84bbdddd..497bb90ee 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -56,6 +56,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system python)
   #:use-module (guix build-system ant)
+  #:use-module (guix build-system scons)
   #:use-module (gnu packages)
   #:use-module (gnu packages apr)
   #:use-module (gnu packages check)
@@ -1068,10 +1069,7 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
                            version ".tar.bz2"))
        (sha256
         (base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("scons" ,scons)
-       ("python" ,python-2)))
+    (build-system scons-build-system)
     (propagated-inputs
      `(("apr" ,apr)
        ("apr-util" ,apr-util)
@@ -1081,13 +1079,15 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
        ;;("gss" ,gss)
        ("zlib" ,zlib)))
     (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (srfi srfi-1))
+     `(#:scons ,scons-python2
+       #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr"))
+                           (string-append "APU=" (assoc-ref %build-inputs "apr-util"))
+                           (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl"))
+                           ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss"))
+                           (string-append "ZLIB=" (assoc-ref %build-inputs "zlib"))
+                           (string-append "PREFIX=" %output))
        #:phases
-       ;; TODO: Add scons-build-system and use it here.
        (modify-phases %standard-phases
-         (delete 'configure)
          (add-after 'unpack 'scons-propagate-environment
                     (lambda _
                       ;; By design, SCons does not, by default, propagate
@@ -1098,21 +1098,6 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
                       (substitute* "SConstruct"
                         (("^env = Environment\\(")
                          "env = Environment(ENV=os.environ, "))))
-         (replace 'build
-                  (lambda* (#:key inputs outputs #:allow-other-keys)
-                    (let ((out      (assoc-ref outputs "out"))
-                          (apr      (assoc-ref inputs "apr"))
-                          (apr-util (assoc-ref inputs "apr-util"))
-                          (openssl  (assoc-ref inputs "openssl"))
-                          ;;(gss      (assoc-ref inputs "gss"))
-                          (zlib     (assoc-ref inputs "zlib")))
-                      (zero? (system* "scons"
-                                      (string-append "APR=" apr)
-                                      (string-append "APU=" apr-util)
-                                      (string-append "OPENSSL=" openssl)
-                                      ;;(string-append "GSSAPI=" gss)
-                                      (string-append "ZLIB=" zlib)
-                                      (string-append "PREFIX=" out))))))
          (add-before 'check 'disable-broken-tests
            (lambda _
              ;; These tests rely on SSL certificates that expired 2017-04-18.
@@ -1139,9 +1124,7 @@ from streaming URLs.  It is a command-line wrapper for the libquvi library.")
                   (substitute* "test/test_context.c"
                     (((string-append "SUITE_ADD_TEST\\(suite, " test "\\);")) "")))
                 broken-tests)
-               #t)))
-         (replace 'check   (lambda _ (zero? (system* "scons" "check"))))
-         (replace 'install (lambda _ (zero? (system* "scons" "install")))))))
+               #t))))))
     (home-page "https://serf.apache.org/")
     (synopsis "High-performance asynchronous HTTP client library")
     (description
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:08:08 GMT) Full text and rfc822 format available.

Message #89 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 02/11] build-system: Add scons-build-system.
Date: Tue, 28 Nov 2017 22:36:42 +0530
* guix/build-system/scons.scm: New file.
* guix/build/scons-build-system.scm: New file.
* Makefile.am (MODULES): Register them.
* doc/guix.texi (Build Systems): Add scons-build-system.
---
 Makefile.am                       |   3 +
 doc/guix.texi                     |  16 ++++-
 guix/build-system/scons.scm       | 134 ++++++++++++++++++++++++++++++++++++++
 guix/build/scons-build-system.scm |  65 ++++++++++++++++++
 4 files changed, 217 insertions(+), 1 deletion(-)
 create mode 100644 guix/build-system/scons.scm
 create mode 100644 guix/build/scons-build-system.scm

diff --git a/Makefile.am b/Makefile.am
index eab49181a..24a803a21 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,6 +8,7 @@
 # Copyright © 2017 Leo Famulari <leo <at> famulari.name>
 # Copyright © 2017 Ricardo Wurmus <rekado <at> elephly.net>
 # Copyright © 2017 Jan Nieuwenhuizen <janneke <at> gnu.org>
+# Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
 #
 # This file is part of GNU Guix.
 #
@@ -94,6 +95,7 @@ MODULES =					\
   guix/build-system/waf.scm			\
   guix/build-system/r.scm			\
   guix/build-system/ruby.scm			\
+  guix/build-system/scons.scm			\
   guix/build-system/texlive.scm			\
   guix/build-system/trivial.scm			\
   guix/ftp-client.scm				\
@@ -127,6 +129,7 @@ MODULES =					\
   guix/build/ocaml-build-system.scm		\
   guix/build/r-build-system.scm			\
   guix/build/ruby-build-system.scm		\
+  guix/build/scons-build-system.scm		\
   guix/build/texlive-build-system.scm		\
   guix/build/waf-build-system.scm		\
   guix/build/haskell-build-system.scm		\
diff --git a/doc/guix.texi b/doc/guix.texi
index 05042cb20..ad517a8a5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -41,7 +41,8 @@ Copyright @copyright{} 2017 Marius Bakke@*
 Copyright @copyright{} 2017 Hartmut Goebel@*
 Copyright @copyright{} 2017 Maxim Cournoyer@*
 Copyright @copyright{} 2017 Tobias Geerinckx-Rice@*
-Copyright @copyright{} 2017 George Clemmer
+Copyright @copyright{} 2017 George Clemmer@*
+Copyright @copyright{} 2017 Arun Isaac
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -3865,6 +3866,19 @@ Python package is used to run the script can be specified with the
 @code{#:python} parameter.
 @end defvr
 
+@defvr {Scheme Variable} scons-build-system
+This variable is exported by @code{(guix build-system scons)}.  It
+implements the build procedure used by the SCons software construction
+tool.  This build system runs @code{scons} to build the package,
+@code{scons test} to run tests, and then @code{scons install} to install
+the package.
+
+Additional flags to be passed to @code{scons} can be specified with the
+@code{#:scons-flags} parameter.  The version of Python used to run SCons
+can be specified by selecting the appropriate SCons package with the
+@code{#:scons} parameter.
+@end defvr
+
 @defvr {Scheme Variable} haskell-build-system
 This variable is exported by @code{(guix build-system haskell)}.  It
 implements the Cabal build procedure used by Haskell packages, which
diff --git a/guix/build-system/scons.scm b/guix/build-system/scons.scm
new file mode 100644
index 000000000..da09cc7de
--- /dev/null
+++ b/guix/build-system/scons.scm
@@ -0,0 +1,134 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build-system scons)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix derivations)
+  #:use-module (guix search-paths)
+  #:use-module (guix build-system)
+  #:use-module (guix build-system gnu)
+  #:use-module (ice-9 match)
+  #:export (%scons-build-system-modules
+            scons-build
+            scons-build-system))
+
+;; Commentary:
+;;
+;; Standard build procedure for applications using SCons. This is implemented
+;; as an extension of 'gnu-build-system'.
+;;
+;; Code:
+
+(define %scons-build-system-modules
+  ;; Build-side modules imported by default.
+  `((guix build scons-build-system)
+    ,@%gnu-build-system-modules))
+
+(define (default-scons)
+  "Return the default SCons package."
+  ;; Lazily resolve the binding to avoid a circular dependency.
+  (let ((python (resolve-interface '(gnu packages python))))
+    (module-ref python 'scons)))
+
+(define* (lower name
+                #:key source inputs native-inputs outputs system target
+                (scons (default-scons))
+                #:allow-other-keys
+                #:rest arguments)
+  "Return a bag for NAME."
+  (define private-keywords
+    '(#:source #:target #:scons #:inputs #:native-inputs))
+
+  (and (not target)                               ;XXX: no cross-compilation
+       (bag
+         (name name)
+         (system system)
+         (host-inputs `(,@(if source
+                              `(("source" ,source))
+                              '())
+                        ,@inputs
+
+                        ;; Keep the standard inputs of 'gnu-build-system'.
+                        ,@(standard-packages)))
+         (build-inputs `(("scons" ,scons)
+                         ,@native-inputs))
+         (outputs outputs)
+         (build scons-build)
+         (arguments (strip-keyword-arguments private-keywords arguments)))))
+
+(define* (scons-build store name inputs
+                      #:key
+                      (tests? #t)
+                      (scons-flags ''())
+                      (test-target "test")
+                      (phases '(@ (guix build scons-build-system)
+                                  %standard-phases))
+                      (outputs '("out"))
+                      (search-paths '())
+                      (system (%current-system))
+                      (guile #f)
+                      (imported-modules %scons-build-system-modules)
+                      (modules '((guix build scons-build-system)
+                                 (guix build utils))))
+  "Build SOURCE using SCons, and with INPUTS.  This assumes that SOURCE
+provides a 'SConstruct' file as its build system."
+  (define builder
+    `(begin
+       (use-modules ,@modules)
+       (scons-build #:name ,name
+                    #:source ,(match (assoc-ref inputs "source")
+                                (((? derivation? source))
+                                 (derivation->output-path source))
+                                ((source)
+                                 source)
+                                (source
+                                 source))
+                    #:scons-flags ,scons-flags
+                    #:system ,system
+                    #:test-target ,test-target
+                    #:tests? ,tests?
+                    #:phases ,phases
+                    #:outputs %outputs
+                    #:search-paths ',(map search-path-specification->sexp
+                                          search-paths)
+                    #:inputs %build-inputs)))
+
+  (define guile-for-build
+    (match guile
+      ((? package?)
+       (package-derivation store guile system #:graft? #f))
+      (#f                                         ; the default
+       (let* ((distro (resolve-interface '(gnu packages commencement)))
+              (guile  (module-ref distro 'guile-final)))
+         (package-derivation store guile system #:graft? #f)))))
+
+  (build-expression->derivation store name builder
+                                #:inputs inputs
+                                #:system system
+                                #:modules imported-modules
+                                #:outputs outputs
+                                #:guile-for-build guile-for-build))
+
+(define scons-build-system
+  (build-system
+    (name 'scons)
+    (description "The standard SCons build system")
+    (lower lower)))
+
+;;; scons.scm ends here
diff --git a/guix/build/scons-build-system.scm b/guix/build/scons-build-system.scm
new file mode 100644
index 000000000..a8760968d
--- /dev/null
+++ b/guix/build/scons-build-system.scm
@@ -0,0 +1,65 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Arun Isaac <arunisaac <at> systemreboot.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build scons-build-system)
+  #:use-module ((guix build gnu-build-system) #:prefix gnu:)
+  #:use-module (guix build utils)
+  #:export (%standard-phases
+            scons-build))
+
+;; Commentary:
+;;
+;; Builder-side code of the SCons build system.
+;;
+;; Code:
+
+(define* (build #:key outputs (scons-flags '()) (parallel-build? #t) #:allow-other-keys)
+  (let ((out (assoc-ref outputs "out")))
+    (mkdir-p out)
+    (zero? (apply system* "scons"
+                  (append (if parallel-build?
+                              (list "-j" (number->string
+                                          (parallel-job-count)))
+                              (list))
+                          scons-flags)))))
+
+(define* (check #:key tests? test-target (scons-flags '()) #:allow-other-keys)
+  "Run the test suite of a given SCons application."
+  (cond (tests?
+         (zero? (apply system* "scons" test-target scons-flags)))
+        (else
+         (format #t "test suite not run~%")
+         #t)))
+
+(define* (install #:key outputs (scons-flags '()) #:allow-other-keys)
+  "Install a given SCons application."
+  (zero? (apply system* "scons" "install" scons-flags)))
+
+(define %standard-phases
+  (modify-phases gnu:%standard-phases
+    (delete 'configure)
+    (replace 'build build)
+    (replace 'check check)
+    (replace 'install install)))
+
+(define* (scons-build #:key inputs (phases %standard-phases)
+                       #:allow-other-keys #:rest args)
+  "Build a given SCons application, applying all of PHASES in order."
+  (apply gnu:gnu-build #:inputs inputs #:phases phases args))
+
+;;; scons-build-system.scm ends here
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:33:01 GMT) Full text and rfc822 format available.

Message #92 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 10/11] gnu: mongodb: Use scons-build-system.
Date: Tue, 28 Nov 2017 22:36:50 +0530
* gnu/packages/databases.scm (mongodb): Switch to scons-build-system.
[arguments]: Add "CXXFLAGS=-g0" to common-options.
---
 gnu/packages/databases.scm | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index ab4d17479..d0d9be8c0 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -98,6 +98,7 @@
   #:use-module (guix build-system ruby)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system r)
+  #:use-module (guix build-system scons)
   #:use-module ((guix build utils) #:hide (which))
   #:use-module (guix utils)
   #:use-module (srfi srfi-1)
@@ -398,7 +399,7 @@ applications.")
               (patches
                (list
                 (search-patch "mongodb-support-unknown-linux-distributions.patch")))))
-    (build-system gnu-build-system)
+    (build-system scons-build-system)
     (inputs
      `(("openssl" ,openssl)
        ("pcre" ,pcre)
@@ -410,12 +411,11 @@ applications.")
        ("zlib" ,zlib)
        ("snappy" ,snappy)))
     (native-inputs
-     `(("scons" ,scons)
-       ("python" ,python-2)
-       ("valgrind" ,valgrind)
+     `(("valgrind" ,valgrind)
        ("perl" ,perl)))
     (arguments
-     `(#:phases
+     `(#:scons ,scons-python2
+       #:phases
        (let ((common-options
               `(;; "--use-system-tcmalloc" TODO: Missing gperftools
                 "--use-system-pcre"
@@ -435,9 +435,10 @@ applications.")
                 "--use-system-yaml"
                 "--disable-warnings-as-errors"
                 ,(format #f "--jobs=~a" (parallel-job-count))
-                "--ssl")))
+                "--ssl"
+                ;; Remove debugging information to reduce memory consumption
+                "CXXFLAGS=-g0")))
          (modify-phases %standard-phases
-           (delete 'configure) ; There is no configure phase
            (add-after 'unpack 'scons-propagate-environment
              (lambda _
                ;; Modify the SConstruct file to arrange for
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 17:33:02 GMT) Full text and rfc822 format available.

Message #95 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: 29392 <at> debbugs.gnu.org
Cc: Arun Isaac <arunisaac <at> systemreboot.net>, leo <at> famulari.name
Subject: [PATCH 11/11] gnu: pingus: Use HTTPS for home page.
Date: Tue, 28 Nov 2017 22:36:51 +0530
* gnu/packages/games.scm (pingus)[home-page]: Use HTTPS.
---
 gnu/packages/games.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index a699fadc2..b966ec498 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -822,7 +822,7 @@ fight Morgoth, the Lord of Darkness.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)))) ; no configure script
-    (home-page "http://pingus.seul.org/welcome.html")
+    (home-page "https://pingus.seul.org/welcome.html")
     (synopsis "Lemmings clone")
     (description
      "Pingus is a free Lemmings-like puzzle game in which the player takes
-- 
2.15.0





Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Tue, 28 Nov 2017 21:39:02 GMT) Full text and rfc822 format available.

Message #98 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [PATCH 00/11] Add scons build system
Date: Tue, 28 Nov 2017 16:38:28 -0500
[Message part 1 (text/plain, inline)]
On Tue, Nov 28, 2017 at 10:36:40PM +0530, Arun Isaac wrote:
> Here is a new patchset with all suggested changes incorporated.

Thanks!

> For mongodb, I have passed "-g0" to scons using "CXXFLAGS=-g0". Now, the build
> seems to progress farther, but I still run out of memory. Could you test the
> package on your machine?

I let the build directory grow to 22 GiB before cancelling the build
(it's using lots of storage, but not much RAM). It worked previously,
both before I tested your scons-build-system and using the previous
revision of these patches. So, I think it doesn't matter whether or not
we pass -g0.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 29 Nov 2017 08:21:02 GMT) Full text and rfc822 format available.

Message #101 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: Leo Famulari <leo <at> famulari.name>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [PATCH 00/11] Add scons build system
Date: Wed, 29 Nov 2017 13:49:56 +0530
Leo Famulari <leo <at> famulari.name> writes:

>> For mongodb, I have passed "-g0" to scons using "CXXFLAGS=-g0". Now, the build
>> seems to progress farther, but I still run out of memory. Could you test the
>> package on your machine?
>
> I let the build directory grow to 22 GiB before cancelling the build
> (it's using lots of storage, but not much RAM). It worked previously,
> both before I tested your scons-build-system and using the previous
> revision of these patches. So, I think it doesn't matter whether or not
> we pass -g0.

So, do I push with the "-g0" flag or without?




Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Wed, 29 Nov 2017 21:31:01 GMT) Full text and rfc822 format available.

Message #104 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Arun Isaac <arunisaac <at> systemreboot.net>
Cc: 29392 <at> debbugs.gnu.org
Subject: Re: [PATCH 00/11] Add scons build system
Date: Wed, 29 Nov 2017 16:29:27 -0500
[Message part 1 (text/plain, inline)]
On Wed, Nov 29, 2017 at 01:49:56PM +0530, Arun Isaac wrote:
> Leo Famulari <leo <at> famulari.name> writes:
> 
> >> For mongodb, I have passed "-g0" to scons using "CXXFLAGS=-g0". Now, the build
> >> seems to progress farther, but I still run out of memory. Could you test the
> >> package on your machine?
> >
> > I let the build directory grow to 22 GiB before cancelling the build
> > (it's using lots of storage, but not much RAM). It worked previously,
> > both before I tested your scons-build-system and using the previous
> > revision of these patches. So, I think it doesn't matter whether or not
> > we pass -g0.
> 
> So, do I push with the "-g0" flag or without?

Since it didn't seem to have an effect on the storage requirements
during building, I think you can push without.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Arun Isaac <arunisaac <at> systemreboot.net>:
You have taken responsibility. (Thu, 30 Nov 2017 13:42:04 GMT) Full text and rfc822 format available.

Notification sent to Arun Isaac <arunisaac <at> systemreboot.net>:
bug acknowledged by developer. (Thu, 30 Nov 2017 13:42:04 GMT) Full text and rfc822 format available.

Message #109 received at 29392-done <at> debbugs.gnu.org (full text, mbox):

From: Arun Isaac <arunisaac <at> systemreboot.net>
To: Leo Famulari <leo <at> famulari.name>
Cc: 29392-done <at> debbugs.gnu.org
Subject: Re: [PATCH 00/11] Add scons build system
Date: Thu, 30 Nov 2017 19:10:56 +0530
Leo Famulari <leo <at> famulari.name> writes:

>> So, do I push with the "-g0" flag or without?
>
> Since it didn't seem to have an effect on the storage requirements
> during building, I think you can push without.

Done.

I have pushed all the patches except the one changing the homepage of
pingus to HTTPS. Their site appears to be down, and I didn't want to
push the change without verifying one last time.




Information forwarded to guix-patches <at> gnu.org:
bug#29392; Package guix-patches. (Thu, 30 Nov 2017 17:06:01 GMT) Full text and rfc822 format available.

Message #112 received at 29392 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 29392 <at> debbugs.gnu.org
Cc: arunisaac <at> systemreboot.net
Subject: Re: bug#29392: [PATCH 00/11] Add scons build system
Date: Thu, 30 Nov 2017 18:05:33 +0100
Arun Isaac <arunisaac <at> systemreboot.net> skribis:

> Leo Famulari <leo <at> famulari.name> writes:
>
>>> So, do I push with the "-g0" flag or without?
>>
>> Since it didn't seem to have an effect on the storage requirements
>> during building, I think you can push without.
>
> Done.

Excellent, thank you Arun!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 29 Dec 2017 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 252 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.