If you modify GPLed code you have to make the modified code publicly available. If you write a program that contains GPLed code you are required to make all of your program open source. Even if you use a few definitions out of one GPLed header file the whole of your code has to be open source. If your program is linked (statically or dynamically) in any way to GPLed code, it has to be open source. The GPL is sometimes called viral because it 'infects' other code.
The LGPL is similar apart from a few exceptions. Using LGPL header files does not require your code to be open source unless the header files contain large chunks of code rather than defintions. You can also link to a LGPLed library without making your code open source. If you make any changes to the library or use significant chunks of the library's source code, those changes do have to be open source. The end result is that LGPLed code is still protected but under controlled conditions can be used with closed source code. In the case of EMC, rcslib is used to allow user programs to communicate with the core of EMC itself. It is LGPL so I can safely use it. Think of it as a phone line directly connected to the guts of EMC. The problem is that I don't know what data to send down that link. A phone is no use if you can't talk! The data definitions for this are in a number of header files. As they are GPL I can't use them. The original GPL was a bit vague about headers so whoever applied the LGPL to rcslib may well have intended closed source applications to be able to talk to EMC. GPL2 as used by EMC seems to be a bit more specific. And now a little history. EMC1 was public domain. The license effectively said 'do what ever you want with this code but it isn't our problem is anything goes wrong'. Mach uses a modified version of the EMC1 G-code interpreter. Look at the Mach manual then compare it with the EMC interpreter docs - you may notice a few similarities :-) I believe Deskam and a few other control packages also use the EMC interpreter. Improvements made by Art and others were not fed back into the EMC project. Understandably this annoyed quite a few people. When the EMC2 project was started the EMC developers applied the GPL2 license to most of the original code to prevent this happening in the future. Please note, the above is my interpretation of the situation and may be in error. Les Chris Morley wrote: > > In layman's terms what is the difference and why one over the other? > Without knowing the difference it would seem that if we could let a > closed source use our open source software without giving them > control over it would be a good thing. > What is the danger of having header files LGPL but the rest GPL2? > I'm not looking to start a fight just interested. > > Chris Morley > > ------------------------------------------------------------------------ > Messenger wants to send you on a trip. Enter today. > <http://www.messengerbuddies.ca/?ocid=BUDDYOMATICENCA21> > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > ------------------------------------------------------------------------ > > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
