Why does uPortal use Apache 2 license?


I’d be interested to hear what licenses other projects were using, and why?

What license does uPortal use?

The easy part of the question: uPortal is using Apache License 2.0.

Why did uPortal license away from New BSD, its original license?

The hard part of the question: why?

In the beginning (in the JA-SIG, or JASIG, or Jasig days), uPortal used the BSD 3-Clause aka New BSD license.

In the run up to merging with the Sakai Foundation to become the Apereo Foundation, Jasig adopted the position that New BSD is not good enough, which is now Apereo’s documented position.

This license simply does not provide enough protection for either contributors or adopters to really understand the terms under which the software is being shared.

(I don’t agree with this statement. New BSD meets the Open Source Definition, and it thoroughly disclaims warranties and liabilities. Good enough is good enough. I’d have no qualms about contributing to or adopting a New BSD licensed software product.)

GNU says this about 3-clause BSD:

The modified BSD license is not bad, as lax permissive licenses go, though the Apache 2.0 license is preferable. … the Apache 2.0 license is better for substantial programs, since it prevents patent treachery.

Maybe how badly you want to re-license away from New BSD hinges on how worried you are about patent treachery.

Some people worried. So Jasig required uPortal to re-license.

So that’s why not New BSD.

Why did uPortal re-license to Apache2, its current license?

I don’t recall just how Apache2 was selected, who did the selecting, what alternatives were considered. I don’t even recall if this is something I once knew and have forgotten.

A 2008 document in the Jasig wiki, Open Source Licensing, (by Unicon / John Lewis) recommends Apache2 for the non-copyleft case and might have been influential.

Guessing at what might have happened:

Do what the Apache Software Foundation does.

Apache2 is widely adopted, widely understood, well documented, the practices around it are well documented and honed by the Apache Software Foundation. It’s not just a viable license, it’s a viable license ecosystem.

Nobody has to apologize for adopting Apache2, it’s one of those default, acceptable, generally recognized as safe licenses?

ECLv2 would also be fine, it’s just less mainstream. uPortal’s adopters and communities weren’t already worked up about Apache2’s patent language so there wasn’t enough reason to start getting worked up about that.

- Andrew Petro

wearing individual contributor hat.

The views expressed herein are not necessarily those of Apereo, nor of uPortal, nor of my employer, nor of…

Related Posts

CAS 6.1.0 RC4 Feature Release

...in which I present an overview of CAS 6.1.0 RC4 release.

Apereo CAS - Multifactor Provider Selection

Learn how to configure CAS to integrate with and use multiple multifactor providers at the same time. This post also reveals a few super secret and yet open-source strategies one may use to select appropriate providers for authentication attempts, whether automatically or based on a menu.

Apereo CAS - Dockerized Hazelcast Deployments

Learn how to run CAS backed by a Hazelcast cluster in Docker containers and take advantage of the Hazelcast management center to monitor and observer cluster members.

Apereo CAS - Configuration Security w/ Jasypt

Learn how to secure CAS configuration settings and properties with Jasypt.

CAS 6.1.0 RC3 Feature Release

...in which I present an overview of CAS 6.1.0 RC3 release.

Apereo CAS - Webflow Decorations

Learn how you may decorate the Apereo CAS login webflow to inject data pieces and objects into the processing engine for display purposes, peace on earth and prosperity of all mankind, etc. Mainly, etc.

Apereo CAS - SAML2 Metadata Query Protocol

Learn how you may configure Apereo CAS to fetch and validate SAML2 metadata for service providers from InCommon's MDQ server using the metadata query protocol.

Saving Time is Time Consuming

May you live in the best of times. May you live in the startup times.

Apereo CAS 6.1.x - Credential Caching & Proxy AuthN

Learn how you may configure Apereo CAS to capture and cache the credential's password and the proxy-granting ticket in proxy authentication scenarios, pass them along to applications as regular attributes/claims. We will also be reviewing a handful of attribute release strategies that specifically affect authentication attributes, conveying metadata about the authentication event itself.

Apereo CAS 6.1.x - Attribute Repositories w/ Person Directory

An overview of CAS attribute repositories and strategies on how to fetch attributes from a variety of sources in addition to the authentication source, merge and combine attributes from said sources to ultimately release them to applications with a fair bit of caching.