6

I want to use TinyMCE rich text editor in one of our project.

We are using angular warpper of TinyMCE.

We will host the tinymce.min.js in our servers (not tinymce cloud). Exact steps mentioned at end for reference.

Question is, as per the licensing do I need to show the branding "Powered by Tiny"? Like this enter image description here

Asking because it mentions that if you are using tiny cloud you must mention branding but I could not understand about self hosting.

Another thing to mention is since it will be self hosted, we are not modifying the any of the tinymce's files, all the files will be delivered to browser using HTTPS call like https://example.com/tinymce/tinymce.min.js along with license comments. (we are not including tinyMCE's JS files in our build process and hence not minifying and not obfuscating its js files)

// installing
npm install --save @tinymce/tinymce-angular
npm install --save tinymce
// config
 "assets": [
   { "glob": "**/*", "input": "node_modules/tinymce", "output": "/tinymce/" }
 ]

// in module
import { EditorModule, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';
/* ... */
  @NgModule({
    /* ... */
    imports: [
      EditorModule
    ],
    providers: [
      { provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }
    ]
  })
// in html
<editor [init]={ branding: true/false, /* your other settings */ } ></editor> // no apiKey="your-api-key"
// no other steps
5
  • Are you using the free (LGPL) version, or one of the commercially-licensed versions? – MadHatter Nov 5 '20 at 9:53
  • Free version. Not free cloud version, free self hosted version. – Akshay Nov 5 '20 at 9:55
  • So that's the LGPL version, yes? The one you get here? – MadHatter Nov 5 '20 at 10:10
  • Not exactly, I did npm install --save tinymce it will go to this npmjs.com/package/tinymce and download from npm registry. – Akshay Nov 5 '20 at 10:22
  • But yes, it will download the same contect. I checked both versions, licenses are same – Akshay Nov 5 '20 at 10:23
5

LGPLv2.1, the licence under which you have this code, doesn't require any banners or particular forms of advertising. Such requirements famously make licences non-free.

Given that you don't intend to modify this code, the LGPL, in brief, requires that you preserve existing copyright notices and copyright disclaimers, and doesn't require that you use any particular licence for code you write which uses it. Your decision to exclude the LGPL code from your minifier is a good one. And of course, IANAL/IANYL, so you may still wish to take professional advice before betting a business on this.

Edit in the light of the image you posted: if the library produces this banner itself, then although you're within your rights to edit the library code to remove it, at that point you have extra obligations, because you're now distributing a modified version of the code.

Edit 2: apparently TinyMCE are interpreting LGPLv2.1 s6 as requiring you to incorporate branding as per their guidelines. Firstly, s6 is engaged only if you distribute "a work containing portions of the Library", and it's not clear to me that you are doing that. Secondly, even if you do enage s6, the only relevant requirement is that you

must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License

You are not required to do this in a form specifically prescribed by the authors, particularly not when that form doesn't mention the LGPL at all.

There are lots of licences with clear advertising and linking clauses, and (assuming they are the sole rightsholders in the code) TinyMCE are perfectly free to use one of those. If they want to require advertising in the way they seem to, they should use one of those, and accept that their software is non-free. What they shouldn't do is try to read an advertising requirement into a respected free licence.

2
  • We don't need to change the library code to remove the branding. Is it just an option in configuration {branding:false} – Akshay Nov 10 '20 at 7:30
  • Excellent - then I think you're fine to do that. – MadHatter Nov 10 '20 at 7:51
1

While the documentation for the branding option only mentions Cloud platform users:

https://www.tiny.cloud/docs/configure/editor-appearance/#branding

Note: The “Powered by Tiny” product attribution is required for users on the Tiny Cloud Community Plan. Product attribution is optional for premium users.

...the following documentation page goes into more detail for self-hosted, open source users:

https://www.tiny.cloud/docs/general-configuration-guide/attribution-requirements/#freeandopensourceusers

As per clause 6 of the LGPL 2.1, users using TinyMCE under the LGPL are required to give prominent notice that TinyMCE is in use.

That pages goes into detail as to Tiny's specific attribution requirements and recommendations. I have also raised an issue with the Tiny Docs team to get parity and clarity between these two pages moving forward.

3
  • But LGPLv2.1 s6 only applies if you distribute a work containing the library. If I understand correctly, the OP does not propose to do that. – MadHatter Nov 9 '20 at 20:52
  • @MadHatter, with client-side Javascript, I am never quite sure whether that is being distributed in the legal sense to the people that visit a website or not. The "binary" (minified JS) is at least served from a server controlled by the OP. – Bart van Ingen Schenau Nov 10 '20 at 13:46
  • @BartvanIngenSchenau I think there's good reason to think that the OP's distributing the library, which is to say performing a s1 distribution, or a subsection thereof, which is a s2 distribution. But I'm a lot less sure that (s)he's distributing a work containing original code linked to portions of the library, which is to say a s6 distribution. – MadHatter Nov 10 '20 at 14:18
0

While @MadHatter 's answer make sense (and should be accepted and I think is correct), @TinyLincoln is correctly reporting TinyMCE's interpretation of the LGPL. I had a chat with TinyMCE's team meanwhile and their response is as following

It is mandatory to show the branding when using the open source version of Tiny and would require a commercial contract to remove it.

Note that, this is true for community cloud as well as community self-hosted.

P.S. Using it is free, it is that you will need to show branding (recommended way is to show in footer/statusbar of editor itself or anywhere else visible in page)

7
  • TinyMCE can say that all they want, but the licence does not, as far as I can see, actually require it. They wouldn't be the first people to misunderstand free software, and they're unlikely to be the last. – MadHatter Nov 10 '20 at 6:28
  • Yes you are correct. However, as we were not using too much of editor's features, we resorted to use quilljs.com ; since it is openly open source. – Akshay Nov 10 '20 at 6:45
  • Sorry, I'm confused. First you say above that I'm wrong and that Tiny Lincoln is correct (branding-as-specified is required), now you say I'm correct (branding-as-specified is not required). Which do you think is true, since they can't both be? Also, LGPL is open-source, just as BSD (QuillJS' licence) is; please don't mistake TinyMCE's odd interpretation of the LGPL is being a problem with the LGPL itself. – MadHatter Nov 10 '20 at 7:07
  • I am saying you are technically correct. But as per TinyMCE @TinyLincon is correct. Of course that does not make your (and everyone's) interpretation of license wrong. But it can be the point of some argument between user of tiny and TinyMCE's team (out of which MadHatter's interpretation will win! but there is some chance of arguments!). – Akshay Nov 10 '20 at 7:29
  • So, when you say "TinyLincoln is correct", what you mean is "TinyLincoln is correctly reporting TinyMCE's interpretation of the LGPL", without in any way suggesting that you accept that interpretation? – MadHatter Nov 10 '20 at 7:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.