Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Question re: the GPL.

  • 25-01-2007 9:41pm
    #1
    Registered Users, Registered Users 2 Posts: 8,488 ✭✭✭


    Something I've always been a bit unsure about :

    If I download some software which is licensed under the GPL and I decide to extract some code and add a feature or two from it to my own program - does this new program also have to be released under the GPL?

    or am I free to sell the derivative work, so long as I don't infringe on people's ability to download the original, GPL'd, software?


Comments

  • Registered Users, Registered Users 2 Posts: 1,421 ✭✭✭Steveire


    software which is unlicensed under the GPL.
    I assume this is a typo. You mean it is licenced under the GPL.

    The way I understand it, you can sell the derivative work, but you also have to release the full source code of the derivative work or provide it on request.

    What I get confused about is distributing a linux kernel with binary blobs in it(video and wireless drivers), or developing software designed to work on linux (like skype for linux) which is not FreeSoftware™. It's clearly derivative work in my eyes. I don't know why it's allowed, but I'm glad it is...

    The best answer you're going to get is from fsf.org, not this board. If you email them and do get clarity, do report back...


  • Closed Accounts Posts: 1,974 ✭✭✭mick.fr


    If you use any GPL code you have to release your code, even if derivative work.
    Also with GPL you are not allowed to sell the product, you are only allowed to sell tech support or ask a fee for media download or packaging. This is what Redhat is basically doing.

    BSD licensed softwares gives more flexibility because there is no restriction at all.
    Microsoft, Apple, Cisco and a few others are using BSD code without released the modded version source code.


  • Technology & Internet Moderators Posts: 28,820 Mod ✭✭✭✭oscarBravo


    mick.fr wrote:
    If you use any GPL code you have to release your code, even if derivative work.
    Only if you publish the derivative work. You can modify GPL code for your own purposes with no requirement to publish the source code, but as soon as you make your modified software available to others, you have to give them access to the modified source.


  • Registered Users, Registered Users 2 Posts: 1,421 ✭✭✭Steveire


    Now here's another one that confuses me: What counts as 'distribution'. Google uses modified GPL code, and presumably installs it to multiple computers within google. That's not distribution? It has to be made generally available to be called distribution? Any idea what's up with that?


  • Technology & Internet Moderators Posts: 28,820 Mod ✭✭✭✭oscarBravo


    Steveire wrote:
    Now here's another one that confuses me: What counts as 'distribution'.
    As I understand it: giving a copy of the software to someone else.
    Steveire wrote:
    Google uses modified GPL code, and presumably installs it to multiple computers within google. That's not distribution?
    Assuming we're talking about search engine stuff, as opposed to software like Google Earth, they're not giving any third party a copy of the software they've modified.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 8,488 ✭✭✭Goodshape


    But they are making a business out of allowing people access to and use of the software. This doesn't count?


  • Technology & Internet Moderators Posts: 28,820 Mod ✭✭✭✭oscarBravo


    Again, as I understand it - no.


  • Registered Users, Registered Users 2 Posts: 3,284 ✭✭✭dubhthach


    Goodshape wrote:
    But they are making a business out of allowing people access to and use of the software. This doesn't count?

    No, google only uses GPL code internally for stuff like the operating system, (ie. Linux) the changes they made to Linux kernel internally tends to be stuff like support for their "distributed file system" and such. The google search system running ontop of the servers does not contain GPL code. As Google aren't in the business of selling a Linux Distro they don't have to release any of their own modifications to Linux kernel under GPL.

    Some crowd in Stanford did something similar with GCC, they developed a bug hunting system using modified version of GCC. As they weren't distrubiting the modified version of GCC they didn't have to release any of their code under GPL.

    Tbh i think SUN have hit the right note with their OpenSolaris license the CDDL. It combines best attributes of both BSD and GPL. Namely modification to files under CDDL must be made available ala GPL, however you can include CDDL files in a closed source project and it doesn't require your own files to be relicensed (ala BSD).

    That's why Apple are able to port both DTrace and ZFS to future version of Mac OSX (Leopard) and not have to relicense their kernel.


  • Moderators, Recreation & Hobbies Moderators, Science, Health & Environment Moderators, Technology & Internet Moderators Posts: 92,367 Mod ✭✭✭✭Capt'n Midnight


    http://www.gnu.org/licenses/gpl-faq.html#TOCGPLRequireSourcePostedPublic
    The GPL does not require you to release your modified version. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

    But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

    Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

    http://www.gnu.org/licenses/gpl-faq.html#TOCWhyMustIInclude
    Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are.

    It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.

    The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.

    Also it you release an OS it may not just the source code you need to ship.
    http://www.theregister.co.uk/2007/01/29/bt_says_enough_gpl/
    the Free Software Foundation Europe remains unimpressed.

    They told us: "Armijn Hemel of gpl-violations.org analysed the source code and said that some of the necessary code is missing. For example, a top level Makefile and the scripts that would be used to properly generate a firmware image have not been included. A script or file with the uClibc configuration is also mandatory.


  • Registered Users, Registered Users 2 Posts: 8,488 ✭✭✭Goodshape


    So, for example, if I were to download Joomla! (GPL'd CMS), hack it to bits and use some fundamental pieces of it for a website - the act of making that website accessible by others requires me to release my code under the GPL?

    Or, is it only in the event that I make available my work for others to take and use as they wish (i.e. zip up the code and let others download it) that it needs to be GPL'd?

    What constitutes 'release' in this sense?


  • Advertisement
  • Closed Accounts Posts: 17,208 ✭✭✭✭aidan_walsh


    It would need to be released under the GPL if the public are to be able to use it in any way at all.


  • Registered Users, Registered Users 2 Posts: 8,488 ✭✭✭Goodshape


    Cool, cheers. And thanks for all the answers and comments so far.

    Though, sticking with the Joomla! example, most of the functionality there is contained within the various modules and components which you load into it. I've seen plenty of third-party components released under all manor of license, which I assume is akin to running a commercial application on the Linux operating system - it's not "using GPL code" per se, it's just requiring it in order to run.

    I'm wondering what sort of restrictions that puts on the commercial Joomla! component developer, with regards using bits and pieces of the Joomla! code (like a built-in, GPL, text editor or even something far more simple).


  • Closed Accounts Posts: 17,208 ✭✭✭✭aidan_walsh


    Ah, now if you were to use modules licensed under the GPL, you don't need to make your software GPL, though obviously they would prefer if you did anyway. Its only if you modify one of those components in any way, you have to make your changes public. The rest of your software can remain closed, if I am thinking correctly.

    EDIT: I may now be thinking of the LGPL.


  • Registered Users, Registered Users 2 Posts: 8,488 ✭✭✭Goodshape


    More the other way around I was thinking, but same thing applies I'm sure.

    (using GPL software/CMS with commercial modules)

    And also that I'm forever hacking GPL modules, and I suppose the core CMS itself, to suit my personal needs and I'd rarely make my changes public - largely because I'm too lazy to find the changes and clean them up for 'presentation' purposes. Am I technically breaking the GPL through laziness?


  • Registered Users, Registered Users 2 Posts: 8,488 ✭✭✭Goodshape


    EDIT: I may now be thinking of the LGPL.
    D'oh!

    Guess I'll just have to read through the damn things again, tbh :(


    Cheers anyway :)


  • Registered Users, Registered Users 2 Posts: 3,284 ✭✭✭dubhthach


    Ah, now if you were to use modules licensed under the GPL, you don't need to make your software GPL, though obviously they would prefer if you did anyway. Its only if you modify one of those components in any way, you have to make your changes public. The rest of your software can remain closed, if I am thinking correctly.

    EDIT: I may now be thinking of the LGPL.

    You only have to make your changes public if you ship a modified binary, however if you are not distrubiting it and using it for "internal" uses only then no ye don't have to release code.

    The LGPL allows you to link binary code to for example a libary, if GLibc for example was under GPL then all C programs compiled on such a system would have to become GPL'd as they would be linking to a GPL C library, this is the reason why it's under LGPL.

    QT is a good example of a commercial company releaseing their library under GPL instead of LGPL. They reason TrollTech did this is because it makes it's illegal to produced closed sourced software that links to the free QT. To do this ye have to license the commerical version, this is how they make their money.


  • Registered Users, Registered Users 2 Posts: 1,656 ✭✭✭rogue-entity


    Just to clarify one glaring point so far.
    The GPL licence does not prevent/hinder/prohibit commercial distribution of software using this licence. You can develope a project, sell the binaries on your website for say €100. Now, you can also choose not to ship the source code with these if you wish, but upon request, you must provide them to anyone that asks for it. They are free to then compile and redistribute this themselves for less then what you would charge. In practise, since most companies cannot force people to pay for each copy of the programme, they provide incentives like support to encourage people to do so. Licencing the Linux Kernel under GPLv2 was the best thing that Linus did IMO but the GPL licence has its flaws too.

    I would agree with the CDDL in that it takes the best of the GPL, LGPL and BSD licences. The BSD licence is nice, but I wouldnt use it for some projects where I just dont want companies profiting from my hard work (and the hard work of all the contributing coders) without returning me something in kind. So, I would be more apt to consider dual-licencing. Companies could licence my code and use it as they please since I am getting something from them in return, but people who are more interested in having it as free software can work away. Every licence has its advantages, and their is no requirement on anyone to use one or the other. I could see some things being released under a BSD licence, things like liberaries, some things under the GPL either because they contain derivitive code or because of my own generosity and some things again under a proprietary licence.


Advertisement