Skip to content

Latest commit

 

History

History
307 lines (237 loc) · 15.9 KB

File metadata and controls

307 lines (237 loc) · 15.9 KB

LICENSE

DOCUMENT VERSION: 1.0.0


The BetterScripts shtoolkit (aka the suite) is distributed under the Mozilla Public License v. 2.0 (hereinafter "MPLv2" or simply "MPL").

Copyright (c) 2022 BetterScripts (better.scripts@proton.me, https://github.com/BetterScripts)


EXCEPT and UNLESS explicitly noted the Mozilla Public License v. 2.0 AND above copyright notice apply to the entirety of shtoolkit, including, but not limited to, all files distributed as part of the suite and all files in the official BetterScripts shtoolkit repository.

This document extends, modifies, and clarifies MPLv2 in so far as it pertains to shtoolkit and does not replace any part of that license. Should there be any apparent ambiguity (implied or otherwise) the terms and conditions from the MPLv2 shall apply. This document shall also apply to any additional licenses as applied to shtoolkit EXCEPT where this would cause ambiguity or conflict with those licenses.

In ALL circumstances, without exception, Section 6 ("Disclaimer of Warranty") and Section 7 ("Limitation of Liability") of the MPLv2 shall apply.

A copy of the MPLv2 should have been provided as LICENSE, however it can also be obtained at https://mozilla.org/MPL/2.0/.

DEFINITIONS

In addition to those definitions in the MPLv2, the following definitions apply to this document:

  • "The Suite": shtoolkit (in whole or in part) as provided from the official BetterScripts shtoolkit repository.

  • "The License": The terms and conditions as applied to the Suite, including those written in this document when applicable.

  • "The Main License": The terms and conditions as contained in the main license applied to the Suite as iterated in the LICENSE file, and not including the text in this document.

USAGE

The software in the the Suite is provided as one or more files where each file can be both the "Source Code Form" and the "Executable Form" for that file.

For all software in the Suite, there is an "Appropriate Command" which is defined as the command interpretation service or utility, as described in the "Shell and Utilities" volume of POSIX.1-2008 standard, which can interpret and execute the software and with which the software was intended to be used.

For the purposes of licensing, when any software from the Suite is interpreted and executed by the "Appropriate Command", the file containing the Suite software is defined as being in the "Executable Form". The "Executable Form" definition is retained until the file containing the Suite software is opened, processed, or otherwise interpreted by a command interpretation service or utility that is not the "Appropriate Command", UNLESS the command interpretation service or utility is being used for the purposes of storing or distributing the file containing the Suite software AND makes no modifications, edits, or changes to the file data.

The "Appropriate Command" may be replaced by any command interpretation service or utility where the results of interpretation and execution of the software is indistinguishable from that of the "Appropriate Command". Replacement commands include, but are not limited to, any command interpretation service or utility which is compatible with "Appropriate Command", or internal commands defined for use with the command interpretation service or utility such as the . (aka "dot") command.

Any licensing terms and conditions applied to the Suite, including, but not limited to, those under which the Suite was originally made available, apply with respect to these definitions.

DISTRIBUTION

Distribution of the Suite in whole or in part is permitted according to terms and conditions of the license.

When the Suite is distributed, in whole or in part, with additional software for which the Suite software provides specific functionality (whether required or optional), the files from the Suite that provide this functionality MAY be defined as being in "Executable Form" provided they meet the criteria as iterated in the USAGE section of this document. As it pertains to the license, where these conditions apply the software from the larger distribution of which the Suite is part need not be considered "a work based on" the Suite UNLESS and EXCEPT such a term would apply to an "Executable Form" binary file licensed under the same terms and conditions.

Any distribution of the Suite, in whole or in part, for which it is reasonable to expect that any party who acquires the distribution would directly use any part of the Suite, SHOULD also include documentation for those parts of the Suite that appear in the distribution.

Where documentation is included with a distribution of any part of the Suite, if the documentation for those parts of the Suite is available in multiple formats, only a single format need be included in the distribution, provided the basic information in any omitted documentation is available in the documentation that is not omitted. If documentation can be generated from another file in the distribution, all documentation can be omitted for those specific parts that can be generated provided a way to generate the documentation is then provided.

In all cases the license and conditions as iterated here and in the main license MUST be made available for any distribution of the Suite.

MODIFICATIONS

This document does not apply to any modifications, changes or edits to any of the Suite, which are subject solely to the relevant terms and conditions of the main license (or any additional licenses) and MUST be made available accordingly; this applies ONLY to the Suite itself.

UPDATES

Any updates (including, but not limited to, modifications, changes, or edits) to this document or the main license will apply to the Suite from the moment those updates are made available with the official BetterScripts shtoolkit. This does NOT affect any version of the Suite obtained prior to these updates, for which the appropriate previous version, or as an option any newer version, of this document and the main license will apply.

A newer version of this document or main license can be applied to a previously obtained version of the Suite ONLY if doing so does not contradict, in any way, any licensing terms and conditions as stated in other parts of the Suite. In particular, a license header in any file from the Suite ALWAYS applies as written.

Where an update to this document or the main license resolves a previous ambiguity it shall implicitly apply to previous version of this document as guidance only, but SHOULD be understood to be intent of the original document.

IN PLAIN ENGLISH

The text provided in this section is provided for clarification only and does not amend, extend, or edit the license in any way.

BASICS

  • The entirety of shtoolkit is licensed under the Mozilla Public License v. 2.0 (MPLv2), this applies to the entire suite EXCEPT if otherwise stated. (This includes any files that do not explicitly contain license information.)
  • The MPLv2 is explicitly compatible with other licenses, specifically it is compatible with the GNU General Public License, version 2 (GPLv2).
  • Individual portions of the Suite MAY make explicit exceptions to specific parts of the Suite license.
  • If there is any ambiguity between this document and the MPLv2 the MPLv2 applies.

FAQS

In addition to the FAQs here, the MPLv2 also has a FAQ which is very good (and includes details of how to relicense an MPLv2 project, with specific focus on the GPLv2).

WHY USE THIS LICENSE?

The Mozilla Public License v. 2.0 (MPLv2) is a well known copyleft license which is highly permissive, yet retains the important sharing of modifications requirements. Additionally it is compatible with the GNU General Public License, version 2 (GPLv2) which can be easily used by those who require such a license.

There may be other more suitable licenses, but it is difficult to find any other that strikes the right balance, while also remains well know; there are around 7-10 "main" open source licenses, the MPLv2 is the one that strikes the balance closest to that which was desired.

WHY CREATE THIS DOCUMENT?

This document is meant to help clarify how whatever license is used for the Suite is intended to be applied.

This is particularly important because script files are both the source code and the executable, meaning it is not always clear which license terms apply - this is especially true for cases like the . (aka "dot") command which can behave like the C/C++ preprocessor directive #include, or can be equivalent to invoking the file as if it were a binary.

For the Suite most usages are intended to be licensed as if a binary was being invoked and although it is probably possible to interpret the MPLv2 in this way it is not explicit, additionally it was important that this definition was also used for any additional licenses that might be used for the Suite which includes those where such an interpretation was not possible.

CAN A PROJECT USING LICENSE X USE THE SUITE?

Almost certainly!

Of course, it is impossible to give an answer to this that covers every single combination of licenses, but in the vast majority of cases it is likely to be possible.

However, do remember that modifications to the Suite always need shared.

CAN A CLOSED SOURCE PROJECT USE THE SUITE?

Most likely!

As with any licensing concerns, the devil is in the details, and a full answer would require understanding all the licenses in question, however it is quite likely to be permitted.

Of course, modifications to the Suite still need to be shared.

WHAT IF THE LICENSE CHANGES?

The retroactive altering of the terms and conditions under which the Suite is provided is explicitly prohibited by this document; the terms and conditions that applied when a version of the Suite was obtained can always be applied to that version of the Suite and can not be unilaterally changed.

However, if a new version of the Suite is obtained then the terms and conditions of that new version apply; i.e. the terms and conditions made available with the official version of the Suite, always apply to that version and any future versions of the Suite.

If any newer version of the terms and conditions under which the Suite is provided resolves any previous ambiguity, then any previous version should use this resolution as the original intent, but this applied as guidance only and does not alter the previous terms and conditions.

DO I HAVE TO DISTRIBUTE EVERYTHING FROM THE SUITE?

Not at all, any part of the Suite may be distributed alone, provided it includes everything required for all functionality of that part of the Suite. Since most of the Suite is designed to be standalone, this means individual files can be shared if desired.

For any distribution where it's likely an end user will use the Suite directly (and not through other software) it's highly recommended that relevant documentation be shared too, but this is not required.

Note that all license details for the Suite must be made available for any distribution.

HOW DO I TELL WHEN A FILE FROM THE SUITE IS LICENSED AS AN EXECUTABLE (AND WHY DOES IT MATTER)?

Good question!

The answer is mostly just use common sense: if a file is not being edited then it's probably licensed as if it was an executable. However, editing the file (even indirectly, for example, with sed), means it is now a source code file and licensed accordingly.

As for why it matters, it doesn't in most cases, however it can determine how the Suite terms and conditions apply to software that uses it: if the Suite was always considered source code then, in order to comply with the license, any software using it might need to be released as open source with a similar license. Thankfully, that's not how it is actually licensed.