[otb] 01/09: New upstream version 6.2.0+dfsg

Bas Couwenberg sebastic at debian.org
Sat Oct 28 10:53:15 UTC 2017


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository otb.

commit a778cec3b5520d1f3bab4cf0f92b6a5845893080
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sat Oct 28 10:11:48 2017 +0200

    New upstream version 6.2.0+dfsg
---
 CMake/OTBApplicationMacros.cmake                   | 161 ++++++++++++---------
 CMake/OTBModuleExternal.cmake                      |   3 +
 CMake/OTBStandaloneModuleMacros.cmake              |   2 +-
 CMake/otbcli_app.bat.in                            |  18 ---
 CMake/otbcli_app.sh.in                             |  20 ---
 CMake/otbgui_app.bat.in                            |  18 ---
 CMake/otbgui_app.sh.in                             |  20 ---
 .../OSSIMAdapters/src/otbMapProjectionAdapter.cxx  |  11 +-
 .../include/otbTrainImagesBase.txx                 |   2 +-
 .../app/otbHyperspectralUnmixing.cxx               |   2 +-
 .../Applications/AppImageUtils/app/otbConvert.cxx  |  17 ++-
 .../AppMathParserX/app/otbBandMathX.cxx            |   6 +-
 .../app/otbOpticalCalibration.cxx                  |   6 +-
 .../AppSegmentation/app/otbLargeScaleMeanShift.cxx |   2 +-
 .../AppStereo/app/otbBlockMatching.cxx             |   2 +-
 .../test/otbGenericRSTransformGenericTest.cxx      |   2 +-
 .../Statistics/include/otbPatternSampler.h         |   4 +-
 Modules/IO/TestKernel/src/otbTestDriver.cxx        |   2 +-
 .../RCC8/test/otbImageToImageRCC8Calculator.cxx    |   2 +-
 Modules/Radiometry/Simulation/src/otbSailModel.cxx |   2 +-
 .../Monteverdi/src/mvdPreferencesDialog.ui         |   6 +
 .../MonteverdiGui/include/mvdImageViewWidget.h     |   2 +-
 .../MonteverdiGui/include/mvdProjectionBarWidget.h |   2 +-
 .../include/otbWrapperApplication.h                |   4 +-
 .../include/otbWrapperCompositeApplication.h       |   2 +-
 .../include/otbWrapperProxyParameter.h             |   2 +-
 .../src/otbWrapperApplication.cxx                  |   4 +
 .../src/otbWrapperCommandLineLauncher.cxx          |  20 ++-
 Modules/Wrappers/QtWidget/src/itkQtProgressBar.cxx |  19 ++-
 .../QtWidget/src/otbApplicationLauncherQt.cxx      |   2 +-
 Packaging/CMakeLists.txt                           |   9 +-
 Packaging/Files/selftester.sh                      |   2 +-
 Packaging/makeself/README.md                       |   2 +-
 Packaging/post_install.cmake                       |  52 +++++++
 RELEASE_NOTES.txt                                  |  10 +-
 i18n/fr_FR.ts                                      |   4 +
 36 files changed, 245 insertions(+), 199 deletions(-)

diff --git a/CMake/OTBApplicationMacros.cmake b/CMake/OTBApplicationMacros.cmake
index d354b4c..49081c7 100644
--- a/CMake/OTBApplicationMacros.cmake
+++ b/CMake/OTBApplicationMacros.cmake
@@ -67,75 +67,51 @@ macro(otb_create_application)
      endif()
    else()
      install(TARGETS ${APPLICATION_TARGET_NAME}
-             LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
+             LIBRARY DESTINATION lib
              COMPONENT RuntimeLibraries)
    endif()
 
-   # Generate a quickstart script in the build dir
-   #if (NOT WIN32)
-
-      # What is the path to the applications
-      # a MODULE target is always treated as LIBRARY
-      get_target_property(APPLICATION_BINARY_PATH ${APPLICATION_TARGET_NAME} LIBRARY_OUTPUT_DIRECTORY)
-
-      if (NOT APPLICATION_BINARY_PATH)
-        set(APPLICATION_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
-      endif()
-
-      if (WIN32)
-        set(SCRIPT_CLI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbcli_app.bat.in)
-        set(SCRIPT_CLI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli_${APPLICATION_NAME}.bat)
-        set(SCRIPT_CLI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbcli_${APPLICATION_NAME}.bat)
-      else()
-        set(SCRIPT_CLI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbcli_app.sh.in)
-        set(SCRIPT_CLI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbcli_${APPLICATION_NAME})
-        set(SCRIPT_CLI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbcli_${APPLICATION_NAME})
-      endif()
-
-      if (EXISTS ${SCRIPT_CLI_SOURCE})
-          # Generate a script in the build dir, next to the cli launcher
-          configure_file( ${SCRIPT_CLI_SOURCE}
-                          ${SCRIPT_CLI_INTERMEDIATE}
-                          @ONLY )
-
-          # Copy it next to the application shared lib, and give executable rights
-          file(COPY ${SCRIPT_CLI_INTERMEDIATE}
-               DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-               FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-
-          # Install a version of this script if we are inside the OTB build
-          install(PROGRAMS ${SCRIPT_CLI_INSTALLABLE}
-                  DESTINATION ${OTB_INSTALL_RUNTIME_DIR}
-                  COMPONENT Runtime)
-      endif()
-
-      if (WIN32)
-        set(SCRIPT_GUI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbgui_app.bat.in)
-        set(SCRIPT_GUI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui_${APPLICATION_NAME}.bat)
-        set(SCRIPT_GUI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbgui_${APPLICATION_NAME}.bat)
-      else()
-        set(SCRIPT_GUI_SOURCE ${OTB_SOURCE_DIR}/CMake/otbgui_app.sh.in)
-        set(SCRIPT_GUI_INTERMEDIATE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/otbgui_${APPLICATION_NAME})
-        set(SCRIPT_GUI_INSTALLABLE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/otbgui_${APPLICATION_NAME})
-      endif()
-
-      if (EXISTS ${SCRIPT_GUI_SOURCE})
-          # Generate a script in the build dir, next to the cli launcher
-          configure_file( ${SCRIPT_GUI_SOURCE}
-                          ${SCRIPT_GUI_INTERMEDIATE}
-                          @ONLY )
-
-          # Copy it next to the application shared lib, and give executable rights
-          file(COPY ${SCRIPT_GUI_INTERMEDIATE}
-               DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-               FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-
-          # Install a version of this script if we are inside the OTB build
-          install(PROGRAMS ${SCRIPT_GUI_INSTALLABLE}
-                  DESTINATION ${OTB_INSTALL_RUNTIME_DIR}
-                  COMPONENT Runtime)
-      endif()
-   #endif()
+   # What is the path to the applications
+   # a MODULE target is always treated as LIBRARY
+   get_target_property(APPLICATION_BINARY_PATH ${APPLICATION_TARGET_NAME} LIBRARY_OUTPUT_DIRECTORY)
+
+   if (NOT APPLICATION_BINARY_PATH)
+     set(APPLICATION_BINARY_PATH ${CMAKE_CURRENT_BINARY_DIR})
+   endif()
+
+   if(CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+     set(_script_output_dir ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+   else()
+     set(_script_output_dir ${CMAKE_BINARY_DIR}/bin)
+   endif()
+   if(OTB_INSTALL_RUNTIME_DIR)
+     set(_script_install_dir ${OTB_INSTALL_RUNTIME_DIR})
+   else()
+     set(_script_install_dir bin)
+   endif()
+   set(INTERMEDIATE_DIR ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
+   set(SCRIPT_EXT "")
+   if(WIN32)
+     set(SCRIPT_EXT ".bat")
+   endif()
+
+   # ----- Create and install launcher scripts ------
+   foreach(type CLI GUI)
+     string(TOLOWER "${type}" type_lower)
+     set(SCRIPT_NAME otb${type_lower}_${APPLICATION_NAME}${SCRIPT_EXT})
+     otb_write_app_launcher(
+       NAME ${APPLICATION_NAME}
+       OUTPUT ${INTERMEDIATE_DIR}/${SCRIPT_NAME}
+       TYPE ${type})
+     # Copy it next to the application shared lib, and give executable rights
+     file(COPY ${INTERMEDIATE_DIR}/${SCRIPT_NAME}
+          DESTINATION ${_script_output_dir}
+          FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+     # Install a version of this script if we are inside the OTB build
+     install(PROGRAMS ${_script_output_dir}/${SCRIPT_NAME}
+             DESTINATION ${_script_install_dir}
+             COMPONENT Runtime)
+   endforeach()
 
    list(APPEND OTB_APPLICATIONS_NAME_LIST ${APPLICATION_NAME})
    list(REMOVE_DUPLICATES OTB_APPLICATIONS_NAME_LIST)
@@ -170,3 +146,56 @@ macro(otb_test_application)
             -testenv ${TESTAPPLICATION_TESTENVOPTIONS})
   endif()
 endmacro()
+
+macro(otb_write_app_launcher)
+  cmake_parse_arguments(APPLAUNCHER  "" "NAME;OUTPUT;TYPE" "" ${ARGN} )
+  if("${APPLAUNCHER_TYPE}" STREQUAL "CLI")
+    set(_launcher_type "otbcli")
+  elseif("${APPLAUNCHER_TYPE}" STREQUAL "GUI")
+    set(_launcher_type "otbgui")
+  else()
+    message(FATAL_ERROR "Unknown launcher type : ${APPLAUNCHER_TYPE}, only support CLI and GUI")
+  endif()
+
+  if(WIN32)
+    # Launcher script in Batch format
+    file(WRITE "${APPLAUNCHER_OUTPUT}"
+"@echo off
+::
+:: Autogenerated by OTB installation process
+:: DO NOT MODIFY
+::
+set CURRENT_SCRIPT_DIR=%~dp0
+if exist %CURRENT_SCRIPT_DIR%${_launcher_type}.bat (
+  :: Prefer using the launcher inside the script dir
+  set OTB_LAUNCHER=%CURRENT_SCRIPT_DIR%${_launcher_type}.bat
+) else (
+  :: Use the one from the PATH
+  set OTB_LAUNCHER=${_launcher_type}.bat
+)
+
+:: start the application
+%OTB_LAUNCHER% ${APPLAUNCHER_NAME} %*
+")
+  else()
+    # Launcher script in Shell format
+    file(WRITE "${APPLAUNCHER_OUTPUT}"
+"#!/bin/sh
+#
+# Autogenerated by OTB installation process
+# DO NOT MODIFY
+#
+CURRENT_SCRIPT_DIR=$(dirname \"\$0\")
+if [ -e \"\$CURRENT_SCRIPT_DIR/${_launcher_type}\" ] ; then
+  # Prefer using the launcher inside the script dir
+  OTB_LAUNCHER=$CURRENT_SCRIPT_DIR/${_launcher_type}
+else
+  # Use the one from the PATH
+  OTB_LAUNCHER=${_launcher_type}
+fi
+
+# start the application
+\$OTB_LAUNCHER ${APPLAUNCHER_NAME} \"$@\"
+")
+  endif()
+endmacro()
diff --git a/CMake/OTBModuleExternal.cmake b/CMake/OTBModuleExternal.cmake
index 8fdf276..75ce8c2 100644
--- a/CMake/OTBModuleExternal.cmake
+++ b/CMake/OTBModuleExternal.cmake
@@ -76,6 +76,9 @@ else()
   if(NOT OTB_INSTALL_PACKAGE_DIR)
     set(OTB_INSTALL_PACKAGE_DIR "lib/cmake/OTB-${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}")
   endif()
+  if(NOT OTB_INSTALL_APP_DIR)
+    set(OTB_INSTALL_APP_DIR lib/otb/applications)
+  endif()
 
   # Use OTB's flags.
   set(CMAKE_C_FLAGS "${OTB_REQUIRED_C_FLAGS} ${CMAKE_C_FLAGS}")
diff --git a/CMake/OTBStandaloneModuleMacros.cmake b/CMake/OTBStandaloneModuleMacros.cmake
index 0ae7355..b82b04c 100644
--- a/CMake/OTBStandaloneModuleMacros.cmake
+++ b/CMake/OTBStandaloneModuleMacros.cmake
@@ -262,7 +262,7 @@ macro(otb_module_impl)
   set(OTBAPP_BASELINE       ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Images)
   set(OTBAPP_BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB-Applications/Files)
   
-  if(${BUILD_TESTING})
+  if(BUILD_TESTING)
     enable_testing()
   endif()
   
diff --git a/CMake/otbcli_app.bat.in b/CMake/otbcli_app.bat.in
deleted file mode 100644
index e4af53d..0000000
--- a/CMake/otbcli_app.bat.in
+++ /dev/null
@@ -1,18 +0,0 @@
- at echo off
-::
-:: Autogenerated by OTB installation process
-:: DO NOT MODIFY
-::
-
-set CURRENT_SCRIPT_DIR=%~dp0
-
-if exist %CURRENT_SCRIPT_DIR%otbcli.bat (
-  :: Prefer using the launcher inside the script dir
-  set OTB_CLI_LAUNCHER=%CURRENT_SCRIPT_DIR%otbcli.bat
-) else (
-  :: Use the one from the PATH
-  set OTB_CLI_LAUNCHER=otbcli.bat
-)
-
-:: start the application
-%OTB_CLI_LAUNCHER% @APPLICATION_NAME@ %*
diff --git a/CMake/otbcli_app.sh.in b/CMake/otbcli_app.sh.in
deleted file mode 100644
index c073ae1..0000000
--- a/CMake/otbcli_app.sh.in
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-#
-# Autogenerated by OTB installation process
-# DO NOT MODIFY
-#
-
-CURRENT_SCRIPT_DIR=$(dirname "$0")
-
-if [ -e "$CURRENT_SCRIPT_DIR/otbcli" ]
-then
-  # Prefer using the launcher inside the script dir
-  OTB_CLI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbcli
-else
-  # Use the one from the PATH
-  OTB_CLI_LAUNCHER=otbcli
-fi
-
-# start the application
-$OTB_CLI_LAUNCHER @APPLICATION_NAME@ "$@"
diff --git a/CMake/otbgui_app.bat.in b/CMake/otbgui_app.bat.in
deleted file mode 100644
index 5752728..0000000
--- a/CMake/otbgui_app.bat.in
+++ /dev/null
@@ -1,18 +0,0 @@
- at echo off
-::
-:: Autogenerated by OTB installation process
-:: DO NOT MODIFY
-::
-
-set CURRENT_SCRIPT_DIR=%~dp0
-
-if exist %CURRENT_SCRIPT_DIR%otbgui.bat (
-  :: Prefer using the launcher inside the script dir
-  set OTB_GUI_LAUNCHER=%CURRENT_SCRIPT_DIR%otbgui.bat
-) else (
-  :: Use the one from the PATH
-  set OTB_GUI_LAUNCHER=otbgui.bat
-)
-
-:: start the application
-%OTB_GUI_LAUNCHER% @APPLICATION_NAME@ %*
diff --git a/CMake/otbgui_app.sh.in b/CMake/otbgui_app.sh.in
deleted file mode 100644
index 7243475..0000000
--- a/CMake/otbgui_app.sh.in
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-#
-# Autogenerated by OTB installation process
-# DO NOT MODIFY
-#
-
-CURRENT_SCRIPT_DIR=$(dirname "$0")
-
-if [ -e "$CURRENT_SCRIPT_DIR/otbgui" ]
-then
-  # Prefer using the launcher inside the script dir
-  OTB_GUI_LAUNCHER=$CURRENT_SCRIPT_DIR/otbgui
-else
-  # Use the one from the PATH
-  OTB_GUI_LAUNCHER=otbgui
-fi
-
-# start the application
-$OTB_GUI_LAUNCHER @APPLICATION_NAME@ "$@"
diff --git a/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx b/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx
index cf7fe71..5478525 100644
--- a/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx
+++ b/Modules/Adapters/OSSIMAdapters/src/otbMapProjectionAdapter.cxx
@@ -195,9 +195,16 @@ std::string MapProjectionAdapter::GetParameter(const std::string& key) const
   if (projectionName.compare("ossimTransMercatorProjection") == 0)
     {
     const ossimTransMercatorProjection* tmProjection = dynamic_cast<const ossimTransMercatorProjection*>(this->GetMapProjection());
-    if (key.compare("ScaleFactor") == 0)
+    if (!tmProjection)
       {
-      return Utils::ConvertToString(tmProjection->getScaleFactor());
+      itkExceptionMacro("Error casting object to ossimTransMercatorProjection.");
+      }
+    else
+      {
+      if (key.compare("ScaleFactor") == 0)
+        {
+        return Utils::ConvertToString(tmProjection->getScaleFactor());
+        }
       }
     }
 
diff --git a/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx b/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx
index 325d3b9..a646cea 100644
--- a/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx
+++ b/Modules/Applications/AppClassification/include/otbTrainImagesBase.txx
@@ -128,7 +128,7 @@ void TrainImagesBase::InitClassification()
   AddApplication( "TrainVectorClassifier", "training", "Model training" );
 
   AddParameter( ParameterType_InputVectorDataList, "io.valid", "Validation Vector Data List" );
-  SetParameterDescription( "io.valid", "A list of vector data to select the training samples." );
+  SetParameterDescription( "io.valid", "A list of vector data to select the validation samples." );
   MandatoryOff( "io.valid" );
 
   ShareClassificationParams();
diff --git a/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx b/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx
index 3ed9b7c..8d51046 100644
--- a/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx
+++ b/Modules/Applications/AppHyperspectral/app/otbHyperspectralUnmixing.cxx
@@ -103,7 +103,7 @@ private:
     "spectrum associated with each pixel is a linear combination of pure"
     "materials in the recovery area, commonly known as endmembers. Endmembers can"
     "be estimated using the VertexComponentAnalysis application.\n\n"
-    "The application allows to estimate the abundance maps with several algorithms :\n"
+    "The application allows estimating the abundance maps with several algorithms :\n"
     "  * Unconstrained Least Square (ucls)\n"
                           //"  * Fully Constrained Least Square (fcls)\n"
     "  * Image Space Reconstruction Algorithm (isra)\n"
diff --git a/Modules/Applications/AppImageUtils/app/otbConvert.cxx b/Modules/Applications/AppImageUtils/app/otbConvert.cxx
index cae4ff2..51ce7f3 100644
--- a/Modules/Applications/AppImageUtils/app/otbConvert.cxx
+++ b/Modules/Applications/AppImageUtils/app/otbConvert.cxx
@@ -222,6 +222,10 @@ private:
   template<class TImageType>
   void GenericDoExecute()
   {
+
+    // Clear previously registered filters
+    m_Filters.clear();
+    
     std::string rescaleType = this->GetParameterString("type");
 
     if( (rescaleType != "none") && (rescaleType != "linear") && (rescaleType != "log2") )
@@ -383,7 +387,7 @@ private:
         rescaler->SetGamma(GetParameterFloat("type.linear.gamma"));
         }
 
-      m_TmpFilter = rescaler;
+      m_Filters.push_back(rescaler.GetPointer());
 
       SetParameterOutputImage<TImageType>("out", rescaler->GetOutput());
       }
@@ -440,19 +444,19 @@ private:
   {
     typedef MultiToMonoChannelExtractROI<FloatVectorImageType::InternalPixelType,
                                          typename TImageType::InternalPixelType>  ExtractROIFilterType;
-    typedef ObjectList<ExtractROIFilterType>                                      ExtractROIFilterListType;
     typedef otb::ImageList<otb::Image<typename TImageType::InternalPixelType> >   ImageListType;
     typedef ImageListToVectorImageFilter<ImageListType,
                                          TImageType >                             ListConcatenerFilterType;
 
     typename ImageListType::Pointer             imageList;
     typename ListConcatenerFilterType::Pointer  concatener;
-    typename ExtractROIFilterListType::Pointer  extractorList;
 
     imageList = ImageListType::New();
     concatener = ListConcatenerFilterType::New();
-    extractorList = ExtractROIFilterListType::New();
 
+    //m_Filters.push_back(imageList.GetPointer());
+    m_Filters.push_back(concatener.GetPointer());
+    
     const bool monoChannel = IsParameterEnabled("channels.grayscale");
 
     // get band order
@@ -461,16 +465,15 @@ private:
     for (auto && channel : channels)
     {
       typename ExtractROIFilterType::Pointer extractROIFilter = ExtractROIFilterType::New();
+      m_Filters.push_back(extractROIFilter.GetPointer());
       extractROIFilter->SetInput(GetParameterImage("in"));
       if (!monoChannel) extractROIFilter->SetChannel(channel);
       extractROIFilter->UpdateOutputInformation();
-      extractorList->PushBack(extractROIFilter);
       imageList->PushBack(extractROIFilter->GetOutput());
     }
 
     concatener->SetInput(imageList);
     concatener->UpdateOutputInformation();
-    concatener->Update();
 
     return concatener->GetOutput();
   }
@@ -507,8 +510,8 @@ private:
       }
   }
 
-  itk::ProcessObject::Pointer m_TmpFilter;
   TransferLogType::Pointer m_TransferLog;
+  std::vector<itk::LightObject::Pointer> m_Filters;
 };
 
 }
diff --git a/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx b/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
index 06da000..7c56aa8 100644
--- a/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
+++ b/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
@@ -74,7 +74,7 @@ private:
       "The list of features and the syntax of muParserX is available at [1].\n\n"
 
       "As opposed to muParser (and thus the BandMath OTB-application [2]), "
-      "muParserX supports vector expressions which allows to output multi-band "
+      "muParserX supports vector expressions which allows outputting multi-band "
       "images.\n\n"
 
       "Hereafter is a brief reference of the muParserX syntax\n\n"
@@ -106,10 +106,10 @@ private:
       "im1b2Mean\n"
       "  mean of the 2nd component of the 1st input (global statistics)\n\n"
 
-      "im1b2Min\n"
+      "im1b2Mini\n"
       "  minimum of the 2nd component of the 1st input (global statistics)\n\n"
 
-      "im1b2Max\n"
+      "im1b2Maxi\n"
       "  minimum of the 2nd component of the 1st input (global statistics)\n\n"
 
       "im1b2Sum\n"
diff --git a/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx b/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx
index 7707ead..87e7dc3 100644
--- a/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx
+++ b/Modules/Applications/AppOpticalCalibration/app/otbOpticalCalibration.cxx
@@ -186,7 +186,7 @@ private:
     AddDocTag(Tags::Calibration);
 
     AddParameter(ParameterType_InputImage,  "in",  "Input");
-    SetParameterDescription("in", "Input image filename (values in DN)");
+    SetParameterDescription("in", "Input image filename");
 
     AddParameter(ParameterType_OutputImage, "out", "Output");
     SetParameterDescription("out","Output calibrated image filename");
@@ -205,8 +205,8 @@ private:
     DisableParameter("milli");
     MandatoryOff("milli");
 
-    AddParameter(ParameterType_Empty, "clamp", "Clamp of reflectivity values between [0, 100]");
-    SetParameterDescription("clamp", "Clamping in the range [0, 100]. It can be useful to preserve area with specular reflectance.");
+    AddParameter(ParameterType_Empty, "clamp", "Clamp of reflectivity values between [0, 1]");
+    SetParameterDescription("clamp", "Clamping in the range [0, 1]. It can be useful to preserve area with specular reflectance.");
     EnableParameter("clamp");
     MandatoryOff("clamp");
 
diff --git a/Modules/Applications/AppSegmentation/app/otbLargeScaleMeanShift.cxx b/Modules/Applications/AppSegmentation/app/otbLargeScaleMeanShift.cxx
index d0dfadb..27f8da8 100644
--- a/Modules/Applications/AppSegmentation/app/otbLargeScaleMeanShift.cxx
+++ b/Modules/Applications/AppSegmentation/app/otbLargeScaleMeanShift.cxx
@@ -64,7 +64,7 @@ private:
       "This application can be a preliminary step for an object-based analysis.\n\n"
       "It generates a vector data file containing the regions extracted with "
       "the MeanShift algorithm. The spatial and range radius parameters allow "
-      "to adapt the sensitivity of the algorithm depending on the image dynamic "
+      "adapting the sensitivity of the algorithm depending on the image dynamic "
       "and resolution. There is a step to remove small regions whose size "
       "(in pixels) is less than the given 'minsize' parameter. These regions "
       "are merged to a similar neighbor region. In the output vectors, there "
diff --git a/Modules/Applications/AppStereo/app/otbBlockMatching.cxx b/Modules/Applications/AppStereo/app/otbBlockMatching.cxx
index 4884c77..2ec8f7e 100644
--- a/Modules/Applications/AppStereo/app/otbBlockMatching.cxx
+++ b/Modules/Applications/AppStereo/app/otbBlockMatching.cxx
@@ -141,7 +141,7 @@ private:
       "The application searches locally for the displacement between a reference"
       " image and a secondary image. The correspondence is evaluated for each "
       "pixel, based on a pair of local neighborhood windows. The displacement "
-      "evaluated can be 1D (along lines) or 2D. Parameters allows to set the "
+      "evaluated can be 1D (along lines) or 2D. Parameters allow setting the "
       "minimum and maximum disparities to search (both for horizontal and "
       "vertical directions). A winner-take-all approach is used to select the "
       "best match. There are different metrics implemented to evaluate the "
diff --git a/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx b/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx
index 4237cce..3898a1d 100644
--- a/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx
+++ b/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx
@@ -249,7 +249,7 @@ int otbGenericRSTransformGenericTest(int argc, char * argv[])
   if(inRes>inThreshold)
     {
     failed = true;
-    std::cerr<<"Input residual ("<<outRes<<") outpasses the threshold ("<<inThreshold<<")"<<std::endl;
+    std::cerr<<"Input residual ("<<inRes<<") outpasses the threshold ("<<inThreshold<<")"<<std::endl;
     std::cerr<<std::endl;
     }
 
diff --git a/Modules/Filtering/Statistics/include/otbPatternSampler.h b/Modules/Filtering/Statistics/include/otbPatternSampler.h
index 5a9b640..cc9dd94 100644
--- a/Modules/Filtering/Statistics/include/otbPatternSampler.h
+++ b/Modules/Filtering/Statistics/include/otbPatternSampler.h
@@ -49,7 +49,7 @@ public:
   typedef struct Parameter
     {
     /** Maximum size of the internal patterns */
-    unsigned long MaxPatternSize;
+    unsigned long MaxPatternSize = 0;
 
     /** First sampling pattern */
     std::vector<bool> Pattern1;
@@ -59,7 +59,7 @@ public:
     std::vector<bool> Pattern2;
 
     /** Seed used to randomly generate patterns (used only if greater than 0) */
-    unsigned int Seed;
+    unsigned int Seed = 0;
 
     bool operator!=(const struct Parameter  & param) const;
     } ParameterType; 
diff --git a/Modules/IO/TestKernel/src/otbTestDriver.cxx b/Modules/IO/TestKernel/src/otbTestDriver.cxx
index 27d45ef..349a224 100644
--- a/Modules/IO/TestKernel/src/otbTestDriver.cxx
+++ b/Modules/IO/TestKernel/src/otbTestDriver.cxx
@@ -114,7 +114,7 @@ int parseCommandLine(int ac, char * av[], std::vector<char *>& remainingArgs)
         if (oldenv2)
           {
           libpath64 += KWSYS_SHARED_FORWARD_PATH_SEP;
-          libpath64 += oldenv;
+          libpath64 += oldenv2;
           }
         itksys::SystemTools::PutEnv(libpath64.c_str());
         }
diff --git a/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx b/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx
index 90769aa..f9137e4 100644
--- a/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx
+++ b/Modules/OBIA/RCC8/test/otbImageToImageRCC8Calculator.cxx
@@ -94,7 +94,7 @@ int otbImageToImageRCC8Calculator(int itkNotUsed(argc), char* argv[])
           {
           std::cout << "Test failed: Result with level3AprioriKnowledge ";
           std::cout << "different from result without a priori knowledge" << std::endl;
-          std::cout << calc->GetValue() << "!=" << calc1->GetValue() << std::endl;
+          std::cout << calc->GetValue() << "!=" << calc2->GetValue() << std::endl;
           return EXIT_FAILURE;
           }
         }
diff --git a/Modules/Radiometry/Simulation/src/otbSailModel.cxx b/Modules/Radiometry/Simulation/src/otbSailModel.cxx
index 1049da6..e2c1ef0 100644
--- a/Modules/Radiometry/Simulation/src/otbSailModel.cxx
+++ b/Modules/Radiometry/Simulation/src/otbSailModel.cxx
@@ -34,7 +34,7 @@ namespace otb
 /** Constructor */
 SailModel
 ::SailModel() : m_LAI(2), m_Angl(50), m_PSoil(1), m_Skyl(70), m_HSpot(0.2),
-                m_TTS(30), m_TTO(0), m_PSI(0), m_FCoverView(0.0), m_UseSoilFile(false)
+                m_TTS(30), m_TTO(0), m_PSI(0), m_FCoverView(0.0), m_UseSoilFile(false), m_SoilIndex(0)
 {
   this->ProcessObject::SetNumberOfRequiredInputs(2);
   this->ProcessObject::SetNumberOfRequiredOutputs(4);
diff --git a/Modules/Visualization/Monteverdi/src/mvdPreferencesDialog.ui b/Modules/Visualization/Monteverdi/src/mvdPreferencesDialog.ui
index 300d407..c715d1e 100644
--- a/Modules/Visualization/Monteverdi/src/mvdPreferencesDialog.ui
+++ b/Modules/Visualization/Monteverdi/src/mvdPreferencesDialog.ui
@@ -120,6 +120,9 @@
             <verstretch>0</verstretch>
            </sizepolicy>
           </property>
+          <property name="toolTip">
+           <string>When the image width or height is lower than this minimum, overview generation is not proposed</string>
+          </property>
           <property name="text">
            <string>Minimum size:</string>
           </property>
@@ -127,6 +130,9 @@
         </item>
         <item row="1" column="2">
          <widget class="QSpinBox" name="overviewsSpinBox">
+          <property name="toolTip">
+           <string>When the image width or height is lower than this minimum, overview generation is not proposed</string>
+          </property>
           <property name="maximum">
            <number>999999999</number>
           </property>
diff --git a/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h
index 4ce167a..c32699f 100644
--- a/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h
+++ b/Modules/Visualization/MonteverdiGui/include/mvdImageViewWidget.h
@@ -163,7 +163,7 @@ public:
   void SetPickingEnabled( bool );
 
   /**
-   * This allows to set the fallback behaviour for picking
+   * This allows setting the fallback behaviour for picking
    */
   void SetPickingDefaultStatus( bool );
   /**
diff --git a/Modules/Visualization/MonteverdiGui/include/mvdProjectionBarWidget.h b/Modules/Visualization/MonteverdiGui/include/mvdProjectionBarWidget.h
index 5a2d40e..be92647 100644
--- a/Modules/Visualization/MonteverdiGui/include/mvdProjectionBarWidget.h
+++ b/Modules/Visualization/MonteverdiGui/include/mvdProjectionBarWidget.h
@@ -69,7 +69,7 @@ class ProjectionBarWidget;
  * \ingroup OTBMonteverdiGUI
  * \brief ProjectionBarWidget widget class.
  *
- * This Widget allow to change the zoom level of the current selected projection.
+ * This Widget allows changing the zoom level of the current selected projection.
  */
 class OTBMonteverdiGUI_EXPORT ProjectionBarWidget : public QWidget
 {
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
index aa0cdd0..cbc0f7f 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperApplication.h
@@ -622,9 +622,9 @@ public:
     {                                                                   \
     Image##Type::Pointer ret;                                           \
     Parameter* param = GetParameterByKey(parameter);                    \
-    if (dynamic_cast<ComplexInputImageParameter*>(param))               \
+    ComplexInputImageParameter* paramDown = dynamic_cast<ComplexInputImageParameter*>(param); \
+    if (paramDown)                                                      \
       {                                                                 \
-      ComplexInputImageParameter* paramDown = dynamic_cast<ComplexInputImageParameter*>(param); \
       ret = paramDown->Get##Image();                                    \
       }                                                                 \
     return ret;                                                         \
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h
index 859e6a8..601b945 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperCompositeApplication.h
@@ -32,7 +32,7 @@ namespace Wrapper
 /** \class CompositeApplication
  *  \brief This class is a base class for composite applications
  *
- * This class allows to create & store internal applications with the same logic
+ * This class allows creating & storing internal applications with the same logic
  * as parameters. You choose the application type to create, you choose an
  * identifier (alphanumeric string), and you can give a short description.
  * Later, you will refer to this application using the identifier. In the
diff --git a/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h b/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h
index 7715c97..1a93c24 100644
--- a/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h
+++ b/Modules/Wrappers/ApplicationEngine/include/otbWrapperProxyParameter.h
@@ -35,7 +35,7 @@ namespace Wrapper
  * \brief Parameter class acting as a proxy to a different parameter
  *
  * The target parameter of this proxy is defined as a pair of a group parameter
- * containing the target and the targets key. It allows to define proxies on
+ * containing the target and the targets key. It allows defining proxies on
  * parameters that may be themselves replaced by a proxy
  *
  * \ingroup OTBApplicationEngine
diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
index 120365d..47c4e85 100644
--- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
+++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplication.cxx
@@ -250,6 +250,10 @@ void Application::SetParameterString(std::string parameter, std::string value, b
     if ( !paramDown->SetFileName(value) )
     otbAppLogCRITICAL( <<"Invalid XML parameter filename " << value <<".");
     }
+  else
+    {
+    otbAppLogWARNING( <<"This parameter can't be set using SetParameterString().");
+    }
 
   this->SetParameterUserValue(parameter, hasUserValueFlag);
 }
diff --git a/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineLauncher.cxx b/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineLauncher.cxx
index 736ad39..5d57a83 100644
--- a/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineLauncher.cxx
+++ b/Modules/Wrappers/CommandLine/src/otbWrapperCommandLineLauncher.cxx
@@ -817,18 +817,22 @@ std::string CommandLineLauncher::DisplayParameterHelp(const Parameter::Pointer &
 
   if (type == ParameterType_Choice)
     {
-    std::vector<std::string> keys = dynamic_cast<ChoiceParameter*>(param.GetPointer())->GetChoiceKeys();
-    std::vector<std::string> names = dynamic_cast<ChoiceParameter*>(param.GetPointer())->GetChoiceNames();
+    ChoiceParameter* paramDown = dynamic_cast<ChoiceParameter*>(param.GetPointer());
+    if (paramDown)
+      {
+      std::vector<std::string> keys = paramDown->GetChoiceKeys();
+      std::vector<std::string> names = paramDown->GetChoiceNames();
 
-    oss << "[";
-    for(unsigned int i=0; i<keys.size(); i++)
+      oss << "[";
+      for(unsigned int i=0; i<keys.size(); i++)
       {
-      oss<<keys[i];
-      if( i != keys.size()-1 )
-        oss << "/";
+        oss<<keys[i];
+        if( i != keys.size()-1 )
+          oss << "/";
       }
 
-    oss << "]";
+      oss << "]";
+      }
     }
 
   if(m_Application->IsMandatory(paramKey))
diff --git a/Modules/Wrappers/QtWidget/src/itkQtProgressBar.cxx b/Modules/Wrappers/QtWidget/src/itkQtProgressBar.cxx
index 0cb4344..ba8070c 100644
--- a/Modules/Wrappers/QtWidget/src/itkQtProgressBar.cxx
+++ b/Modules/Wrappers/QtWidget/src/itkQtProgressBar.cxx
@@ -62,10 +62,12 @@ QtProgressBar::ProcessEvent( itk::Object * caller,
     ::itk::ProcessObject::Pointer  process =
       dynamic_cast< itk::ProcessObject *>( caller );
 
-    const int value2 = static_cast<int>(
-      process->GetProgress() * this->maximum() );
-
-    emit SetValueChanged( value2 );
+    if (process)
+      {
+      const int value2 = static_cast<int>(
+        process->GetProgress() * this->maximum() );
+      emit SetValueChanged( value2 );
+      }
     }
 }
 
@@ -78,10 +80,13 @@ QtProgressBar::ConstProcessEvent( const itk::Object * caller,
     itk::ProcessObject::ConstPointer  process =
       dynamic_cast< const itk::ProcessObject *>( caller );
 
-    const int v = static_cast<int>(
-      process->GetProgress() * this->maximum() );
+    if (process)
+      {
+      const int v = static_cast<int>(
+        process->GetProgress() * this->maximum() );
 
-    emit SetValueChanged( v );
+      emit SetValueChanged( v );
+      }
     }
 }
 
diff --git a/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx b/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx
index d0c6d78..5b4225f 100644
--- a/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx
+++ b/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx
@@ -109,7 +109,7 @@ int main(int argc, char* argv[])
   int ret = qtApp.exec();
 
   // Clean resources
-  if (mainWindow) delete mainWindow;
+  delete mainWindow;
   app = ITK_NULLPTR;
   ApplicationRegistry::CleanRegistry();
 
diff --git a/Packaging/CMakeLists.txt b/Packaging/CMakeLists.txt
index c7f84df..e2ef02d 100644
--- a/Packaging/CMakeLists.txt
+++ b/Packaging/CMakeLists.txt
@@ -63,7 +63,7 @@ find_program(ZIP_EXECUTABLE NAMES 7z 7za)
 set(CMAKE_INSTALL_PREFIX "${SUPERBUILD_INSTALL_DIR}")
 
 #set CMAKE_MODULE_PATH to be the current source directory.
-# This will allow to include all cmake files without full path and .cmake extension!
+# This will allow including all cmake files without full path and .cmake extension!
 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
 
 #include superbuild_macro for get_version()
@@ -93,13 +93,10 @@ set(PKG_OTB_VERSION_STRING ${PKG_OTB_VERSION_MAJOR}.${PKG_OTB_VERSION_MINOR}.${P
 set(PACKAGE_LONG_NAME OrfeoToolBox)
 set(NAME_SUFFIX "" CACHE STRING "extra suffix for package name")
 set(PACKAGE_NAME OTB)
-if(NAME_SUFFIX)
-  set(PACKAGE_NAME OTB${NAME_SUFFIX})
-endif()
 if(APPLE)
   set(PACKAGE_PLATFORM_NAME "Darwin")
 elseif(WIN32)
-  set(PACKAGE_PLATFORM_NAME "win")
+  set(PACKAGE_PLATFORM_NAME "Win")
 elseif(LINUX)
   set(PACKAGE_PLATFORM_NAME "Linux")
 endif()
@@ -110,7 +107,7 @@ endif()
 
 # This directory is important.
 # We stage/keep files that goes into final package in this directory
-set(PKG_STAGE_DIR ${PACKAGE_NAME}-${PKG_OTB_VERSION_STRING}-${PACKAGE_PLATFORM_NAME}${PACKAGE_ARCH})
+set(PKG_STAGE_DIR ${PACKAGE_NAME}-${PKG_OTB_VERSION_STRING}-${PACKAGE_PLATFORM_NAME}${PACKAGE_ARCH}${NAME_SUFFIX})
 
 set(PATCHELF_PROGRAM "${CMAKE_BINARY_DIR}/PATCHELF/src/patchelf/src/patchelf")
 include(External_patchelf)
diff --git a/Packaging/Files/selftester.sh b/Packaging/Files/selftester.sh
index 69d42e1..3d3a83c 100755
--- a/Packaging/Files/selftester.sh
+++ b/Packaging/Files/selftester.sh
@@ -70,7 +70,7 @@ for name in $OTB_SO_LIBRARIES $OTB_DY_LIBRARIES $OTB_EXE; do
   elif echo "$F_OUTPUT" | grep -q ': broken symbolic link'; then
     echo_and_report "$F_OUTPUT"
   elif echo "$F_OUTPUT" | grep -q -i -e ': ELF .*shared object' -e ': ELF .*executable'; then
-    LDD_ERRORS=$(ldd "$name" | grep -i -e '=> not found' -e 'not a dynamic executable')
+    LDD_ERRORS=$(ldd "$name" 2>&1 | grep -v 'you do not have execution permission' | grep -i -e '=> not found' -e 'not a dynamic executable')
     if [ -n "$LDD_ERRORS" ]; then
       echo_and_report "ldd $name"
       echo_and_report "$LDD_ERRORS"
diff --git a/Packaging/makeself/README.md b/Packaging/makeself/README.md
index cf7f312..116b503 100644
--- a/Packaging/makeself/README.md
+++ b/Packaging/makeself/README.md
@@ -128,7 +128,7 @@ Archives generated with Makeself can be passed the following arguments:
 
   * _--keep_ : Prevent the files to be extracted in a temporary directory that will be removed after the embedded script's execution. The files will then be extracted in the current working directory and will stay here until you remove them.
   * _--verbose_ : Will prompt the user before executing the embedded command
-  * _--target dir_ : Allows to extract the archive in an arbitrary place.
+  * _--target dir_ : Allows extracting the archive in an arbitrary place.
   * _--nox11_ : Do not spawn a X11 terminal.
   * _--confirm_ : Prompt the user for confirmation before running the embedded command.
   * _--info_ : Print out general information about the archive (does not extract).
diff --git a/Packaging/post_install.cmake b/Packaging/post_install.cmake
index 29c937e..25837fa 100644
--- a/Packaging/post_install.cmake
+++ b/Packaging/post_install.cmake
@@ -18,6 +18,55 @@
 # limitations under the License.
 #
 
+function(sanitize_system_paths input_file)
+  # does not support Windows ...
+  if(APPLE)
+    set(SHARED_EXT "\\.dylib")
+  elseif(UNIX)
+    set(SHARED_EXT "\\.so")
+  endif()
+  set(filtered_content)
+
+  file(STRINGS "${input_file}" source_file_content NEWLINE_CONSUME)
+  string(REGEX REPLACE "\n" "\n;" source_file_content "${source_file_content}")
+  set(SEARCH_REGEX "(^[^#\"]+(LIBRARIES|INCLUDE_DIR[A-Z]*) +\")(.+)(\"[^\"]*)")
+
+  foreach(line ${source_file_content})
+    set(filtered_line "${line}")
+    if(line MATCHES "${SEARCH_REGEX}")
+      string(REGEX REPLACE "${SEARCH_REGEX}" "\\3" extract_str "${line}" )
+      string(REGEX REPLACE ";;" ";" extract_str "${extract_str}")
+      set(_to_be_removed)
+      set(_to_be_added)
+      foreach(path ${extract_str})
+        if(IS_ABSOLUTE ${path})
+          list(APPEND _to_be_removed "${path}")
+          if(NOT IS_DIRECTORY ${path})
+            if(path MATCHES "^.*/lib[^\\.]+${SHARED_EXT}.*")
+              string(REGEX REPLACE "^.*/lib([^\\.]+)${SHARED_EXT}.*" "\\1" _lib_name "${path}")
+              list(APPEND _to_be_added "${_lib_name}")
+            endif()
+          endif()
+        endif()
+      endforeach()
+      if(_to_be_removed)
+        list(REMOVE_ITEM extract_str ${_to_be_removed})
+      endif()
+      if(_to_be_added)
+        list(INSERT extract_str 0 ${_to_be_added})
+      endif()
+      if(extract_str)
+        list(REMOVE_DUPLICATES extract_str)
+      endif()
+      string(REGEX REPLACE "${SEARCH_REGEX}" "\\1${extract_str}\\4" filtered_line "${line}" )
+    endif()
+    list(APPEND filtered_content "${filtered_line}")
+  endforeach()
+
+  string(REGEX REPLACE "\n;" "\n" filtered_content "${filtered_content}")
+  file(WRITE "${input_file}" "${filtered_content}")
+endfunction()
+
 #check variables are set
 foreach(var P_DIRS P_MATCH P_REPLACE)
   if(NOT ${var})
@@ -42,5 +91,8 @@ foreach( p_dir ${P_DIRS} )
       file(WRITE "${cmake_file}"  "# This file is modified by OTB after installation.
       \n${cmake_file_CONTENTS}")
     endif()
+    if(UNIX)
+      sanitize_system_paths(${cmake_file})
+    endif()
   endforeach() # foreach( cmake_file
 endforeach() # foreach( p_dir
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index e91f39a..1f7046b 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,4 +1,4 @@
-OTB-v.6.2.0 - Changes since version 6.0.0 (October 4th, 2017)
+OTB-v.6.2.0 - Changes since version 6.0.0 (October 26th, 2017)
 ----------------------------------------------------------
 
 * Request for Changes (http://wiki.orfeo-toolbox.org/index.php/Requests_for_Changes):
@@ -31,6 +31,7 @@ OTB-v.6.2.0 - Changes since version 6.0.0 (October 4th, 2017)
   * Documentation
     * 0001434: Bibliography references are not set in the Software Guide (PDF version)
     * 0001400: Training  applications reference documentation do not include shark parameters
+    * 0001471: Issue with Boolean parameter in the Python application API documentation
 
   * Monteverdi
     * 0001431: RGE Alti files inverted on Monteverdi
@@ -41,6 +42,8 @@ OTB-v.6.2.0 - Changes since version 6.0.0 (October 4th, 2017)
     * 0001449: Issues with OTB 6.1 standalone packages (Linux)
     * 0001404: OTB xdk 5.10.1 is not able to compile a simple program on a Ubuntu 16.04 VM
     * 0001430: building 6.0.0 fails at otbSFSTextureExtraction.cxx.o
+    * 0001474: OTB XDK is not working on Linux
+    * 0001460: Unable to compile OTB  6.2.0 RC1 with superbuild (CURL issue)
 
   * Orfeo Toolbox (OTB)
     * 0001453: Applications crash with inxml paramter (GUI mode)
@@ -70,11 +73,16 @@ OTB-v.6.2.0 - Changes since version 6.0.0 (October 4th, 2017)
     * 0001426: GUI TrainimagesClassifier resets "field name" parameter when another parameter is set
     * 0001421: otbenv.bash has windows endline
     * 0001402: 404 link on otb-users
+    * 0001469: Superbuild with Visual Studio 15 2017
+    * 0001464: otb_module_impl() called twice in ExternalModuleTemplate
+    * 0001459: Patch to fix spelling errors
 
   * OTB-applications
     * 0001441: Error in param in template otbTrainLibSVM.txx
     * 0001411: Training applications  needs field name of type integer
     * 0001410: BundleToPerfectSensor composite application does not expose parameters of internal applications
+    * 0001467: Convert application memory allocation issue
+    * 0001463: BandMathX not accepting global statistics
 
 
 OTB-v.6.0.0 - Changes since version 5.10.1 (May 2th, 2017)
diff --git a/i18n/fr_FR.ts b/i18n/fr_FR.ts
index 609bada..e9ea1fe 100644
--- a/i18n/fr_FR.ts
+++ b/i18n/fr_FR.ts
@@ -4611,6 +4611,10 @@ Merci d'en sélectionner un autre.</translation>
         <source>pixel(s)</source>
         <translation>pixel(s)</translation>
     </message>
+    <message>
+        <source>When the image width or height is lower than this minimum, overview generation is not proposed</source>
+        <translation>Lorsque la hauteur ou la largeur d'une image est inférieure à ce minimum, la génération des aperçus n'est pas proposée</translation>
+    </message>
 </context>
 <context>
     <name>mvd::ProcessObjectObserver</name>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/otb.git



More information about the Pkg-grass-devel mailing list