unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#29392] [PATCH 00/11] New scons build system
@ 2017-11-22  8:41 Arun Isaac
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                   ` (4 more replies)
  0 siblings, 5 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  8:41 UTC (permalink / raw)
  To: 29392

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

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1.
  2017-11-22  8:41 [bug#29392] [PATCH 00/11] New scons build system Arun Isaac
@ 2017-11-22  9:34 ` Arun Isaac
  2017-11-22  9:34   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
                     ` (9 more replies)
  2017-11-25 16:04 ` [bug#29392] [PATCH 00/11] New scons build system Leo Famulari
                   ` (3 subsequent siblings)
  4 siblings, 10 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:34 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 02/11] build-system: Add scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
@ 2017-11-22  9:34   ` Arun Isaac
  2017-11-26 21:04     ` Leo Famulari
  2017-11-22  9:34   ` [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system Arun Isaac
                     ` (8 subsequent siblings)
  9 siblings, 1 reply; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:34 UTC (permalink / raw)
  To: 29392

* 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@famulari.name>
 # Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 # Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2017 Arun Isaac <arunisaac@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@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@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
  2017-11-22  9:34   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
@ 2017-11-22  9:34   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 04/11] gnu: gpick: " Arun Isaac
                     ` (7 subsequent siblings)
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:34 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 04/11] gnu: gpick: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
  2017-11-22  9:34   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
  2017-11-22  9:34   ` [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 05/11] gnu: serf: " Arun Isaac
                     ` (6 subsequent siblings)
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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@flashner.co.il>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 ng0 <ng0@infotropique.org>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 05/11] gnu: serf: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (2 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 04/11] gnu: gpick: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 06/11] gnu: metabat: " Arun Isaac
                     ` (5 subsequent siblings)
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 06/11] gnu: metabat: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (3 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 05/11] gnu: serf: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 07/11] gnu: godot: " Arun Isaac
                     ` (4 subsequent siblings)
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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@fastmail.com>
 ;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Arun Isaac <arunisaac@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 07/11] gnu: godot: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (4 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 06/11] gnu: metabat: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 08/11] gnu: pingus: " Arun Isaac
                     ` (3 subsequent siblings)
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 08/11] gnu: pingus: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (5 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 07/11] gnu: godot: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 09/11] gnu: klick: " Arun Isaac
                     ` (2 subsequent siblings)
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 09/11] gnu: klick: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (6 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 08/11] gnu: pingus: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 10/11] gnu: mongodb: " Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page Arun Isaac
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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@openmailbox.org>
 ;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017 Arun Isaac <arunisaac@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 10/11] gnu: mongodb: Use scons-build-system.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (7 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 09/11] gnu: klick: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  2017-11-22  9:35   ` [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page Arun Isaac
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page.
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (8 preceding siblings ...)
  2017-11-22  9:35   ` [bug#29392] [PATCH 10/11] gnu: mongodb: " Arun Isaac
@ 2017-11-22  9:35   ` Arun Isaac
  9 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-22  9:35 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] New scons build system
  2017-11-22  8:41 [bug#29392] [PATCH 00/11] New scons build system Arun Isaac
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
@ 2017-11-25 16:04 ` Leo Famulari
  2017-11-25 16:05 ` Leo Famulari
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 36+ messages in thread
From: Leo Famulari @ 2017-11-25 16:04 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 590 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] New scons build system
  2017-11-22  8:41 [bug#29392] [PATCH 00/11] New scons build system Arun Isaac
  2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
  2017-11-25 16:04 ` [bug#29392] [PATCH 00/11] New scons build system Leo Famulari
@ 2017-11-25 16:05 ` Leo Famulari
  2017-11-26 11:17   ` Arun Isaac
  2017-11-26  1:26 ` Leo Famulari
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
  4 siblings, 1 reply; 36+ messages in thread
From: Leo Famulari @ 2017-11-25 16:05 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 226 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] New scons build system
  2017-11-22  8:41 [bug#29392] [PATCH 00/11] New scons build system Arun Isaac
                   ` (2 preceding siblings ...)
  2017-11-25 16:05 ` Leo Famulari
@ 2017-11-26  1:26 ` Leo Famulari
  2017-11-26 16:17   ` Ludovic Courtès
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
  4 siblings, 1 reply; 36+ messages in thread
From: Leo Famulari @ 2017-11-26  1:26 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 452 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] New scons build system
  2017-11-25 16:05 ` Leo Famulari
@ 2017-11-26 11:17   ` Arun Isaac
  0 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-26 11:17 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 29392

Leo Famulari <leo@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?

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] New scons build system
  2017-11-26  1:26 ` Leo Famulari
@ 2017-11-26 16:17   ` Ludovic Courtès
  2017-11-26 18:51     ` Leo Famulari
  0 siblings, 1 reply; 36+ messages in thread
From: Ludovic Courtès @ 2017-11-26 16:17 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 29392

Leo Famulari <leo@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’.

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] New scons build system
  2017-11-26 16:17   ` Ludovic Courtès
@ 2017-11-26 18:51     ` Leo Famulari
  0 siblings, 0 replies; 36+ messages in thread
From: Leo Famulari @ 2017-11-26 18:51 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 845 bytes --]

On Sun, Nov 26, 2017 at 05:17:59PM +0100, Ludovic Courtès wrote:
> Leo Famulari <leo@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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 02/11] build-system: Add scons-build-system.
  2017-11-22  9:34   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
@ 2017-11-26 21:04     ` Leo Famulari
  0 siblings, 0 replies; 36+ messages in thread
From: Leo Famulari @ 2017-11-26 21:04 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 2797 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] Add scons build system
  2017-11-22  8:41 [bug#29392] [PATCH 00/11] New scons build system Arun Isaac
                   ` (3 preceding siblings ...)
  2017-11-26  1:26 ` Leo Famulari
@ 2017-11-28 17:06 ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
                     ` (11 more replies)
  4 siblings, 12 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

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

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
                     ` (10 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 02/11] build-system: Add scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system Arun Isaac
                     ` (9 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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@famulari.name>
 # Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 # Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2017 Arun Isaac <arunisaac@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@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@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 04/11] gnu: gpick: " Arun Isaac
                     ` (8 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 04/11] gnu: gpick: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (2 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 05/11] gnu: serf: " Arun Isaac
                     ` (7 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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@flashner.co.il>
 ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 ng0 <ng0@infotropique.org>
 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 05/11] gnu: serf: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (3 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 04/11] gnu: gpick: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 06/11] gnu: metabat: " Arun Isaac
                     ` (6 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 06/11] gnu: metabat: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (4 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 05/11] gnu: serf: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 07/11] gnu: godot: " Arun Isaac
                     ` (5 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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@fastmail.com>
 ;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017 Arun Isaac <arunisaac@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 07/11] gnu: godot: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (5 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 06/11] gnu: metabat: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 08/11] gnu: pingus: " Arun Isaac
                     ` (4 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 08/11] gnu: pingus: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (6 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 07/11] gnu: godot: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 09/11] gnu: klick: " Arun Isaac
                     ` (3 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 09/11] gnu: klick: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (7 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 08/11] gnu: pingus: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 10/11] gnu: mongodb: " Arun Isaac
                     ` (2 subsequent siblings)
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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@openmailbox.org>
 ;;; Copyright © 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2017 Arun Isaac <arunisaac@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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 10/11] gnu: mongodb: Use scons-build-system.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (8 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 09/11] gnu: klick: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 17:06   ` [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page Arun Isaac
  2017-11-28 21:38   ` [bug#29392] [PATCH 00/11] Add scons build system Leo Famulari
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page.
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (9 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 10/11] gnu: mongodb: " Arun Isaac
@ 2017-11-28 17:06   ` Arun Isaac
  2017-11-28 21:38   ` [bug#29392] [PATCH 00/11] Add scons build system Leo Famulari
  11 siblings, 0 replies; 36+ messages in thread
From: Arun Isaac @ 2017-11-28 17:06 UTC (permalink / raw)
  To: 29392

* 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

^ permalink raw reply related	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] Add scons build system
  2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
                     ` (10 preceding siblings ...)
  2017-11-28 17:06   ` [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page Arun Isaac
@ 2017-11-28 21:38   ` Leo Famulari
  2017-11-29  8:19     ` Arun Isaac
  11 siblings, 1 reply; 36+ messages in thread
From: Leo Famulari @ 2017-11-28 21:38 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 616 bytes --]

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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] Add scons build system
  2017-11-28 21:38   ` [bug#29392] [PATCH 00/11] Add scons build system Leo Famulari
@ 2017-11-29  8:19     ` Arun Isaac
  2017-11-29 21:29       ` Leo Famulari
  0 siblings, 1 reply; 36+ messages in thread
From: Arun Isaac @ 2017-11-29  8:19 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 29392

Leo Famulari <leo@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?

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] Add scons build system
  2017-11-29  8:19     ` Arun Isaac
@ 2017-11-29 21:29       ` Leo Famulari
  2017-11-30 13:40         ` bug#29392: " Arun Isaac
  0 siblings, 1 reply; 36+ messages in thread
From: Leo Famulari @ 2017-11-29 21:29 UTC (permalink / raw)
  To: Arun Isaac; +Cc: 29392

[-- Attachment #1: Type: text/plain, Size: 801 bytes --]

On Wed, Nov 29, 2017 at 01:49:56PM +0530, Arun Isaac wrote:
> Leo Famulari <leo@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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

* bug#29392: [PATCH 00/11] Add scons build system
  2017-11-29 21:29       ` Leo Famulari
@ 2017-11-30 13:40         ` Arun Isaac
  2017-11-30 17:05           ` [bug#29392] " Ludovic Courtès
  0 siblings, 1 reply; 36+ messages in thread
From: Arun Isaac @ 2017-11-30 13:40 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 29392-done

Leo Famulari <leo@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.

^ permalink raw reply	[flat|nested] 36+ messages in thread

* [bug#29392] [PATCH 00/11] Add scons build system
  2017-11-30 13:40         ` bug#29392: " Arun Isaac
@ 2017-11-30 17:05           ` Ludovic Courtès
  0 siblings, 0 replies; 36+ messages in thread
From: Ludovic Courtès @ 2017-11-30 17:05 UTC (permalink / raw)
  To: 29392

Arun Isaac <arunisaac@systemreboot.net> skribis:

> Leo Famulari <leo@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’.

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2017-11-30 17:06 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-22  8:41 [bug#29392] [PATCH 00/11] New scons build system Arun Isaac
2017-11-22  9:34 ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
2017-11-22  9:34   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
2017-11-26 21:04     ` Leo Famulari
2017-11-22  9:34   ` [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 04/11] gnu: gpick: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 05/11] gnu: serf: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 06/11] gnu: metabat: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 07/11] gnu: godot: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 08/11] gnu: pingus: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 09/11] gnu: klick: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 10/11] gnu: mongodb: " Arun Isaac
2017-11-22  9:35   ` [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page Arun Isaac
2017-11-25 16:04 ` [bug#29392] [PATCH 00/11] New scons build system Leo Famulari
2017-11-25 16:05 ` Leo Famulari
2017-11-26 11:17   ` Arun Isaac
2017-11-26  1:26 ` Leo Famulari
2017-11-26 16:17   ` Ludovic Courtès
2017-11-26 18:51     ` Leo Famulari
2017-11-28 17:06 ` [bug#29392] [PATCH 00/11] Add " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 01/11] gnu: scons: Update to 3.0.1 Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 02/11] build-system: Add scons-build-system Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 03/11] gnu: linuxdcpp: Use scons-build-system Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 04/11] gnu: gpick: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 05/11] gnu: serf: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 06/11] gnu: metabat: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 07/11] gnu: godot: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 08/11] gnu: pingus: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 09/11] gnu: klick: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 10/11] gnu: mongodb: " Arun Isaac
2017-11-28 17:06   ` [bug#29392] [PATCH 11/11] gnu: pingus: Use HTTPS for home page Arun Isaac
2017-11-28 21:38   ` [bug#29392] [PATCH 00/11] Add scons build system Leo Famulari
2017-11-29  8:19     ` Arun Isaac
2017-11-29 21:29       ` Leo Famulari
2017-11-30 13:40         ` bug#29392: " Arun Isaac
2017-11-30 17:05           ` [bug#29392] " Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).