Help with Licensing

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
DukeWellington
Posts: 4
Joined: Wed Jan 08, 2014 2:10 am
Location: San Bruno, California

Help with Licensing

Post by DukeWellington »

Hello people. New to the forums, and I just wanted your guys' opinion on the following license I was planning on using for an OS project I have in mind:

Code: Select all

Copyright (c) 2014, <Copyright Holder>
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 following disclaimer in the
      documentation and/or other materials provided with the distribution.
    * If any redistributions in binary form are made, redistributions of the
      related source code must be made publicly available after 10 years for
      free or for a reasonable one-time cost of the medium of distribution,
      for at least as long as support is maintained for the binary form of
      redistributions (even if modified). The exception to this is if yearly
      amount of redistributions in binary form keep increasing to recipients
      due to popularity, then source code may remain in private use until the
      yearly amount of redistributions in binary form begin to decline for two
      consecutive years. Further, any modifications made to the software will
      reset the timer and this condition for each specific revision of
      redistributions. An example would be if a business begins to sell
      proprietary software under this license in binary form, but then 10 years
      pass without sales or sales begin to decline after those 10 years. Then,
      in this case the business would be forced to release the source code in a
      reasonable manner for a reasonable cost to the public and by extension the
      open source community. After or before this period, if a business were to
      create a modification to the software as a revision, then the business
      would be allowed to have that specific revision remain proprietary under
      the same conditions.
    * Neither the name of the copyright holder nor the names of the
      software's contributors may be used to endorse or promote
      products derived from this software without specific prior written
      permission from the affected individuals.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <Copyright Holder> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

IF THE DISCLAIMER OF WARRANTY AND LIMITATION OF LIABILITY PROVIDED ABOVE CANNOT
BE GIVEN LOCAL LEGAL EFFECT ACCORDING TO THEIR TERMS, REVIEWING COURTS SHALL
APPLY LOCAL LAW THAT MOST CLOSELY APPROXIMATES AN ABSOLUTE WAIVER OF ALL CIVIL
LIABILITY IN CONNECTION WITH THE PROGRAM, UNLESS A WARRANTY OR ASSUMPTION OF
LIABILITY ACCOMPANIES A COPY OF THE PROGRAM IN RETURN FOR A FEE.

END OF TERMS AND CONDITIONS
My intended effect is to create a license based on BSD, but taking elements from GPL's intentions to allow the open source community to benefit, but not harming business use in allowing code to be modified in a proprietary way for a set amount of time and not having restrictions on linking to licensed code, until said business begins losing popularity with the product, of which then I say source code should fall into the hands of the public so as not to harm the open source community.
Last edited by DukeWellington on Thu Jan 09, 2014 6:35 am, edited 1 time in total.
User avatar
Griwes
Member
Member
Posts: 374
Joined: Sat Jul 30, 2011 10:07 am
Libera.chat IRC: Griwes
Location: Wrocław/Racibórz, Poland
Contact:

Re: Help with Licensing

Post by Griwes »

after 10 years
When did you last use GCC 3.3.3 or Linux kernel branch 2.6(.0!) or LLVM 1.2?

Not to mention that that whole clause is way too long and (as I imagine it, I'm no lawyer) can probably be interpreted in at least a dozen ways.
Reaver Project :: Repository :: Ohloh project page
<klange> This is a horror story about what happens when you need a hammer and all you have is the skulls of the damned.
<drake1> as long as the lock is read and modified by atomic operations
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: Help with Licensing

Post by Kevin »

I don't understand what happens with old versions. Do you have to publish old versions of a software after 10 years if the new version is still redistributed or not? The meaning of "any modifications made to the software will reset the timer and this condition for each specific revision of redistributions" is completely unclear to me. What is a "specific revision of redistributions" and don't I get a different revision anyway when I make a modification?

As you can see, even I, who am honestly trying to understand what you wanted to express, can't fully understand it. A license, however, will not only have to be understandable for those who want to understand it, but it must avoid any way to be read differently - because in court, the other party will try their best to give it a different interpretation.

If you want to be sure that it does what you think it does, you need to consult a lawyer, not a forum of hobbyist OS developers. In all likelihood, though, the answer for this specific document is "no, it doesn't".
Developer of tyndur - community OS of Lowlevel (German)
User avatar
DukeWellington
Posts: 4
Joined: Wed Jan 08, 2014 2:10 am
Location: San Bruno, California

Re: Help with Licensing

Post by DukeWellington »

Griwes wrote:
after 10 years
When did you last use GCC 3.3.3 or Linux kernel branch 2.6(.0!) or LLVM 1.2?

Not to mention that that whole clause is way too long and (as I imagine it, I'm no lawyer) can probably be interpreted in at least a dozen ways.
  • I chose 10 years because I wanted to give businesses buffer and leeway for making a profit off the software. I now understand that that could be a little too long, but my intent is to optimize it best between practical proprietary usage and practical open source usage.
  • The clause may be long, but I covered what I could with as much foresight I could think of without defining any terms in detail.
  • I'm no lawyer either, which is why I seek advice from you guys. :mrgreen:
  • It probably could be interpretted in many ways, but I didn't want an overly long license just to cover a few ideas like GPL does. If you have any advice on how to make it lawyer-speak friendly while retaining a small form factor, let me know. :D
Kevin wrote:I don't understand what happens with old versions. Do you have to publish old versions of a software after 10 years if the new version is still redistributed or not? The meaning of "any modifications made to the software will reset the timer and this condition for each specific revision of redistributions" is completely unclear to me. What is a "specific revision of redistributions" and don't I get a different revision anyway when I make a modification?

As you can see, even I, who am honestly trying to understand what you wanted to express, can't fully understand it. A license, however, will not only have to be understandable for those who want to understand it, but it must avoid any way to be read differently - because in court, the other party will try their best to give it a different interpretation.

If you want to be sure that it does what you think it does, you need to consult a lawyer, not a forum of hobbyist OS developers. In all likelihood, though, the answer for this specific document is "no, it doesn't".
Thank you for your insight and your advice.
  • For old versions, my intent is to make licensees publish the source code after 10 years starting from the time that they publish executables of derivatives of the original software, if their business is no longer actively selling or growing off that version of the source code. If in use after 10 years (or whatever I change it to) and the business is still expanding and growing from the source code, then I don't want to forcefully cut them from possible profits in the middle of their profit streak. In hindsight I guess 10 years is quite a long time to be able to assess whether your business model is working or not, so I suppose this could be cut down some.
  • A 'specific revision of redistribution' is a version of the licensed software that is modified and published. Any further modifications that are published later count as different revisions so that a company can change their source code to become better and still generate a profit before they have to release the old version to the public.
  • I didn't want to deviate much from the language used in the original BSD, so I used the terms 'binary form' and 'redistributions' a lot, even if it meant sacrificing clarity.
  • Also, I would consult a lawyer, but I want to avoid any cost for now if possible. My software won't be netting me a profit as it will be released for free. :P
  • As a side note, I live in the US, and I understand there is a big difference in interpretation between countries which is why I am considering placing a layman's summary at the top (with a notice stating that it is not a part of the license conditions if it includes what can be interpreted as a contradiction to one of the lawyer-speak clauses), but only if the license becomes significantly bloated enough to consider a summary.
Kevin
Member
Member
Posts: 1071
Joined: Sun Feb 01, 2009 6:11 am
Location: Germany
Contact:

Re: Help with Licensing

Post by Kevin »

Okay, so your intention is what I suspected makes the most sense. At least I think I understand now what you're trying to express. ;)

I can fully understand that you don't want to pay a lawyer. This is one of the reasons why most people choose a standard license, which is well-known as working as intended, be it GPL, BSD or something different.

If you want to do your own license, a layman's summary which states the goals rather than the exact mechanisms is probably a good idea. I believe that in the US the intention has some legal meaning, too, so it can't hurt to spell it out. The other suggestion is that you try to read your own license text like someone who is trying to find ways to circumvent it. The most important question is probably whether each used term is well-defined.

As I'm not a lawyer, and I'm not even from the US (although I think I'm aware of some of the differences between German and US copyright law), I don't feel comfortable to give you more detailed advice. My best advice is still: Don't write your own license.
Developer of tyndur - community OS of Lowlevel (German)
User avatar
sortie
Member
Member
Posts: 931
Joined: Wed Mar 21, 2012 3:01 pm
Libera.chat IRC: sortie

Re: Help with Licensing

Post by sortie »

Hi DukeWellington,

Please consider whether the additional provisions here are trouble than they are worth. Additionally, if you haven't already, do check if there already exists a license with a similar intent.

What's the goal here? To make sure the program doesn't stay proprietary forever? Well, perhaps it's just better to embrace the concept of permissive licensing and just allow proprietary derivatives of the software. This can mitigated by strongly encouraging such proprietary derivatives upstream their changes (so the developers don't need to maintain their custom change sets against upstream changes). Alternatively, it might be more beneficial for society if you don't allow proprietary derivatives and use the GPL instead. I recommend you read some FSF rationale to understand the philosophical motivation for the GPL (even if you might disagree with it). It's worth mentioning that the GPL is more compatible with the free market than proprietary software as it encourages competition rather than monopolies - so don't think of the GPL as anti-commercial.

It's also worth considering how you would enforce your license. By the way you phrased things, it sounds like a company that doesn't want to release the source can do any number of things to delay the source release. Worse, 10 years is a long time in the technology business, the company is likely out of business by then or lost the source code. Indeed, these provisions would likely actually scare businesses away from your code as it is a non-standard license. Other licenses also have provisions for how to restore the rights granted by the license in case of a breach if the breach is corrected in a timely manner. There also are no patent provisions, which might end up being harmful to you depending on a number of things.

I recommend you base your license off the MIT license rather than the BSD license as the former more explicitly grants the rights, in particular the right to sell isn't even mentioned in the BSD license (but is implied?). It might even be better to base it off the Apache license or something with patent provisions if relevant. Finally, it's probably best to stick with an existing license rather than deal with all the additional effort involved with maintaining and enforcing a custom license. You should consult legal aid if you go ahead with a custom license.
ApproximateIdentity
Posts: 16
Joined: Sun Dec 08, 2013 4:14 pm

Re: Help with Licensing

Post by ApproximateIdentity »

I might be missing it, but it seems like you're not mentioning anything about derived works. It seems to me that I could probably satisfy your licence by simply releasing your source code whenever asked. That's probably not your idea...
User avatar
DukeWellington
Posts: 4
Joined: Wed Jan 08, 2014 2:10 am
Location: San Bruno, California

Re: Help with Licensing

Post by DukeWellington »

Thank you guys for the valuable feedback. :)
sortie wrote:Hi DukeWellington,

Please consider whether the additional provisions here are trouble than they are worth. Additionally, if you haven't already, do check if there already exists a license with a similar intent.

What's the goal here? To make sure the program doesn't stay proprietary forever? Well, perhaps it's just better to embrace the concept of permissive licensing and just allow proprietary derivatives of the software. This can mitigated by strongly encouraging such proprietary derivatives upstream their changes (so the developers don't need to maintain their custom change sets against upstream changes). Alternatively, it might be more beneficial for society if you don't allow proprietary derivatives and use the GPL instead. I recommend you read some FSF rationale to understand the philosophical motivation for the GPL (even if you might disagree with it). It's worth mentioning that the GPL is more compatible with the free market than proprietary software as it encourages competition rather than monopolies - so don't think of the GPL as anti-commercial.

It's also worth considering how you would enforce your license. By the way you phrased things, it sounds like a company that doesn't want to release the source can do any number of things to delay the source release. Worse, 10 years is a long time in the technology business, the company is likely out of business by then or lost the source code. Indeed, these provisions would likely actually scare businesses away from your code as it is a non-standard license. Other licenses also have provisions for how to restore the rights granted by the license in case of a breach if the breach is corrected in a timely manner. There also are no patent provisions, which might end up being harmful to you depending on a number of things.

I recommend you base your license off the MIT license rather than the BSD license as the former more explicitly grants the rights, in particular the right to sell isn't even mentioned in the BSD license (but is implied?). It might even be better to base it off the Apache license or something with patent provisions if relevant. Finally, it's probably best to stick with an existing license rather than deal with all the additional effort involved with maintaining and enforcing a custom license. You should consult legal aid if you go ahead with a custom license.
  • I'll go ahead and check whether or not there are licenses out there with my intent, but my assumption is that there won't be because I'm trying to allow businesses to continue to sell proprietary derivatives of my software up until they achieve as much market share with it as they can (after which it will hurt the open source community if they don't release the source code), but if they create a new more optimized, feature dense, or somehow better version of the software for proprietary usage that acts as a new product and lets them increase sales, then they're allowed to do so for the same conditions as the old version.
  • The goal is that the software be made available to the public at some point so that the open source community can take over the proprietary software and make something that lasts the test of time by maintaining and upgrading it even when the company has no incentive to. Mostly I'd be wishing to prevent companies from hoarding potentially valuable source code that is not in use and are only holding on to it to use as an asset for negotiation deals to get a good deal at the expense of the public.
  • The reason I do not wish to use the GPL outright is because it forces companies to release the source code not just for proprietary modifications if any binaries are released, but it forces companies to release source code for other works that link to any GPL code and license it as GPL software as well. I don't want to have to force these restrictions on business as it will make the businesses resort to reducing code quality by releasing unnecessary workarounds to bypass the legal restrictions, and code that links with GPL libraries and also with proprietary libraries that restrict source code release will mean that code will not legally be allowed to work together under the two licenses.
  • I understand that the FSF has good rationale over all their restrictions and conditions, but in the end what I care about is practical usage by everyone. GPL software has the potential to be replaced by proprietary versions made faster due to the help of commercial backing, and what I'm afraid of is code out there mimicking my software's functionality (but with enough modifications or workarounds to make it distinctively different), but restricted by a proprietary license that receives grade-A standards for optimization and new features by fully committed paid teams which would make my code obsolete and not that useful.
  • GPL may allow commercialization, but only through impractical means, like the RedHat Linux company releasing their operating system, but restricting package updates as a service to paid customers as the method of practical profitability. While GPL allows marketability, it only does so under impractical means.
  • Enforcement and patent provisions are an interesting thing for me too. I suppose I should've grabbed more elements from GPL, but I really wanted to conform to a small form factor of a license as to not ward off potential interest in my projects.
ApproximateIdentity wrote:I might be missing it, but it seems like you're not mentioning anything about derived works. It seems to me that I could probably satisfy your licence by simply releasing your source code whenever asked. That's probably not your idea...
Well, when I say the 'related source code' at the beginning of the clause, I mean that the related source code for that specific derivative of the binary form should be released. Although I do take any of your guys' confusion of interpretation to heart, as I understand that my wording may be interpreted in similar ways in varying courts, so I appreciate your feedback.
ApproximateIdentity
Posts: 16
Joined: Sun Dec 08, 2013 4:14 pm

Re: Help with Licensing

Post by ApproximateIdentity »

I'll add that I don't think it's a good idea to allow any "extensions" on the 10 year period. As written, I feel it would be pretty easy for a company to simply officially have old software for sale and pretend like there's a market for it to keep from ever having to release it. I would simply say that all source code must be released after 10 years and that's that.

I understand your intention, but I think the extension clause would likely be gamed into lasting forever.
User avatar
DukeWellington
Posts: 4
Joined: Wed Jan 08, 2014 2:10 am
Location: San Bruno, California

Re: Help with Licensing

Post by DukeWellington »

ApproximateIdentity wrote:I'll add that I don't think it's a good idea to allow any "extensions" on the 10 year period. As written, I feel it would be pretty easy for a company to simply officially have old software for sale and pretend like there's a market for it to keep from ever having to release it. I would simply say that all source code must be released after 10 years and that's that.

I understand your intention, but I think the extension clause would likely be gamed into lasting forever.
It would only be gamed if they actually made any redistributions, and not just made it available. Although I agree that it could be gamed if they just distributed it en-masse to all their employees or to other companies wholesale. But if the product was popular, thus potentially good in code quality, they'd have to do a lot of gaming in order to adequately game the system. I guess I should add a clause that forces companies to statistically monitor their redistributions and keep it public, but on the other hand it may hurt businesses if they're forced to keep their sales figures public.
ApproximateIdentity
Posts: 16
Joined: Sun Dec 08, 2013 4:14 pm

Re: Help with Licensing

Post by ApproximateIdentity »

I doubt very many people would keep their sales figures public like that. Hell I wouldn't even do it, if only because I wouldn't want another random transparency requirement to deal with as a business.

Your solutions to these problems seem to only become more complicated and less enticing (to potential licencees). In this case, for example, it seems like a 10 year provision could only possibly work if it were a guaranteed requirement with no way out.
Post Reply