HOWTO: Pick an open source license

Discussions

News: HOWTO: Pick an open source license

  1. HOWTO: Pick an open source license (17 messages)

    Ed Burnette, in "HOWTO: Pick an open source license (part one)" gives a simple step-by-step approach for choosing an open source license, covering such concerns as: control over usage, use in closed-source environments, reciprocal code contributions, monetary concerns, and more. From the article:
    • Do you want to relinquish any control over how your code is used and distributed?
      • NO: put it in public domain and you're done.
      • YES: Copyright it, and ask: Do you want to allow people to use your code in non open-source programs?
        • NO: release it under the GPL.
        • YES: If somebody uses your code in their program and sells their program for money, do you want some of that money?
          • YES: Dual-license or don't release the source at all and use a closed-source license.
          • NO: Use a "commercial-friendly" license, and ask: If somebody uses your code and improves it (fixes bugs or adds features) do you want to make them give you the improvements back so you can use them too?
            • NO: Use a non-reciprocal license.
            • YES: Use a reciprocal license.
    It also gives examples of licenses where applicable, so you can compare to projects in the wild already.
  2. is Dual-license enforceable?[ Go to top ]

    I do not understand dual-license. For example, MySQL comes with a GPL license and other license. With GPL, I can (I do not) publish the whole MySQL on my web site. You download MySQL from my site. Or you get a copy from a friend. You never see the other license. So the other license is virtually not exist. Wei Jiang Acelet Schedule Web Service tasks by clicking
  3. It's all in the FAQ[ Go to top ]

    http://www.mysql.com/company/legal/licensing/faq.html "GPL users must abide by the rules of the GPL, which stipulate that if a MySQL-based application is redistributed, the complete source code for this application must also be open and available for redistribution." If your use MySQL as GPL, your whole software, not just GPL needs to be available to your users. If you don't like this, you should buy a commercial MySQL license.
  4. Re: It's all in the FAQ[ Go to top ]

    http://www.mysql.com/company/legal/licensing/faq.html

    "GPL users must abide by the rules of the GPL, which stipulate that if a MySQL-based application is redistributed, the complete source code for this application must also be open and available for redistribution."
    If your use MySQL as GPL, your whole software, not just GPL needs to be available to your users. If you don't like this, you should buy a commercial MySQL license.
    Your conclusion is, of course, wrong! Redmond style. You are only affected by GPL when you _distribute_ an application which is based on GPL code. When you use GPLd code inhouse, there is no need to publish anything of your code. That's how all the LAMP sites work.
  5. You are only affected by GPL when you _distribute_ an application which is based on GPL code. When you use GPLd code inhouse, there is no need to publish anything of your code.
    well, it depending on what "based on GPL code" means in each particular case. In the case of a database, where you probably use the standard JDBC API to unformly access the database layer, your application is not by any means derived by MySQL and you don't have any obligations / restrictions for licensing your code That is - you can distribute it under an arbitrary licence, as long as you don't bundle a GPL piece (like MySQL) in the distribution but instead ask the users to download and install it separately (so that the act of distribution, governed by the GPL licence, is of no concern for you)
  6. If your use MySQL as GPL, your whole software, not just GPL needs to be available to your users
    absolutely wrong I can choose whatever licence I want for my software, as long as I do not *distribute* MySQL with it and ask the users to download it separately (no matter where from) GPL covers only software distribution, not software usage
  7. Re: It's all in the FAQ[ Go to top ]

    http://www.mysql.com/company/legal/licensing/faq.html

    "GPL users must abide by the rules of the GPL, which stipulate that if a MySQL-based application is redistributed, the complete source code for this application must also be open and available for redistribution."

    If your use MySQL as GPL, your whole software, not just GPL needs to be available to your users. If you don't like this, you should buy a commercial MySQL license.
    MySQL's license have always confused me... 1. I can distribute GPL software with my own software, without being affected by the GPL terms. So, I can distribute the MySQL database server with my software without any 'problems'. 2. The only part of MySQL I use in my application is the JDBC driver, but I don't import its classes anywhere in my code. The database driver class is configurable in a editable text (.properties) file, and can be changed to any other supported database (I use Hibernate, so it means pretty any other database). So, my software is not statically linked to the MySQL's JDBC driver, nor dependant on it in any way. Is this use of MySQL considered in the GPL terms? I mean, is my application *based* on MySQL, or it just *uses* it? Even if I do distribute it, do I have to distribute the source of *my* application as GPL?
  8. MySQL's license have always confused me...
    IMHO that's done on purpose, so that people could be mislead into thinking they need to buy a commercial MySQL licence. Specifically quoting from their site: "If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries." now, if my database agnostic application is communicating with a bunch of databases via a standard JDBC interface, and the user needs to download / install MySQL if this is his preferred database, then on what grounds exactly am I required to obtain MySQL licence? Apparently the application does not depend on MySQL, but the user may use it with MySQL if this is his choice, and GPL does not prohibit such usage in any way
    1. I can distribute GPL software with my own software, without being affected by the GPL terms. So, I can distribute the MySQL database server with my software without any 'problems'.
    no, you cannot GPL governs distribution and according to the GPL licence you cannot distribute a GPL component within a non-GPL bundle
    2. The only part of MySQL I use in my application is the JDBC driver, but I don't import its classes anywhere in my code. The database driver class is configurable in a editable text (.properties) file, and can be changed to any other supported database (I use Hibernate, so it means pretty any other database). So, my software is not statically linked to the MySQL's JDBC driver, nor dependant on it in any way.
    Still you cannot distribute the JDBC drivers, since they are GPL-ed too. The users need to download both the drivers and the database separately from your application
    Is this use of MySQL considered in the GPL terms? I mean, is my application *based* on MySQL, or it just *uses* it? Even if I do distribute it, do I have to distribute the source of *my* application as GPL?
    no, your application is not based on MySQL if it communicates with a database (incl. MySQL) via a standard JDBC interface. (Although MySQL AB tries to imply otherwise with their overly broad misinterpretation of "distribution") Only if you make MySQL specific API calls (e.g. importing specific MySQL classes) then your application is considered "derived" from MySQL
  9. 1. I can distribute GPL software with my own software, without being affected by the GPL terms. So, I can distribute the MySQL database server with my software without any 'problems'.
    no, you cannot GPL governs distribution and according to the GPL licence you cannot distribute a GPL component within a non-GPL bundle
    But then, most Linux distributions would be violating the license, since they ship non-GPL software, like Apache (ASL), Firefox (MPL), and proprietary installers/tools, along with GPL software, like MySQL, and the Linux Kernel itself. Note that I'm not linking my application to MySQL in any way, I'm just putting both in the same CD.
  10. But then, most Linux distributions would be violating the license, since they ship non-GPL software, like Apache (ASL), Firefox (MPL), and proprietary installers/tools, along with GPL software, like MySQL, and the Linux Kernel itself.
    GPL allows this because of the "mere aggregation" clause: "In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License."
    Note that I'm not linking my application to MySQL in any way, I'm just putting both in the same CD.
    I'm not sure that the "mere aggregation" clause is applicable in your case
  11. Re: is Dual-license enforceable?[ Go to top ]

    I do not understand dual-license.

    For example, MySQL comes with a GPL license and other license.
    With GPL, I can (I do not) publish the whole MySQL on my web site. You download MySQL from my site. Or you get a copy from a friend. You never see the other license. So the other license is virtually not exist.

    Wei Jiang
    Acelet
    Schedule Web Service tasks by clicking
    I believe the only people/business that really need to be a commercial license for MySQL are ISVs and non-GPL projects that haven't received an exemption. If you're doing internal development for internet or intranet applications that will remain in-house you do not need one. So if you distribute an application under a non-GPL license that uses MySQL they catch you, they can sue you. http://www.mysql.com/company/legal/licensing/
  12. From the article:

    • Do you want to relinquish any control over how your code is used and distributed?
      • NO: put it in public domain and you're done.
    Relinquish (re·lin·quish) verb: To let go; surrender.
    So, if you *don't* want to surrender control over how your code is used and distributed you should put it in the public domain? I think you've got that the wrong way round...
  13. Yes, he got it the wrong way around, if you look at the article it reads the opposite.
  14. Dual-licensing of libraries is not accepted by users, fortunately. The "noble" motives behind it are too obvious. The only successful dual-licensing comany I know is Qt due to their special relationship to KDE.
  15. Dual-licensing of libraries is not accepted by users, fortunately. The "noble" motives behind it are too obvious. The only successful dual-licensing comany I know is Qt due to their special relationship to KDE.
    Bullsh*t. There are many more. Does the name MySQL ring any bells? They live by dual-licensing.
  16. There are many more.
    Does the name MySQL ring any bells? They live by dual-licensing.
    Is MySQL a library? Who are the 'many more'?
  17. Dual-licensing of libraries is not accepted by users, fortunately. The "noble" motives behind it are too obvious...

    Bullsh*t. There are many more.

    Does the name MySQL ring any bells? They live by dual-licensing.
    perhaps you can also provide some proof for the crowds of users willing to pay the licence, instead of simply using a truly open source database under a non-GPL licence? A link to concrete financial figures will be most welcome
  18. FYI, I made some updates today based on user comments, to help clarify things a little. For example using vs. distributing.