Unclear licensing & provenance for bundled assets
AFAICT, syntect doesn't come with any information about the licensing of the bundled themes and syntax definitions, and the provenance & attribution are also unclear to end users, requiring digging in git history and chasing submodule references to find out where things come from.
I'm not sure what the best way to fix this would be, and there are at least three perspectives to look at this from:
- syntect as source-code distribution, which will always include the pre-built assets;
- syntect as library, which may or may not include the assets in the artifact depending on flags;
- the output of things like
css_for_themeor otherwise serialising a theme, which will be subject only to that specific theme's license.
This is a bit of a nuisance; sorry about that.
Over at Sourcegraph we've been using Syntect for several years and I can say the following (but I am not a lawyer):
- MIT licensed: Syntect itself, as in everything in this repository excluding assets/, submodules under testdata/
- MIT licensed: testdata/jquery.js and all themes under testdata/ (InspiredGitHub, Solarized, spacegray, etc.)
- MIT or "Common License" licensed: The actual upstream SublimeHQ syntax definitions, https://github.com/sublimehq/Packages/tree/fa6b8629c95041bf262d4c1dab95c456a0530122 -
I say "Common License" above because it's a really common, MIT-like license which appears to be used in almost all TextMate language grammars. It also is commercially compatible, since Sublime distributes them with its product Sublime Text.
If you go outside sublimehq/Packages and pull in more third-party syntax definitions, for example, you will find this license is very common as I have: https://github.com/slimsag/Packages#license
the output of things like css_for_theme or otherwise serialising a theme, which will be subject only to that specific theme's license.
Generally speaking (again I am not a lawyer and this isn't legal advice), programs which transform work fall under derivative work laws and are not usually subject to the same license as the actual thing that produce them or played a part in producing them. This is why, for example, models made in Blender 3D are not GPL-licensed, and images produced in Photoshop are not owned by Adobe.
I would conclude that:
- In general you can assume any output produced by Syntect is licensed under the same terms as the input file itself (i.e. if you're highlighting code, the result is mostly identical to the code itself and therefor under the same license).
- Syntect itself is mostly MIT licensed, and MIT-compatible including all assets/themes/syntaxes.