Requests for Comments-1: Remove our internal patched version of libSVM and the classes using the modified libSVM API

From OTBWiki
Jump to: navigation, search


  • Submitted by Julien Michel (18/03/2015 13:04)
  • Accepted by PSC +3 / 0 (19/03/2015 14:13)
  • Merged in Orfeo ToolBox 4.4.5 (23/03/2015 15:24)


What changes will be made and why they will make a better Orfeo ToolBox

For now we have an internal version of libSVM, which is patched to add the generic kernel capability, and add a few more functions (to clone a SVM model struct for instance).

However :

  • The generic kernel capability is not widely used (for instance it is not reported in classification applications), and its code is not very clean (doubtful operations on memory allocation with LibSVM struct ...)
  • The patches prevent us to follow new libSVM releases and benefit from libSVM packages on target systems,
  • For OTB 5.0, we now have a policy of "as few embedded third party as possible" and the generic kernel patches are the only reason why we can not use an external libSVM.

I therefore propose :

  • To remove completely the internal LibSVM version in Modules/ThirdParty/LibSVM and to do a plain cmake find_package() instead,
  • To remove all code and tests relying on the patched libSVM API. This means generic kernel classes and a few calls in SVMModel that need to be reworked,
  • To create a remote module on a git repository containing the patched libSVM and the removed classes and tests, so that they will still be available if really needed by someone.
When will those changes be available (target release or date)

These changes will be available for next release (OTB 5.0)