Hacker News new | ask | show | jobs
by CuriousCosmic 1097 days ago
From the git repo.

    For open-source use:
    
    If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use BrowserBox Pro under the terms of the GPLv3.
    
    For non-commercial use:
    
    You can use BrowserBox Pro for free for non-commercial use cases.
    
    This means government and public institutions, non-profits, private researchers and individuals are covered by this protection when their use is done without any anticipation of commercial application. This is provided under the terms of the Polyform Non-Commercial License 1.0.
    
    From time to time, our non-commercial users may desire an license arrangement different to the one provided by the standard Polyform Non-Commercial License 1.0 to suit their needs both now and in future, and such terms may be approved and negotiated on a case-by-case basis typically for a fee or other remunerative or protective arrangement.
It's licensed under multiple licenses, one of which is the GPLv3 which is not only open source, it's also free software. By every definition this is open source software.
4 comments

Confusingly, that's not in the "LICENSE.md" file (at the time of this post):

https://github.com/dosyago/BrowserBoxPro/blob/boss/LICENSE.m...

Which is showing this commit:

https://github.com/dosyago/BrowserBoxPro/commit/84f35db2f953...

Only in the README.md file:

https://github.com/dosyago/BrowserBoxPro/blob/boss/README.md

Alright, I'll put that in the license file! :)
> By every definition this is open source software.

No, it's not.

"If you are creating an open source application" is a usage restriction/discrimination. That's not allowed for open source licenses.

It also follows that it runs foul of GPL3's prohibition on additional restrictions.

I guess it's supposed to be a user-friendly wording about using it in your own development (this is GPL code, you can link it with your GPL code).

But it actually means that unless you're developing open source software, you may not use it. Not even unmodified.

It's probably not what the creator means, though.

> "If you are creating an open source application" is a usage restriction/discrimination. That's not allowed for open source licenses.

No it is not. "If you are creating an open source application you may use the software under the GPLv3 or later" means "if you want to comply with the GPLv3+, you may use it under that license".

This is just licensing all the software under 3 separate licenses:

1. The GPLv3 or later with no added conditions.

2. For non-commercial, closed source use you can use it under https://polyformproject.org/licenses/noncommercial/1.0.0/

3. For commercial, closed source use you can buy a commercial license.

That's fully acceptable for GPLv3 and open source licensing in general as long as the software can be licensed by you under each of those 3 licenses separately (i.e. the dependencies are all compatible with each license and all contributors have either signed over their rights or have documented agreement to the above licensing conditions).

This is for the exact same reason that you can find dual GPLv3 (or AGPLv3) and closed source commercial licensed projects. It takes a bit of work on the IP management side but it's perfectly acceptable.

> "if you want to comply with the GPLv3+, you may use it under that license".

That's what they mean, but the wording does not support that. There is no way to use it under GPL, without developing something.

The wording is weird but it's fully possible to use it open source.

You use it personally, you have access to the source and can modify it unrestricted. GPLv3 fulfilled.

You share the application with someone else, they get the same notice and get the same rights. GPLv3 fulfilled.

Wrong.

> "If you are creating an open source application"

If I'm not creating an open source application, then BrowserBox does not grant me the GPL license.

It's plainly written. I don't know why you keep arguing.

Yes!
If you wanted to improve the wording of your licensing, I'd do the following:

In the licensing section for your README.md:

    BrowserBoxPro is licensed separately under the following licenses:
    
    - GNU General Public License v3 (or later) (linked to LICENSES/GPL-3.0.txt)
    - Polyform Non-Commercial License 1.0 (link to LICENSES/PolyForm-Noncommercial-1.0.0.txt)
    - BrowserBox Pro perpetual commercial license (link to LICENSES/LicenseRef-BBP-Commercial-Perpetual.txt).
    - BrowserBox Pro subscription commercial license (link to LICENSES/LicenseRef-BBP-Commercial-Subscription.txt).

    What does this mean for me?

    Are you using BrowserBox Pro as it ships?

        You may use BrowserBox Pro under the terms of the GPLv3 (or later).

    Are you modifying BrowserBox Pro or developing software that uses BrowserBox Pro and willing to license those changes under the GPL?

        You may use BrowserBox Pro under the terms of the GPLv3 (or later).

    Are you using BrowserBox Pro, modifying BrowserBox Pro, or developing software that uses BrowserBox Pro in a non-commercial capacity but do not wish to comply with the license terms of the GPLv3?

        You may use BrowserBox Pro under the terms of the Polyform Non-Commercial License 1.0.0.

    Are you using BrowserBox Pro, modifying BrowserBox Pro, or developing software that uses BrowserBox Pro in a commercial capacity but do not wish to comply with the license terms of the GPLv3?

        You may purchase a perpetual or subscription based commercial license (link to commercial licensing docs).
LICENSE.md:

     SPDX-License-Identifier: GPL-3.0-or-later OR PolyForm-Noncommercial-1.0.0 OR BBP-Commercial-Perpetual OR BBP-Commercial-Subscription

    BrowserBoxPro is licensed separately under the following licenses:
    
    - GNU General Public License v3 (or later) (linked to LICENSES/GPL-3.0.txt)
    - Polyform Non-Commercial License 1.0 (link to LICENSES/PolyForm-Noncommercial-1.0.0.txt)
    - BrowserBox Pro perpetual commercial license (link to LICENSES/LicenseRef-BBP-Commercial-Perpetual.txt).
    - BrowserBox Pro subscription commercial license (link to LICENSES/LicenseRef-BBP-Commercial-Subscription.txt).
Download the following linked files and put them under the names listed in the repo.

- LICENSES/GPL-3.0.txt: https://www.gnu.org/licenses/gpl-3.0.txt

- LICENSES/PolyForm-Noncommercial-1.0.0.txt: https://polyformproject.org/wp-content/uploads/2020/05/PolyF...

Then put your perpetual license and subscription license's legal text in the following files:

- LICENSES/LicenseRef-BBP-Commercial-Perpetual.txt

- LICENSES/LicenseRef-BBP-Commercial-Subscription.txt

-----

I think that should clear up any confusion (I am not a lawyer but am decently familiar with licensing). You could also include a "or contact us for special licensing" section like you did for OEM licensing in the README.

jacoblambda I have made a PR^0 with your suggestions, did you want to come over to make a token change so you can sign our CLA, or are you OK for me to use this and give your agreement in a HN comment here (or at the link if you're bothered) to our CLA: https://cla-assistant.io/dosyago/BrowserBox?pullRequest=240

0: https://github.com/dosyago/BrowserBoxPro/pull/240

I signed the CLA and left a comment on the PR.
Thank you for your lovely and generous response! We will certainly consider it!
Thanks! I know it's confusing, and I'm a little unsure about whether it's "Open Source" if like this, too. If anyone can tell me this is false, that's good as it's important to get right. But I think it's fine.
It looks like you may have made a mistake similar to the ones described in https://www.gnu.org/licenses/gpl-faq.en.html#ReleaseNotOrigi... and https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatible.... Basically, it's generally not useful to say "if you meet some condition, then you can have this software under the GPL", because any one person who meets the condition can basically end up making it GPL for everyone.
> It looks like you may have made a mistake similar to the ones described in https://www.gnu.org/licenses/gpl-faq.en.html#ReleaseNotOrigi... and https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatible.... Basically, it's generally not useful to say "if you meet some condition, then you can have this software under the GPL", because any one person who meets the condition can basically end up making it GPL for everyone.

This should not be an issue.

The condition they provided was effectively "if you want to use GPLv3 you can use GPLv3". That's perfectly acceptable for GPL. What they are doing on top of this is saying "if you can't/don't want to use GPLv3 but meet some other conditions, we will dual license it under one of these other licenses for you".

You could be right. I don’t know.
TL;DR you need to fix this

Let's say I have an open source project under the GPLv3 which only contains a foo.txt.

"If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use BrowserBox Pro under the terms of the GPLv3."

So I can merge the BrowserBox Pro under GPLv3 to become part of my project.

Now I remove the foo.txt and my project will be a BrowserBox Pro clone under GPLv3 without the commercial restriction.

IANAL, but I'm wondering if this license really is GPL3? Because it's like a modified version of it - "GPL3 with a condition". From there, that possibly non-GPL3 license says that you can "use" the software, but not redistribute it.

But anyway it sounds like he needs to decide what he wants, and that's probably a non-open source license, if he doesn't want commercial use.

The license for the project is not GPLv3 but if my project is GPLv3 then the non-GPLv3 license for the project grants me a GPLv3 license if I include it.

Which shows the problem with this specific license in a single sentence.

I think that's a little too reductive—foo.txt wasn't a real app.

Nonetheless, I agree with your broad point: that if somebody can use it under the GPL, they can redistribute it and then all those downstream users can use it under the GPL.

But I disagree there is anything to fix. It's copyleft FOSS but businesses are encouraged to buy a license. Everybody wins.

Ok, foo.sh then.

He needs to fix it - if he wants his license to enforce being paid for commercial use.

Since you're releasing this under GPLv3 this is indeed open source. Having multiple license options does not affect this.
No, an extra restriction ("For open-source use") is added on top of the GPLv3 license, which violates the license, actually (see §7):

> 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.

It's better to license under the stricter AGPLv3 and not put any extra conditions.

keepamovin doesn't have or need a licence at all (GPL or otherwise) so can't be violating it. He is distributing his program by virtue of being the author/copyright holder, not by virtue of owning a (GPL) licence for it. He doesn't need a distribution licence (from himself).

In LICENSE.MD, he declares that I (for example) may take a copy of his program provided I choose one of the licences he is willing to offer me. One of the choices is known as the GPL. Let's say I choose that. Now he's given me a copy of the program and granted me an unmodified, unrestricted GPL licence to use and distribute it. Let's write the terms down in a file called licence.gpl. (This is just a copy of the GPL itself.) I don't hold the program's copyright. I don't have a licence to distribute the program further under his LICENSE.md but I do now own a licence to use/distribute my copy of it as described in the licence he's granted me, licence.gpl.

My distribution licence (licence.gpl) doesn't allow me to add extra restrictions when distributing. So people I distribute to under the terms of my licence.gpl will automatically be granted a GPL licence by keepamovin (not me) to distribute further.

keepamovin as the author and perpetual sole copyright holder is different from me and people I distribute his program to, who are all mere licencees never copyright holders. We all hold licences he has granted to us directly and individually. (We don't grant licences to each other, having no right to do so. The GPL allows me to distribute my copy of the program to you at which point keepamovin will automatically give you a licence. (A licence is more abstract than a licence file.))

All distributions rooted in my copy should probably make clear that they are under licence.gpl not LICENSES.md. But that's something for any program offered under a choice of licences to solve.

The copy of the program at the site above is offered by keepamovin under an open source licence (GPL) and also other licences. The site thus does have an open source offering of the program. So it's true that "BrowserBox Pro goes open-source".

(Just as a licence is more abstract than a licence file, a program here is more abstract than a copy of a program. A person's giving a program to another person means ownership has transferred. So I was careful to write "copy of the program" above, as none of this distribution/redistribution involves transferring ownership of the program, which abstract work remains forever only keepamovin's.)

Fair enough, I stand corrected. Worth noting that differences over interpeting the relevant provisions of GPL led to a lawsuit and the court didn’t rule in favour of the side that relied on these provisions: https://www.theregister.com/2022/04/02/court_neo4j_ruling/
From a quick glance, that lawsuit seems qualitatively different. It's about a hybrid licence that I'll call AGPLCCL here. One side thought it therefore wasn't an internally consistent licence and the court ruled that it was.

keepamovin is offering to grant me an unadulterated (i.e. non-hybrid) GPL licence to use/distribute my copy of his program. I'm treating as axiomatic that the unadulterated GPL is an internally consistent and open-source licence.

It's definitely confusing, but thankfully there are folks like 2PJ who can do it for us! :)
Thanks for open sourcing this. However, you might prefer to use AGPLv3 over GPLv3, given the nature of this software.
What would be the risks of that? And the risks of keeping it the way it is?
The GPL is pre-web so has a bug allowing web programmers to use a GPL'ed program in their web service without having to give their users the web service's source code. The AGPL fixes that bug so that such web programmers will need to give their users the web service's source code. Therefore the AGPL constrains licensees more and frees their users more.
I see, thank you! In your opinion what's the right license for this situation?
I don't want to be overly dramatic. Your current license is decent. But the AGPLv3 is better: it fixes what is essentially a loophole in the GPL (the "ASP loophole", as described by the other user here).

From your perspective, you might find it even easier to sell your paid licences to companies and governments, if you use the AGPLv3. There's little downside to switching, because the AGPLv3 is still open source, and has similar compatibility with other open source licenses.

You've already released this under GPLv3, but you can switch going forward.

Yes, this is similar to what Qt did / has done for years. I personally think it fits the definition of "open source" since it's multi-licensed.

  For open-source use
  
  If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use BrowserBox Pro under the terms of the GPLv3.
  
  For non-commercial use
  
  You can use BrowserBox Pro for free for non-commercial use cases.

  This means government and public institutions, non-profits, private researchers and individuals are covered by this protection when their use is done without any anticipation of commercial application. This is provided under the terms of the Polyform Non-Commercial License 1.0.
Well, this isn't exactly dual license, but the presence of GPLv3 comprehensively nullifies Polyform, so it is FOSS. IANAL.
It's better interpreted as decreasing degrees of permissivity.

1. GPLv3 or later

2. polyform non-commercial for non-commercial non-GPLv3 (or later) works.

3. commercial license for commercial non-GPLv3 (or later) works.

---

In other words, Use GPLv3 however if you can't use GPLv3 but are non-commercial, use polyform non-commercial. Otherwise buy a commercial license.

Yes!
You may want to reword as "licensed under either GPLv3 or Polyform Non-commercial 1.0 at your option" or some such, like most rust-lang projects do; ex: https://github.com/rust-lang/rustup

Then give guidance on why one might choose one license over the other.

Is the any reason someone would choose to use it under the weird Polyform licence over the GPL?
A government, non-profit or security researcher (or institute, for instance) could use it to build their own proprietary code that is not under GPL, but that uses BrowserBox Pro.