5

I recently noticed that some projects on GitHub are "Treeware". For example https://github.com/APIDevTools/swagger-methods (originally MIT license). The README says:

This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.

Another license example linked from Treeware's website (Website footer -> Resources -> Treeware licence example) says:

You're free to use this package, but if it makes it to your production environment you are required to buy the world a tree.

I wonder legally whether these projects can still be considered GPL compatible. Even though MIT license is GPL compatible, the Treeware condition limits the use of this software (e.g. people with little budget may have a hard time satisfying the Treeware requirement). Since there are two licenses in the same project (MIT and Treeware), can the user pick which one to use? Or do both licenses need to be satisfied?

More generally, can these projects be considered open source?

3
  • 1
    Someone probably needs a legal interpretation whether "we ask that you buy the world a tree" is an actual requirement, or just an optional suggestion that could be ignored. In my opinion, if a license text says "we ask that you do X" then it means that X is a requirement of the license that's just worded in a nice way. The wording on the web site in your second example is superior because it is less ambiguous: "you are required to buy the world a tree" -- that's clearly a requirement.
    – Brandin
    Commented Jun 16, 2022 at 8:22
  • 1
    This sounds very similar to the so-called "postcard ware" or "cardware" terms that were previously popular for some software, which required that users send the author a postcard. Sometimes the language of those licenses just "asked nicely" as well, but I still think it was technically a license requirement, that you actually sent the postcard to be in compliance.
    – Brandin
    Commented Jun 16, 2022 at 8:30
  • Related: en.wikipedia.org/wiki/Beerware. Beerware is considered GPL compatible by the FSF but is not OSI approved. However, the wording in Beerware makes it very clear that the act of buying someone a beer is not a condition before you can use the software in a certain environment.
    – Brandin
    Commented Jun 17, 2022 at 7:44

3 Answers 3

2

Can projects with a Treeware requirement be considered open source?

Not according to the Open Source Definition ("OSD") published by the Open Source Initiative.

Rule 1 of the OSD:

The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

Violated, since the Treeware license [requires] that I "buy the world a tree" using the Ecologi web site, and this action requires paying a fee.

Rule 6 of the OSD:

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

The Treeware license is conditioned on whether you use the software "in production". That's what Rule 6 is about -- so Treeware cannot condition a [requirement] like this that depends on whether you use the software in production or not.

Is Treeware GPL-compatible?

If it's GPLv2, the Treeware notice is not compatible. GPLv2 states in section 6:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.

Treeware introduces a further restriction, since normally, users of GPL programs would have the right to use the program in a production environment as well, even if they did not buy the world a tree. Treeware says that if you use the program in production, that you [must] buy the world a tree. That is a further restriction on the software's use.

In the case of GPLv3, Section 7 says that you may remove such further restrictions:

If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.

So, for a GPLv3 program that includes the Treeware license term, Section 7 says that you may remove the Treeware term, if you wish.

Is the Treeware condition optional or required?

A major problem with Treeware is that it's not generally clear whether the phrase "buy the world a tree" is a supposed to be required thing to do or an optional thing to do. For example, the version on the Treeware web site is worded this way:

This package is Treeware. If you use it in production, then we ask that you buy the world a tree [with a hyperlink to plant.treeware.earth, which eventually leads to Ecologi.com] to thank us for our work.

In my opinion, in the above version, the phrasing indicates what action is to be done, on the condition that you use the software in a certain environment ("if you use it in production, then ..."). So I would interpret the phrase "then we ask that you buy the world a tree" in this version as a thing that you are being asked to do if the preceding condition is true. In other words, it's a requirement in the case that you use the software in a production environment.

However, if the "buy the world a tree" suggestion in Treeware turns out to be an optional clause, then this would most likely resolve any doubts about GPL compatibility and Open Source compliance. If we do a quick search on GitHub we can find that there are indeed multiple ways that the Treeware condition is worded in practice. For example:

https://github.com/fyggi/laravel-simple-uuid

You're free to use this package, but if it makes it to your production environment you are required to buy the world a tree.

This version of Treeware seems to be clearly GPL-incompatible, and not Open Source, because the "the buy the world a tree" requirement is clearly required by the license text itself.

https://github.com/Astrotomic/ignition-github

You're free to use this package, but if it makes it to your production environment I would highly appreciate you buying the world a tree.

In this version of Treeware, it's more likely that it could be considered GPL-compatible and Open Source-compatible, because phrasing the request in this way seems to signal the intention of making the clause optional. I personally would be more comfortable with the above wording if the word "but" were removed.

At present, I cannot find any projects who have commented about Treeware in particular, but there is a license which contains a similar optional condition which is in the wild, the Beerware license. In the Beerware license text, the licensee is asked to buy the author a beer, but that suggestion is clearly made optional in the license text. Because it is an optional clause, the Fedora Project consider the Beerware license to be Free and GPL compatible.

See also: Contra proferentem.

Can I fork the software and then remove the Treeware license from my forked version?

For most open source licenses, the answer is probably yes. If you read the Treeware license itself, there is nothing written there that requires that you retain the Treeware notice itself when you copy and modify the software. So, according to most open source licenses, there's nothing preventing you from copying the project and deleting the Treeware notice in your version, effectively creating your own non-Treeware'd version which does not include that requirement/suggestion.

1

The treeware website is clear, it is a 'condition of use" on top of the other license (in this case MIT). This is more than a simple request for a donation. Conditions like this are not compatible with GPL.

However, the project's license file just states it is straight-forward MIT, so you could fork this project (according to the MIT license) and get rid of the treeware restriction. The GitHub page says "This package is Treeware." but it is stated nowhere that the treeware condition would survive this transition if you fork it and make a new package out of it.

In a corporate environment this setting with Treeware would be too much in a greyzone, and I would advise my developers not to use the package at all.

5
  • 2
    The fact that the Treeware license was not mentioned in LICENSE.md does not automatically mean you can remove it. In the case of this project, LICENSE.md mentions a license term (MIT), and README.md mentions a different license term (Treeware). Whether you're allowed to remove the Treeware term (e.g. due to the MIT license) seems a bit dubious. Are you allowed to remove it simply because it was only mentioned in the README.md file but not in the LICENSE.md file?
    – Brandin
    Commented Jun 16, 2022 at 9:10
  • 1
    @Brandin As I mentioned in my answer, in a corporate environment I would not use it. I think the Treeware condition is a crayon license. However, if you strictly go by the words ("This project..."), it can be removed, it can be seen like an additional condition in GPL "All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term." Commented Jun 16, 2022 at 9:24
  • @Brandin The MIT license does not state that in the event of forking you must preserve the 'readme.md'. Only the license language itself, which has the copyright notice on top, needs to stay. With the Apache license this would be different (Section 4.d.), there it (the NOTICE file) would need to be preserved. Commented Jun 16, 2022 at 9:32
  • So wouldn't GPL section 10 make it technically compatible, since GPL seems to say that you are allowed to remove the Treeware "restriction" if you wish? I agree that it'd be not good to actually use this in a corporate environment.
    – Brandin
    Commented Jun 16, 2022 at 9:53
  • @Brandin I believe the Treeware restriction is incompatible with GPL (in v2 and v3), therefore code with Treeware cannot be used in GPL-licensed projects unless they are first forked and the Treeware-restriction is removed. Commented Jun 17, 2022 at 7:07
-2

The API Dev Tools example is GPL compatible (and open source) because it is a request ("we ask that you buy the world a tree", my emphasis) not a requirement. This is no different from "if you find this project useful, please consider making a donation".

The second example you quote is not GPL compatible because it is a requirement and therefore a "further restriction" as defined by Section 7 of the GPL v3. Similarly, it is not open source because it fails the "no restriction against fields of endeavour" test.

Since there are two licenses in the same project (MIT and Treeware), can the user pick which one to use? Or do both licenses need to be satisfied?

In general, both (all) licenses need to be satisifed. It is possible to simultaneously release code under two individual licenses - which does allow the use to choose - but this will be made clear in the cases when this applies.

11
  • "please consider making a donation" is clearly an optional request. But "we ask that you blah blah blah" is not. For example, if a police officer says "we ask that you come with us" it is not some kind of optional suggestion. It's just a polite statement of a required thing that you must do.
    – Brandin
    Commented Jun 16, 2022 at 8:19
  • @Brandin Under UK law, a police officer saying "we ask that you come with us" absolutely is a polite request unless they are arresting you (which requires a formal statement of the crime that you are believed to have committed, and is an offence by the officer if they did not have just cause) or acting in accordance with powers delegated to them (e.g. the Riot Act, in which case they are required to state which powers they are using). Commented Jun 16, 2022 at 8:28
  • 2
    I agree with Philip. Pages such as this one show that a police officer may ask you to stop taking photos, but (in public) you're not obliged to do so. Knowing which of a police officer's requests are simple requests, and which are polite ways of phrasing your legal obligations, is part of basic civics training. Since the rightsholder's only power of compulsion is to make the copyright licence subject to a required condition, and they've not chosen to do so, their request remains simply a request.
    – MadHatter
    Commented Jun 16, 2022 at 8:32
  • 1
    @Martin_in_AUT Brandin's argument, if understand it correctly, is that polite requests should be interpreted as politely-phrased requirements, and (s)he introduced police officers as an example. I'm trying to show that even if a parallel with police officers can be drawn, their requests are not, in fact, interpreted as Brandin thinks they are.
    – MadHatter
    Commented Jun 16, 2022 at 8:59
  • 2
    @Brandin I recommend you read about the contract-law doctrine of contra preferentem. Because the licensor had the opportunity, when choosing his/her licence terms, to clearly require the purchase of a tree, and they did not do that, the ambiguity is to be resolved in favour of the licensee; the request is just a request. I agree there are many problems with that licence, and with this software, but that ambiguity isn't one of them.
    – MadHatter
    Commented Jun 16, 2022 at 9:51

Your Answer

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

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