Skip to content

Commit

Permalink
Mozilla Public License 2.0 (#1362)
Browse files Browse the repository at this point in the history
The GPL family of licenses are not perfect. Notably they are incompatible with
the SIL OFL 1.1 used by the fonts in scratch-render-fonts. In the packager we
'statically link' all of this those fonts into one HTML file. Is that legal?
Seems like you can make an argument that it's not. Who knows. I'm not a lawyer.

MPL 2.0 is a good alternative: It's still copyleft, used by real projects,
backed by a real organization, and GPL compatible.

My own extensions/contributions are now MPL-2.0, as is recommended.
LGPL-3.0 should continue to be allowed here. Use it if you want.
  • Loading branch information
GarboMuffin authored Mar 16, 2024
1 parent 681661b commit c0564c2
Show file tree
Hide file tree
Showing 22 changed files with 397 additions and 24 deletions.
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Extensions must be self-contained. All libraries and hardcoded resources should

**We are not lawyers. This is not legal advice.**

Everything in this repository must be available under an open source license. You can use any license you want, but we **STRONGLY** recommend using the [GNU Lesser General Public License version 3](licenses/GPL-3.0.txt) for all new extensions.
Everything in this repository must be available under an open source license. You can use any license you want, but we **STRONGLY** recommend using the [Mozilla Public License verison 2.0](licenses/MPL-2.0.txt) for all new extensions.

The following licenses are banned for being [incompatible the GPLv3](https://www.gnu.org/licenses/license-list.en.html), so do not use any code, images, etc. under them:

Expand All @@ -66,15 +66,15 @@ All extensions should need a metadata comment at the *very* start of the file, b
// Description: Does a very cool thing. This must have punctuation at the end!
// By: GarboMuffin <https://scratch.mit.edu/users/GarboMuffin/>
// Original: TestMuffin
// License: LGPL-3.0
// License: MPL-2.0
```

You must use line comments; block comments `/* */` will not work. These fields are **REQUIRED**:

- `Name` will appear on the website. It should be similar to the name returned by getInfo().
- `ID` should be identical to the id returned by getInfo().
- `Description` will appear on the website.
- `License` describes the license that the extension's code is under. It should be a valid [SPDX license](https://spdx.org/licenses/) expression. (use `LGPL-3.0` if you are unsure)
- `License` describes the license that the extension's code is under. It should be a valid [SPDX license](https://spdx.org/licenses/) expression. (use `MPL-2.0` if you are unsure)

`By` is optionally used to credit the author of the extension (you!). `Original` is used if the extension is based on or ported from somewhere else. They both use the same format of `Name` or `Name <https://scratch.mit.edu/users/username>`. Links to places other than Scratch are not allowed at this time. You can repeat both of these as many times as needed, just add another `// By: ...` comment after.

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ See [CONTRIBUTING.md](CONTRIBUTING.md).

## License

Extensions (in the `extensions` folder) will have a comment at the top of the file describing the license for the code. In the past [MIT](./licenses/MIT.txt) was the default, however now [LGPL-3.0](./licenses/LGPL-3.0.txt) is recommended. Some extensions may contain a mix of both.
Extensions (in the `extensions` folder) will have a comment at the top of the file describing the license for the code. In the past [MIT](./licenses/MIT.txt) was the default, however now [MPL-2.0](./licenses/MPL-2.0.txt) is recommended. Some extensions may contain a mix of several.

Sample projects (in the `samples` folder) are licensed under [CC-BY 4.0](./licenses/CC-BY-4.0.txt).

Everything else, such as the extension images, development server, and website, are licensed under the [GNU General Public License version 3](licenses/GPL-3.0.txt).
Everything else, such as the extension images, development server, and website are licensed under the [GNU General Public License version 3](licenses/GPL-3.0.txt).

See [images/README.md](images/README.md) for attribution information for each image.
2 changes: 1 addition & 1 deletion extensions/CubesterYT/KeySimulation.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: cubesterKeySimulation
// Description: Simulate key presses and mouse clicks.
// By: CubesterYT <https://scratch.mit.edu/users/CubesterYT/>
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/battery.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Battery
// ID: battery
// Description: Access information about the battery of phones or laptops. May not work on all devices and browsers.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/bitwise.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: Bitwise
// Description: Blocks that operate on the binary representation of numbers in computers.
// By: TrueFantom <https://scratch.mit.edu/users/TrueFantom/>
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

((Scratch) => {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/clouddata-ping.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: clouddataping
// Description: Determine whether a cloud variable server is probably up.
// Original: TheShovel
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/cursor.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Mouse Cursor
// ID: MouseCursor
// Description: Use custom cursors or hide the cursor. Also allows replacing the cursor with any costume image.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/fetch.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Fetch
// ID: fetch
// Description: Make requests to the broader internet.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/files.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Files
// ID: files
// Description: Read and download files.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/gamepad.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Gamepad
// ID: Gamepad
// Description: Directly access gamepads instead of just mapping buttons to keys.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

// Some parts of this scripts are based on or designed to be compatible-ish with:
// https://arpruss.github.io/gamepad.js (MIT Licensed)
Expand Down
2 changes: 1 addition & 1 deletion extensions/iframe.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: iframe
// Description: Display webpages or HTML over the stage.
// Context: "iframe" is an HTML element that lets websites embed other websites.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/local-storage.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Local Storage
// ID: localstorage
// Description: Store data persistently. Like cookies, but better.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/navigator.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: navigatorinfo
// Description: Details about the user's browser and operating system.
// Context: "Navigator" refers to someone's browser
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/pointerlock.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Pointerlock
// ID: pointerlock
// Description: Adds blocks for mouse locking. Mouse x & y blocks will report the change since the previous frame while the pointer is locked. Replaces the pointerlock experiment.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/runtime-options.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Runtime Options
// ID: runtimeoptions
// Description: Get and modify turbo mode, framerate, interpolation, clone limit, stage size, and more.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/sound.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Sound
// ID: notSound
// Description: Play sounds from URLs.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

((Scratch) => {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/stretch.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Name: Stretch
// ID: stretch
// Description: Stretch sprites horizontally or vertically.
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/text.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: strings
// Description: Manipulate characters and text.
// Original: CST1229 <https://scratch.mit.edu/users/CST1229/>
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

(function (Scratch) {
"use strict";
Expand Down
2 changes: 1 addition & 1 deletion extensions/utilities.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// ID: utilities
// Description: A bunch of interesting blocks.
// Original: Sheep_maker <https://scratch.mit.edu/users/Sheep_maker/>
// License: MIT AND LGPL-3.0
// License: MIT AND MPL-2.0

/*!
* This is based on:
Expand Down
Loading

0 comments on commit c0564c2

Please sign in to comment.