diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2018-08-15 09:10:28 +0100 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2018-08-15 09:10:28 +0100 |
commit | 86b966f10862862f77f44ac7bc25d786d148a6f2 (patch) | |
tree | 2562adb5609f7f8eb5c5fb6adaace7030655027c /pkgs/applications/gis | |
parent | 8a4661588af073fe6a3f8e90f66fdd2c11b99153 (diff) |
Patches for saga-6.3.0
Diffstat (limited to 'pkgs/applications/gis')
-rw-r--r-- | pkgs/applications/gis/saga/default.nix | 9 | ||||
-rw-r--r-- | pkgs/applications/gis/saga/finite-6.3.0.patch | 55 |
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]); |