6

I was very curious about the way this project was published, under an NPL license.

From what I understand, this license is similar to the GPL v3.0, except that it adds an additional restriction: "You must add the powered by nopCommerce text in each footer of the site". In addition, the site also indicates that you can purchase a license for copyright removal license.

I also noticed that the NPL license is not OSI approved either.

0

2 Answers 2

8

This looks very similar, to me, to the advertising clause of the old four-clause BSD licence (4BSD), which required that

All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.

The FSF describe 4BSD thus:

This is a lax, permissive non-copyleft free software license with a serious flaw: the “obnoxious BSD advertising clause”. The flaw is not fatal; that is, it does not render the software nonfree. But it does cause practical problems, including incompatibility with the GNU GPL.

That incompatibility is also not enough to render the software non-free; lots of other perfectly good free licences are incompatible with GPL (eg, EUPLv1.2). The practice of selling exceptions from onerous free licences is also perfectly well-established, and doesn't by itself make something non-free. That said, I note that the OSI haven't approved 4BSD, either.

So if you regard the FSF as the gatekeepers to free software, and the OSI as the gatekeepers to open source, nopCommerce is free but not open-source.

In terms of whether you should use it, I'd say the advertising requirement and the non-mainstream licence will likely be big turnoffs to downstream adoption of your software. If you're just trying to write something to get a job done, you're fine to use nopCommerce, and don't forget to honour the requirement; if you're trying to start the next Apache project, steer clear of nopCommerce.

3
  • 2
    Mentioning something in ads may be easier than keeping specific website footers around. Let's imagine for a that NPL and GPL were compatible, and that I take one utility function from a NPL-covered project and contribute it to Wordpress. Now, every Wordpress site would be legally required to show that advertisement on every page's footer. Might be fine for a single NPL project, but will break down if code from dozens of NPL-covered projects were mixed. Last time I remember such issues being discussed on OSI license-review, response was overwhelmingly negative, with extra OSD#10 concerns.
    – amon
    Dec 7, 2022 at 18:03
  • 1
    @amon completely agree. The "it doesn't scale" argument is the FSF's main practical objection to 4BSD, as well - in both cases, you end up with giant headers / footers listing piles of different contributors.
    – MadHatter
    Dec 7, 2022 at 19:28
  • 1
    It could get even more impractical than footers too. Imagine someone writes a utility function, which gets copied into a library, which another library depends on, which an application uses, which gets pre-installed on a manufacturer's line of smartphones. Now every ad for those phones NEEDS an acknowledgement for use of that utility function, which becomes even more impractical when applied to, say, billboards or radio ads, and beyond unfeasible when acknowledging many different contributors. A product like nopCommerce, which sits higher in the tech stack, could pose fewer practical issues. Dec 7, 2022 at 23:51
6

The nopCommerce Public License states that it is GPL 3.0 licensed along with "Additional Terms". In the GPL Section 7, "Additional Terms" are allowed to be added as follows (GPL v3 Section 7):

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or

b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or

c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or ...

Afterwards the GPL also says this:

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.

The authors of the nopCommerce License apparently believe that their terms (to include "powered by nopCommerce" on each screen and to hyperlink it to their site) are a form of author attribution or reasonable legal notice as defined in Section 7.

Section 7 technically allows you to remove the term if it turns out that the term is actually a "further restriction" as defined by Section 10:

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation [for patents]...

So, are the nopCommerce terms (to add the "powered by nopCommerce" to each screen, and to hyperlink to their site) "additional terms" or "additional restrictions"?

It seems like it could be argued either way for this case. On the one hand, the additional terms themselves don't seem to directly prevent anyone from exercising their GPL rights, so that is an argument in favour of the terms being considered Section 7-compliant. On the other hand, the fact that nopSolutions are charging a fee for a separate license seems to contradict Section 10, so that may be an argument in favour of defining the terms as "additional restrictions".

Is nopCommercial Public License really open source?

The OSI definition of open source includes this rule:

  1. License Must Not Be Specific to a Product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.

Since the additional terms specifically mention "powered by nopCommerce", then there seems to be a potential problem if an open source developer tries to extract parts of source code (which is presumably GPL-licensed) and then place that code in a different product.

Does that developer have to then comply with the nopCommerce additional terms and therefore add "powered by nopCommerce" to the completely different product that she is developing? If so, then the terms would seem to contradict Rule 8 of the OSI definition.

However, GPL Section 7 gives the developer in this case a possible way out -- if she takes code from nopCommerce and uses it in a product which is clearly not directly related to nopCommerce, then at that point it seems quite likely that the "additional terms" are no longer reasonable at that point, and so she could remove those terms, since they are more clearly "additional restrictions" at that point.

For example, if the WordPress authors wanted to adapt some code from nopCommerce into their project, it doesn't seem reasonable that they would have to add "powered by nopCommerce" to every page of WordPress, so WordPress (for example) would have a good argument to say that they could remove the "powered by nopCommerce" terms, when they adapt the code and place it inside their open source product. In practice, someone would actually have to be brave enough to try this and see how nopSolutions respond.

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.