From ada88090ead2c3b9d0804794c5f20f9b24d1c2b1 Mon Sep 17 00:00:00 2001 From: Nik Nyby Date: Sat, 17 Jan 2015 17:12:36 -0500 Subject: Import to new git repository The old repository was using almost 100mb of space because of all the unnecessary files in the history. So I've imported the code to a new git repository. Unfortunately the history isn't viewable from this repository anymore. To see what happened with LibreJS before 2015, see the old Bazaar repo here: http://bzr.savannah.gnu.org/lh/librejs/ --- .../html_node/Setting-Your-JavaScript-Free.html | 239 +++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 doc/manual/html_node/Setting-Your-JavaScript-Free.html (limited to 'doc/manual/html_node/Setting-Your-JavaScript-Free.html') diff --git a/doc/manual/html_node/Setting-Your-JavaScript-Free.html b/doc/manual/html_node/Setting-Your-JavaScript-Free.html new file mode 100644 index 0000000..9f25717 --- /dev/null +++ b/doc/manual/html_node/Setting-Your-JavaScript-Free.html @@ -0,0 +1,239 @@ + + + + + +GNU LibreJS 6.0.8.20150117: Setting Your JavaScript Free + + + + + + + + + + + + + + + + + + + +
+

+Next: , Previous: , Up: Top   [Contents]

+
+
+ +

7 Setting Your JavaScript Free

+ +

The first step is releasing your JavaScript under a free license. If +you are already using a free library, or you’re not using any +third-party libraries, it might only take a few minutes. +

+

All JavaScript code on a web page (inline, on-page, and external) shares +a common scope. Thus, code is generally either rejected or accepted as a +whole by LibreJS. If some JavaScript code is found to be nontrivial and +nonfree, then most of the time, all the the rest is discarded as well. +

+

On your website, take a look at your HTML source. You can identify +distinct pieces of JavaScript that might be free and some other that are +nonfree. +

+

Tip: By running LibreJS on your page, you will get a list of all the +JavaScript that was blocked. This gives you an overview of the +JavaScript in your page. +

+

Imagine a page that contains several pieces of JavaScript from various +sources: +

+ + +
+
JavaScript that is already free
+

First, you must ensure that the library is free. If the file contains +a copyright and a license notice, you won’t need to look any further. +But if there’s no mention of the license, or if it’s too brief, you’ll +have to look for a COPYING or LICENSE file within the original library’s +source package, or on the library’s official website. +

+
+
Your own JavaScript
+

The free license given to your code should be compatible with the rest +of the JavaScript on a page. A good way to check is to read up on +them: http://www.gnu.org/licenses/license-list.html +

+
+
Nonfree JavaScript
+

This might be the case with an analytics tracker, social media +widgets, and code that runs ads. Removing these pieces of code from your +site is required to have the rest accepted as free. There are +often alternatives to nonfree libraries or to third-party services: +

+
    +
  • If you have used nonfree third-party code as the base to write your own +code, try to find a free alternative. + +
  • If you’re using a third-party service such as an analytics service, +replace it with a free alternative like Piwik. + +
  • If you can’t find free JavaScript that has already been developed, +write it yourself! Who knows, your own solution might be the start of +a brilliant project! +
+ +
+
+ + +

7.1 JavaScript Web Labels

+

One way to make your website work with LibreJS is by defining a +JavaScript Web Labels table. +

+

A JavaScript Web Labels table is informative to both site visitors and +the LibreJS program. You make a Web Labels table on a new HTML page +that’s linked to from your main page. The table lists each of your +site’s JavaScript files, that file’s corresponding human-readable source +file, and the canonical url of its free license. +

+

When using a JavaScript Web Labels table for your own files, it’s +important to put a copying permission statement at the top of each source +file listed in right-most column of the Web Labels table. For info on how +properly release your code as free software, see +https://www.gnu.org/licenses/gpl-howto.html. Future versions of +LibreJS will require a copying permission statement or other license +notice for source files listed in a Web Labels table. +

+

More information on JavaScript Web Labels is detailed here: +https://www.gnu.org/software/librejs/free-your-javascript.html#step3 +and here: +https://www.gnu.org/licenses/javascript-labels.html. +

+ +

7.1.1 Specifying multiple licenses for a single JavaScript file

+ +

If you compile or concatenate your JavaScript into a single file, the +source files you’re combining may be released under different licenses. +You can specify multiple licenses for the file in a JavaScript Web Labels +table, like this: +

+
<table id="jslicense-labels1">
+    <tr>
+        <td><a href="all.min.js">all.min.js</a></td>
+        <td>
+            <a href="http://www.gnu.org/licenses/gpl-3.0.html"
+                >GNU-GPL-3.0-or-later</a>
+            <br />
+            <a href="http://www.apache.org/licenses/LICENSE-2.0"
+                >Apache-2.0</a>
+        </td>
+        <td>
+            <a href="gpl-script.js">gpl-script.js</a>
+            <br />
+            <a href="apache-script.js">apache-script.js</a>
+        </td>
+    </tr>
+</table>
+
+

The <br /> tags just make the table more understandable when +looking at the rendered version of it on the license page. They aren’t +required by LibreJS. +

+

If all the licenses contained in the second column are recognized by +LibreJS to be free licenses, then LibreJS will allow the file in the +first column to be run. +

+ +

7.2 Adding a stylized comment in your JavaScript files and on your page

+

See a “Convention for releasing free JavaScript programs” in the +JavaScript Trap http://www.gnu.org/philosophy/javascript-trap.html +

+

Adding this notice will ensure LibreJS will find the JavaScript file to +be free. The @licstart and @licend lines at the +beginning and end of the stylized comment are necessary to make a clear +statement that the _entire code_ in the file is free. This means that +you must ensure that no nonfree code was carelessly appended at the end +of the file. +

+

In the main HTML page, the license notice covers JavaScript contained +in all <script> tags with on-page code and the inline +JavaScript (in event attributes such as onload, onclick, etc, …). +Since external files have their own stylized comment, they are +not covered by the notice in the main HTML page. Make sure to identify +all the licenses available. LibreJS will only ensure it matches a +notice of an allowed license once, so the order does not matter, but +the responsibility is on you to make sure all code is under the free +licenses mentioned between @licstart and @licend. +

+

You should make only one @licstart @licend +comment in your page, since it pertains to the entire code on page +across all <script> tags and inline html attributes. +

+

When you use the JavaScript Web Labels method, you should still include a +license notice at the top of each of your source files. This ensures that +if someone copies the file and uses it for something else, the license +remains intact. +

+

For more info on making your JavaScript LibreJS-compliant, see this web +page: https://www.gnu.org/software/librejs/free-your-javascript.html +

+
+
+

+Next: , Previous: , Up: Top   [Contents]

+
+ + + + + -- cgit v1.2.3