www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www philosophy/javascript-trap.html licenses/ja...


From: Brett Smith
Subject: www philosophy/javascript-trap.html licenses/ja...
Date: Tue, 31 Jan 2012 20:28:00 +0000

CVSROOT:        /web/www
Module name:    www
Changes by:     Brett Smith <brett>     12/01/31 20:28:00

Modified files:
        philosophy     : javascript-trap.html 
Added files:
        licenses       : javascript-labels.html 
                         javascript-labels-rationale.html 

Log message:
        Introducing: JavaScript License Web Labels.
        
        This describes a method webmasters can use to publish information
        about the licenses and source code for JavaScript they deploy on their
        web sites.  This has been reviewed by RMS and johns.  We'll be
        promoting it more in the coming days.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/javascript-trap.html?cvsroot=www&r1=1.32&r2=1.33
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/javascript-labels.html?cvsroot=www&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/www/licenses/javascript-labels-rationale.html?cvsroot=www&rev=1.1

Patches:
Index: philosophy/javascript-trap.html
===================================================================
RCS file: /web/www/www/philosophy/javascript-trap.html,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- philosophy/javascript-trap.html     25 Dec 2011 11:11:34 -0000      1.32
+++ philosophy/javascript-trap.html     31 Jan 2012 20:26:21 -0000      1.33
@@ -166,7 +166,7 @@
 defining our proposed criterion, and to David Parunakian for
 helping to make me aware of the problem.</strong></p>
 
-<h3>Appendix: a convention for releasing free JavaScript programs</h3>
+<h3 id="AppendixA">Appendix A: a convention for releasing free JavaScript 
programs</h3>
 
 <p>For references to corresponding source code, we recommend</p>
 <pre dir="ltr">
@@ -218,6 +218,22 @@
 </pre>
 
 <p>I thank Jaffar Rumith for bringing this issue to my attention.</p>
+
+<h3 id="AppendixB">Appendix B: Publishing free JavaScript programs as
+  a webmaster</h3>
+
+<p>If you're a webmaster that wants to deploy free software JavaScript
+  on your site, clearly and consistently publishing information about
+  those files' licenses and source code can help your visitors make
+  sure that they're running free software, and help you comply with
+  important license conditions.
+  Our <a href="/licenses/javascript-labels.html">JavaScript License
+  Web Labels</a> describe one method you can use to publish this
+  information.  To learn more about how JavaScript License
+  Web Labels help webmasters and their visitors, see our
+  accompanying <a href="/licenses/javascript-labels-rationale.html">rationale
+  document</a>.</p>
+
 </div>
 <!--#include virtual="/server/footer.html" -->
 
@@ -252,7 +268,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2011/12/25 11:11:34 $
+$Date: 2012/01/31 20:26:21 $
 <!-- timestamp end -->
 </p>
 </div>

Index: licenses/javascript-labels.html
===================================================================
RCS file: licenses/javascript-labels.html
diff -N licenses/javascript-labels.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ licenses/javascript-labels.html     31 Jan 2012 20:27:15 -0000      1.1
@@ -0,0 +1,164 @@
+<!--#include virtual="/server/header.html" -->
+<title>JavaScript License Web Labels - GNU Project - Free Software Foundation 
(FSF)</title>
+<!--#include virtual="/server/banner.html" -->
+<!--#include virtual="/licenses/po/gpl-howto.translist" -->
+<!-- If needed, change the copyright block at the bottom. In general, -->
+<!-- all pages on the GNU web server should have the section about    -->
+<!-- verbatim copying.  Please do NOT remove this without talking     -->
+<!-- with the webmasters first. --> 
+<!-- Please make sure the copyright date is consistent with the document -->
+<!-- and that it is like this "2001, 2002" not this "2001-2002." -->
+
+<h2>JavaScript License Web Labels</h2>
+
+<p>If you are a webmaster who wants to deploy JavaScript on your own
+site, we suggest following the method below to label those files with
+license and source code information.  It's especially useful in cases
+where the JavaScript is under a GNU license, but does not include the
+permission
+in <a href="/philosophy/javascript-trap.html#AppendixA">Appendix A of
+&ldquo;The JavaScript Trap.&rdquo;</a> Followed correctly, this method
+presents the information prominently enough to comply with the
+relevant conditions in the GNU software licenses, and it's specific
+enough that software can confirm the correctness of the information on
+a site.  For more background, please read our
+<a href="/licenses/javascript-labels-rationale.html">rationale 
document</a>.</p>
+
+<p>JavaScript License Web Labels are not designed to provide license
+information for inline JavaScript on HTML pages.  License information
+for such scripts should be included on those pages directly.</p>
+
+<h3>Writing the labels page</h3>
+
+<p>Add a page for JavaScript License Web Labels to your site.  You can
+use whatever path or filename is most convenient for you; others will
+find it through links.  The page must include one table marked with
+the attribute <code>id=&quot;jslicense-labels1&quot;</code>.  This name lets
+automated tools find the table easily, and tells them what format to
+expect.  Each row of this table will contain three cells, providing
+information about a standalone JavaScript file used on the site, its
+license, and how visitors can obtain its source code.</p>
+
+<p>The first cell of each row names a JavaScript file used by the
+site.  The cell must contain an anchor tag that links to that file,
+just as
+<code>script</code> tags throughout the site do.</p>
+
+<p>The second cell provides information about the license of this
+JavaScript file.  The cell must contain an anchor tag whose link
+refers to the full license text, and whose text provides the license's
+full name, and if the license has multiple versions, the version
+number and whether or not the file is licensed under later versions of
+the license.  Good license identifiers and their associated links
+are:</p>
+
+<ul>
+<li><a 
href="http://www.gnu.org/licenses/gpl-2.0.html";>GNU-GPL-2.0-or-later</a></li>
+<li><a 
href="http://www.gnu.org/licenses/gpl-3.0.html";>GNU-GPL-3.0-or-later</a></li>
+<li><a 
href="http://www.gnu.org/licenses/lgpl-2.1.html";>GNU-LGPL-2.1-or-later</a></li>
+<li><a 
href="http://www.gnu.org/licenses/lgpl-3.0.html";>GNU-LGPL-3.0-or-later</a></li>
+<li><a 
href="http://www.gnu.org/licenses/agpl-3.0.html";>GNU-AGPL-3.0-or-later</a></li>
+<li><a 
href="http://www.apache.org/licenses/LICENSE-2.0";>Apache-2.0-only</a></li>
+<li><a 
href="http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5";>Modified-BSD</a></li>
+<li><a 
href="http://creativecommons.org/publicdomain/zero/1.0/legalcode";>CC0-1.0-only</a></li>
+<li><a href="http://www.jclark.com/xml/copying.txt";>Expat</a></li>
+<li><a href="http://www.mozilla.org/MPL/2.0";>MPL-2.0-or-later</a></li>
+</ul>
+
+<p>The third cell provides a link to the JavaScript's source code.
+The source code file can be a single, unminified JavaScript file, a
+<code>.tar.gz</code> archive, or a <code>.zip</code> archive.  If a source 
archive includes
+multiple JavaScript files, the archive must include a file named
+<code>00-INDEX</code> that lists the order in which individiual source files
+should be concatenated to produce a single file that's
+equivalent to what's hosted on the site.  If the JavaScript as it's
+served from the site, and linked from the first cell, is already in
+source code form, link to the same URL again in this cell.</p>
+
+<p>Below is an example table for illustration.  This site just uses
+one JavaScript file: a minified version of jQuery 1.7, distributed
+under the Expat license.  The table lists the file with corresponding
+license information and a link to full source code:</p>
+
+<pre><code>&lt;table id=&quot;jslicense-labels1&quot;&gt;
+
+&lt;tr&gt;
+&lt;td&gt;&lt;a 
href=&quot;/js/jquery-1.7.min.js&quot;&gt;jquery-1.7.min.js&lt;/a&gt;&lt;/td&gt;
+
+&lt;td&gt;&lt;a 
href=&quot;http://www.jclark.com/xml/copying.txt&quot;&gt;Expat&lt;/a&gt;&lt;/td&gt;
+
+&lt;td&gt;&lt;a 
href=&quot;/js/jquery-1.7.tar.gz&quot;&gt;jquery-1.7.tar.gz&lt;/a&gt;&lt;/td&gt;
+&lt;/tr&gt;
+
+&lt;/table&gt;
+</code></pre>
+
+<p>This page may include other text and markup, including your site's
+normal layout and navigation tools, but the table must be displayed
+prominently on it.</p>
+
+<h3>Links to the labels page</h3>
+
+<p>On each page that uses JavaScript, include a link that points to
+the labels page described above.  Mark this link with the
+attribute <code>rel=&quot;jslicense&quot;</code>, so that automated tools can
+find it.  For example, your final link might look like this:</p>
+
+<pre><code>&lt;a href=&quot;/about/javascript&quot; 
rel=&quot;jslicense&quot;&gt;JavaScript license information&lt;/a&gt;
+</code></pre>
+
+<p>This link can be small, but it should be clearly visible to people
+who visit your site.</p>
+
+<h3>Notes</h3>
+
+<p>If you do these things, you will comply with the relevant
+conditions in the GNU software licenses, such as the GNU General
+Public License.  They should also suffice to comply with many other
+free software licenses, but we can't say with certainty that they will
+comply with all of them.  As always, please make sure you understand
+and follow the license conditions of any free software you
+distribute.</p>
+
+</div>
+
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+
+<p>
+Please send FSF &amp; GNU inquiries to 
+<a href="mailto:address@hidden";><em>address@hidden</em></a>.
+There are also <a href="/contact/">other ways to contact</a> 
+the FSF.
+<br />
+Please send broken links and other corrections or suggestions to
+<a href="mailto:address@hidden";><em>address@hidden</em></a>.
+</p>
+
+<p>
+Please see the 
+<a href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting
+translations of this article.
+</p>
+
+<p>
+Copyright &copy; 2012 Free Software Foundation, Inc.,</p>
+<address>51 Franklin St, Fifth Floor, Boston, MA 02110, USA</address>
+<p>
+This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative
+Commons Attribution-NoDerivs 3.0 United States License</a>.
+</p>
+
+<p>
+Updated:
+<!-- timestamp start -->
+$Date: 2012/01/31 20:27:15 $
+<!-- timestamp end -->
+</p>
+</div>
+
+</div>
+</body>
+</html>

Index: licenses/javascript-labels-rationale.html
===================================================================
RCS file: licenses/javascript-labels-rationale.html
diff -N licenses/javascript-labels-rationale.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ licenses/javascript-labels-rationale.html   31 Jan 2012 20:27:15 -0000      
1.1
@@ -0,0 +1,167 @@
+<!--#include virtual="/server/header.html" -->
+<title>JavaScript License Web Labels: Background and rationale - GNU Project - 
Free Software Foundation (FSF)</title>
+<!--#include virtual="/server/banner.html" -->
+<!--#include virtual="/licenses/po/gpl-howto.translist" -->
+<!-- If needed, change the copyright block at the bottom. In general, -->
+<!-- all pages on the GNU web server should have the section about    -->
+<!-- verbatim copying.  Please do NOT remove this without talking     -->
+<!-- with the webmasters first. --> 
+<!-- Please make sure the copyright date is consistent with the document -->
+<!-- and that it is like this "2001, 2002" not this "2001-2002." -->
+
+<h2>JavaScript License Web Labels: Background and rationale</h2>
+
+<h3>Introduction</h3>
+
+<p>We are very concerned about the growing problem of proprietary
+JavaScript. The Web, which has done so much to enable the sharing and
+understanding of free software, is now also a place where
+users&mdash;often unknowingly&mdash;run huge amounts of proprietary
+software on their computers. Free software is succeeding on the
+desktop partly because of the copyleft protection guaranteeing users
+be told up front when a particular program is free for them to use,
+study, share, and modify. But on the Web, browsers download and run
+JavaScript without ever informing users of the program's license or
+their freedoms.</p>
+
+<p>To begin addressing this problem, we
+have <a href="/licenses/javascript-labels.html">published a method</a>
+that webmasters can use to label JavaScript served from their sites
+with license information and source code links.  All GNU software
+licenses require distributors to provide this information with the
+software so recipients know they have the legal permission to share
+and change it, and access to the source code they need to exercise
+those freedoms.  These conditions are critical elements of the
+copyleft in these licenses, helping to keep the software free for
+everyone who receives it.</p>
+
+<p>We believe that webmasters who use this system on their own sites
+will be in compliance with the relevant conditions in the GNU software
+licenses and many other popular free software licenses.  We also
+expect that most webmasters will find this is the easiest way to
+comply with those terms, especially when they serve optimized
+JavaScript.</p>
+
+<p>We also want to encourage webmasters to publish JavaScript
+licensing information so that visitors can refuse nonfree JavaScript.
+As Richard Stallman explained
+in <a href="/philosophy/javascript-trap.html">&ldquo;The JavaScript
+Trap,&rdquo;</a> nonfree JavaScript is just as dangerous as any other
+nonfree software&mdash;and it's only made more insidious because
+browsers typically download and run it without your knowledge.</p>
+
+<h3>Rationale</h3>
+
+<p>Conditions in free software licenses to include a copy of the
+license terms and access to source code are almost always easy to
+follow when software is distributed through the Web or other Internet
+channels.  However, distributing JavaScript embedded in Web sites is
+complicated by a couple of unique factors: visitors usually receive
+the software without expressly requesting it, and webmasters can only
+serve a single file of JavaScript code (so they can't, for example,
+send an archive file that includes other resources required by the
+license).</p>
+
+<p>These issues combined leave webmasters with few obvious ways to
+provide additional material required by free software licenses.  The
+simplest solution would be to serve only JavaScript in source code
+form, with a full copy of the license in its comments.  That can be
+acceptable on smaller sites, but when JavaScript begins to represent a
+lot of repeat traffic, webmasters are understandably reluctant to
+serve so much data.  Our method gives them a clear place to serve
+additional license resources&mdash;and visitors a clear place to look
+for it&mdash;by addressing both of these points.  First, it makes the
+software distribution visible by offering &ldquo;JavaScript license
+information&rdquo; through a link.  The linked page gives webmasters a
+space where they can publish those resources that's appropriately
+prominent but not confusing to visitors.</p>
+
+<h3>Machine readability</h3>
+
+<p>In order to make it easier for people to reject nonfree JavaScript
+in their browsers, our method is specific enough for a plug-in or
+other software to find the site's table of JavaScript license
+information, confirm that all of the JavaScript is under a known free
+license, download the source code, and confirm that it corresponds to
+the optimized JavaScript that's being served from the site.  This way,
+visitors can quickly and conveniently check whether or not the
+JavaScript is free, and decide accordingly whether or not they want to
+run it.  <a href="http://lduros.net/librejs/";>LibreJS</a> is a plug-in
+for Mozilla-based browsers that helps users avoid running nonfree
+JavaScript, and it will implement these checks to enhance its
+capabilities.</p>
+
+<p>We considered using another format like RDF as the basis for our
+system, in order to simplify this job for programmers by giving them
+more detailed information in an easily parsed format.  However, our
+goal was to make this information accessible to human readers first,
+and machines second.  Using well-structured HTML provided the best
+match with those priorities.</p>
+
+<h3>Next steps</h3>
+
+<p>We are not saying that webmasters that host free software
+JavaScript must follow this specific method to comply with the
+licenses.  Every free software license clearly lays out its own
+conditions, and any webmaster who wants to use a different method that
+meets those conditions is welcome to do so.  However, this method has
+the benefit of making full license information readily accessible to
+visitors&mdash;an issue that's been a struggle to address to
+date&mdash;without compromising webmasters' ability to serve
+JavaScript the way they feel is best.</p>
+
+<p>We are very interested to hear feedback and suggestions about other
+ways we might accomplish the same goals, while making the system more
+useful for webmasters, site visitors, or developers working on
+license-checking software.  If we get enough suggestions to publish a
+new method that's noticeably improved over this one, we'll do so.
+(That's why this method uses such a verbose identifier for the license
+information table: to allow software to distinguish this method from
+others we might craft in the future.)  If this is an issue that you're
+interested in,
+please <a href="http://lduros.net/cgi-bin/mailman/listinfo/librejs";>subscribe
+to the LibreJS mailing list</a>, and write there with your comments
+and suggestions.  We look forward to hearing from you.</p>
+
+</div>
+
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+
+<p>
+Please send FSF &amp; GNU inquiries to 
+<a href="mailto:address@hidden";><em>address@hidden</em></a>.
+There are also <a href="/contact/">other ways to contact</a> 
+the FSF.
+<br />
+Please send broken links and other corrections or suggestions to
+<a href="mailto:address@hidden";><em>address@hidden</em></a>.
+</p>
+
+<p>
+Please see the 
+<a href="/server/standards/README.translations.html">Translations
+README</a> for information on coordinating and submitting
+translations of this article.
+</p>
+
+<p>
+Copyright &copy; 2012 Free Software Foundation, Inc.,</p>
+<address>51 Franklin St, Fifth Floor, Boston, MA 02110, USA</address>
+<p>
+This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative
+Commons Attribution-NoDerivs 3.0 United States License</a>.
+</p>
+
+<p>
+Updated:
+<!-- timestamp start -->
+$Date: 2012/01/31 20:27:15 $
+<!-- timestamp end -->
+</p>
+</div>
+
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]