about summary refs log tree commit diff
path: root/pkgs/applications/gis/saga
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2018-08-15 09:10:28 +0100
committerMatthew Pickering <matthewtpickering@gmail.com>2018-08-15 09:10:28 +0100
commit86b966f10862862f77f44ac7bc25d786d148a6f2 (patch)
tree2562adb5609f7f8eb5c5fb6adaace7030655027c /pkgs/applications/gis/saga
parent8a4661588af073fe6a3f8e90f66fdd2c11b99153 (diff)
downloadnixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.tar
nixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.tar.gz
nixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.tar.bz2
nixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.tar.lz
nixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.tar.xz
nixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.tar.zst
nixlib-86b966f10862862f77f44ac7bc25d786d148a6f2.zip
Patches for saga-6.3.0
Diffstat (limited to 'pkgs/applications/gis/saga')
-rw-r--r--pkgs/applications/gis/saga/default.nix9
-rw-r--r--pkgs/applications/gis/saga/finite-6.3.0.patch55
2 files changed, 62 insertions, 2 deletions
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index b1ad81a6a3ff..10cec193cc0d 100644
--- a/pkgs/applications/gis/saga/default.nix
+++ b/pkgs/applications/gis/saga/default.nix
@@ -1,18 +1,23 @@
 { stdenv, fetchurl, gdal, wxGTK30, proj, libiodbc, lzma, jasper,
   libharu, opencv, vigra, postgresql, Cocoa,
-  unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull }:
+  unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
 
 stdenv.mkDerivation rec {
   name = "saga-6.3.0";
 
   # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
   # for why the have additional buildInputs on darwin
-  buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper qhull ]
+  buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma
+                  jasper qhull giflib ]
                 ++ stdenv.lib.optionals stdenv.isDarwin
                   [ Cocoa unixODBC poppler hdf4.out hdf5 netcdf sqlite ];
 
   enableParallelBuilding = true;
 
+  patches = [ ./finite-6.3.0.patch];
+
+  CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
+
   src = fetchurl {
     url = "mirror://sourceforge/project/saga-gis/SAGA%20-%206/SAGA%20-%206.3.0/saga-6.3.0.tar.gz";
     sha256 = "0hyjim8fcp3mna1hig22nnn4ki3j6b7096am2amcs99sdr09jjxv";
diff --git a/pkgs/applications/gis/saga/finite-6.3.0.patch b/pkgs/applications/gis/saga/finite-6.3.0.patch
new file mode 100644
index 000000000000..91c9543edfda
--- /dev/null
+++ b/pkgs/applications/gis/saga/finite-6.3.0.patch
@@ -0,0 +1,55 @@
+diff --git a/src/tools/imagery/imagery_maxent/me.cpp b/src/tools/imagery/imagery_maxent/me.cpp
+index c5da854..d3e9cff 100755
+--- a/src/tools/imagery/imagery_maxent/me.cpp
++++ b/src/tools/imagery/imagery_maxent/me.cpp
+@@ -21,7 +21,7 @@
+ #ifdef _SAGA_MSW
+ #define isinf(x) (!_finite(x))
+ #else
+-#define isinf(x) (!finite(x))
++#define isinf(x) (!isfinite(x))
+ #endif
+ 
+ /** The input array contains a set of log probabilities lp1, lp2, lp3
+@@ -47,7 +47,7 @@ double sumLogProb(vector<double>& logprobs)
+ /** returns log (e^logprob1 + e^logprob2). */
+ double sumLogProb(double logprob1, double logprob2)
+ {
+-  if (isinf(logprob1) && isinf(logprob2)) 
++  if (isinf(logprob1) && isinf(logprob2))
+     return logprob1; // both prob1 and prob2 are 0, return log 0.
+   if (logprob1>logprob2)
+     return logprob1+log(1+exp(logprob2-logprob1));
+@@ -70,8 +70,8 @@ void MaxEntModel::print(ostream& ostrm, MaxEntTrainer& trainer)
+   for (FtMap::iterator it = _index.begin(); it!=_index.end(); it++) {
+     unsigned long i = it->second;
+     for (unsigned long c = 0; c<_classes; c++) {
+-      ostrm << "lambda(" << trainer.className(c) << ", " 
+-	    << trainer.getStr(it->first) << ")=" 
++      ostrm << "lambda(" << trainer.className(c) << ", "
++	    << trainer.getStr(it->first) << ")="
+ 	    << _lambda[i+c] << endl;
+     }
+   }
+@@ -86,7 +86,7 @@ int MaxEntModel::getProbs(MaxEntEvent& event, vector<double>& probs)
+     double s = 0;
+     for (unsigned int f = 0; f<event.size(); f++) {
+       FtMap::iterator it = _index.find(event[f]);
+-      if (it!=_index.end()) 
++      if (it!=_index.end())
+ 	s += _lambda[it->second+c];
+     }
+     probs[c] = s;
+@@ -142,10 +142,10 @@ double MaxEntModel::getObsCounts(EventSet& events, vector<double>& obsCounts)
+     double ftSum = 0;
+     for (unsigned long j=0; j<e.size(); j++) {
+       FtMap::iterator it = _index.find(e[j]);
+-      if (it!=_index.end()) 
++      if (it!=_index.end())
+ 	obsCounts[it->second+c] += count;
+       else { // new feature, need to expand obsCounts and _lambda
+-	for (unsigned int k = 0; k<_classes; k++) 
++	for (unsigned int k = 0; k<_classes; k++)
+ 	  obsCounts.push_back(0);
+ 	obsCounts[_lambda.size()+c] += count;
+ 	addFeature(e[j]);