Forgot your password?
typodupeerror
Programming

Selecting a Software Licence? 123

Posted by Cliff
from the an-important-decisions-in-a-coding-project dept.
indraneil asks: "I am a code monkey and have been so for close to 5 years now. I have recently been doing some self-started work that lets me design, implement and test stuff all by myself. A couple of people have liked my prototype and wanted to use it. I would be happy to let others use it, but I am unsure of what license to release it under. My CS course did not include any awareness of licensing and while I am aware of GPL, LGPL, Apache, BSD and Creative Commons licenses, I never got around to understanding them well enough to be able to form an opinion on what suits me best. I notice that SourceForge also expects me to specify my licensing choice, while I am setting up my project. If a person doesn't know about software licensing, where should they educate themselves about the ins and outs, so they can properly choose the license that is right for their project?"
This discussion has been archived. No new comments can be posted.

Selecting a Software Licence?

Comments Filter:
  • Wikipedia (Score:3, Informative)

    by Metasquares (555685) <slashdot@[ ]asquared.com ['met' in gap]> on Thursday April 19, 2007 @02:09PM (#18801533) Homepage
    Wikipedia [wikipedia.org] has some useful information on the various licenses if you don't want to read through them directly.
    • That article is subjective, it's licensed under the GNU Free Documentation License.
    • Wikipedia [wikipedia.org] has some useful information on the various licenses if you don't want to read through them directly.

      Thanks for the link, I too was wondering what OS license to use too but didn't think of checking wiki.

      Falcon
  • Some good points (Score:3, Informative)

    by orclevegam (940336) on Thursday April 19, 2007 @02:10PM (#18801551) Journal

    This guy has some good points and it's worth a read. Title of the article is "Pick a License, Any License"

    http://www.codinghorror.com/blog/archives/000833.h tml [codinghorror.com]
  • Short version: (Score:5, Informative)

    by Daniel_Staal (609844) <DStaal@usa.net> on Thursday April 19, 2007 @02:14PM (#18801629)
    The short version:
    BSD: Anyone can use your code, any way they want, as long as they mention your name.
    GPL: Anyone can use your code, as long as they mention your name and allow others to use the code as you have let them use it.
    LGPL: Same as GPL, but with some exceptions allowing others not to be bound to your licence if they don't actually touch your code in their project, but just use it.

    Other licenses have variations on the above. In general I think most people should stick to one of those three, if for no other reason than to stop the confusion.

    Pick the philosophy you like the best. That is the main point.
    • """
      BSD: Anyone can use your code, any way they want, as long as they mention your name.
      """

      Actually, there is a clause in there that says that they can _not_ use your name. I think you are confusing the BSD with zlib.
      • You have it wrong - they can't *market* it with your name:

        * Copyright (c) ,
        * All rights reserved.
        *
        * Redistribution and use in source and binary forms, with or without
        * modification, are permitted provided that the following conditions are met:
        * * Redistributions of source code must retain the above copyright
        * notice, this list of conditions and the following disclaimer.
        * * Redistributions in binary form must reproduce the above copyright
        * notice, this list of conditions and the followin
        • """
          You have it wrong - they can't *market* it with your name:
          """

          Yes and no. You see, it says, "/endorse/ or promote products". And if a name appears on a website (or anywhere publicly) that can be construed as endorsement of the named developer/company.
          • Yes and no.

            But mostly "yes."

            And if a name appears on a website (or anywhere publicly) that can be construed as endorsement of the named developer/company.

            The license also requires the copyright notice to be retained when distributing the software, which will include the name of the developer or company -- so yes, they are required to include your name.

      • Re: (Score:3, Insightful)

        by qbwiz (87077) *
        They can't use your name to endorse or promote their product, but they have to include your copyright notice (in the documentation, if they just distribute a binary).
        • For binary distributions, it doesn't state /at/ /all/ where the license /must/ be put. This is given with this statement in the license:

          "
          in the documentation and/>>>or other materials provided with the distribution.
          "

          So, it could be in a COPYING (or otherwise named) file with the distribution even if the user isn't told it was put on there computer. It just has to be /somewhere/. But, because of the 3rd clause, a 3rd party can't exact promote that they are using code under the BSD "without specif
      • Re: (Score:3, Informative)

        by pragma_x (644215)
        Are you referring to the advertising clause?

        http://www.gnu.org/philosophy/bsd.html [gnu.org]
        http://en.wikipedia.org/wiki/BSD_license#UC_Berkel ey_advertising_clause [wikipedia.org]

        There's a whole slew of variants of the BSD license, all colloquially referred to as "BSD"; as Wikipeida mentions, even the MIT license is easily confused with it. Depending on what variant of BSD you're using, it may or may not apply.

        Now, I don't know if this is what the GP meant, but regardless if the advertising clause is present, you do have to "menti
    • Re: (Score:3, Insightful)

      by Safety Cap (253500)
      If you don't mind many others making stuff with your code, avoid GPL and use Apache/Mozilla instead. If you want to only have your code used by unwashed hippies like RSS, then go GPL and don't look back.

      Many corporate shops I've worked with avoid GPL'd code, because they want the option of selling the product they make. They may never exercise that option, but they want it.

      • > Many corporate shops I've worked with avoid GPL'd code...

        They can sell all they want, as long as they provide the source and the same rights to those they sold it to. If they want to keep the source code to themselves, they can't. That is the whole point of the GPL.

      • If you don't mind many others making stuff with your code, avoid GPL and use Apache/Mozilla instead. If you want to only have your code used by unwashed hippies like RSS, then go GPL and don't look back.
        Many corporate shops I've worked with avoid GPL'd code, because they want the option of selling the product they make. They may never exercise that option, but they want it.

        The GPL license does allow you the option of selling software under the license. What it doesn't do is allow you to prevent others

    • by FunkyELF (609131)
      What would public domain be then?

      Anyone can use your code, any way they want, and they don't have to mention anything?

      I like that one.
      • by Azar (56604)
        Basically, yes. Public domain means "zero restrictions". You can take code available as public domain, make no changes, market it, sell it, redistribute it as if it was your own code. Of course, the coder next door can do the exact same thing. Very few people release code under this "license", although there are examples.

        SQLite [sqlite.org] comes to mind.
        • Well, it's not a license. It's an irrevocable end to the copyright on that material. It is the same as when the copyright runs out. Since US government works are non-copyrightable, I'd expect that a decent amount of public domain software comes from there.

          Do bear in mind of course that the software remains uncopyrightable; no one can re-copyright the code. At most only those portions of it they've changed would be new and copyrightable, without that having an effect on the unchanged portions or the original
      • by dysprosia (661648)
        Yes, it has no restrictions, but keep in mind that public domain means that you revoke any claims to copyright that you may automatically have on your work. You can, of course, assert copyright but let others do whatever they want to it (no restrictions like PD, but you still have copyright).
    • Re:Short version: (Score:5, Insightful)

      by dghcasp (459766) on Thursday April 19, 2007 @03:07PM (#18802537)

      Funner version:

      Public Domain: You want anyone to use your code free of restrictions. Nobody knows what you wear or what you eat. Your code is for simple binary trees and is published in University textbooks.

      BSD: You want anyone to use your code, but not to blame you for it. You have medium hair and a T-shirt. Someone paid you less than minimum wage to write the code, and you use the money to eat at McDonalds. Your code is the TCP/IP protocol and is widely adopted and ubiqutous. Linux people think you're dead.

      GPL: You wish everyone would use your code and share their modifications with the world. The only people who end up using it are Linux fanboys. You have long hair and a poncho. You spurn money and instead grow potatoes on your commune. Your code is the fourth non-completed conversion of an IBM PC game from the 1990s listed on sourceforge.

      LGPL: You wish you could use the BSD licence, but are afraid the other people on the commune will throw potatoes at you.

      Any other Licence: You either fail to realize that all other licences are basically the same as the BSD or GPL licence, or you contribute code to a project that has the same problem. You wear whatever everyone else wears and eat pasta because you heard it was "trendy." Your code calculates the phase of the moon on any past day using the Julian calendar because you can never remember the rules for converting from the Gregorian calendar.

    • by paulxnuke (624084)
      BSD: Anyone can use your code, any way they want, as long as they mention your name.
      GPL: Anyone can use your code, as long as they mention your name and allow others to use the code as you have let them use it.
      LGPL: Same as GPL, but with some exceptions allowing others not to be bound to your licence if they don't actually touch your code in their project, but just use it.


      Additional thoughts (assuming that you are interested in profit from your work):

      Unless forced (i.e., you used someone else's GPL code), f
      • by Raenex (947668)

        If you want to profit from your work, use the GPL.

        I'm glad to see you mention this GPL tactic being used by commercial companies. It's pretty stealthy, and a lot of people haven't caught on.

        LGPL has no real advantage over the GPL.

        Sure it does. In general I don't like the GPL because of it's viral nature. However, I like the idea that if others improve your code then you get the improvements, but without trying to take over surrounding code. It really isn't that hard to draw the line between third party and first party code. As a developer I'm inclined to use LGPL code and give back, but n

  • Licensing 101 (Score:4, Insightful)

    by pieterh (196118) on Thursday April 19, 2007 @02:14PM (#18801635) Homepage
    If you are an individual or small team, the most important thing is to keep control over your copyright so you can make money from those people willing to pay for your work.

    If you want to open source it, use the GPL and offer a commercial license opt-out. If you use the BSD, no-one will pay.

    Do not accept any contributions unless people are willing to transfer (c) to you, or you cannot relicense your work.

    Do not use GPL libraries, only BSD-licensed ones, or you cannot relicense your work.

    If you are a team or company that does not want to make money from the software, license it under the BSD or Apache license.
    • Re: (Score:3, Informative)

      by Dan Ost (415913)
      Do not use GPL libraries, only BSD-licensed ones, or you cannot relicense your work.

      LGPL libraries are also safe to use unless you make changes to them and don't want to share those changes.
      • by nickos (91443)
        No, it depends on whether you statically [oslawblog.com] or dynamically [oslawblog.com] link to the LGPL libraries.

        From the GPL FAQ, the Free Software Foundation thinks so, at least respecting the GPL. Quoting from the FAQ:

        If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software

        • by Dan Ost (415913)
          That's talking about the GPL, not the LGPL.

          My statement stands.
          • Taken from http://www.gnu.org/licenses/lgpl.html [gnu.org]:

            A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

            However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions

            • by Dan Ost (415913)
              So you're saying that the source for my app could have any license I want, but the compiled version of it, if it's compiled against an LGPL library, must be LGPL?

              That's inconsistent with my understanding of the purpose of the LGPL.
              • by Nicolay77 (258497)
                Exactly. But only if you link statically. Dinamic linking is OK.

                I also think is inconsistent with the purpose of the LGPL. At least if you want to avoid DLL hell.

                It seems to be mainly intended for C libraries like glibc and not for general purpose software in arbitraly languages. In Lisp for example there is no clear difference between static and dinamic linking because you can link to a library in runtime (dinamically) and then save that running Lisp image as a file for later loading, making the linking st
            • So, we turn to section 6. Section 6 has a few options for distributing your work. For static linking you basically need to enable your user to (a) modify the LGPL'd based stuff (for which you have to provide source), and (b) relink it with your application (for which you do not need to provide source). You thus only need to make the object code available to enable the re-linking. This is far from opening up the source. Other scenarios including shared linking are explored as well, but the total picture is s
            • by Raenex (947668)
              NoOneInParticular's reply to you is right. You are wrong on this issue. Statically linking only requires that you give a way for recipiient to recompile the binary with a modified LGPL portion. It doesn't require you to release your source.
    • by Arker (91948)

      If you are an individual or small team, the most important thing is to keep control over your copyright so you can make money from those people willing to pay for your work.

      True. There's no guarantee, of course, that you will be able to make money off code, but it's always smart to retain that ability if you can.

      If you want to open source it, use the GPL and offer a commercial license opt-out. If you use the BSD, no-one will pay.

      Exactly right.

      Do not accept any contributions unless people are willing

  • From a developer's perspective, it all depends on who you want to have the most freedom with your code.

    With GPL you give freedom to the community - anything using GPL code will always be GPL.

    With BSD you give freedom to the developer - they can use your code almost any way they want. Closed source devs can modify and distribute binaries as much as they want without giving anything back to the community.

    LGPL is like a mix of the two. The single developer can use thier own license so long as they only

  • GPL (Score:4, Informative)

    by vga_init (589198) on Thursday April 19, 2007 @02:21PM (#18801777) Journal

    There are many software licenses to choose one, and everyone should have a license that does exactly what they want it to do. You don't even have to pick a preexisting one; write your own with the help of a lawyer (if you need it).

    However, it sounds to me that your intention is to share this software with others. If you want to share it with just those individuals you choose, use some different license and have them sign an nondisclosure agreement or something (ps I am not a lawyer). If your intention, however, is to share your software with the public at large and have the community benefit as a whole, then please use the GPL.

    The reason why the GPL is important for this purpose is that it makes your community software stay in the community. Lots of commercial enterprises use the GPL for reasons like this; they have valuable assets they want to give away (in the from of source code), but they don't want their competitors using it to screw them over--they want the world to benefit, and they themselves might benefit from seeing improvements to their code. That's the GPL.

    If you use the GPL, not only will you be sharing your hard work with others in a way that you deem appropriate, you are also encouraging them to share their work with you. Whoever uses your project or develops it will assume a mutually beneficial role with everyone else who does the same, including you.

    You know how they say...if you love something, set it free? You'd want to take some steps to ensure that it at least STAYS free, right?

    • by Raenex (947668)

      Lots of commercial enterprises use the GPL for reasons like this; they have valuable assets they want to give away (in the from of source code), but they don't want their competitors using it to screw them over--they want the world to benefit, and they themselves might benefit from seeing improvements to their code. That's the GPL.

      This isn't exactly true. Lots of companies are using the GPL so they can sell their code under a closed license to commerical companies that cannot use the GPL. MySQL and Trolltech being the most obvious examples.

      You'd want to take some steps to ensure that it at least STAYS free, right?

      LGPL is a good solution for that. The open code written by you stays open, but can be used by closed code. It gives commercial companies a reason to use your code and give back, without having to give up all their code.

  • by datastew (529152) on Thursday April 19, 2007 @02:22PM (#18801803)
    For the official Free Software Foundation (FSF) commentary on their GNU Public License (GPL) and other licenses, http://www.gnu.org/licenses/license-list.html [gnu.org] is the place to start. The title of the page is: "Various Licenses and Comments about Them - GNU Project - Free Software Foundation (FSF)." I have referred to it often over the years.
    • Oh, yes, because GNU will be the most impartial judges of GPL vs anything else :)
      • While the GNU project and the FSF certainly aren't shy about their licensing opinions, they are also extraordinarily noisy about the reasons for their opinions as well. Judge for yourself whether or not you agree with those opinions.
        • Are you sure that people will be able to differentiate between the bias and the truth? B/c I've read a good chunk of that page and ALL commentary is more than just coloured with their... bias. And if I didn't know any better, I'd probably have a hell of a time separating the two.
          • by swillden (191260) *

            Are you sure that people will be able to differentiate between the bias and the truth? B/c I've read a good chunk of that page and ALL commentary is more than just coloured with their... bias. And if I didn't know any better, I'd probably have a hell of a time separating the two.

            Care to point out an example of said bias? When I read that page, I see two things:

            1. Clear, matter-of-fact truthful statements about the characteristics and requirements of various licenses; and
            2. Clearly identified recommendations

            There's nothing subtle or confusing, and really nothing that I would consider "biased", certainly not in any sort of hard-to-distinguish way.

            If there is any bias, it lies in the criteria they use to evaluate licenses. That's hardly a difficult-to-disitinguish bias, though,

            • You don't see any b/c you already know the issues. You aren't reading it with the proper state of mind.

              But, if you want an example, just look at the reason why they don't like the original BSD license.
              • by swillden (191260) *

                But, if you want an example, just look at the reason why they don't like the original BSD license.

                I read it, and the only thing about it that you could say isn't purely factual is the use of the word "obnoxious" to describe the advertising clause. Even that is arguably accurate, as explained on the page they link "practical problems" to -- given the way successful OSS projects accumulate contributors over time, a few decades of development would lead to a situation that wasn't just unwieldy, but was downright unmanageable. 'Obnoxious' is dead accurate.

                I think it's funny that the GPL gets criticize

                • Advertising something as BSD does NOT violate the BSD license. But, using the contributors names or company/project name is. So, how exactly is the BSD license "anti-business" again? As far as I'm aware, RedHat doesn't use peoples names in its advertising. For that matter, there's only a handful of people that'd be worth naming. So, if they wanted to use one or more names, they'd only have to get something signed from one or more people NOT /all/ of them as you mistakingly conjecture.

                  And the little quo
                  • by swillden (191260) *

                    Advertising something as BSD does NOT violate the BSD license. But, using the contributors names or company/project name is. So, how exactly is the BSD license "anti-business" again? As far as I'm aware, RedHat doesn't use peoples names in its advertising. For that matter, there's only a handful of people that'd be worth naming.

                    You don't understand the BSD advertising clause. If Red Hat were selling original BSD-licensed software, rather than GPL software, the advertising clause would require them to list the attribution clauses for all of the contributors.

                    So, if they wanted to use one or more names, they'd only have to get something signed from one or more people NOT /all/ of them as you mistakingly conjecture.

                    Show me where the BSD advertising clause makes listing the names optional. Here's the text of the clause:

                    All advertising materials mentioning features or use of this software
                    must display the following acknowledgement:
                    This product includes software developed by the University of
                    California, Berkeley and its contributors.

                    Now, if that was all there was to it, that wouldn't be a problem. But many contributors included the same clause with their own names in place of UC Berkeley's. It

  • You might also want to consider using more than one license for different parts of the application. You could for instance create some sort of support library and license it under LGPL, but use BSD or GPL for the actual application. This way others can use the library in other projects, even closed source ones, but your application is always guaranteed to be open source.
  • License Education (Score:5, Informative)

    by Secret Rabbit (914973) on Thursday April 19, 2007 @02:35PM (#18802035) Journal
    I find it hilarious that the OP asked how to educate him/her-self on this topic and immediately there are lots of post recommending a license (overwhelmingly the GPL); this is NOT what the OP asked for.

    @OP:

    If you want to educate yourself on what licenses would be appropriate for what /you/ want, read the licenses. This site:

    http://opensource.org/ [opensource.org]

    has a TONNE of them.

    The most common are the BSD, MIT, MPL, Apache, GPL and LGPL. That is according to sf.net. Please note that there are licenses that don't just protect you, but seriously effect how others can use your work. Please consider this as well when choosing your license.

    To add in my personal opinion, I *really* don't like the GPL. What it does is FORCE other developers that use your work (whether dynamically linked to or not) to use the GPL as well. My personal opinion is that as a developer, I don't have the right to choose the license of someone else's work. There is of course the argument that the developer just shouldn't use your work. But, IMO, that is a non-argument as in some areas there really is only one or two real options.

    At any rate, agree or disagree. That's just my opinion.
    • There is of course the argument that the developer just shouldn't use your work.

      The thing is that this isn't so much an argument as it is a point of view. If you think that it should be the right of the developer to place limits on how it's used, then it should be their right to choose whether their code can be integrated into closed-source software or not. Some people (like RMS) consider allowing their code to be used that way as morally wrong; others simply don't want to be contributing to the bottom l

      • Re: (Score:3, Insightful)

        by Secret Rabbit (914973)
        This is probably going to come off *way* more adversarial than intended. Please take that into account while reading it as I don't have the time to fix it.

        I respect the person, but not the view. Though, I wouldn't have a problem with the GPL if this clause was more along the lines of, "must use another OSI approved license" rather than "must use the GPL" i.e. there are less a**hole ways to keep things open source. To me, the GPL wreaks of arrogance.

        But, I don't believe that most people that choose the GP
      • "others simply don't want to be contributing to the bottom line of corporations that they don't like"

        They aren't thinking clearly if they think this works in all cases. The GPL certainly keeps software companies from profiting from my work, but what about a non software company that uses my code for an internally written application?

        For example: Say I hate oil companies, but I write a piece of software, and an oil company finds a way to use my software to find more oil, hence increasing their bottom line. T
    • Re: (Score:3, Insightful)

      by Lao-Tzu (12740)

      To add in my personal opinion, I *really* don't like the GPL. What it does is FORCE other developers that use your work (whether dynamically linked to or not) to use the GPL as well. My personal opinion is that as a developer, I don't have the right to choose the license of someone else's work.

      I like to think of it in terms of slavery. Let's imagine you're the supreme leader of your own country. The people of the country are asking you, "Is Slavery allowed in this country?" You have a couple of choices

      • Slavery?!?!? Are you serious?!?!? I honestly don't think that there is a much more offensive way to put what you're trying to say. Though your usage is seriously flawed. I mean, come on. Restricting usage of the source is no slavery...

        Oh, btw, the GPL does _not_ force open software for those that are not playing by the rules. After all, if it's closed source, how are you know?
      • by TempeTerra (83076)
        The "restricted freedom" (ie. no slavery) is akin to the GPL -- I grant you the right to do a lot of things, but you cannot take my software, redistribute it, and not give other people the same rights that I gave you. All people have the same access to source code that the first distributer had.

        Slavery is a crappy metaphor to use, and once code is released under the BSD License it can never be "enslaved" again, just like the GPL. Nobody can steal your BSD code. The benefits you ascribe to the GPL are provid
        • "I would expect Libertarians to have a fit at that (or at least at the notion that the GPL is considered "free"), but I've never heard a professed Libertarian commenting on code licenses (if anyone would like to reply, please do)."

          From a strictly libertarian point of view it's your software you can license or put any restrictions on it that you wish. The GPL has a twisted view of freedom, and as a libertarian I don't agree with their definition, but they are free to have that view, and they aren't forcing t
          • "From a strictly libertarian point of view it's your software you can license or put any restrictions..."

            From a strictly libertarian point of view copyright is wrong and the government has no right to grant a coercive monopoly in such a way. What action a libertarian would take in a country where copyright law exists is down to his/her opinion about the best way to negate copyright law. Probably something like a bastard between the GPL and BSD license. I.e , you must put derivative works under the license,
    • "I find it hilarious that the OP asked how to educate him/her-self on this topic"

      I find it hilarious too for different reasons:
      1) He is saying that he is looking some kind of "open" license. Open licenses are, well, open. What limits him in order to just *read* the license and form and opinion? It's everything there, on quite clear terms.
      2) Apart from reading the licenses and choose the one that best fits their intentions, what else does him wait for? If he needs more than what he himself can get from r
  • by 99BottlesOfBeerInMyF (813746) on Thursday April 19, 2007 @02:50PM (#18802257)

    There are really two big open source licenses, along with many that are similar or slight modifications thereof:

    • BSD - if you want to let people do anything they want with your code (so long as they credit you in the copyright). With this license people can use it pretty much without restriction, including closing the source, making changes and selling it without paying you or even letting you see what they did. Use this if you view this as a charitable donation to the companies and projects of the world.
    • GPL - if you want the project to be kept open source and want to be repaid for your work with improvements and changes from others who might modify or improve your project, this is the license to use. Basically it lets people use your code all they want, provided any time they redistribute something that uses your code, they have to give a copy of the source as well. This is sort of like a public trust, where you give the code to the world, not to be resold to them or you in the future and not to be closed to them. This license is (IMHO) most likely to foster a community to form around it and result in improvements being submitted and the project evolving.

    Otherwise, keep the license closed and license it specifically to other individuals and groups for $20 a head and provide it like a traditional, commercial product.

  • Whatever annoys Stallman the most.
  • Public Domain? (Score:3, Insightful)

    by FunkyELF (609131) on Thursday April 19, 2007 @02:54PM (#18802303)
    Is "public domain" a kind of license?
    • Re: (Score:2, Informative)

      by Gregory Cox (997625)
      Strictly speaking "public domain" is not a license, but everyone mentioning it above is obviously using the term "public domain" as shorthand for a license consisting entirely of the following statement:

      I hereby place this code in the public domain.
    • Why more people don't use public domain...

      There's no "hold harmless" clause.

      The upshot of this is that you are potentially legally liable for consequences arising from someone taking and using the code. This includes, but is not limited to:

      - implied or statutory warranties

      - legal liability for direct, indirect, incidental, special, consequential, or other damages

      Putting something in the public domain unfortunately does not protect you from this by making it truly public property. Instead, you open yoursel
      • It's unfortunate, but current tort law has made it such that there is (effectively) no such thing as a Commons. It won't be until nearly 2030 until the first piece of software without this liability risk comes off Copyright; I doubt that when it does, you will be able to get useful source code for it anyway.

        If the media, publishing, and some software companies get their way by 2030 copyrights will last 1000 years. The terms for copyrights and patents need to taken back to 14 years, with one 14 year exte

  • by nevali (942731) on Thursday April 19, 2007 @03:22PM (#18802741) Homepage
    In order from least to most restrictive:

    Use Public Domain if you don't care what people do with your code.

    Use the MIT or X11 license if you want to give it as much chance as possible of being used by as many people as possible, without them being able to pass your code off as theirs.

    The BSD (3-clause) license goes further by preventing other people from using you to endorse their products without your permission.

    The LGPL ensures that the code will remain 'open' (i.e., distributing altered binaries means you have to distribute the matching sources). The LGPL specifically allows your code to be linked with, but not included in, non-LGPL projects. If your code isn't a library (or included in one), the LGPL isn't hugely different from the GPL, although releasing a program under the LGPL would mean somebody could turn it (or portions of it) into an LGPL-licensed library without any hassle.

    The GPL is much the same as the LGPL, but doesn't contain any such provision for linking, so people linking with your code (if it's a library) had better make sure their do their homework first.

    The GPL-compatible licenses (which includes PD, MIT/X11 and BSD) are so-called because they don't contain any restrictions beyond those included in the GPL. This means that your code, if released under a GPL-compatible license, can be legally be included in a GPL-licensed work: your code as you originally released it is still under the license you originally used, but the modifications and the derived work could be GPL'd.

    Generally, the BSD license is a safe bet if you don't feel passionately about making sure that people who use your code must make their changes available to anybody who wants them, otherwise pick the LGPL or GPL depending on circumstance and requirements.

    Avoid non-GPL-compatible licenses, especially home-grown ones: they usually end up doing nothing but preventing people who might want to use your code from doing so. Unless you're a huge multinational company, it's a sure-fire way to ensure that relatively few people will bother with what you've released (in which case, what was the point in releasing it?), and even then it'll stymie adoption.
  • by niteice (793961)
    IMO the zlib/libpng license is the best. It's functionally equivalent to BSD, but you don't need an army of lawyers, university presidents, or OMINOUS ALL CAPS DISCLAIMERS. In English, it says the following:

    - Use the code however you want, but don't claim you're the author.
    - You can modify the code, but don't claim the modified code is the original.

    About as simple as it gets.
  • Like many, I started out with GPL, moved up to LGPL, and finally realized that the BSD license was really the fairest.

    The license is short and to-the-point, giving the author all the recognition and indemnity they need, and users all the freedom to derive that they could want.

    Stay away from the silliness that is the whole inbred family of Creative Common licenses. They're a mistake that should never have happened.

    You can see a sample BSD license here: http://www.opensource.org/licenses/bsd-license.php [opensource.org]
    • by ricree (969643)

      Like many, I started out with GPL, moved up to LGPL, and finally realized that the BSD license was really the fairest.
      I'm not sure how exactly you arrived at this conclusion. I see nothing that is inherently unfair about wanting the code you write to be used only for the benefit of the free software community. They are different licenses with different benefits to them. I see no way in which either is less "fair" than the other.
  • Want to help people? Public domain: give it away.

    Want to make money? Proprietary license: sell binaries to end users.

    No sense in being half-assed [wikipedia.org] about this.
    • Want to help people? Public domain: give it away.

      From what I've read if you release software into the public you can be held accountable for any damages caused by the software. Public domain doesn't allow for use "as is", indemnify [wikipedia.org].

      Falcon
  • I picked the Common Development and Distribution License [sun.com] for my recently open source projects. I wrote up a rather length justification for this decision (and why I decided against others, like the GPL, LGPL, and BSD license) on my blog [blogspot.com].
  • ...try O'Reilly's Understanding Open Source and Free Software Licensing, which you can find (gratis) at http://www.oreilly.com/catalog/osfreesoft/book/ [oreilly.com]

    Andrew M. St. Laurent does an IMO excellent job of explaining the predominant licenses, how they differ, why they differ, which phrases of the license are the important ones and which ones are just fuzzy, and other considerations, including how you should select a license (don't forget that just because your work is "self-started", you don't have free lice
  • Just a remind that you can license your code in more than one licenses. MySQL does this.
  • The most important thing about all the most open source licences is that anyone can take your program,change the name, add some trivial changes and sell it (although with GPL they have to give away the code).

    I'm amazed how many people GPL or BSD a program, then flip when someone else does this. If your program gets popular, someone will. Be sure you want that to happen. I think many people would be better off releasing the source code to their program and accepting patches, but not allowing derivate version
  • If you want maximum exposure/use, the BSD license. GPL zealots will most likely fork and relicense it almost immediately if they wish to use it themselves, however.

    If the acceptance of at least certain tragically vocal elements of the existing FOSS userbase is a priority to you, the GPL is your only real choice. The cult...sorry, community can have a tendency to refuse to use/develop anything that isn't GPL licensed on reflex, even if it is licensed under the BSD/MIT license.

    It is possible to make money f

Swap read error. You lose your mind.

Working...