ASP.Net MVC 3 Script license WTF?!

I had a few breaks between visits so I decided to re-write some of my old work in MVC 3 and Razor. I was going through all the included files in the Scripts folder when I came across Modernizr. I admit that I haven’t really looked into it that much since most of my client work involves CSS2 and XHTML, not CSS3 and HTML5. And the few times I needed HTML5 compatibility for <video> and such it was included as needed.

For the record, Modernizr is offered under a BSD/MIT license.

Imagine my surprise when, in Visual Web Developer Express 2010, I opened up modernizr-1.7.js to find this on top :

/*!
* Note: While Microsoft is not the author of this file, Microsoft is
* offering you a license subject to the terms of the Microsoft Software
* License Terms for Microsoft ASP.NET Model View Controller 3.
* Microsoft reserves all other rights. The notices below are provided
* for informational purposes only and are not the license terms under
* which Microsoft distributed this file.
*
* Modernizr v1.7
* http://www.modernizr.com
*
* Developed by:
* - Faruk Ates  http://farukat.es/
* - Paul Irish  http://paulirish.com/
*
* Copyright (c) 2009-2011
*/

After that, I looked into the rest of the included script files and I found the same in jQuery and jQuery UI as well and they are originally MIT/GPL . Now I’ve either been living under a rock (actually living “out-of-town” for a while) or this is a sudden inclusion not present in any pre-MVC3 projects because I don’t recall seeing anything like this before.

So Microsoft is re-licensing the original code because it is included with an MVC 3 project template? Can they even do that even though the files are included in their project template (what about consent form the original authors)? Is this only because it was included in the template or does it also apply when I use the original code instead of the provided copies as long as I’m still using it with other Microsoft provided script files?

I really don’t like seeing surprises like this because it’s not a technical problem; It’s a legalese problem and I really hate to have to choose code based on licenses. I’m now tempted to simply delete the entire contents of the Scripts folder and download everything from scratch.

Let’s build a free “indiscriminate collection of information”

I.E. What Wikipedia is not

Why do it?

Because if scientists are looking for a unified theory of everything, why don’t we create a compendium of all knowledge?

Besides this, Wikipedia has seen as string of deleted articles (of disputable noteworthiness) which are summarily overriden if restored by admins or other members with greater standing. Anonymous contributions, while still significant, aren’t valued as much. This wasn’t the case just a few years ago, where a significant portion of all edits came from anonymous contributors. Better yet, those were the days where individuals were willing to contribute without personal recognition, save for an IP address in the article history.

Ironically, Wikipedia’s own popularity is making anonymous contributions, it’s original backbone, cumbersome. This is tragic, since I’ve only bothered to login to Wikipedia just a few times. And if I’m not doing it, I know legions of others must be the same.

By the same token of what Wikipedia is, if it’s not a “Community”, Democracy, bureaucracy, battleground, anarchy nor my web host, then what it is, isn’t nearly good enough.

Wikipedia is not “free”

The collection commands a high price as the entire project is not knowledge for the sake of knowledge. It’s knowledge for the sake of recognition and self praise, often, at the cost of anonymous contributors.

While I can’t fault Wikipedia alone for this, by contributing and encouraging contribution to this project, we have, perhaps irrevocably, bound many aspects of knowledge to an intellectual prison.

Knowledge, Information, Data or what ever else you want to call it, isn’t “free” until you have unbound the hands of the user, contributor and distributor. Your opinion of what entails “freedom” does not diminish the true definition of the word.

Wikipedia is a religion

People obsess over its nuances as to its place in references. It contains innumerable contradictions (a byproduct of many cooks spoiling the broth etc…), theories as to its worth in a free (as in to criticism as well as praise) society. While these by themselves wouldn’t purely constitute religion, the arrogance of certain admins as to what knowledge is significant (especially when it comes to pet subjects) is almost insufferable.

And it has become ridiculous.

There are many such instances where the notability of the subject has not changed at all since its inception, only the number of instances it is used which shouldn’t have been a measure of notability as, by Wikipedia’s own admission, notability isn’t a function of popularity.

The article on bbPress, for example, was deleted as not being notable. Yet here it is now, created and contributed to. And I wouldn’t be surprised if it’s deleted and recreated several times more.

Behold the non-Anarchy, non-Bureaucratic and non-Democratic process at work.

Further proof that it’s a religion: Wikipedia allows non-sourced content all the time. Yet only deletes those articles which draw attention. Like the priest who swats away legitimate criticism for fear of debasing the whole premise, admins and plenty of users are more than willing to stick a banner questioning notability and walk away.

“Being bold” may result in countless reverts. Since “consensus through discussion” is double speak for a plutocracy that ridicules dissent by removing knowledge wholesale.

Looks like religion to me.

What Wikipedia could have been…

An archive of knowledge that should belong to none; that should simply exist as knowledge. The accumulated net worth of a species.

If each person contributed everything they know about any chosen topic to the universal collection of knowledge, the benefit for humanity would be almost incalculable. But let’s not lament on that now.

Let’s begin now– it’s not too late — to pick up the mantle to a truly free fountain of knowledge. An archive of everything.

There is an origin to a project that could be very promising in this vein.

This software is n-tuple licensed

“Due to the number of libraries with varying licences used in the creation of this software, it is now licensed under all licenses known to ensure maximum compatibility and maximum seizure proclivity.”

So if I’m using the jQuery library, which is GPL/MIT licensed (depending on which is a better fit) and another piece of software (say Apache licensed), I can select the MIT license to distribute it with because they are more compatible.

Unless of course, I’m starting with a GPL licensed library first (e.g. ExtJS which is technically GPL v3), but I still won’t be able to distribute any modifications to the core under the ISC, because that may be too “free”.

But I won’t be able to distribute under the ISC because the it’s most certainly incompatible with the GPL (in all three thousand variations). 

Although, according to the ExtJS license explanation…

We want people building extensions, developer toolkits and frameworks, language packs and themes for Ext libraries to be able to publicly distribute them under less restrictive license terms despite the fact that version 3 of the GNU General Public License (the “GPL”) may require them to be licensed under the GPL.

This Exception does not grant usage or distribution of any Ext development library under a license other the GPL and cannot be applied to end-user applications. For applications, please refer to the Open Source License Exception for Applications

That’s great! I can at least license the rest of the software under the ISC, but leave the ExtJS portion under GPL.

But the list of execeptions…

Open Source License List

License name Version(s)/Copyright Date
Academic Free License 2.0
Apache Software License 2.0
Apple Public Source License 2.0
Artistic license From Perl 5.8.0
BSD license “July 22 1999″
Common Development and Distribution License (CDDL) 1.0
Common Public License 1.0
Eclipse Public License 1.0
Educational Community License 2.0
GNU General Public License (GPL) 2.0
GNU Library or “Lesser” General Public License (LGPL) 3.0
Jabber Open Source License 1.0
MIT License (As listed in file MIT-License.txt) -
Mozilla Public License (MPL) 1.0/1.1
Open Software License 2.0
OpenSSL license (with original SSLeay license) “2003” (“1998″)
PHP License 3.0
Python license (CNRI Python License) -
Python Software Foundation License 2.1.1
Sleepycat License “1999”
University of Illinois/NCSA Open Source License -
W3C License “2001”
X11 License “2001”
Zlib/libpng License -
Zope Public License 2.0

…Doesn’t include the ISC, which is a more permissive form of the 1999 BSD which is identical to the current FreeBSD license.

Which means…

I’ll have to build the core separately and license it under the ISC.
Build the control panels seperately and license it MIT.
Add the interface components (if ExtJS) and license those GPL v39773232.
And lastly, put “Everything else” in the Public Domain.

Does anyone still not get that multiple licenses on the same project only allow further fragmentation in the Open Source community?

I’ll leave you to sort this whole thing out. I’ll be busy vacuuming my brains off the floor after they melted out of my ears…

P.S.

I think I finally understand what Shannon was talking about

GPL vs BSD

Here we go again!!

I know I will probably stir up the the sediment all over again, but this has to be clarified. If anything because this came up at work yet again. And It’s quite frightful at how ill informed people are on these licenses.

(This will be long and tedious, so feel free to browse away now)

Let’s clarify a few important points right here…

The GPL is not about “freedom”

In fact, the word “freedom” doesn’t even belong in there. The problem is that the GPL, and indeed many software projects that use it, has been turned a religion. And like all religions, it contradicts itself in sentiment… repeatedly.

I don’t have any problem with someone using the GPL in their work, and I’ve been happy using GPL’d products. But I will not treat this license as something it isn’t. That is, a doctrine on freedoms. A license is a license, and by definition all licenses carry restrictions. The GPL carries a particularly ridiculous combination of doctrine, philosphy, and law. Sounds like religion to me…

“The licenses for most software and other practical works are designed to take away your freedom to share and change the works”

The GPL does exactly the same, in that developers have to release every bit of derived or modified code under GPL or face legal action. That is a restriction placed upon the developers and distributors.

“To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.”

 
So you’re forcing the code to be free because you recieved it free?
You’re denying some of the developers’ rights to give more rights to users?
That’s a lot like “peace… through superior firepower”.

Where’s the developers’ freedom to not distribute the code when distributing the product? Or does that get swept under user rights? I didn’t realise there were different standards for developers and users when it came to “rights”.

The freedom to distribute code or programs is, and has always been, a choice. Much like selling cake vs selling the cake with the recipie. A baker may choose to do both or only one, however, the customer is not forced to do the same by eating the cake thereby entering into a binding contract with the baker. If the customers decide to make cake using improvements to the same recipie, then they’re automatically forced to sell it with the improvements in the recipie?

That’s what the GPL really is. A binding contract : That is a set of restrictions on those who use, develop or modify content licensed under it. It is not now or has ever been a formula on “freedom”. The GPL is not the definition of “generocity” that is giving without expecting any return. I hope all you GPL advocates would stop treating it as such and call it what it is. A license and a binding contract. Nothing more.

If you try to pass it off as anything other than that, then you have problems.

I’m well aware of the motivation of using the GPL and, in theory, it is a noble cause. You’re trying to ensure that quality code remains free and any quality modifications are returned to the community without becoming invisible. While distributing products for free or profit, you also want to ensure the sources are available to the community.
But let’s not call this “freedom”. Free code is just that… free code.

If someone modifies some code and chooses not to distirbute it for free or profit, it still becomes invisible to the community. So this is only for those who choose to distribute their work anyway.

The BSD is not about “freedom” either

It’s about not getting involved in what the end user chooses to do with their copy of the sources and protecting the developers from harm. It’s none of their duty nor concern to police the actions of users.

Specifically, the ISC License…
The only usage restrictions are the disclaimer and copyright.

Copyright (c) Year(s), Company or Person’s Name

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

That’s it!
That’s the whole license.

Notice anything about “freedom” or philosophical ramblings?
Notice anything other than what the license is about and the criteria?
NO!

Unlike the GPL, the BSD license doesn’t pretend to be something it isn’t and users of BSD license are well aware that, like all licenses, it is a binding contract between developers, distributors, and users. They have no delusions about how much “freedom” both licenses afford however the BSD still being a license it still has usage restrictions. Namely the copyright and disclaimer.

Developers using the BSD license don’t care nor want to police the actions of users once the source is copied. They’re not interested in “freedom” through coersion, which is actually slavery. They just want to make sure their products and sources are available from them regardless of need or future availability. If the users want to share their own modifications, then more power to them. But they’ll be damned if it’s by force.

—————

That said, I don’t use the BSD license in examples I’ve posted here. I would have placed them in the public domain if not for one indemnity clause. That’s the only reason every single line of code/HTML/CSS I’ve posted on this blog isn’t in the public domain.

I don’t want to get in trouble when someone using my work didn’t have things go over so well. Except for that, everyone is free to do whatever they please with it. Use it in personal  or professional projects, buy, sell, modify, reverse engineer, give me credit or not give me credit… whatever! I pretty much wash my hands of any responsibility after it’s posted. I don’t expect anything in return.

I’m not forcing anyone who uses any of my examples to treat their work as I do mine. In fact, I’m not forcing anyone to do anything at all with it or while using it. With the exception of the indemnity clause, there is no “law” involved in the source.

I only require anyone using my examples to agree to the following disclaimer :
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

That’s it! That’s the sum total of the “restrictions” I place on anyone using my examples. Keen observers will note, it’s identical to the disclaimer in the ISC license as I want to make sure that I don’t tread around on someone else’s needs while protecting myself.

In that aspect, it’s the closest I could come to placing everything in the public domain.

Public Domain : That’s freedom, folks.

A utopia by choice is heaven. A utopia by force is hell.