Dates and Events: |
OSADL Articles:
2023-11-12 12:00
Open Source License Obligations Checklists even better nowImport the checklists to other tools, create context diffs and merged lists
2022-07-11 12:00
Call for participation in phase #4 of Open Source OPC UA open62541 support projectLetter of Intent fulfills wish list from recent survey
2022-01-13 12:00
Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completedAnother important milestone on the way to interoperable Open Source real-time Ethernet has been reached
2021-02-09 12:00
Open Source OPC UA PubSub over TSN project phase #3 launchedLetter of Intent with call for participation is now available |
Standard information obligations of Open Source licenses
Most Open Source licenses require that the license text and copyright notices be delivered to the recipient along with the software. This undoubtedly also applies in the event that Open Source software is copied to a user's computer when a web page is loaded and executed locally, as is regularly the case with software written in JavaScript, for example. Since it is not evident how this is best achieved, this application note describes a possible implementation and contains a practical realization.
Interpretation of "to be delivered along with the software" in a scenario where a JavaScript snippet is downloaded from a web server to the local browser
Strictly speaking, "to be delivered along with the software" means that the operator of the web server from which the JavaScript software is provided must actively deliver the associated licensing information. In this interpretation, it is not sufficient to provide a link to this information located elsewhere. (Please note that we deliberately do not pursue here the question to what extent this interpretation is generally accepted and in how many websites this view has been actively implemented.) The said active delivery can be implemented, for example, with a transfer of the license information file that automatically is triggered when the web page is loaded. As soon as this file is available locally, a hyperlink is activated in which reference is made to the license information. When this hyperlink is clicked, a text window opens that displays the local copy of the license information. This functionality can also be used to confirm that the license obligations have actually been fulfilled.
JavaScript class to trigger the download of license information to the visitor's computer
The JavaScript class XMLHttpRequest() is used for this purpose. The load function of this class is provided with the name of a function that will receive the downloaded text, in the example it is the reqListenerText() function. This function then equips a text string with a hyperlink to the downloaded text – but this can only happen, if the text was actually received. The licensing information of this example JavaScript snippet that is licensed under the MIT license was generated with the Scancode toolkit. The actual license text was manually inserted into Scancode's output, and everything together was made available on the server from where the script can download it.
Example of what a link to the licensing information of a JavaScript snippet might look like and how it works
Click on the hypertext below to see how the implementation works.
HTML and JavaScript code implemented behind the hypertext link above
The HTML hypertext uses the default style of an anchor element. Initially, its onclick() callback refers to an error message to indicate that the licensing information is not yet available. The JavaScript part calls XMLHttpRequest() and installs the listener reqListenerText(). When the download is completed which is indicated by a call to the listener, the onclick element of the hypertext is replaced by the display function showLicenseInfo() which opens, when called, a new window and displays the downloaded licensing information in it.
Real-world implementation
Since the Jitsi Meet Open Source video conferencing system heavily relies on a wide variety of JavaScript libraries that are downloaded to a user's computer when this software is used, the licensing information of these libraries must also be downloaded. In OSADL's instance of Jitsi Meet, this is implemented using the above given application note. The hyperlinked text string "All license texts and copyright notices" is located at the top of the main window as shown in the below preview image (enlarge). Licensing information was generated here as well using the Scancode toolkit, and the respective license texts were appended manually to its output. Click on the below preview image to go to the landing page of OSADL's Jitsi Meet instance, if you want to try it out.