Kei Kebreau <kkebr...@posteo.net> writes:

> Kei Kebreau <kkebr...@posteo.net> writes:
>
>> Other than Shogun's Python/SWIG-related build failure (attached), this
>> patch seems to work fairly well. There appears to be an upstream issue
>> related to the invalid conversion mentioned in the build failure. I'm
>> keeping an eye on it for any new developments.
>
> FYI, this is an updated patch that bypasses the Python interface issue
> and runs into an issue with R.

I haven't been able to crack the issue with Shogun and R.  The attached
patch explicitly disables the R interface which allows shogun to build
properly while the R problem is resolved.

From a364bc3122ac9d3903a0d84a579d477334a59ac8 Mon Sep 17 00:00:00 2001
From: Kei Kebreau <kkebr...@posteo.net>
Date: Wed, 30 May 2018 08:34:42 -0400
Subject: [PATCH] gnu: shogun: Use a patched swig for Octave 4.4.

* gnu/packages/swig.scm (swig-git): New variable
* gnu/packages/machine-learning.scm (shogun)[arguments]: Add
'fix-python-compiler-flags' phase.  Disable R interface.
[inputs]: Replace swig with swig-git.  Remove r-minimal.
---
 gnu/packages/machine-learning.scm | 13 +++++++++---
 gnu/packages/swig.scm             | 34 +++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/machine-learning.scm 
b/gnu/packages/machine-learning.scm
index 15e4d4574..65dd9d31b 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -469,6 +469,13 @@ sample proximities between pairs of cases.")
                (mkdir-p rxcpp-dir)
                (install-file (assoc-ref inputs "rxcpp") rxcpp-dir)
                #t)))
+         (add-after 'unpack 'fix-python-compiler-flags
+           (lambda _
+             ;; This prevents a set of function conversions from stopping the
+             ;; build with an error.
+             (substitute* "src/interfaces/python/CMakeLists.txt"
+               (("Wno-c\\+\\+11-narrowing") "fpermissive"))
+             #t))
          (add-before 'build 'set-HOME
            ;; $HOME needs to be set at some point during the build phase
            (lambda _ (setenv "HOME" "/tmp") #t)))
@@ -482,13 +489,13 @@ sample proximities between pairs of cases.")
              ;;"-DINTERFACE_LUA=ON"  ;fails because lua doesn't build 
pkgconfig file
              "-DINTERFACE_OCTAVE=ON"
              "-DINTERFACE_PYTHON=ON"
-             "-DINTERFACE_R=ON")))
+             "-DINTERFACE_R=OFF")))  ;temporarily off due to unknown issues.
     (inputs
      `(("python" ,python)
        ("numpy" ,python-numpy)
-       ("r-minimal" ,r-minimal)
+       ;;("r-minimal" ,r-minimal) ;re-enable when interface issues are resolved
        ("octave" ,octave)
-       ("swig" ,swig)
+       ("swig" ,swig-git)
        ("eigen" ,eigen)
        ("hdf5" ,hdf5)
        ("atlas" ,atlas)
diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm
index b931db412..3a1139dbb 100644
--- a/gnu/packages/swig.scm
+++ b/gnu/packages/swig.scm
@@ -20,8 +20,12 @@
 (define-module (gnu packages swig)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix licenses)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages boost)
@@ -74,3 +78,33 @@ you tailor the wrapping process to suit your application.")
 
     ;; See http://www.swig.org/Release/LICENSE for details.
     (license gpl3+)))
+
+;; This package contains upstream fixes that haven't been released as part of a
+;; stable version of SWIG.  This is necessary for software that uses SWIG to
+;; compile the correct and up-to-date programming language interfaces.
+(define-public swig-git
+  (let ((commit "12c66f9b7d884020e896ce92b9783bc3bac95d2d")
+        (revision "1"))
+    (package/inherit swig
+      (name "swig-git")
+      (version (git-version "4.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/swig/swig.git";)
+               (commit commit)))
+         (sha256 (base32 
"1367y47kdkly9cwyp4d60cm5d660am83g4p52k1hmzvimghwgvlp"))
+         (file-name (git-file-name name version))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments swig)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'autogen
+               (lambda _
+                 (invoke "sh" "autogen.sh")))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("bison" ,bison)
+         ,@(package-native-inputs swig))))))
-- 
2.17.1

Attachment: signature.asc
Description: PGP signature

Reply via email to