I am a commercial software developer and I want to make use of open-source in my proprietary software.As I understand the concept of copy-left, it uses the original authors copyright to ensure that their ultimate end users (which would include my customers) are not deprived of benefits of the original work that the original authors of the OS components intended for them to have.I also understand that there is an incentive to produce more free software and I often find that sites that clarify and recommend various licensing terms are mixing the legalities with the ideology.All I am asking for is a clear picture. The people who want to create OS exclusively for other OS projects should be allowed to do so. The people who want to put code out there for anybody to use should be allowed to do so. Also, there are many claims which have no legal precedence and are not as clear cut as authors of OS interest sites would like them to be.And we all know that code is not just code.There is a difference between:Copying somebodys source code into your source code.Consuming a library compiled as-is from github.Consuming a library compiled from a locally altered version from github.Let's pretend that I use an open source library for accessing Excel spreadsheets. It makes sense that I would contribute back bugfixes/additions etc that had anything to do with the general problem of accessing excel spreadsheets. This is to make an excel plugin for an application that already accepts XML, SQL db etc as alternative input mechanisms for the same data.** Does this mean that the application is considered derivative even when it does not expand into the problem domain of importing excel sheets? **
Open source: what is the definition of derivative work and how does it impact copy-left
licensing;open source
From a copyright standpoint, a program that is statically linked to a library is a derived work of that library. The reasoning to reach that conclusion is as follows:The (binary) code of the library is physically contained in the program when the library is statically linked. This makes the (binary) program a derived work of the (binary) library.The (binary) code of the library is derived from the library source code by way of translation. This makes the binary code a derived work of the source code.For dynamically linked libraries, it is less clear if a program that uses them is legally a derived work under copyright law. To my knowledge, even the law experts don't agree on that, but at least the copyleft proponents claim that it is.What all of this means for using programs using a library in a program depends on the copyright license that the library is distributed under and the amount of legal risk that you are willing to take.If the library is distributed with a copyleft license, then the license applies terms to the distribution of all derived works, including the binary programs that use the library and one of those terms is that source code must be provided.If the library is distributed with a non-copyleft license, then the license only applies terms to the distribution of the library itself (and machine-translated derived works, like the binary version).This means that you can typically use a non-copyleft library in a closed source project without problem. There is no need to disclose the source of the application using the library. Whether you need to distribute the source code for changes you made to the library depends on the exact license that the library is distributed under.If you do the same with a copyleft library, then you had better seek good legal council to determine if you are or are not violating the license terms.