Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I have GPL code. Let me take the name of the file is GPL_Licensed.c
I will develop a module which will be called from the file GPL_Licensed.c
Let me put my module name as My_module.c I will compile the file and will link to GPL_licensed executable file.
The GPL_Licensed.c file interacts with My_module.c.
Now can i distribute the GPL_licensed executable without providing the source code of My_module.c file.
You could also build GLP_license.c file into a dynamic librairy. Ditribute that as GPL or LGPL.
Then my_module.c could dynamicly call the code in your librayry. Not be staticly likned with it. Then you can distribute your cade under the license you want. You are not tied in with the GPL conditions.
But when you say my_module.c, do you mean module as in kernel module? because if thats the case you cannot (as far as I know) use dynamic librairy. You can hower make 2 module.
Load GLP_module first and simply call its function from my_module.o
Basicly, as long as you dont compile and link with GPL code, you are free to do what ever you want. (actually its a little more complex than that, but this is the general idea)
I know there are quite a few good ressource out there comparing the different kind of licenses with many details.
If you licence something under the GPL you have to make the source code available. This can be as part of the software download, in a seperate space of your server or on cd, whatever method you use if someone requests the code, you have to give it to them.
Then, what I suggested above is the only approach.
When you compile your module, it must not staticly link (as in being a part of) with any GPL code. You can owhever "Call" GPL code at run time dynamicly. In other words, you can USE the PRODUCT that resulted from the GPL code. But not the code it self. If you do that, you are free to use what ever license you want.
Here's 2 example to help clarify:
1- GCC is an open source compiler. But when you write code and compile it with it, your code is not GPL. Thats because you are using the product (as you would a word processor).
2- When using an GUI API tool kit (QT, wx, Win32, etc) your code license is not restricted by
the use of the tool kit. (Win32 native application can be open source, QT application can be closed source). Again this is because you are using the product. Your program will use the feature provided by those environment, but it is not a PART of that environement.
I dont know know exactly how Ghost Script works with "drivers", but as long as it is a different file (in windows it would be a seperate dll), your driver codes can be closed source. BTW, there are many cases where that has been done for device drivers in the kernel (PWC webcams, ATI graphic drivers, etc) They are closed source drivers simply using hooks in the kernel. The hook is open source, the rest of the driver is not.
Why would you want to distribute a module without source. Every package you distribute doesn't need source. You just need to make the source available in one package. You can still distribute precompiled binaries, as long as the source is available somewhere, and you tell people where they can get it.