Epsilon: License forbids modification, but pull requests accepted

Created on 31 Aug 2017  ·  72Comments  ·  Source: numworks/epsilon

Hello!

First of all, I want to thank you for reaching out and attempting to open up one of the most classic areas of non-free, dated software -- calculators.

The license you chose, however, is not merely non-free (in the sense of freedom), but not open source. CC-BY-ND-NC forbids anyone from making modifications to your source code -- even though you state in your project's README that you welcome contributions and that pull requests are accepted.

This means everyone who submits a pull request to you is technically infringing on your copyrights. If your goal is to allow active contributions from the community, I suggest switching to another software license. CC-BY-NC-SA is still "non-free", but it would at least stop up the problem of active infringement while still forbidding other commercial uses.

That being said, I do highly suggest considering a more free software license such as the GPL. This would allow you to continue to benefit from other people's work on epsilon, including other companies who might want to (for example) build support for their products into epsilon. (Wolfram Alpha on your calculator? Yes please!)

question

Most helpful comment

I was CTO for a profitable open source hardware/software company called Slim Devices, "back in the day". Our products were the Squeezebox line of network music players. We had different licenses for firmware (an open but not free proprietary license) and desktop/server (GPL). I can tell you a few things about our experience:

  • Our users that were developers were responsible for a huge amount of the awesomeness of our product. Great ideas, great software, great community. Our success in the marketplace was due in no small part to our open and free licenses.
  • Every time we were deciding about whether to open something up or keep it closed/locked down and then decided to take the leap and make a license more free we were so glad to do so. Not a single regret.
  • We had a couple of instances where cheap copies of our hardware were going to be made by third-parties but they all failed due to the fact that hardware is hard. Free software didn't make it easy for them to clone our product.

All said, if I had to do it again, I'd use the most permissible license possible for everything and focus on making great hardware and selling it. I'd encourage you guys to do the same.

All 72 comments

Just regarding your last paragraph:
Due to the strict and contagious nature of the GPL, it might be quite a bit too extreme thus wouldn't help gathering interest from [contributors from] other companies etc. Even some individual contributors may not like it much.
_(note: even without that, the CLA has made one (maybe two) people I know not interested in participating... but that's not related to the license itself)_
Something milder, but more software-appropriate than a CC, would fit better? Or maybe at the very least LGPL, if the GPL-like is wanted... But anyway, there are quite a few (better) choices, and IANAL...

Uh oh, I should've checked the license before submitting a pull request...

Using CC licenses for software, while technically possible, is discouraged (https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software). Also, IANAL but open-source/free software and forbidding commercial usage is an oxymoron, so putting a NC clause on a project advertised as open source is probably quite the grey legal area. When in doubt, check out https://choosealicense.com/ and https://opensource.org/osd.

While I'm here, please also think how the community might use the source code in ways you would not expect at first. In my case, I am thinking about porting ion to the HP Prime hardware in an effort to provide a third-party SDK far more friendly than what Rip'Em offers right now, but if that subsystem is relicensed under GPL-only then it's going to legally restrict what we can do with it quite heavily for something meant to be a library (especially if we start porting and importing things licensed under other open source licenses).

Obviously that plan is shelved for now...

Thank you so much numworks, for creating such an amazing product! :D

I strongly agree with the OP. First of all, please do not use a CC license for software. Secondly, please switch to a Free (as in Freedom) license that fits the Free Software Definition. All things considered (including the above comments), the GNU GPLv3 is still most appropriate especially considering this is for an education device. In this day and age, it is important to educate our students that they should and do have they power over what the devices they own does. In addition, they should be encouraged to share their work with others including code.

There is an understandable concern about cheating-prevention during exams. Releasing the software in this repository under the GPLv3 definitely does not preclude implementing safeguards (and I'm not talking about DRM) for preventing cheating.

At the very least, please change the license to the BSD, Apache, or MIT license. Please work with the community on taking this forward. Thank you in advance!!

From what I've got while talking with the support, the ShareAlike of the CC would permit redistribution of binaries without sources, which is something they don't want.

The CC doesn't separate binary and sources, which like @boricj said, they don't even recommand using it for software.

Maybe adding some additionnal things using the CC, plus a CC+ (https://wiki.creativecommons.org/wiki/CCPlus) could help making that better.

The big concern for them seems to be getting a license which forbid commercial usage, and binary redistribution without source code.

Edit: and AFAIK there is no opensource license forbidding commercial usage, except the CC (which variants with NC are not considerated opensource for that reason).
This would mean dual-licencing with like a something-GPL plus one license for commercial usage (generaly a paid one, lot of softwares and libraries do that)

The big concern for them seems to be getting a license which forbid commercial usage, and binary redistribution without source code.

@rhaamo is spot on, this is precisely our concern at the moment. Note that we aren't happy with the current license and are perfectly aware of its shortcomings. That being said, the CC BY-NC-ND is the best compromise we've found _so far_.

Here are several points to consider:

  • Once a more permissive license has been chosen there's no turning back. That's why we decided to start off with a rather restrictive one.
  • Preventing commercial usage is something we need and will enforce. Unfortunately this is not compatible with the OSI definition of Free Software.
  • We would like to prevent the distribution of binary-only forks as we think this is detrimental to the community.
  • On the other hand, we are delighted by people contributing source patches to the projet and would like to encourage that.

Long story short: we need to find a better licence (and indeed CC+ might be a good idea). In the meantime don't worry we won't act on forks (even though they are indeed technicall forbidden by the license): just like @hlieberman said, we're even encouraging them in the readme to begin with.

Thank you @Ecco for the response.

Preventing commercial usage is something we need and will enforce.

Honestly/genuinely curious: Profitable and successful businesses have been built around Free (as in Freedom) Software, what are your considerations for insisting on a NC clause to the license for epsilon? What are some concerns and problems you foresee without it?

We would like to prevent the distribution of binary-only forks as we think this is detrimental to the community.
...we are delighted by people contributing source patches to the project and would like to encourage that.

Binary-only forks are certainly detrimental to the community. Speaking of which, one of the greatest advantages and strengths a successful business can have is a thriving community around its products. Free Software is instrumental in building that community because contributors won't feel like they are being controlled. This is yet another reason to use a Free Software license instead.

For the license, a huge advantage of a copyleft license such as the GNU GPLv3 is that anyone who modifies the code must continue to share it under the same the same terms. This means that you can choose to benefit from someone else's change to the epsilon code since you can be sure those changes will be made available for you. And in case you don't like someone's changes, you also don't have to incorporate them into yours.

On the other hand, if it is not a copyleft license, then other might not share their changes with anyone. Suppose someone makes an amazing addition to epsilon, say the ability to directly run R or Python code (albeit with presumably limited performance on the numworks) directly on the calculator, they might keep it to themselves and you would never benefit from that!

As a result of these things, a proprietary license (whether that's NC, ND, or something else) will make sustaining a vibrant community very difficult.

So hopefully the numworks repositories will adopt a copyleft license that will not only will create a huge community, but also bring about a profitable product.

Profitable and successful businesses have been built around Free Software

That is true, but it all depends on the business model. It's very difficult to achieve, if possible at all, when you are a consumer electronics company.

contributors won't feel like they are being controlled

Not our intention.

Anyway, we have picked a set of rules at the moment, trying to give users maximum freedom while preventing commercial usage (something we still believe is important for us as a company). Unfortunately this is incompatible with copyleft licenses, hence the choice of a Creative Commons license. We are willing to work on the topic to find the best possible license ; a first step will most likely be a CC+.

I was CTO for a profitable open source hardware/software company called Slim Devices, "back in the day". Our products were the Squeezebox line of network music players. We had different licenses for firmware (an open but not free proprietary license) and desktop/server (GPL). I can tell you a few things about our experience:

  • Our users that were developers were responsible for a huge amount of the awesomeness of our product. Great ideas, great software, great community. Our success in the marketplace was due in no small part to our open and free licenses.
  • Every time we were deciding about whether to open something up or keep it closed/locked down and then decided to take the leap and make a license more free we were so glad to do so. Not a single regret.
  • We had a couple of instances where cheap copies of our hardware were going to be made by third-parties but they all failed due to the fact that hardware is hard. Free software didn't make it easy for them to clone our product.

All said, if I had to do it again, I'd use the most permissible license possible for everything and focus on making great hardware and selling it. I'd encourage you guys to do the same.

Thanks @blackketter, it is an honor to (virtually) meet the CTO behind the Squeezebox player! I've always loved those devices and remember how successful they were. Thank you for your amazing work.

@Ecco:

preventing commercial usage (something we still believe is important for us as a company)

I am genuinely curious, and this is not a rhetorical question: What are some bad scenarios you foresee if numworks is released under a Free Software license (copyleft or not)? Have you had very negative experiences in the past?

As far as I can tell, there is nothing to lose and everything to gain (including $$$) with Free Software licensing, with @blackketter's famous Squeezebox player being one notable example.

Our users that were developers were responsible for a huge amount of the awesomeness of our product. Great ideas, great software, great community. Our success in the marketplace was due in no small part to our open and free licenses.

This is only possible with Free Software licensing.

It's very difficult to achieve, if possible at all, when you are a consumer electronics company.

Can you elaborate on why you think this is true?

Again, please don't take this as an admonishment. I'm just honestly interested in what the considerations are! In fact, I think exploring how to make a Free Software licensed numworks work is itself a very worthy exercise.

This is what we are weary of as a community: https://youtu.be/-zRN7XLCRhc?t=2452. We need a doomsday contingency plan in case one day NumWorks goes under or gets acquired by a company like Oracle.

The CC BY-ND-NC licence does not offer such a plan since the ND clause has the nuclear option of forcefully shutting down any and all derivative works. Changing it to CC BY-NC-SA has no practical impact for NumWorks, but it has _huge_ implications for the legal safety of forks and third-party apps.

The OpenSolaris guys never thought they would have to activate the doomsday contingency plan one day. Then Oracle happened. The various forks of OpenSolaris not only survived the event, they are _outliving_ Solaris. That was only possible thanks to their licence.

I have a hard time thinking a lot of people would commit large amounts of free time to the NumWorks source code knowing they could be totally * *** down the road. I've already said I'm holding off on major projects until this is addressed satisfactorily and I'm not the only one doing so.

If you choose the ND clause to reserve the right to legally hunt down PTTKillers, it has been demonstrated over and over again how utterly ineffective that path is. Cheating students won't stop cheating because of a licence clause.

In a perfect world, epsilon would be under a open source licence and nobody would even think about a doomsday scenario. I can live with NumWorks having a monopoly on commercial hardware with the NC clause, at least until they've secured their survival on the market. But the ND clause is holding back the project and hurting NumWorks _right now_ with no benefits at all for _anyone_.

I agree with Jean-Baptiste, the CLA and the ND part of the license are majorly holding back the project.

Great point by @boricj, unfortunately the silence from the developers is discouraging (or did I miss something?). There is so much potential here for an amazing community, hopefully there will be a positive response soon.

the silence from the developers is discouraging (or did I miss something?)

Well, @Ecco did say _"We are willing to work on the topic to find the best possible license ; a first step will most likely be a CC+."_ so that should be pretty nice. We're still in the first part of September, so I guess they're quite busy with back-to-school stuff, which I suppose takes more time to handle than other things.

I'm pretty confident it'll be better soon, they clearly seem to want to encourage external contributions and they now know another license (but also no CLA) will attract more developers :)

@debrouxl The CLA is not itself a problem.

It's basically a glorified name for copyright assignment and it's a very, _very_ common model both in corporate-sponsored projects (https://en.wikipedia.org/wiki/Contributor_License_Agreement) as well as foundations (https://www.gnu.org/licenses/why-assign.html). It conveniently solves a lot of legal issues like re-licensing, employer rights, patents, moral rights... but your contributions are still covered by the original license.

While projects can and do thrive without it, it makes among other things re-licensing often impossible (it requires every contributor's agreement and dropping/reimplementing their contributions if some of them refuse). If there wasn't a CLA here, soon we'd be all stuck with CC BY-ND-NC forever, a far worse outcome.

You are only subject to the CLA (once signed) on all code you've submitted in pull requests to this specific repo. It does not extend to your fork, your third-party apps and so on. This model does have limits (the downfall of OpenSolaris), but the doomsday scenario is that even if the legal owner closes the source code, all source code up until that point stays available under the original license irrevocably (the rise of illumos). Even Oracle's lawyers couldn't do anything about that despite the mandatory OpenSolaris copyright assignment.

Signing a CLA for a project that is not open-source, which is the case here, is however a legitimate concern. Changing ND for SA would address most (but not _all_) of these concerns.

Any news on ND -> SA transition?

I got very exited seeing the Micropython work, and got myself planning a way to put network into the Epsilon "OS", but this actual license...

@Ecco

Long story short: we need to find a better licence (and indeed CC+ might be a good idea). In the meantime don't worry we won't act on forks (even though they are indeed technicall forbidden by the license): just like @hlieberman said, we're even encouraging them in the readme to begin with.

I'm sorry, I just cannot accept that. I fork it, and god forbid you go out of business, then I get a lawsuit summons from some copyright troll law office that your rights ended up with in the bankruptcy proceedings.

Your license choice is actively ruining community reach. I was considering starting up some kind of community hub for mods. Now it's a major legal liability for me to do anything of the sort.

I'm incredibly happy with your intentions and project, and am buying this device and recommending it to everyone I know... but this license is a MASSIVE red flag, along with the fact that this issue has been opened half a year ago, and still no change to the license, nor any activity on this ticket since January.

I absolutely support your goal to forbid commercial reuse of your software, as it's your main intellectual asset, and the core of your business... But, please, treat this as a CRITICAL issue, and update the license, or at least add a _LEGALLY BINDING_ postscript to the license document that _expressly allows_ noncommercial derivatives to be published in source code form, and used.

I agree, @daniel-jozsef. Non-starter.

This is indeed very discouraging. A ND-based license nips in the bud the very community that Numworks claims to want.

Rather than NC or ND, I think it is still better to use a copyleft license like GPLv3+. The copyleft aspect ensures that whatever others create, they must share back. And because of the huge first-mover advantage of the Numworks Epsilon, releasing this product under GPLv3+ has huge competitive advantages. And most importantly, it fully respects software freedom and best fosters an active community.

Hopefully the developers will do the right thing soon!

You know, I'm not even pushing for copyleft. That would be the most "free" thing to do, but even with GPLv3.0, a Shenzhen fab shop could flood the market with a copycat device at half the price and cut these people off. If the device isn't locked, GPLv3.0 would totally allow that.

I'd be happy with CC BY-NC-SA +, the + being a clause added that derivatives must be shared in source code form. (From what I gathered, that was the main gripe here.)

So please guys, don't kill your awesome project with this license. I mean you tell me to fork it, but I fork it here on github, and what license do I even put on the thing? A pirate flag?! O.o; This is not a minor inconvenience, it's serious shit.

There is one thing I'd like to ask of you though... Could you release just the hardware abstraction layer under GPL3?

GPLv2 allows "tivoization", and I say it as a good thing here. But NC indeed seems better.

Allowing tivoization is bad for Numworks.


So quick licensing 101:

The copyright owner is NOT bound by any license! So Numworks is free to do anything with code by Numworks, and by contributors who have signed the CLA. This includes relicensing under an alternative, proprietary license as an "enterprise edition" - Linux companies do this a lot -, selling in TiVOized devices, whatever.

Even after having released the code under a copyleft, the copyright owner is allowed to fork their own code (again, code by themselves and contributors _who have signed the CLA_) under a non-free license, and continue development on this non-free branch. This is what Oracle did with Solaris.

Of course the free community can keep building on and using the free fork (but not include code changes from the proprietary fork), hence the OpenSolaris project outliving Solaris.

End of quick licensing 101


So allowing tivoization would mean allowing tivoization for OTHERS. Ie. Chinese fabshops who flood the market with closed, shit cheap calculators using the hardware design and software of Numworks. While Chinese copycats generally aren't bothered by licenses anyway, I guess expressly allowing them to do it is a _Bad Idea_ (tm).

So even if anything is released under GPL (I really hope that @Ecco and the team decides to eventually GPL at least Ion), I really, really, _really_ recommend GPLv3 at least.

My turn again to stir the pot I guess.

So I'm at the point where I've pushed back porting to the HP Prime for nearly 9 months because of the license and nothing happened. I even have access now to a serviceable QEMU-based emulator (courtesy of @Gigi1237) to do it, yet I kept pushing back.

I'm _this close_ of saying screw it, I'll do it anyway.

But if I do say screw it, I will not share the sources of that work as long as epsilon is under CC-BY-NC-ND. I'd probably just share binaries with TI-Planet's staff, who will probably then make a couple of news and benchmarks, finishing them with "_sorry, can't share the goodies, ask NumWorks to change their license first_"...

I will not sacrifice a sizable amount of my free time for a hobby side-project on a commercially-backed code repository for free under a distant, looming threat of the closest French equivalent of a DCMA takedown notice. I demand a doomsday contingency plan if everything goes horribly wrong like, _heavens forbid_, TI getting their hands on the NumWorks IP and nuking everything they can from orbit with extreme prejudice.

I'm not even paranoid, it happened before with OpenSolaris and Oracle. But there was a doomsday contingency plan. We currently don't have one.

Please, _please_ do something about this. The ND clause is ineffective against PTT-killers for reasons I don't need to demonstrate and redundant with the NC clause against hardware copycats. I count 14 people who successfully committed copyright infringement here and that's just counting people who got commits merged upstream. I'm not exactly lawful good myself (otherwise why would I bother making a moderately evil plan to maybe generate microscopic amounts of bad press on calculator community websites for a niche side-project just to prove a point?) but _damn_, that's a very patient community. Don't wear its patience thin.

Just change ND to SA already!

(And no, pinky swearing being nice chaps ain't enough, because the next chaps might not be so nice.)

Hi everyone,

First of all, I'd like to apologize for not giving more feedback on this topic earlier.

Here are a few points I'd like to emphasize first:

  • We don't believe our Contributor License Agreement (CLA) restrict our contributor's freedom. On the contrary, it allows us to easily re-license the code later on under a more permissive license! To be comprehensive, it would also allow us to re-license under a more restrictive license, but the old license would still apply as well, so that would be kind of pointless.

  • I'd like you guys to take a minute to consider that most electronic devices you use everyday (mobile phones, sports camera, microwave ovens, calculators, you name it) and most electronic services you use (Facebook, YouTube, etc…) all contain a huge amounts of closed and proprietary software (if there's anything open at all!). I'd like to emphasize this, because our calculator's code is entirely available, and we're talking about relicensing the whole thing. We don't keep a "secret sauce" we would make money on the side out of. That's a big thing to ask, especially considering how rare that really is.

All this being said, we've thought this through, and here's our current position on the matter:

  • At this point, we will not embrace a copyleft license for any part of Epsilon. We heard your point @blackketter and @avamk , but we still believe this would be too big a risk to our core business model. Most companies who work on copyleft software either do it on non-core subjects or live by doing consultancy. And what may have worked well for a music player might just kill a calculator: we don't want to risk it!

  • We know that CC-BY-NC-ND is too restrictive. It was chosen as a first option because (and that's rather nice) you can only go towards "more free" licences :)

At this point I have an important question for you guys: would you consider the matter properly addressed if Epsilon were to be re-licensed under CC-BY-NC-SA+ (+ meaning "source please"), without any plan to move to another license (as in, it's not a step towards something else, it's the destination)?

Please vote "yes" with a 👍 and "no" with 👎 :)

I voted 👍 because that technically satisfies my demand for a doomsday contingency scenario, which is my only major gripe with the current license situation. As I said, I can live with NumWorks having the monopoly on commercial matters and I don't mind the CLA.

But I have two minor issues (that I can think of for now) with CC-BY-NC-SA+ being the endgame:

  • ion, liba and libaxx don't really need that amount of restriction/protection since those aren't where the "secret sauce" of NumWorks is, they're just mundane low-levels bits that can be useful elsewhere. Ideally those specific parts would be licensed under BSD or MIT and I'd be able to use these inside Rip'Em instead of reinventing the wheel poorly.
  • IANAL but IMHO the current native third-party app situation makes all apps legally derivative works of epsilon and thus bound by its license because they get tangled with escher, kandinsky and the rest. I know, so far I appear to be the only one crazy enough to write native third-party apps, but still. If we were to come up for example with a re-implementation of Casio's SDK API targeting epsilon, would apps/games written against such an API+liba+libaxx not be considered derivative works of epsilon?

EDIT: to be clearer:

  • First point is about HAL libraries not needing to be strongly copyrighted because HAL libraries don't make what the NumWorks calculator is, it's the stuff that runs on top of it (like the relationship between Darwin and macOS).
  • Second point is about doing stuff like cross-platform games and porting Casio games to NumWorks, not an attempt to cleverly try to skim on NumWorks's copyrights on technicalities: those games would not rely on any of the NumWorks-specific libraries (poincare, escher...).

@boricj Something alike the GNU glibc exception, that does not viralizes to your linked app, right?

Seems fair.

A thumb up from me as well. Moving (the bulk of) the code from ND to SA, which is what I and a number of others had in mind for a while, is a step in the right direction, probably the most important one :)

Like Jean-Baptiste, I'm not going to spend any more of my free time on Epsilon until the license change. That's the main reason why I stopped working on #62 , 30+ KB worth of size optimizations at the time (3% of the Flash memory's size, nearly 6% of the OS's size at the time), which has become the oldest open pull request.

CLAs and copyright / copyleft assignment have been shown to prevent some interesting contributions to projects from e.g. Canonical or the GNU project. But anyway, you wouldn't need a CLA anymore after switching to CC-BY-NC-SA, since you explicitly don't plan on moving to another license.

Thank you for your feedback! I hope we will find a solution that will be enjoyable for everyone. 😄 Please keep in mind that the debate is not a philosophical one (i.e. "should software be free") but a practical one (i.e. "I'd like to contribute to Epsilon, please make it legal and give me guarantee that my work will remain publicly available"). That's why I'd like to keep the discussion as practical as possible.

  • Different licenses for different parts of the code We could nitpick about what is and what is not the secret sauce 😄 We simply don't want to bother with different licenses for different parts of the code, just for the matter of simplicity.

  • Third-party apps are not allowed We obviously don't want to hinder people writing custom apps and in any way. That being said, I don't think Epsilon's license has anything to do with 3rd-party apps because I don't see how they would be a derivative work. People have been developing apps on closed-source OSes for ages, and this has never been an issue in terms of copyright.

  • Contributor license agreement is not needed anymore Sure we don't plan to move to another license, but what if we wanted to? Better safe than sorry. Like I said, the CLA only allows us to add a license, not to remove a previous one. If that is a problem regarding the current problem (practical, not philosophical), please provide me with a concrete example.

Now we have another important matter to discuss: we need to find a solution that allows NumWorks to actually use contributions back. If a patch is only licensed under NC-SA, that means that we cannot include that patch in the code we publish. We'd lock ourselves out! What would you guys suggest?

Last but not least, I understand that the solution we'll eventually find, being a compromise, won't fit everyone. Potential contributors obviously have the right to not contribute. Our goal is to be as welcoming as possible, as long as it doesn't compromise our business model.

Different licenses for different parts of the code We could nitpick about what is and what is not the secret sauce smile We simply don't want to bother with different licenses for different parts of the code, just for the matter of simplicity.

it seems the "most requested" would be only around ion - basically, ion would be licensed _foo_ [to be determined], and everything else _CC-BY-NC-SA_. Seems simple enough, no further nitpicking required?

Contributor license agreement is not needed anymore Sure we don't plan to move to another license, but what if we wanted to? Better safe than sorry. Like I said, the CLA only allows us to add a license, not to remove a previous one. If that is a problem regarding the current problem (practical, not philosophical), please provide me with a concrete example.

If the goal of the CLA is that simple, I guess several people here would be quite happier with a completely new&simplified text of the CLA, stating what you basically said, possibly in more legalese terms.
Also I'm not sure to understand what the re-licensing issue would be. As owner of the code, can't you do that whenever you want anyway? All previous versions of the code would still be/have-been available under their old licence, but that's just how things are everywhere else as well, as far as I know. Maybe @debrouxl knows more...

If a patch is only licensed under NC-SA, that means that we cannot include that patch in the code we publish. We'd lock ourselves out! What would you guys suggest?

A valid concern indeed, but I guess all is needed is "something" (custom CC appendix? CLA just for this?) that says that when a patch is proposed in a GitHub PR on the official repo and with the "appendix"/CLA approved, then the code may be merged and used commercially _(but after all, that's basically obvious, someone wouldn't want to make a patch upstream if it's not wih the goal to have it on the official builds, thus commercially available on the calculators sold)_. But IANAL so I don't know what the best way to do that would be...

There should be a distinction:

  • if a contributor forks Epsilon code, adds contributions/modifies the existing source and make the modified source+firmware non commercialy available on his own repository, then Numworks should not have the right to commercially use the contribution without signing a license agreement with the author.
  • if a contributor sends modifications to the Numworks official repository, he signs a CLA (or does something explicit) where he gives authorization to Numworks to commercially use the contribution.

Otherwise, the license change would not really change much regarding potentially large contributions (assuming sometimes in the future, the calc hardware memory is upgraded so that large contributions can happen).

@parisseb That's interesting. Would you mind elaborating a little bit? As a contributor, why is that distinction important? Examples would be welcome.

It's the distinction between a contribution like a bug fix, or a small enhancement, that obviously should be part of the firmware and an original contribution that requires non trivial work. For example, adding an extended GCD command to Poincare is a small enhancement (a few lines of code), writing a complete graphic (or linalg/scientific) Python library or even more providing a complete CAS to the Numworks, is an original contribution requiring more work (much more for a CAS!).
Compare with writing a research article: if you make a correction or a small improvement to someone else paper, you will not ask for authorship rights on his paper, but if you make a significative improvement (like more general assumptions with corresponding proof for a core theorem in a math paper), you will ask to be a co-author.

I understand, thanks for the clarification. Now if I take both "big contributions" examples, it looks like those could actually be decoupled from Epsilon just like third-pary apps. The Python library for instance could be released by itself under whatever license the author would see fit. And if NumWorks want to ship it with Epsilon, sure, we'd need to ask. In the case where a deeper integration is actually needed, how about keeping the majority of the contribution separate and under its own license (e.g. a CAS engine), and just contributing the glue-code (which would really be the tip of the iceberg)?

@Ecco Copyright law is... complex. IANAL, I don't want to get too many things wrong and I don't want to fall down the rabbit hole so I'll keep this as short as I can.

Trivial modifications are not eligible for copyright, which is why Microsoft does not require a CLA on GitHub for merely fixing a typo.

Just as I don't own copyright on the original epsilon because it's owned by NumWorks, NumWorks does not hold copyright on the modifications I do on my side because those modifications are owned by me. That doesn't mean I won't infringe on the copyright of NumWorks (or breach the contract that is the license for everyone else) if I violate the license epsilon is published under, nor it means I must license my modifications under the original license, nor it means NumWorks could legally take my modifications on my GitHub repo not inside pull requests directed to them (which we'll assume to be licensed under the original license because I did not say/write otherwise) and sell it _because they would violate the noncommercial clause of the license my modifications are licensed under_.

Submitting a pull request by itself does not transfer copyright without an explicit written agreement. When someone submits a diff to a project with the intent to try and get it merged upstream AND they own the exclusivity of the copyright of theirs modifications AND they don't explicitly say or write otherwise, they implicitly agree to license their changes under the original license. I hope so, otherwise the open-source world would be _way_ overdue for a humongous legal meltdown. This also means that I do NOT advise to drop the CLA and the copyright assignment if you do not relicense epsilon under a FOSS license without consulting with a lawyer first because I consider this to be weapons-grade "here be dragons" levels of legal minefield thanks to the noncommercial clause on modified stuff NumWorks would not hold the copyright to.

In short, copyright assignment for pull requests is here to stay, if only because the noncommercial clause of the CC-BY-NC-* licenses mandates it.

Or I could be completely wrong. After all, IANAL.

I won't even try to analyse derivative works and the consequences of the various possible levels of dependencies and intertwining between third-party apps and epsilon. After all, @Ecco said not to turn this into a philosophical conundrum.

Le 17/05/2018 à 19:43, Ecco a écrit :
>

I understand, thanks for the clarification. Now if I take both
examples, could those be decoupled from Epsilon just like third-pary
apps? The Python library for instance could be released by itself
under whatever license the author would see fit. And if NumWorks want
to ship it with Epsilon, sure, we'd need to ask. In the case where a
deeper integration is actually needed, how about keeping the majority
of the contribution separate and under its own license (e.g. a CAS
engine), and just contributing the glue-code (which would really be
the tip of the iceberg)?

Yes, that could work if there is a simple mechanism to bring a 3rd
party software to the final calculator user. Like a dmg on a Mac, an exe
on windows, a dpkg on debian or an apk on android. For calculators, the
analog that comes in my mind is the hp48 libraries, a lot of libraries
were distributed, most freely available and some of them were sold
commercially.
But today, there is no such mechanism, the only easy way to install the
soft on the calculator is to link the software inside a firmware that
you redistribute on your site, currently impossible. Doing that non
commercially should not infer anything on the 3rd party software
license. I'd say even more: redistributing the modified firmware with
the 3rd party software inside to Numworks calculator end-users only
should also be allowed on a commercial basis until such a mechanism exists.

too big a risk to our core business model.

NumWorks is not fundamentally different than Texas Instruments. I don't understand your motivation for creating this project. I came here because I heard about an "Open Source" graphing calculator and I got excited, but that isn't so. This doesn't solve the problems with school calculators.

I'd like you guys to take a minute to consider that most electronic devices you use everyday (mobile phones, sports camera, microwave ovens, calculators, you name it)

Okay,

  1. I'm running Linux on my computer with no proprietary software, except the BIOS, and I'm frustrated about it. Especially since Intel ME can effectively be used as a backdoor to my computer.
  2. I'm running LineageOS on my phone without Google apps (entirely free userspace), except for proprietary firmware, and I'm frustrated about it.
  3. I sold all my proprietary video game consoles.
  4. I deleted all my social media accounts. The only proprietary web service I still use is GitHub, and I only use it to collaborate on free software. And I'm frustrated about it.

Basically, I am doing the best that I can, but I feel like I'm constantly at odds with technology. Saying that people are hypocrites is not an argument. It's not like all of us are willingly accepting this reality and then complaining arbitrarily about certain projects. Every proprietary thing that's permeated our culture is a roadblock to overcome.

too big a risk to our core business model.

This is not an addictive smartphone app like Angry Birds. We are talking about the education and intellectual enrichment of children. Math is not proprietary. Kids are already suffering from corporate tools being shoved at them like Google Classroom, they don't need another proprietary calculator, they need actual tools that they can assemble themselves, share, and improve. Teaching children how to smash rocks is more useful than teaching them to use proprietary software, because at least you can build a hut out of rocks without signing a user license agreement or having a SWAT team invade your house for piracy.

I think what you are doing is wrong. I think what Texas Instruments is doing is worse, but I'm writing to you because I think you might hear me out. There is an opportunity for common people to permeate this space and improve an important aspect of public education, but CC-BY-NC-ND is such a conservative and incremental change that it is not worth doing. If anything, it will make things worse, because it will lead to more confusion about the meaning of "Open Source."

The sentiment I'm gathering from you is that "we want to contribute something positive to the world, but we have to make some compromises to do it." However, the compromises you choose can totally degrade the positive impact this project has.

If this were licensed under the GPL and then another company started manufacturing calculators just like it, that would be a good thing. Maybe not for you personally, but for all of society.

I feel like this question is similar to "if you have to pick between someone you love dying and 1,000 random people dying in a plane crash, which would you choose" except with different framing.

There's often not a lot of things we can control in our lives, but this is something you can control. It's your choice.

@alexgleason Just because the official firmware is not open-source doesn't mean you're stuck with it. There's a laundry list of open-source calculator software and/or firmware already existing you could port to the NumWorks calculator. With its unlocked, bog-standard, very simple and well documented hardware that should be a fairly easy task to accomplish too.

You want to overcome proprietary handheld calculators? This is probably one of the best developer-friendly hardware platform readily available out there to build a fully open-source solution on. Or you can just wait until SwissMicros open-sources their DM42 firmware.

@Ecco:

I'd like you guys to take a minute to consider that most electronic devices you use everyday (mobile phones, sports camera, microwave ovens, calculators, you name it) and most electronic services you use (Facebook, YouTube, etc…) all contain a huge amounts of closed and proprietary software (if there's anything open at all!).

Believe it or not, I am acutely aware of that, and that's why Numworks can have a huge first-mover advantage if it is bold enough to seize the opportunity to not be proprietary.

I'd like to emphasize this, because our calculator's code is entirely available, and we're talking about relicensing the whole thing. We don't keep a "secret sauce" we would make money on the side out of. That's a big thing to ask, especially considering how rare that really is.

Your calculator is certainly a big step in the right direction, and clearly deserves credit for being less proprietary!

we still believe this would be too big a risk to our core business model

I've asked this before and am sorry if I missed your response, but exactly how do you see a license that fits the Free Software Definition or the Open Source Definition pose too big a risk to your business model?

This is an honest question and very much a practical one: Which specific problems do you foresee? Is it fear of copycats/clones? If so, they will still happen even if you use "CC BY-NC-SA+" (by those who don't honor licenses), and a copyleft license will benefit you because anything anyone else makes will feed back to you (by those who do honor licenses). Or is it another risk? If so, what is it?

Another very practical issue is that by using a proprietary license (yes, the -NC or -ND licenses are still proprietary, because they are "you can look but very restricted in what you an do"), it actually becomes much more complicated in terms of what people can do with it. The complexity has already been demonstrated by the long and complicated discussions in this thread. This complexity costs money for you, as opposed to licenses that meet the Open Source Definition which can be less costly to handle.

If Numworks products are licensed under CC BY-NC-SA or "CC BY-NC-SA+" (which is essentially a custom proprietary license), then you are completely locking yourselves out from the huge flourishing open source community that already exists. This is a very practical problem.

I agree with @alexgleason that yes, Numworks is better than Texas Instruments, that much is clear, but for a product aimed at education it is especially important to send the right message to pupils. Therefore I'd like to emphases this very important point: If, in the end, you choose to go with "CC BY-NC-SA+", then OK, that is your choice. But DO NOT market Epsilon or other Numworks products as open or open source. By using the words "open" or "open source", it would be very misleading and further muddy the waters around what open source and free (as in freedom) software is. You can say "our code and designs are available for you to look at under [insert your custom license here]", but DO NOT say that it is "open" or "open source" because it literally does not meet the Open Source Definition (and certainly not the Free Software Definition). Can you, at the very least, commit to this?

But DO NOT market Epsilon or other Numworks products as open or open source.

To be fair, I can't find a single instance of this, not on the Numworks website nor the repos. I don't think Numworks ever claimed this, Hackaday did.

Thank you @avamk for your comprehensive reply!

Which specific problems do you foresee? Is it fear of copycats/clones?

It's hard to figure out all the risks. But yes, that's one of them.

If so, they will still happen even if you use "CC BY-NC-SA+" (by those who don't honor licenses)

Not in the western world, which currently is our target market.

But DO NOT market Epsilon or other Numworks products as open

Well, with all due respect, the FSF doesn't get to decide what is "open" and what isn't. There are so many meanings to the term it wouldn't even be fair…

or open source.

Yes, of course. Out of respect for the FSF and the OSI we don't market our product as "open source". Some people do, and, depending on the meaning, I could see why (after all, you can retrieve the code and, with the current license, do whatever you want with it as long as you don't redistribute it). But we don't.

Le 21/05/2018 à 18:31, Ecco a écrit :
>

Thank you @avamk https://github.com/avamk for your comprehensive reply!

Which specific problems do you foresee? Is it fear of copycats/clones?

For example.

If so, they will still happen even if you use "CC BY-NC-SA+" (by
those who don't honor licenses)

Not in the western world, which currently is our target market.

But DO NOT market Epsilon or other Numworks products as open or
open source.

Where do we?

There are many articles where the Numworks is described as an
open-source calculator, I fighted against that without much success and
... I don't think Numworks asked for corrections! For example in the
mainstream French press:

People use whatever definition of open source they want, we don't get to decide. We've been explicit about our license from day one. Now if a journalist/blogger wants to say the NumWorks calculator is "open source", I'm not going to correct them, because I can see why it's a rather good first approximation in an environment that has been extremely closed-up for such a long time. Sure, our current license doesn't match the OSI's definition of OSS, but our project isn't "closed source" either, so…

That being said @parisseb you've indeed tried your best to undermine our project using your math researcher hat. But, and please correct me if I'm wrong, I heard you were selling a commercial license of Giac to HP, which would make you a de facto a commercial competitor… In which case you might want to revise your communication ethics before criticizing ours.

Is this thread still a debate about the practical aspects of the license?
If so let me chime in:
I would be perfectly happy with a CC-BY-NC-SA+ license. :)
As I see it, then Numworks is not the "GNU/Stallman" of calculators. Nor does they try to be. Numworks is not open because of a philosophical crusade. They are open because they want to invite a healthy and active community onto the "calculator-platform". People should judge them as that, instead of by whichever open source agenda people themselves are advocating for.
I honestly don't quite understand why to use a CC license for the software part. But hey.. If I can contribute to the project with "3rd party apps" or additions to/"remixes" of Epsilon, then I'm perfectly happy. If I can see the source, get inspired by it. Perfect for a beginner as me.
If I can get the schematics and repair my calculator if a chip dies. Win!
I do see the shortcomings of this license. I do get the ideological reasons to use GPL or the likes. But I honestly do not care about weather or not people are able to use Numworks' IP for their own commercial gain.
As a user, the CC-BY-NC-SA+ is just fine. More openness is, in my eyes, for the sake of the original owner of the IP.

P.S.: lets stick to the subject, right? Mud casting as bad for the community :(

🤔 This is getting weird. Slaps and flames?

Anyway...

I researched the OSI-Approved licenses a bit. Found some interesting ones:

Then looked at the proposed license CC BY-NC-SA: https://creativecommons.org/licenses/by-nc-sa/4.0/
And looked on the + options: https://wiki.creativecommons.org/wiki/CCPlus

For the prism of 3rd party (not NumWorks), looks for me that the NumWorks proposed BY-NC-SA+ is very alike NPOSL or between it and OSL. Then I see it as real Open Source, at least for OSI eyes.

As the CLA is signed, NumWorks can change the license to "Closed" and pack its products with any code. But for everybody else, NPOSL is very equal to BY-NC-SA+.

However, I got doubts after reading the OSL FAQ. Non-Profit (or Non Comercial for CC) means "any" form of profit/commercial form. And I can see desirable ways to profit:

  • May a contributor buy a bunch of calculators from NumWorks and get paid by training people from it? Not with pure NPOSL (and then not with CC NC)
  • With some stretch, custom-firmware NumWorks calculators cannot be used in a classroom by CC NC. This is not what we want.
  • May a contributor provide an "App" that runs on NumWorks calc and get a profit for this App? Not with CC NC if some API change is needed.

Then I see an CC BY- NC+ SA+ as a desirable middleground over OSL 3.0 and NPOSL 3.0. And this I can call Open Source by OSI, in my humble opinion.

To sum up:

  • I am not a lawyer ;)
  • The custom SA+ provides the _must share_ part of OSL license.
  • The custom NC+ provides special grant from NumWorks on what a contributor can do for profit.
  • Keep the CLA signs, then NumWorks can keep closing, packing and selling calculators
  • The doomsday button exists: NC+SA+ grants are kept even if Oracle buys NumWorks.

    • If no CLA got signed, then SA+ is respected but NumWorks cannot relicense this chunk of code. As is how Illumos-forked OpenSolaris code cannot be used by Oracle if Oracle does not contribute back.

I had voted 👍, but @Ecco please elaborate on what could be permitted by NC+.

Le 21/05/2018 à 20:19, Ecco a écrit :
>

People use whatever definition of open source they want, we don't get
to decide. We've been explicit about our license from day one. Now if
a journalist/blogger wants to say the NumWorks calculator is "open
source", I'm not going to correct them, because I can see why it's a
rather good first approximation in an environment that has been
extremely closed-up for such a long time. Sure, our current license
doesn't match the OSI's definition of OSS, but our project isn't
"closed source" either, so…

That being said @parisseb https://github.com/parisseb you've indeed
tried your best to undermine our project using your math researcher
hat. But we rarely if every see you publicize the fact that you are
selling a commercial license of Giac to HP, and therefore are /de
facto/ a commercial competitor… Maybe could you revise your
communication ethics before criticizing ours?

Let me clarify a few points:
1/ I never hide the fact that Giac is available on the HP Prime (and
PocketCAS). This is clearly stated on my homepage
https://www-fourier.ujf-grenoble.fr/~parisse/english.html#hprime.
Readers of tiplanet are aware of that.
2/ Giac is licensed under the GPL3. If Numworks chooses the GPL for
Epsilon, then Numworks could benefit from my work (18 years) without
giving me anything. The corresponding code (for a previous version of
Epsilon) is available on github https://github.com/zardam/giac-1.4.9
See also https://tiplanet.org/forum/viewtopic.php?t=20557&p=223551&lang=en
3/ Giac is available under the GPL3 for the ti nspire
https://www-fourier.ujf-grenoble.fr/~parisse/install_en#ti. I don't get
anything for that, to the contrary, every buyer of a TI nspire
installing khicas will not buy an HP Prime
4/ Giac is the CAS of Xcas and Geogebra. I don't get anything for that.
My main objective is to give people access to CAS everywhere, freely,
not to get money from calculator licenses.

You can not expect that I won't react when you communicate that the
Numworks is a revolutionnary open-source calculator in a world where
nothing happened since more than 20 years, despite the evidence of the
HP Prime is certainly not 20 years old technology and that Epsilon
license is not open-source. Especially considering that you asked my
opinion in 2016 and we discussed about the memory required to port giac
on the Numworks. Then I never heard anything from you, discovered the
Numworks from the press, discovered that the memory capabilities of the
Numworks would never permit the port of giac, and that the license was
not open-source despite your claims.

I don't think I have lessons of open-source ethic to recieve, especially
from you.
I think it's fair to warn other open-source developers or people who like open-source: beware of
communication and read the license.
Goobye

Thanks @Ecco for the quick response and your engagement on this important matter.

First of all, forgive me if I come across as pedantic or patronising! I appreciate what you are doing and my responses are meant to be constructive/helpful, hope you understand!

Which specific problems do you foresee? Is it fear of copycats/clones?

...yes, that's one of them.

OK, if clones are what you fear (and I would suggest is actually a good thing unless you don't want competition!) then that's exactly why I think a copyleft license actually benefits Numworks in a very practical way! For example, if someone takes your code or hardware designs and build a similar calculator, a copyleft license legally requires them to share everything they did, including back to you. Therefore, you can take advantage of any improvements that take place, and in effect tap into a huge potential developer base (from which you can pick and choose which improvements to pull back into the Numworks calculator) far beyond what you can do in house. In a sense, others don't get to "free load" off of you!

In contrast, these benefits are less likely with non-copyleft open source licenses such as MIT, because people can take your design, improve it, and release it under a proprietary license. The Numworks calculator is such a great product already, I certainly don't want this to happen!

If someone makes Numworks calculator clones and markets it under your brand ("pretend to be you"), then that is serious plagiarism and you can legally defend against this through trademark laws and other legal means.

Another important thing about copyleft licenses is that they legally require full attribution to you. So the hypothetical clone maker will have to say that they are creating a work derived from Numworks, which can work to your advantage as well.

I will also note that a truly open source product will enable a flourishing ecosystem to develop around it. Other makers will be empowered to create, for example, hardware mods, accessories, and software changes that take your product into new markets. With copyleft licensing, everything good that others create will feed back to you. This strenghthens the Numworks calculator, which makes it an even more attractive product that people will want to buy.

It's hard to figure out all the risks.

Forgive my ignorance, but surely you can't base the licensing (or other business) decision on a vague fear of unspecific risks which are "hard to figure out"? There are specific, profitable advantages to real open source licensing, especially copyleft ones. But other than possible clones (which can be leveraged to your advantage), what other specific risks are there? How do they overweigh the very practical advantages that open source hardware and software offers? Again, this is an honest question, and I'd like to learn from you since you've obviously given this a lot of thought!

Well, with all due respect, the FSF doesn't get to decide what is "open" and what isn't. There are so many meanings to the term it wouldn't even be fair…

Well, for the record, the FSF doesn't try to define what "open" means. :) They specifically address free (as in freedom, not price) software, and they avoid "open".

Yes, of course. Out of respect for the FSF and the OSI we don't market our product as "open source". Some people do, and, depending on the meaning, I could see why (after all, you can retrieve the code and, with the current license, do whatever you want with it as long as you don't redistribute it). But we don't.

I think that's great, and of course like you said there are many who might still refer to the Numworks calculator as "open source", such as the recent Hackaday article that @alexgleason linked to.

People use whatever definition of open source they want, we don't get to decide. We've been explicit about our license from day one. Now if a journalist/blogger wants to say the NumWorks calculator is "open source", I'm not going to correct them, because I can see why it's a rather good first approximation in an environment that has been extremely closed-up for such a long time.

Most of the time, and in general, I totally agree with you! If one person decides that for them the word "dog" means what everyone else normally considers a cat, they are certainly allowed to do that! And of course, I don't think you need to spend all your time tracking down every instance of someone referring to Numworks as open source and correcting them... :)

However, I submit to you that in the case of Numworks, it is important to be super clear about what you mean and be careful about wording for the following reasons:

  1. After many years, the meaning of "open source" is finally starting to be more well-defined in industry. Most of the time, when a company refers to open source it does come with a specific meaning, that is open source as defined by the OSI.

  2. Students are a major target audience for this product, and you exert power over what they learn. It is certainly your decision what license to release your product under, but I think it is important to give the students the correct impression. What I fear is that a student will associate the restrictions (and limited freedoms) that come with your CC BY-NC-SA+ custom license with the term "open source", and I think it is important to make sure that does not happen.

  3. Another problem is that when the Numworks calculator is referred to as "open source" (accidentally or not), it will mislead people into believing that the calculator comes with all the benefits (and, as you fear, risks) of open source. Just as you want to avoid risks, we also want to avoid Numworks benefitting from the "open source" aura when you have chosen not to take it.

That said, AFAIK the current Numworks website indeed does not specifically claim the calculator is open source. However, I take note of this statement:

NumWorks is the first open graphing calculator: all our engineering effort is made available online under a Creative Commons license.

In the spirit of what you have already expressed ("We've been explicit about our license from day one."), I strongly suggest avoiding the work open (because it is too strongly tied to open source) and saying the following instead (emphasise added):

NumWorks is the first graphing calculator where all our engineering effort is made available online under a Creative Commons BY-NC-SA+ license. This means you can study the code and tinker with it for non-commercial purposes.

After all this back and forth, can we at least agree on this one change? :) With this change, it will be crystal clear to a potential user that the product is a step above other completely proprietary calculators, but minimises the risk of misleading them into thinking that it is open source.

And for those interested, I suggest a very informative article on building a successful business around open source hardware: https://openhardware.metajnl.com/articles/10.5334/joh.4/

Finally, I'll echo @hlieberman's original comment and say "thank you for reaching out and attempting to open up one of the most classic areas of non-free, dated software -- calculators". While the license you have chosen prevents me from buying your calculator and prevents me from recommending it to others, I agree that Numworks is an important attempt at moving us away from fully proprietary calculators.

Thanks @Morgenkaff and @alanjds for putting this discussion back on constructive tracks 😄

@avamk, thank you very much for taking your time to clearly state your point. I understand what you mean by "first mover advantage", and that might indeed very well be true. Color me coward if you want, but I'm not ready to risk it, even though I might be missing up onto something.

I believe our current license is indeed too restrictive and that it's therefore hindering the project. We're here to find a compromise solution that will hopefully please the better part of potential contributors. Following @Morgenkaff comment, here are the goals we're actively pursuing:

  • Letting people see how the calculator is made so they can learn from it
  • Allowing users to improve with their own device as much as they want
  • Allowing people to share whichever improvements they make with other users
  • Allowing people to repair their device by themselves if needed

To move things forward, I'm going to list all the topics that were discussed and give our position on each. The id is just so that people can refer to each point individually. Here goes (I'll edit this table as needed).

| id| Topic | NW's take | CC-BY-NC-SA | GPL | NPOSL |
|:-:|------|-|-|-|-|
| 1 | Contributors don't want to risk seeing their work vanish | We understand that and we'd like to give contributors the right to distribute Epsilon alongside their patches. | ➕ | ➕ | ➕ |
| 2 | NumWorks wants to prevent commercial clones and copycats | We believe that would be a threat to our business model. | ➕| ➖ | Not sure |
| 3 | NumWorks would like to be able to ship users' contributions. | Otherwise most users won't benefit from contributions. This is might be solved by keeping a CLA. | ➖ | ➕ | ➖ |
| 4 | The license is OSI-approved | Not a critical point for us. | ➖ | ➕ | ➕ |

Here are several elements to keep in mind:

  • The current license doesn't allow GitHub PRs That's technically true, and one of the reasons we will change it.
  • License should be an existing one We could come up with a custom license, but that seems like both a huge waste of time and a good way to completely overlook something and create a loophole.
  • Let developers release their apps under their license. The cleanest solution is to allow loading of 3rd-party binaries by Epsilon, which will fix the issue regardless of Epsilon's own license.

I've been listening intently as I'm interested in this debate. I don't
fully appreciate the details of copyleft and "CC BY...etc," so please take
this with a grain of salt. I also really appreciate the work by the
Numworks team and would like to see this project become extremely
successful. And, some of these comments could be made about any
"non-commercial" license. That said, here's my take.

As CEO of a company with technology based on proprietary designs (
www.modulatedimaging.com), I understand the concerns about the barriers to
entry often necessary for businesses to survive(and get funded). But
separately as an author of an educationally-focused OSS project with an
MIT-style license (https://github.com/VirtualPhotonics/VTS/wiki), the
counterpoint resonates with me. There are good examples of successful OSS
and OSH companies that succeed with more permissible licenses. Adafruit
comes to mind. And my experience has been that the ability to engage the
broadest audience/community (that includes industrial users interested in
appropriating our projects designs) has had only a positive impact on our
project's goals to disseminate new computing capabilities and to build a
single point of effort for creating useful education- and research-related
tools.

I think it comes down to the "why" of the company - if the goal's to make
money selling a better product for use in the education market, that's a
commercial endeavor and hard to critique, even if the community hoped
things were different. If it's to build a community motivated to improve
software for educational purposes, however, I believe it would be shooting
the project in the foot to limit who is motivated to work on the project.
My example, Adafruit, is successful precisely because of how open they are.
Customers buy into the vision of a magnanimous set of objectives, and
engage them further to work on mutually-beneficial goals.
Education-oriented projects such as CircuitPlayground and IoT starter packs
get a ton of attention, and by the way, corporate and governmental
strategic alliances/promotion.

If the goal's both, then I think you risk sending mixed messages to the
community from whom you're asking for help. From the following t
https://www.numworks.com/why/:

"We believe in education and collective intelligence so we're providing you
with all our know-how to invite you to be part of the first collaborative
calculator."

The first half promotes education, the second asks for help. Does not
scream "we make/sell products for profit that are awesome, and we disclose
the process so you can send us PRs to fix issues you find." While Numworks
has not mentioned OSS anywhere, the cynic in me hears this raison d'etre as
as a company asking for free labor, and then not sharing the fruits of that
labor with anyone else.

If I'm way off here, I'd love to hear it - I need to become more lingual in
OSS terms and best practices.

Thanks for your input @dcuccia ! I agree with most of what you said, but am obviously a bit irritated when you call us profiteers. Sometimes it's nice to look at the cold, hard numbers 😄
If you look at https://github.com/numworks/epsilon/graphs/contributors you'll see the following:

  • NumWorks team : 322'703 line changes
  • Other contributors : 3'800 line changes

In other words, for every Epsilon line written by an external contributor, the NumWorks team has written 100. Obviously we've very happy to have people help, but what I mean is that in the current state of things external contributions merely represent 1% of Epsilon, so I'm not sure that really qualifies us for being thieves that prey on contributor's work 😄 Especially considering we're having this whole conversation precisely to give contributors more rights.

Anytime ;)
Hmm.. I'm not a fan of the CLA part in topic 3. Not really by a ideological standpoint, but by a practical. It's a bit daunting to sign a CLA just to contribute to a project.
But if there no existing license that ticks 1,2 and 3 (which is the ones I'm interested in), its the "least bad" solution. :)
And apropos existing license. Other benefits of a existing license is that there's documentation, which makes it easier for newcomers to understand it, and precedence (or what it's called) from earlier cases with same license, which makes it easier for Numworks to defend their IP. So yeah. Definitely an existing license.

Speaking simply to the existing license and my experiences with projects, it is important that the license that is selected actually aligns with the actions of the project.

To me, this is a more significant issue than the exact license that is selected. Rather than worry about if a CC derivative, MIT, or the GPL fits, it seems to make more sense to describe the exact behavior you want to prohibit and allow, then find whichever license fits best. Nothing stops you from saying this is BSD licensed, except it cannot go into a commercial product. (Weird license, but you get the idea.)

As it stands today, the actual license that applies to the code is unclear... the text of the license says ND, but the owner has explicitly said they will not persue the ND violations except in some specific circumstances and implicitly endorsed the behavior by taking pull requests. By using a license that is more restrictive than the company intends to be, it weakens the license in those areas the company really wants to enforce.

That potentially leaves a lot of wiggle room on both sides, both for the project to change its stance on things, and for a potential competitor to use things that you might prefer that they not use.

That makes the present circumstances the worst of both worlds... the community is uneasy, because the license doesn't reflect what they're doing, and the company is in a worse position than it would be with a more permissive license, because it can't enforce the license as written.

All of that aside, very cool product, and it's great to see a company engaging in this discussion with its community, regardless of the ultimate outcome. Open source or not, that kind of transparency is great to see.

When I bought NPOSL and OSL to the table it was to make a clear parallel that the CC license being discussed (BY-NC-SA+) does indeed have an existing OSI sibling. Then I do can accept BY-NC-SA+ as "opensource".

However, my main point is the use of NC+. Because without that no commercial community mutualism can be born around the NW business.

I see the point against "a new custom license". But OSL and NPOSL are poles of commercial, and CC+ is a simple(r) way to get middle point by saying "take this standard license, add this extra permissions.". Is not an entirely new beast.

To be clear on 4): OSI-Approved is not important for me. But it is a reference to ease the understanding of where CC ones sits.

What about GPL+CLA?
I mean, for every contribution to be integrated in the Numworks Epsilon
central github repository, the contributor gives Numworks the right to
relicense the code (this is the way Geogebra works for most
contributions). That way, if there is a fear of clones, Numworks can
stop contributing to the GPL version and keep an advantage with a better
firmware (I still believe that the clone fear is overestimated, anyway
it can only happen after Numworks has a lot of success...).
Contributors would have the choice: for small contributions they accept
to give the rights to their work to Numworks, for large contributions
they can keep their fork or find a license agreement with Numworks.
Even better: Numworks could dual license Epsilon for commercial
contributors who do not want to publish code under the GPL.

I agree that people making clones will either ignore the license entirely, choose a different OS because they want to avoid the GPL, or will embrace the GPL and become a contributor to the community.

And the clone makers who ignore the license could well be in countries where enforcing Western copyright law, patents and suchlike stuff is hard.

Some people and entities stay as far away as possible from anything GPL, which can act as a deterrent for clone makers: they'd have to spend more effort reinventing stuff under licenses such as Apache, BSD, MIT or X11, only to name a few.

Per the GPL, the clone makers would have to provide the GPL'ed source code, which includes the source code of other binaries statically linked to binaries made out of GPL'ed source code ("infectious" / "aggressive" nature of the GPL; the AGPL is even more drastic).
Such source code does not have to be at a permanent location on a manufacturer's website, let alone in a pretty SCM repository with good history on e.g. Github; however, it shall be provided to upon request, as failure to provide source code upon request is a GPL violation. Then, whoever received the source code is then entitled to do whatever the GPL allows (exercising "freedoms 1, 2 and 3", etc.) with it.

Hi everyone,

We've re-licensed Epsilon under CC-BY-NC-SA!

  1. Our fear of clones is not a fear of competition but a fear of theft. A clone maker could just manufacture the exact same device as ours, not providing any original IP whatsoever, saving big on R&D costs, effectively having an unfair advantage on us. That's not something we want to allow, so unfortunately the GPL is out of the way.

  2. A large majority of potential contributors see NC-BY-SA as an acceptable license for them. Indeed, 8 voted yes, zero no when asked wether NC-BY-SA would address the matter.

  3. If you really want to port code using another license (e.g. GPL) to Epsilon, please consider adding support for side-loading external binaries.

  4. Yes, that's CC-BY-NC-SA, with no additional clause whatsoever. Yes people can publish binary-only forks. Not something we'd encourage though.

  5. As thoroughly explained by @boricj , the CLA needs to stay. Nobody has to sign it, but if you want NumWorks to distribute your contributions back to end users, then we will ask for it. Again, please read @boricj 's explanation on why this is a good thing.

  6. Keep in mind that NumWorks is a registered trade mark and that the license does NOT apply to the NumWorks name.

Thanks, that's great. I can start actually doing something with this (as soon as my unit gets here, I've been waiting for the post for more than a month now). I absolutely understand your worry about no-effort clones.

Now as for something to consider... Relicensing Ion only under, say, LGPL, wouldn't really complicate your life in any way. LGPL allows the non-copyleft parts to build upon it, and Ion by itself would not allow no-effort clones.

What it WOULD allow is hackability: Community members using your HAL to turn Numworks calculators into a number of derivative tools, fully free and open-source. Also, it would allow HAL-level improvements and additions to flow freely unfettered by pull requests and CLAs, similarly to the clock stuff I mentioned in that thread.

It would still protect you from the threats you want to protect yourself from, and be a HUGE benefit for the community. It's not urgent, but please consider it. From a "hassle" standpoint, all it entails for you is dropping an LGPL license file in the Ion folder. ;)

There is a big problem with "non commercial". Let's say I do a fork. Let's say I'm a teacher and teach for money => I can't use this fork in my class.

A better business model would be to create an open platform and very good open hardware (like raspberry pi and so many today). It makes so much sense for education.

Then you can create a app store accepting open-source, non-open source and whatever peoples make. I bet you can make a lot of money on game. Of course like in android, peoples can install things by bypassing the "official store", the reality is that most peoples don't.

No-commercial is bullshit in our capitalist society :).

I say that as I was thinking about integrating numworks simulator in http://openboard.ch/index.en.html . I don't want to take the risk of license problems. Openboard is under GPL, it can be distributed commercially... so I can't use numworks simulator. Yet, using the numworks simulator in a highly distributed software would make so much free advertising for you guys! I hop you will change your mind.

@gagarine As stated by the license, the NonCommercial clause is all about intent. Your teaching for money example is flawed because you're not selling epsilon itself as a product, you're selling a teaching service. To clear any possible legal issue about NonCommercial I'd make the fork publicly available on GitHub: then the teacher can't possibly be selling epsilon when he makes his fork available for free, the teaching service being fully decoupled from the epsilon fork.

Your OpenBoard example is, however, a valid concern. Not being an FLOSS project has its drawbacks, but unlike the original NoDerivatives issue this is not something NumWorks is willing to change for the time being.

@boricj To expand on what @gagarine said, I've been looking for open source alternatives to graphing calculators and software like GeoGebra, with the intention of using them in my classes and making resources to support (e.g. guides, tutorials, and activities that use the Numworks calculator). However, because the CC licenses don't differentiate between use of the source code and use of the binaries, I don't feel that I am able to make any resources that can be shared with a wider audience than my own classroom with the NonCommercial clause.

Specifically, I both teach and do supplementary work (e.g. making tutorials on YouTube or running weekend workshops with teachers), and while some uses might be okay (e.g. using the Numworks calculator in my classroom with my students), some of them are clearly not (e.g. earning ad revenue off tutorials that use Numworks on YouTube - or even embedding them in a site that earns ad revenue).

Additionally, many textbooks include examples/resources on how to use a variety of tools to implement the examples; many textbooks will include supplementary guides for the TI calculators, Excel, and specialized software like Minitab and JMP. With the NonCommercial clause, even if I made an accompanying resource using Numworks there is no way it could be included as an option with textbooks - severely limiting the potential adoption by teachers. Teachers will be hard-pressed to adopt technology without supports aligned with the resources they use, and the NonCommercial license prohibits creating and distributing those resources under the typical models.

Reading through this year of postings, the concerns that @ecco has about cheap knock-offs and clones is clear and understandable - there was a good exchange of ideas about the nature of open source and free software, and the NoDerivs clause was changed but the NonCommercial retained - but this was all done in the context of the source code, not the binaries used by the end-user.

I'm curious if the development team would be open to adding a license/clarification specifically about use of the compiled binaries/physical calculators that would explicitly allow the creation and sharing of resources that use the Numworks calculator in ways that someone might profit. Again, I'm thinking this would involve video and/or screenshots of the software, not distributing the actual software. As-is, the NonCommercial clause prevents this in all but the most limited circumstances.

(For what it's worth, GeoGebra prohibits non-commercial use without a separate license (https://www.geogebra.org/license) but this really does have the result of limiting the adoption. I'm specifically looking for alternatives to GeoGebra that don't require purchasing a commercial license for making resources because the universities and publishers I work with specifically don't want to have to deal with these license issues - they would rather not support GeoGebra than purchase a commercial license because there are alternatives that don't require this (e.g. TI and Excel). Even requiring a CC-BY-SA license for guides, tutorials, and resources would be fine.)

@douglaswhitaker I believe writing third-party documentation/tutorials/reviews from the ground up about proprietary software to be fair use, including stuff like screenshots for illustrative purposes. There are countless examples of third-party books about proprietary technologies sold for profit without the original author's knowledge or approval to make this a moot point for me. Whether or not this is something _you_ are comfortable with is up to you (and your lawyer).

@boricj My understanding is that these are generally allowed because the person producing them has a license that allows commercial use for them. I was interested in creating some resources using SPSS and only have an academic license and have been told explicitly that an academic license would only allow non-commercial materials to be made (i.e. I couldn't earn any ad-revenue off of SPSS tutorials on YouTube without purchasing a commercial license, which then would be no problem). All of the major statistics programs I'm familiar with are either entirely free for any use or offer Academic and Commercial licenses with different restrictions, where the commercial one would allow for materials to be distributed commercially but the academic wouldn't.

I further think that while fair use would allow for some screenshots, it (almost) certainly wouldn't allow for the amount of screenshots or video needed to fully support the program.

I'm clearly just an interested user of the software, but I wanted to bring this up as another licensing challenge that is created by using CC-BY-NC for all aspects of the program without additional license options. Creative Commons has an interesting page about their understanding of NonCommercial that suggests that any use of a CC-BY-NC material in something distributed commercially is disallowed. My goal here is to make you aware of my concerns that I feel prevent me (and likely others) from using Numworks while asking you to consider adding a license option that allows commercial use of videos and screenshots of the software and use of the calculators in things like paid training sessions. (Again, I understand the purpose of the CC-BY-NC for the purpose of preventing clones/knockoffs and am not suggesting abandoning that approach, only offering a complementary license that allows specific commercial uses.)

However, my main point is the use of NC+. Because without that no commercial community mutualism can be born around the NW business. -- @alanjds

...while some uses might be okay (e.g. using the Numworks calculator in my classroom with my students), some of them are clearly not (e.g. earning ad revenue off tutorials that use Numworks on YouTube - or even embedding them in a site that earns ad revenue). -- @douglaswhitaker

I believe writing third-party documentation/tutorials/reviews from the ground up about proprietary software to be fair use, including stuff like screenshots for illustrative purposes. There are countless examples of third-party books about proprietary technologies... -- @boricj

I further think that while fair use would allow for some screenshots, it (almost) certainly wouldn't allow for the amount of screenshots or video needed to fully support the program. -- @douglaswhitaker

@Ecco, could you please clarify what is acceptable with the existing license?

  • Can one use the calculators on a paid offline class/course?
  • Can one use the calculators on a paid online class/course?
  • Can one use the calculators on Youtube videos?
  • Can one use the calculators on Youtube video courses?
  • Can one produce paid text materials as tutorials or books?

@alanjds Unfortunately I'm not a lawyer and cannot provide you with an authoritative answer to those questions. 😞

@douglaswhitaker I understand your concern, and it's a legitimate one.

What I can say on the matter:

  • So far we have always granted the appropriate rights to people willing to publish educative material based off the NumWorks calculator (books, tutorials, videos, etc…). But indeed this required them to ask for approval beforehand.
  • We could consider adding an extra license so that people don't even need to get in touch with us for similar use cases, but we won't write anything custom.

Do you guys have any examples in mind we could draw some inspiration from?

Unfortunately I'm not a lawyer and cannot provide you with an authoritative answer to those questions.

It's exactly why those kinds of restrictive licenses are a pain. They create cost and uncertainty on the user side that really kill all the benefit of having access to the source code.

You are using a lot of open-source tools for your project, starting with git. So you are afraid of "clone" but you use other people’s tools without giving back? That's nice. I really do prefer close source code than "non-for-profit" license.

CC-BY-NC-SA is mostly used by project that wants to take advantage of the community (free works/marketing/...), without taking any risk. I never understood why Creative Commons did this license at the first place. It's a cancer.

In my opinion, the open-source community should be clear about that and reject CC-BY-NC-SA.

It's exactly why those kinds of restrictive licenses are a pain.

Actually no, it has _nothing_ to do with the license itself. I'm simply not entitled to provide anyone with legal advice.

but you use other people’s tools without giving back

As a matter of fact, we have contributed to external projects when we had the opportunity.

Your comment was flat-out wrong, and somewhat offensive. We would be grateful if you could add actual value to the discussion and avoid being overly judgemental.

Thanks for the Micropython JS port, btw.

@Ecco I'm sorry if you feel personally offended, but it was nothing personal but a legitimate and constructed criticism about the project in the context of this tread.

But it is certainly true that I do not appreciate when projects claim to be open when they are in fact not – nor when people get overly defensive when I point it out:

NC licenses do not qualify as “open licenses” under the Open Definition, and works licensed under an NC license are not considered Free Cultural Works. This may be important if you want others to further distribute your work on Wikipedia, Wikimedia Commons, or other platforms requiring a license that meets the Open Definition or the Definition of Free Cultural Works.
via https://wiki.creativecommons.org/wiki/NonCommercial_interpretation

I certainly don't feel that I should provide more value to you until you are an truly open.

Now, serious developers fix stuff they use or need, this is just normal, no need for such virtue signaling. But opening your stuff so other people can use it it's not something you are apparently willing to do. Which you are perfectly entitled to do. Yet, you have those kind of misleading claims on your website:

image

screenshot 2018-11-03 at 16 28 34

Yes I'm having a hard time not getting judgemental towards such uses of openness and collaboration as marketing.

If you become truly open one day I will be the first to be excited by your product and order one right away.

And again, everybody is free to choose to make an open project or not, but communication around "collaborative" and "openness" without any real commitment towards it is uncool – and also downright deceptive to your community.

@gagarine I'll point out a couple of things:

  • The epsilon license was originally CC-BY-NC-ND before the change to CC-BY-NC-SA. It took over nine months of borderline on-and-off flamewar in this very thread to make the switch, but it did happen.
  • The NumWorks calculator _is_ a collaborative project in every sense of the word. It is arguably a far more open platform than all of its competitors too (which does NOT mean it's open-source hardware). However, the NumWorks team does not claim to run an _open-source_ project. Can you actually cite a factually wrong statement on their website on that subject?

If you are really so passionate about FOSS and still want to meddle with this calculator, I suggest you start (or port) an open-source firmware project for the NumWorks calculator.

Creative Commons was created for stuff like photographs and paintings, and yes, in that case, NC means "I don't want to see my funny drawing of a cartoon dog in a youtube video that earns ad revenue, or on the backside of a cereal box in the supermarket".
Now, note that this is _reproduction_ that we're talking about, not _use_. An artwork has no "use" beside reproduction or the creation of derivatives (arguably a form of reproduction). A piece of software, or hardware, does.
NC is not the same as a demo or student license. A demo or student license states that the software may not be used to produce anything in a commercial environment. NC just says the artwork may not be _reproduced_ in a commercial environment.
Since you're not _reproducing_ the Numworks firmware, just _using_ it (a parallel would be, to have the funny drawing of the cartoon dog as a desktop background while you are working for money), I'd say it should be fine.

response_container_BBPPID{font-family: initial; font-size:initial; color: initial;} It seems like this particular set of issues could be put to rest pretty easily with a statement from Numworks. "Do you consider a monetized video or paid tuition class that shows it in use to be a commercial use of Numworks?"  Sent via the BlackBerry Hub for Android From: [email protected]: November 20, 2018 19:50To: [email protected]: [email protected]: harrison.[email protected]; [email protected]: Re: [numworks/epsilon] License forbids modification, but pull requests accepted (#38) Creative Commons was created for stuff like photographs and paintings, and yes, in that case, NC means "I don't want to see my funny drawing of a cartoon dog in a youtube video that earns ad revenue, or on the backside of a cereal box in the supermarket".

Now, note that this is reproduction that we're talking about, not use. An artwork has no "use" beside reproduction or the creation of derivatives (arguably a form of reproduction). A piece of software, or hardware, does.
NC is not the same as a demo or student license. A demo or student license states that the software may not be used to produce anything in a commercial environment. NC just says the artwork may not be reproduced in a commercial environment.
Since you're not reproducing the Numworks firmware, just using it, I'd say it should be fine.

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

Let's forget about the word "use". Of course Numworks can be "used" in a commercial environment. If I buy a calculator, and then use it to calculate market levels as I work at Morgan Stanley as a trader, it's nobody's business.
Screenshots should be fair use, but yes, I guess a statement that Numworks allows screen capture videos and screenshots of the calculator to be used as part of a commercial work would be a good idea.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

XanderLeaDaren picture XanderLeaDaren  ·  4Comments

homeostasie picture homeostasie  ·  3Comments

streydog picture streydog  ·  3Comments

boricj picture boricj  ·  4Comments

loretoparisi picture loretoparisi  ·  3Comments