2

My company is very sensitive about using open source software. A small team started to group licences in three categories: green, yellow, red.

Flutter is a library to create native apps for ios and android. At GitHub flutter lists this license. Since Flutter is written in dart the license and a patents of the dart-sdk might also be relevant.

What is the right course of action to get an idea which license might be relevant if someone uses flutter?

Update:

I found a Phil Haack blogged about Who Owns the Copyright for An Open Source Project and this wired article Open Sourcers Drop Software Religion for Common Sense points out that certain license can be the poison in the tree. An article from july 2016 pointed out that your reactjs license can be revoked,update, the discussion on hn, a fb faq.

The articles linked above and the comments here point out that the dependencies of a flutter app have to be considered as well. So although the flutter license may be permissive enough other rights (patents, copyright, license of dependencies) may still pose a legal risk.

Do you have any additional information about "the licencse and right tree" of the dependencies?

Update 2

After the reply from user zimm i48 i would like to elaborate my question.

My understanding is this as soon as you are using an open source software you have to consider every dependency of the tree.

So for instance

  flutter   (?bsd 2 or 3?)
     flutter library 
        material-design-icons (Apache License Version 2.0)
     dart sdk (?BSD-2 clause?)
       dart io (no license file in github)
       dart collection (as above)

So far at least these licenses are involved

What i am looking for is the whole license tree for every dependency of flutter.

3
  • It's just a normal BSD-3 license. Nov 21, 2016 at 10:52
  • But what about the underlying involed compoents from dart / dart-sdk and other dependencies that are part of a flutter app?
    – surfmuggle
    Nov 21, 2016 at 12:31
  • 1
    The license of the language something is written in doesn't really matter. Otherwise it would be impossible to write open source code using Visual Studio for example. Dependencies do matter, and the app's license should take them into account. If Flutter is BSD then all of its dependencies should be compatible with the BSD. Nov 21, 2016 at 12:36

2 Answers 2

4

The file mentioned in that answer was generated by writing a script that actively seeks out every license in the source tree including all the dependencies. If you want to check out work (please do!) you can see the script here: https://github.com/flutter/buildroot/tree/master/tools/licenses

The script goes really deep. It literally unzips every last jar file, for example, even those nested inside other archives. It includes the license for things like the standard C library that we use, which is often forgotten by people writing license crawlers.

3rd party edit

Ian gave an answer at stackoverflow as well. Here is his content from over there:

There's an API you can use to find the list of licenses you need to show in your application.

If you have a Drawer, just stick an AboutDrawerItem in it: https://docs.flutter.io/flutter/material/AboutDrawerItem-class.html

If you don't but still use the material layer, call showAboutDialog or showLicensePage: https://docs.flutter.io/flutter/material/showAboutDialog.html https://docs.flutter.io/flutter/material/showLicensePage.html

If you want to roll your own, you can get the raw licenses from the LicenseRegistry: https://docs.flutter.io/flutter/foundation/LicenseRegistry-class.html

Your actual question seems to just be about what the actual list is. Flutter is split into two parts, the engine, which is shipped as a dynamically linked binary, and the Dart framework, which is shipped as a separate binary loaded by the first. The engine uses a lot of code with a wide variety of licenses, the complete list of which is here: https://raw.githubusercontent.com/flutter/engine/master/sky/packages/sky_engine/LICENSE

The framework is entirely self-contained and so its license list is much shorter (just one license): https://github.com/flutter/flutter/blob/master/LICENSE

In addition, any Dart packages you use may have their own licenses.

For what it's worth, most of the code used by Flutter's engine is the same code as has previously been used by Chrome, Dart, and Android. The list is quite long mostly because the code is so mature that it has copyrights from many years and we have been advised to include each such copyright with a separate copy of the applicable license.

4
  • This sounds very interesting. It sounds like you did face the same problem that your company wanted to make sure that no "-poisonous-" / murky licenses are involved?
    – surfmuggle
    Nov 21, 2016 at 19:21
  • Hey there Ian! It's great to see someone new around here! It would be great though if you could copy the information from your Stack Overflow answer here, so users don't have to navigate through a series of links. Aside from that though, welcome! :)
    – Zizouz212
    Nov 24, 2016 at 1:37
  • 1
    for those searching for it, AboutDrawerItem is now called AboutListTile May 13, 2019 at 6:41
  • api.flutter.dev/flutter/material/AboutListTile-class.html here's the link for AboutListTile May 31 at 14:39
4
  1. To check whether you can use a software and on which conditions, you must check not only the license of the software but also of the dependencies. More on this here: What are software dependencies, and what are the implications of FLOSS dependencies for other projects?

  2. As noted by @curiousdannii, the license of the language itself does not matter. It is not considered a dependency. On the contrary, the standard library of the language could be a dependency. In that case, its license matters.

  3. The license you've shown us for Flutter is a 3-clause BSD license. This is the kind of license most businesses will like because it does not impose many conditions. However, it does not contain a patent grant.

  4. Even if the license did contain a patent grant (as with the Apache license), or if a patent grant came along, it would only grant you rights on patents filled by contributors of the software, not on patents possibly held by other people (who did not contribute).

  5. Unless one can easily find patents which could be violated when using the software (as would be the case with audio/video codecs), or unless one has strong suspicions that the software developers hold patents which they are going to use against you if you use their FLOSS software (unlikely), the best strategy concerning patents is generally not to worry too much about them. There is no way you can be absolutely certain that by using a software you won't infringe on a patent so just use it until someone tells you to stop doing so.

  6. The case of Facebook's ReactJS is a bit peculiar. The open source license cannot be revoked. But they have patents and they grant you a license for these as well. The latter license (patent grant) can be revoked if you sue them for infringing your patents. If your company does not hold any patents, you can use ReactJS without fear.

2
  • Hello Zimm I48, regarding point 2 - since dart (the language) comes with batteries indluced (the standard libraries) what is the situation for flutter / dart standard libraries? I assume that flutter depends on these libraries. Since flutter uses google material design the material-design-icons are under a different license.
    – surfmuggle
    Nov 21, 2016 at 17:16
  • As can be seen here, Dart standard library is BSD3-licensed as well. But it apparently depends on some external libraries as well. Most probably these won't be part of your dependencies but you should make sure of that and check the license of any library you depend on.
    – Zimm i48
    Nov 21, 2016 at 17:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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