License Agreement discussion

If you are currently developing portable freeware or planning to do so, use this forum to discuss technical implementation, seek out like-minded developers for partnership, or solicit interested users for beta testing.
Post Reply
Message
Author
User avatar
guinness
Posts: 4118
Joined: Mon Aug 27, 2007 2:00 am
Contact:

License Agreement discussion

#1 Post by guinness »

So, for those wanting to develop an application in the Freeware/OpenSource market it can sometimes be daunting when it comes to 'your creation not being taken granted for' and 'not being sued, because your software mistakenly broke the end users computer!' But, what EULA, License or advice is there for those wishing to start out?

This is where I open up the questions and scenarios to TPFC community. Could you help with the best License/EULA? I would like to know what is the best way to protect your product and your rights as a developer?

Scenario One: You wish to create a Freeware application that can be distributed with all of the original contents and can only be used in a Non-Commercial environment.
Distribute (with exact contents): Yes
Commercial/Non-Commercial: Non-Commercial only
Freeware/OpenSource: Freeware

Scenario Two: You wish to create a Freeware application that can't be distributed and can only be used in a Non-Commercial environment.
Distribute (with exact contents): No
Commercial/Non-Commercial: Non-Commercial only
Freeware/OpenSource: Freeware

Scenario Three: You wish to create an OpenSource application that can be distributed and can only be used in both a Non-Commercial & Commercial environment.
Distribute (with exact contents): Yes
Commercial/Non-Commercial: Both
Freeware/OpenSource: Open Source

List of Freeware Licenses [Wikipedia]

User avatar
guinness
Posts: 4118
Joined: Mon Aug 27, 2007 2:00 am
Contact:

Re: License Agreement discussion

#2 Post by guinness »

I was half expecting the authors of KidSafe and Kitchen Sink to jump in here :) especially WebFork and his acquired knowledge.

User avatar
webfork
Posts: 10821
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: License Agreement discussion

#3 Post by webfork »

Update on this post: don't use the CC license framework for software.

---

Thanks for the recommendation guinness. Disclaimer: IANAL.

Option: Write your own

Of course you can write your own EULA and have the user agree to it before they use the software, but their enforceability in a court of law is sort of a dice roll. Get a lawyer if you really want this to work.


Non-commercial freeware license

I strongly recommend the Creative Commons license as its a great project and extremely versitile across various kinds of media, putting the control back in authors' hands about how they want their work utilized.

One of the problems I've found with the Creative Commons license is that a "commercial environment" or "for profit" enterprise is difficult to define. The only real point behind this is if there is a gross violation (100,000 machines running your software) you have some leverage. More importantly, non-lawyers will actually pay attention to this license.


No-distribute, non-commercial freeware license

First, please do NOT create a non-distribution licensed software. If your web site goes offline or the company hosting your files goes bankrupt and you get hit by a bus, suddenly your software is no longer legally usable by anyone. That drives me crazy. A lot of users call this "abandonware," but its legal status is tenuous at best and given the current state of intellectual property, its very likely to sit unused for the rest of time.

If you have to, I would more or less copy-and-paste the license Microsoft Sysinternals uses. Also, provide a date 5-10 years from now at which the software will transfer to public domain or something similar.


Open-Source exact-copy-only redistribution

Depends on what you want done with derivations of the original source code. It seems like Apple's Public Source License most closely resembles this. If the original source code is only provided for security purposes and is otherwise completely off-limits, Microsoft Reference Source License (Ms-RSL) is probably the closest.
Last edited by webfork on Sat Dec 16, 2017 10:17 am, edited 1 time in total.

computerfreaker
Posts: 83
Joined: Sat Feb 13, 2010 9:46 pm

Re: License Agreement discussion

#4 Post by computerfreaker »

guinness wrote:I was half expecting the authors of KidSafe and Kitchen Sink to jump in here :) especially WebFork and his acquired knowledge.
Thanks for the recommendation!

Disclaimer: like webfork, I'm not a lawyer, and nothing I say can be interpreted as legal advice. I also can't be held accountable if you use one of the licenses I mention and get in trouble with it/because of it.

Now for the good stuff. :)

For any license, I think the most important thing is to read it - every word - and thoroughly understand it before you begin using it. If you don't, there will invariably be something important you miss which will come back to bite you later. Remember Murphy's Law.

GPL
For now, I'm using the GNU Public License, version 2, for all my stuff because it allows others to freely copy & build on my work without being allowed to charge for it. I happen to believe in free software, and I don't want others to be able to charge for one of my apps because they added some new features.
The GPL is also important for covering yourself legally - by explicitly stating "NO WARRANTY", even if somebody blows up their computer with your app you can't be held responsible for it. For many apps, especially those that do things deep in the computer's core (like KidSafe), this "no warranty" clause can be very important.
GPL's greatest strength - openness - it also its biggest problem, though. Because all code released under the GPL must remain open-source, those who want to use GPL code in a commercial or closed-source freeware app have to look elsewhere. This is probably the biggest complaint people have about the GPL.
Note that you may wish to upgrade to GPLv3; it's got some important upgrades from GPLv2, including a clause forbidding "tivoization", or a hardware manufacturer locking certain app features because that's what the manufacturer wants. Modifying the software causes the hardware to malfunction/shut down, because that's what the hardware manufacturer wants.
To quote http://www.gnu.org/licenses/rms-why-gplv3.html,
It [GPLv3] doesn't forbid DRM, or any kind of feature. It places no limits on the substantive functionality you can add to a program, or remove from it. Rather, it makes sure that you are just as free to remove nasty features as the distributor of your copy was to add them. Tivoization is the way they deny you that freedom; to protect your freedom, GPLv3 forbids tivoization.
zlib
The zlib license could perhaps be one of the best licenses for everyone. For devs, there's a "no warranty" clause - you're legally protected. For devs who want to keep their code closed-source, that's acceptable. For devs who want to fork existing zlib-license projects/use code in a closed-source freeware project/use code in a commercial project, that's acceptable too. For users, there's no complex legalese, and the entire license is only a few paragraphs long.

Creative Commons
As an OSS advocate, I personally find this license to be a massive pain in the backside; for others, though, it could be perfect.
Like Windows Vista, this comes with a plethora of "sub-licenses"; each is pretty easy to understand, but the risks & rewards are very different. Warning: if you're easily bored by legalese and/or a plethora of options, skip this section or it'll probably put you to sleep. ;)
  • Attribution (cc by): Others can do what they like with your code, including putting it into a closed-source or commercial app, as long as they give you credit.
  • Attribution Share Alike (cc by-sa): Others can do what they like with your code, including putting it into a closed-source or commercial app, as long as they give you credit and license their app under the same terms as yours. For many, this could be a deal-breaker. It's bitten me a couple of times already.
  • Attribution No Derivatives (cc by-nd): Frequently used for artwork; this is a massive pain in the backside, although Attribution Non-Commercial No Derivatives (see below) makes this look very attractive by comparison.
    Others can only redistribute your work (both commercially and non-commercially) - they can't modify it - and they must give full credit to you.
  • Attribution Non-Commercial (cc by-nc): Others can redistribute your work, under their own terms, as long as their redistribution is non-commercial. Most freeware devs won't care, since their work is non-commercial anyway, but this is still pretty frustrating for commercial developers.
  • Attribution Non-Commercial Share Alike (cc by-nc-sa): Others can modify & redistribute your work, and others can modify & redistribute those redistributions, and so on. The catch: none of the derivative works can be commercial, and they all have to carry your original license terms.
  • Attribution Non-Commercial No Derivatives (cc by-nc-nd): Truly a royal pain in the backside; if you see this, run like crazy. If you use this... well, it's your right. Just expect some complaints.
    This sublicense is all about "don't": people can't modify your work and can't use it in commercial apps. They also have to link back to you. About the only thing people can do is redistribute your work, but it has to be unmodified.
    (This license is sometimes known as the "free advertising" license - with good reason.)

There are lots of other licenses & license variants, but I'm pretty sure I got the big players; if I missed one, please let me know & I'll cover it. (Sorry, it's late here and my brain is starting to reach Hibernate mode)

User avatar
guinness
Posts: 4118
Joined: Mon Aug 27, 2007 2:00 am
Contact:

Re: License Agreement discussion

#5 Post by guinness »

Thanks to both of you thats been an eye opener. I now have an idea, I will check back soon when I have a clear decision.

computerfreaker
Posts: 83
Joined: Sat Feb 13, 2010 9:46 pm

Re: License Agreement discussion

#6 Post by computerfreaker »

guinness wrote:Thanks to both of you thats been an eye opener. I now have an idea, I will check back soon when I have a clear decision.
There's one important thing I should have mentioned in my earlier post but forgot to; hopefully that doesn't cause you trouble when you're making your decision.

One important thing you need to take into account if you've got an app that's powerful enough to mess up a system, or any other app that could be construed as malicious, you'd better have A. a very good legal team or B. an open-source license.
I got to see this firsthand with KidSafe - several people asked how various functions worked, and a couple of people came right out and said "This can be abused." The question-asking was especially bad early in KidSafe's development, before it had anti-abuse features and a good reputation; at times like that, full disclosure = full protection.
For apps that have any potential to be abused, I strongly recommend the GPL - because it forces everyone to redistribute the source code, life gets legally harder for anybody trying to abuse your app by releasing a hacked version of it.

I don't want to make anybody paranoid, just be careful. "See ya in court" has gotten alarmingly like a knee-jerk reaction for a lot of people, and for freeware/OSS developers without a big legal team & a big cashpile, that could be a nightmare.

User avatar
webfork
Posts: 10821
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: License Agreement discussion

#7 Post by webfork »

> I don't want to make anybody paranoid, just be careful. "See ya in court" has gotten alarmingly like a knee-jerk reaction for a lot of people, and for freeware/OSS developers without a big legal team & a big cashpile, that could be a nightmare.

I think a strong disclaimer of liability is probably more than enough as I haven't heard of any freeware developers getting sued. However, computerfreaker is right that
  • 1. If you pick an open license, there are large organizations who will be interested in representing you in court because they are using the same license

    2. The likelyhood that you will lose when your operation is totally transparent is extremely low.
If you are *really* afraid of litigation, never bring your software out of the "beta" phase. Make it forever experimental testing-only software.

Post Reply