Apache license on JS libraries

#1

I've never use an Apache licensed javascript library before so bear
with this question, and I couldn't find clear answers by searching, so
I figured I ask in the forum first.

Since the Apache License requires redistributing the License notice
with the software, how do I comply with this with autobahn.js in the
browser? This seems pretty odd to me.

Thanks,

-Nick

0 Likes

#2

First, thanks for taking care! We need to look into this. The Apache
license was chosen since it's the license for the Python code as
well, makes sense at least there. Rest assured: we find a workable, pragmatic solution for JS also. Should that require a license change (like i.e. to MIT/GPL duo like jQuery), so be it. I'll report as soon is we have checked ..

\Tobias

···

Am 06.03.2012 19:55, schrieb Nick:

I've never use an Apache licensed javascript library before so bear
with this question, and I couldn't find clear answers by searching, so
I figured I ask in the forum first.

Since the Apache License requires redistributing the License notice
with the software, how do I comply with this with autobahn.js in the
browser? This seems pretty odd to me.

Thanks,

-Nick

0 Likes

#3

Thanks for the response Tobias,

I emailed the Apache foundation to clarify this and received the
response below which does not answer the question as to whether
visiting a website and downloading a javascript file constitutes
redistribution. Ted Husted seems to imply the intent of the license
is for wholesale source redistribution, but does not say serving js
from your server is not redistribution:

Thank you for your inquiry.

The notification terms of the Apache License are meant to apply to
distribution of the code to another party. If someone were
distributing the source code for an entire website code to a third
party, who might then install the same website somewhere else, then
redistribution terms would certainly apply.

We do not provide legal advice relating to your use of Apache
software. We do suggest that you contact legal counsel in your
jurisdiction if you have questions, since the use or distribution of
any copyrighted software can have important implications for you and
your business.

If you have any other concerns, please feel free to contact the Legal
Discussion mailing list.

* http://apache.org/foundation/mailinglists.html#foundation-legal

All software and documentation from the Apache Software Foundation is
distributed to the public at no charge under the terms of the Apache
License 2.0. That license, and the FAQ that describes the license in
context, are available at http://www.apache.org/licenses/.

Hope that helps, Ted Husted.
Member Emeritus, Apache Software Foundation.
* http://www.apache.org/foundation/preFAQ.html
* http://apache.org/foundation/faq.html
* http://www.apache.org/foundation/licence-FAQ.html

···

On Tue, Mar 6, 2012 at 3:24 PM, Conway, Nicholas J <Nick....@wyss.harvard.edu> wrote:

If I include an Apache licensed javascript library on a public website
how do I satisfy Item 4, "Redistribution" for whenever someone visits
the site they will get a copy of the javascript source necessarily,
but Item 4 says I need to distribute a copy of the entire LICENSE and
the NOTICE file with it?

I read the phrase of from 4.4 pertaining to the NOTICE, "or within a
display generated by the Derivative Works, if and wherever such
third-party notices normally appear." meaning that this is optional
due to inclusion of the word "if", but I could include the NOTICE in
whole on a hyperlinked page? But what about the LICENSE?

-Nick

On Tue, Mar 6, 2012 at 9:35 PM, Tobias Oberstein <tobias.o...@gmail.com> wrote:

First, thanks for taking care! We need to look into this. The Apache
license was chosen since it's the license for the Python code as
well, makes sense at least there. Rest assured: we find a workable,
pragmatic solution for JS also. Should that require a license change (like
i.e. to MIT/GPL duo like jQuery), so be it. I'll report as soon is we have
checked ..

\Tobias

Am 06.03.2012 19:55, schrieb Nick:

I've never use an Apache licensed javascript library before so bear
with this question, and I couldn't find clear answers by searching, so
I figured I ask in the forum first.

Since the Apache License requires redistributing the License notice
with the software, how do I comply with this with autobahn.js in the
browser? This seems pretty odd to me.

Thanks,

-Nick

0 Likes

#4

Hello Nick,

Alex did some research into the topic. Full text below.

In summary:

  - we have no NOTICE file in Autobahn (thus, nothing to distribute here)

  - I have shortened the license header in the Autobahn JS lib:

https://github.com/oberstet/Autobahn/commit/fe91b32acb5fcaf5aa93f9e390c4434574a46b66

  - we are fine as long as you leave that header intact in the JS file

  - the header contains a link to the Apache license, and for us
    this is enough to fulfill the requirement (should there be one)
    of "distribution of license"

  - no need to provide a separate download, link or a rendering of
    the license in the UI of your browser app

  - disclaimer (I need to do that): above is not a legally binding
    interpretation of the Apache license

I hope above is sufficient for you,
Cheers,
\Tobias

Quoted from Alex's research:

"""
We cannot give a binding interpretation of the Apache license.
With that caveat in mind, here is what we think is the case regarding using Apache-licensed Javascript libraries that are downloaded to visitors' browsers:

Regarding the redistribution, the Apache foundation stated:
"The notification terms of the Apache License are meant to apply to distribution of the code to another party. If someone were distributing the source code for an entire website code to a third party, who might then install the same website somewhere else, then redistribution terms would certainly apply."
This to me implies that client-side downloads of javascript which occurs during the use of the website is not counted as redistribution.
Without an express statement to that effect, I would not count on it, however. After all, the entire Javascript is downloaded.

So it is best to fulfill the obligations from article 4 of the license that come with redistribution.
4.2, 4.3 and 4.4 really aren't problematic in the context of using autobahn.js:
A notice of changes to the file needs to be prominent, but not verbose: any short notice at the head of the file suffices. (4.2)
The notices we provide within the javascript file itself are minimal, and do not present any significant overhead. (4.3)
There is no separate notice file, so anything in 4.4 is moot.

So what it comes down to in the end is just 4.1.: the copy of the Apache license.
While on the face of it this seems to be unambigous, I really think we need to take into consideration both the intention of provision 4.1 and the facts of modern life:
4.1 is intended to ensure access to the license. For Javascript delivered as part of a webpage, we can safely assume the presence of an internet connection, so access to a copy of the Apache license is not a problem if there is a link to it.
The Apache foundation itself, in its sample notice (http://www.apache.org/licenses/LICENSE-2.0.html, bottom of the page), only gives a link, and does not make any mention of something to the tune of "a copy of this license is provided with this work". This notice is intended for any kind of work, not just for internet-connected ones.
This fits well with current practices on the web (as e.g. summarized in this article on the entire issue: http://www.iusmentis.com/computerprograms/opensourcesoftware/license-notices-web-applications/): people just provide a link, not the license itself.

To sum it up: If it is redistrubution, then a header in the javascript file stating that the javascript is under the Apache license and linking to the license should be enough. There really isn't any need to distribute the license in full with the file.

Alexander G�dde
Intellectual Property Professional

+49(0)9131 940 3575
+49(0)176 81 032 874
alexande...@tavendo.de
skype: alexander.goedde

blog: Free Your Data
twitter: @FYDblog
"""

···

Am 07.03.2012 14:40, schrieb :

Thanks for the response Tobias,

I emailed the Apache foundation to clarify this and received the
response below which does not answer the question as to whether
visiting a website and downloading a javascript file constitutes
redistribution. Ted Husted seems to imply the intent of the license
is for wholesale source redistribution, but does not say serving js
from your server is not redistribution:

Thank you for your inquiry.

The notification terms of the Apache License are meant to apply to
distribution of the code to another party. If someone were
distributing the source code for an entire website code to a third
party, who might then install the same website somewhere else, then
redistribution terms would certainly apply.

We do not provide legal advice relating to your use of Apache
software. We do suggest that you contact legal counsel in your
jurisdiction if you have questions, since the use or distribution of
any copyrighted software can have important implications for you and
your business.

If you have any other concerns, please feel free to contact the Legal
Discussion mailing list.

  * http://apache.org/foundation/mailinglists.html#foundation-legal

All software and documentation from the Apache Software Foundation is
distributed to the public at no charge under the terms of the Apache
License 2.0. That license, and the FAQ that describes the license in
context, are available at http://www.apache.org/licenses/.

Hope that helps, Ted Husted.
Member Emeritus, Apache Software Foundation.
  * http://www.apache.org/foundation/preFAQ.html
  * http://apache.org/foundation/faq.html
  * http://www.apache.org/foundation/licence-FAQ.html

On Tue, Mar 6, 2012 at 3:24 PM, Conway, Nicholas J > <Nick....@wyss.harvard.edu> wrote:

If I include an Apache licensed javascript library on a public website
how do I satisfy Item 4, "Redistribution" for whenever someone visits
the site they will get a copy of the javascript source necessarily,
but Item 4 says I need to distribute a copy of the entire LICENSE and
the NOTICE file with it?

I read the phrase of from 4.4 pertaining to the NOTICE, "or within a
display generated by the Derivative Works, if and wherever such
third-party notices normally appear." meaning that this is optional
due to inclusion of the word "if", but I could include the NOTICE in
whole on a hyperlinked page? But what about the LICENSE?

-Nick

On Tue, Mar 6, 2012 at 9:35 PM, Tobias Oberstein > <tobias.o...@gmail.com> wrote:

First, thanks for taking care! We need to look into this. The Apache
license was chosen since it's the license for the Python code as
well, makes sense at least there. Rest assured: we find a workable,
pragmatic solution for JS also. Should that require a license change (like
i.e. to MIT/GPL duo like jQuery), so be it. I'll report as soon is we have
checked ..

\Tobias

Am 06.03.2012 19:55, schrieb Nick:

I've never use an Apache licensed javascript library before so bear
with this question, and I couldn't find clear answers by searching, so
I figured I ask in the forum first.

Since the Apache License requires redistributing the License notice
with the software, how do I comply with this with autobahn.js in the
browser? This seems pretty odd to me.

Thanks,

-Nick

0 Likes

#5

This is great, I completely agree with Alex.

As far as the NOTICE file goes, I saw the file in 'Autobahn / lib /
python / NOTICE' and so I will assume that the javascript library is
considered a separate project from the python library despite being in
the same git repository.

Autobahn is a great project and I've had a great time using it so far,
and thanks Tobias for helping me make sure I'm in compliance.

Thanks a lot,

-Nick

···

On Thu, Mar 8, 2012 at 7:40 AM, Tobias Oberstein <tobias.o...@gmail.com> wrote:

Hello Nick,

Alex did some research into the topic. Full text below.

In summary:

- we have no NOTICE file in Autobahn (thus, nothing to distribute here)

- I have shortened the license header in the Autobahn JS lib:

https://github.com/oberstet/Autobahn/commit/fe91b32acb5fcaf5aa93f9e390c4434574a46b66

- we are fine as long as you leave that header intact in the JS file

- the header contains a link to the Apache license, and for us
this is enough to fulfill the requirement (should there be one)
of "distribution of license"

- no need to provide a separate download, link or a rendering of
the license in the UI of your browser app

- disclaimer (I need to do that): above is not a legally binding
interpretation of the Apache license

I hope above is sufficient for you,
Cheers,
\Tobias

Quoted from Alex's research:

"""
We cannot give a binding interpretation of the Apache license.
With that caveat in mind, here is what we think is the case regarding using
Apache-licensed Javascript libraries that are downloaded to visitors'
browsers:

Regarding the redistribution, the Apache foundation stated:

"The notification terms of the Apache License are meant to apply to
distribution of the code to another party. If someone were distributing the
source code for an entire website code to a third party, who might then
install the same website somewhere else, then redistribution terms would
certainly apply."
This to me implies that client-side downloads of javascript which occurs
during the use of the website is not counted as redistribution.
Without an express statement to that effect, I would not count on it,
however. After all, the entire Javascript is downloaded.

So it is best to fulfill the obligations from article 4 of the license that
come with redistribution.
4.2, 4.3 and 4.4 really aren't problematic in the context of using
autobahn.js:
A notice of changes to the file needs to be prominent, but not verbose: any
short notice at the head of the file suffices. (4.2)
The notices we provide within the javascript file itself are minimal, and do
not present any significant overhead. (4.3)
There is no separate notice file, so anything in 4.4 is moot.

So what it comes down to in the end is just 4.1.: the copy of the Apache
license.
While on the face of it this seems to be unambigous, I really think we need
to take into consideration both the intention of provision 4.1 and the facts
of modern life:
4.1 is intended to ensure access to the license. For Javascript delivered as
part of a webpage, we can safely assume the presence of an internet
connection, so access to a copy of the Apache license is not a problem if
there is a link to it.
The Apache foundation itself, in its sample notice
(http://www.apache.org/licenses/LICENSE-2.0.html, bottom of the page), only
gives a link, and does not make any mention of something to the tune of "a
copy of this license is provided with this work". This notice is intended
for any kind of work, not just for internet-connected ones.
This fits well with current practices on the web (as e.g. summarized in this
article on the entire issue:
http://www.iusmentis.com/computerprograms/opensourcesoftware/license-notices-web-applications/):
people just provide a link, not the license itself.

To sum it up: If it is redistrubution, then a header in the javascript file
stating that the javascript is under the Apache license and linking to the
license should be enough. There really isn't any need to distribute the
license in full with the file.

Alexander Gödde
Intellectual Property Professional

+49(0)9131 940 3575
+49(0)176 81 032 874
alexande...@tavendo.de
skype: alexander.goedde

blog: Free Your Data
twitter: @FYDblog
"""

Am 07.03.2012 14:40, schrieb > > :

Thanks for the response Tobias,

I emailed the Apache foundation to clarify this and received the
response below which does not answer the question as to whether
visiting a website and downloading a javascript file constitutes
redistribution. Ted Husted seems to imply the intent of the license
is for wholesale source redistribution, but does not say serving js
from your server is not redistribution:

Thank you for your inquiry.

The notification terms of the Apache License are meant to apply to
distribution of the code to another party. If someone were
distributing the source code for an entire website code to a third
party, who might then install the same website somewhere else, then
redistribution terms would certainly apply.

We do not provide legal advice relating to your use of Apache
software. We do suggest that you contact legal counsel in your
jurisdiction if you have questions, since the use or distribution of
any copyrighted software can have important implications for you and
your business.

If you have any other concerns, please feel free to contact the Legal
Discussion mailing list.

* http://apache.org/foundation/mailinglists.html#foundation-legal

All software and documentation from the Apache Software Foundation is
distributed to the public at no charge under the terms of the Apache
License 2.0. That license, and the FAQ that describes the license in
context, are available at http://www.apache.org/licenses/.

Hope that helps, Ted Husted.
Member Emeritus, Apache Software Foundation.
* http://www.apache.org/foundation/preFAQ.html
* http://apache.org/foundation/faq.html
* http://www.apache.org/foundation/licence-FAQ.html

On Tue, Mar 6, 2012 at 3:24 PM, Conway, Nicholas J >> <Nick....@wyss.harvard.edu> wrote:

If I include an Apache licensed javascript library on a public website
how do I satisfy Item 4, "Redistribution" for whenever someone visits
the site they will get a copy of the javascript source necessarily,
but Item 4 says I need to distribute a copy of the entire LICENSE and
the NOTICE file with it?

I read the phrase of from 4.4 pertaining to the NOTICE, "or within a
display generated by the Derivative Works, if and wherever such
third-party notices normally appear." meaning that this is optional
due to inclusion of the word "if", but I could include the NOTICE in
whole on a hyperlinked page? But what about the LICENSE?

-Nick

On Tue, Mar 6, 2012 at 9:35 PM, Tobias Oberstein >> <tobias.o...@gmail.com> wrote:

First, thanks for taking care! We need to look into this. The Apache
license was chosen since it's the license for the Python code as
well, makes sense at least there. Rest assured: we find a workable,
pragmatic solution for JS also. Should that require a license change
(like
i.e. to MIT/GPL duo like jQuery), so be it. I'll report as soon is we
have
checked ..

\Tobias

Am 06.03.2012 19:55, schrieb Nick:

I've never use an Apache licensed javascript library before so bear
with this question, and I couldn't find clear answers by searching, so
I figured I ask in the forum first.

Since the Apache License requires redistributing the License notice
with the software, how do I comply with this with autobahn.js in the
browser? This seems pretty odd to me.

Thanks,

-Nick

0 Likes

#6

As far as the NOTICE file goes, I saw the file in 'Autobahn / lib /
python / NOTICE' and so I will assume that the javascript library is
considered a separate project from the python library despite being in
the same git repository.

Yep, thats right. Just to make that explicit:

The Autobahn/lib/python/NOTICE file belongs to the Python library
and only to that. [It is there, because it's good practice .. in particular with Python packages].

Consider

Autobahn/lib/javascript/.. (there is only 1 files there currently)

effectively a separate project. It's there, since I did not want
to create a separate Git repo just for 1 file. Convenience/technical.

Autobahn is a great project and I've had a great time using it so far,
and thanks Tobias for helping me make sure I'm in compliance.

You are welcome;)

Thanks again for taking care with such details,
\Tobias

0 Likes