You are asking the wrong people to change licences. You should ask OpenVoronoi.
There is more interesting GPL3 licensed computational geometry code that OpenVoronoi. http://www.cgal.org/ and http://ompl.kavrakilab.org/ for instance. In those two projects there are scores of copyright holders.
Are you suggesting that they all should change their licenses rather than the two copyright holders of the Path module?
You are asking the wrong people to change licences. You should ask OpenVoronoi.
There is more interesting GPL3 licensed computational geometry code that OpenVoronoi. http://www.cgal.org/ and http://ompl.kavrakilab.org/ for instance. In those two projects there are scores of copyright holders.
Are you suggesting that they all should change their licenses rather than the two copyright holders of the Path module?
We can’t change our license in Path, if we want it to stay compatible with the FreeCAD application as a whole. It is a workbench within FreeCAD that is distributed as such.
You could go ahead and work out a method of using OpenVoronoi. Just try not mixing the OpenVoronoi code in with the current source in Path. We can work out something that lets us use it with Path, similar to how Yorik did with the DXF lib.
You don’t have to create anything from scratch as the current Path licence LGPLv2+ is already compatible with GPLv3. If you want to change licence headers to GPLv3 in your project AFAIK LGPLv2+ permits you to do that and you don’t need copyright holder permission to do that. If you intend to upstream some changes in the future that needs to be done under LGPLv2+.
P.S. I guess the debate around licences can get a bit heated but then again things are hopefully made more clear as a result and i am sure similar debates will follow in the future. After all it is likely proprietary and/or GPLv3 licenced modules are and will be available for FreeCAD.
I had always hoped that Path would mature into a core CAM workbench with basic operations for the most common operations (profile, pocket, and drill) and an architecture that allows for more complex operations to be developed using any library and installed as plugins that the end user can pick and choose from. (I think this is what danielfalck is pointing too also).
IMHO, the core workbench should focus on common services like handling user selection of geometry, sequencing of operations, display of the resulting path backplot, and post processing into gcode. The plugins should handle the details of generating path elements from the selected geometry.
Having a separate workbench to install to get duplicate functionality + some GPL3 operations might be keeping it simple for the developer but it seems less convenient for the end user.
I’m not much of a developer but I don’t understand how either of those gets easier by forking. You should be able to experiment by writing a script in /Mod/Path/PathScripts that wraps/uses openvoronoi.
Likewise, write a post processor for Fanuc and put it in the same place or in your macro path directory. There are examples to follow.
AFAIK “The NIST RS274NGC Interpreter” have evolved into EMC and later renamed to LinuxCNC. If I understand correctly, those ‘canonical machining functions’ are implemented by the NGC interpreter and not by the path generator.
If you/they want to have the code included in FreeCAD master i.e. distributed as part of FreeCAD then, yes, they must change to a less controversial licence.
Otherwise, if you want to use their code, it would have to be used in a way that does not de facto force other code to be GPL3 that does not want to be, FreeCAD is supposed to allow for opensource and propitiatory plug ins. The GPL3 code would have to be distributed as a different project (or plug in) and installed separately by an end user. Of course you would have to ensure that your use of their code does not breach their (GPL3) licence.
It is important to get your licence (and plan for using other licences etc.) correct before you start coding, otherwise you run the risk of doing a lot of complex work that may potentially not get used.
You could potentially fork FreeCAD or at least the parts of its code that is LGPL2+ and add GPL3 code thus de facto making it all GPL3 but you can not go back the other way. You would also have to check that all the code is GPL/LGPL2+ and not just 2, I don’t honestly know but if you search the code and found some GPL/LGPL2 code you would have to remove it. If you then made FreeCAD GPL3 completely then you would have to assess how that would effect you abilities to still use Proprietary plug ins.
When asking Dan and Yorik to change to GPL3 for Path module, you are asking the whole of FreeCAD to change to GPL3, because Path is an integral part of FreeCAD’s core functionality. Path potentially has uses other than just CAM.
So in summary, either do one or some of the following,
ask them nicely if they would consider changing to a FreeCAD compatible licence
write code in an appropriate licence to reimplement their functionality
use some work around that respects their licence and FreeCAD’s