<div dir="ltr"><div><div>Hi Rainer,<br><br>That is not the case. The problem is that SAGA team changes very often the sintax of the SAGA modules, even between minor updates, wich causes problems with SAGA Processing implementation.<br><br>A big issue is the creation of models and scripts in Processing, using SAGA algorithms. With that frequent changes, they become obsolete. For instance, I've created a set of modules with dozens of operations, that become unusable twice because of SAGA sintaxe changes. This prevents much people to create Processing models and scripts, and share them. <br><br>The solution discussed and adopted was to support only a LTR version of SAGA, and make it the default for QGIS 2.18.9+ and QGIS 3.x, so that any user on any operation system have the same SAGA version, wich ensures that any model created or shared is fully operational.<br><br>By other hand, is what Alexander said, there is no workforce to ensures the check and update of descritpion files, every time SAGA releases some minor or major version.<br><br>Hope this make sense to you.<br><br>The suggestion of Alexander, If I understood correctly, is that the group of users from FreeBSD can always fork the Processig SAGA, and support newer versions as a new Processing Plugin.<br><br></div>Best regards,<br></div>Pedro Venâncio<br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">2017-06-08 11:45 GMT+01:00 Rainer Hurling <span dir="ltr"><<a href="mailto:rhurlin@gwdg.de" target="_blank">rhurlin@gwdg.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I forgot to mention, that if only FreeBSD users should have the problem with newer SAGA GIS versions and not having an LTR version, a local patch in the FreeBSD port is also conceivable.<br>
<br>
Something like the following patches makes the processing tools for SAGA GIS, newer than version 2.3.x, 'functional' again on FreeBSD:<br>
<br>
<br>
--- python/plugins/processing/algs<wbr>/saga/SagaUtils.py.orig       2017-06-06 19:35:06.000000000 +0200<br>
+++ python/plugins/processing/algs<wbr>/saga/SagaUtils.py    2017-06-08 10:49:02.387866000 +0200<br>
@@ -26,6 +26,7 @@<br>
 __revision__ = '$Format:%H$'<br>
<br>
 import os<br>
+import platform<br>
 import stat<br>
 import subprocess<br>
 import time<br>
@@ -57,7 +58,7 @@<br>
<br>
 def findSagaFolder():<br>
     folder = None<br>
-    if isMac():<br>
+    if isMac() or platform.system() == 'FreeBSD':<br>
         testfolder = os.path.join(QgsApplication.pr<wbr>efixPath(), 'bin')<br>
         if os.path.exists(os.path.join(te<wbr>stfolder, 'saga_cmd')):<br>
             folder = testfolder<br>
@@ -82,7 +83,7 @@<br>
<br>
<br>
 def sagaPath():<br>
-    if not isWindows() and not isMac():<br>
+    if not isWindows() and not isMac() and not platform.system() == 'FreeBSD':<br>
         return ''<br>
<br>
     folder = findSagaFolder()<br>
@@ -101,7 +102,7 @@<br>
         fout.write('set SAGA_MLB=' + sagaPath() + os.sep +<br>
                    'modules' + '\n')<br>
         fout.write('PATH=%PATH%;%<wbr>SAGA%;%SAGA_MLB%\n')<br>
-    elif isMac():<br>
+    elif isMac()  or platform.system() == 'FreeBSD':<br>
         fout.write('export SAGA_MLB=' + sagaPath() +<br>
                    '/../lib/saga\n')<br>
         fout.write('export PATH=' + sagaPath() + ':$PATH\n')<br>
@@ -130,7 +131,7 @@<br>
<br>
     if isWindows():<br>
         commands = [os.path.join(sagaPath(), "saga_cmd.exe"), "-v"]<br>
-    elif isMac():<br>
+    elif isMac() or platform.system() == 'FreeBSD':<br>
         commands = [os.path.join(sagaPath(), "saga_cmd -v")]<br>
     else:<br>
         # for Linux use just one string instead of separated parameters as the list<br>
@@ -146,7 +147,7 @@<br>
             stderr=subprocess.STDOUT,<br>
             universal_newlines=True,<br>
         ).stdout<br>
-        if isMac():  # This trick avoids having an uninterrupted system call exception if SAGA is not installed<br>
+        if isMac() or platform.system() == 'FreeBSD':  # This trick avoids having an uninterrupted system call exception if SAGA is not installed<br>
             time.sleep(1)<br>
         try:<br>
             lines = proc.readlines()<br>
<br>
<br>
--- python/plugins/processing/algs<wbr>/saga/SagaAlgorithmProvider.<wbr>py.orig 2017-06-08 02:16:08.000000000 +0200<br>
+++ python/plugins/processing/algs<wbr>/saga/SagaAlgorithmProvider.py 2017-06-08 11:15:09.732518000 +0200<br>
@@ -73,7 +73,7 @@<br>
                                    <a href="http://self.tr" rel="noreferrer" target="_blank">self.tr</a>('Problem with SAGA installation: SAGA was not found or is not correctly installed'))<br>
             return<br>
<br>
-        if not version.startswith('2.3.'):<br>
+        if version < '2.3.':<br>
             ProcessingLog.addToLog(Proces<wbr>singLog.LOG_ERROR,<br>
                                    <a href="http://self.tr" rel="noreferrer" target="_blank">self.tr</a>('Problem with SAGA installation: unsupported SAGA version found.'))<br>
             return<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
Am 08.06.2017 um 11:42 schrieb Rainer Hurling:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Alex,<br>
<br>
Thanks for the quick and detailed answer.<br>
<br>
Am 08.06.2017 um 11:29 schrieb Alexander Bruy:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Rainer,<br>
<br>
2017-06-08 10:24 GMT+03:00 Rainer Hurling <<a href="mailto:rhurlin@gwdg.de" target="_blank">rhurlin@gwdg.de</a>>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
For some reasons, we don't package our system with different versions of<br>
SAGA GIS. Recent FreeBSD comes with SAGA GIS version 3.0.0, I am working on<br>
an update to version 4.1.0.<br>
<br>
With your latest updates to QGIS (r413c6e5), newer versions of SAGA GIS than<br>
2.3.x are not recognized any more :(<br>
<br>
I am familiar with the background, that QGIS processing only garantees to<br>
work well with the SAGA GIS LTR version. But there was a kind of tacit<br>
agreement for several years now, that QGIS processing tools also accepted to<br>
display (and somewhat work with) newer SAGA GIS versions.<br>
</blockquote>
<br>
Previously QGIS Processing supported multiple SAGA versions, but as SAGA<br>
devs often changed API even between minor versions it was a real pain to<br>
maintain compatibility and provide users with robust and working SAGA inteface.<br>
Because for each change in SAGA API we need not only update algorithms<br>
descriptions but also add some workaronds in the Processing source code.<br>
<br>
After release of SAGA LTR we had several long discussions and finally decided<br>
that better to have good support for single SAGA version that multiple partially<br>
broken version. That's why support for all other versions was removed. We also<br>
removed option to choose another SAGA installation, as this makes no sense<br>
now and can lead to confusion in case when user select unsupported SAGA<br>
version.<br>
<br>
</blockquote>
<br>
In principle I understand this point of view, but it makes it relatively difficult to identify the necessary changes for newer SAGA GIS versions.<br>
<br>
And as I outlined before, there are constraints on some OS for the presence of newer SAGA GIS versions. In the past, the QGIS user was able to use most of the SAGA GIS functions, as only some of the functions had bigger API changes.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Now my request: It would be fine and at least important for FreeBSD users,<br>
to have the possibility to use SAGA GIS > 2.3.x with QGIS 2.18.9 again.<br>
</blockquote>
<br>
I'm afrad this is not possible, as we have no resources to keep algorithms<br>
descriptions and, more importantly, source code updated with numerous SAGA<br>
API breaks in every SAGA release.<br>
<br>
As an option I can suggest to create altenate SAGA provider plugin which will<br>
support non-LTR SAGA versions.<br>
<br>
<br>
</blockquote>
<br>
This would be a very nice option to have such an additional support. A provider plugin for (newer) non-LTR SAGA versions could throw a warnings, that this SAGA GIS version is not fully supported and the user has to expect problems ...<br>
</blockquote>
<br>
______________________________<wbr>_________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailma<wbr>n/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailma<wbr>n/listinfo/qgis-developer</a></div></div></blockquote></div><br></div>