Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

License is too restrictive #1052

Closed
alexgleason opened this issue Aug 31, 2016 · 44 comments
Closed

License is too restrictive #1052

alexgleason opened this issue Aug 31, 2016 · 44 comments

Comments

@alexgleason
Copy link

Hi there,

This software looks really great. I'm looking at self-hosted invoice systems and this one is fantastic. That said, I am afraid the license is too restrictive. I have no desire to rip off invoiceninja's business, and I appreciate the many hours that have been put into it programming it. But one of the virtues of open-source is the ability for people to fork software and take it into a different direction without needing to ask for permission.

Currently the license says this:

Redistributions of source code, in whole or part and with or without
modification requires the express permission of the author

Consider these scenarios:

  • You disappear. It could be an unexpected death, or a spontaneous and everlasting trip to the Caribbean. We are now stuck using a system that no one is allowed to advance forward because they cannot ask your permission.
  • Someone wants to take this project in a radically different direction that would benefit a lot of people, but you disagree with them. This prevents us from having a system that may be able to help a lot more people.
  • You decide to stop developing the project for whatever reason. We have to rely on you to update the license or transfer ownership of the project. Humans can be unpredictable though, so that is a risk.

Under the present license, invoiceninja is "open-source software" by the loosest meaning of the term. Since the author has total control of how the code may be used, it cannot be consider free (libre) software, which I think is preferable

It seems like this was your intention, but I wanted to bring this up in case it was something you would like to consider. I tend to prefer copyleft licenses like GPL since it has a layer of protection against corporate greed while still allowing people to fork the code freely.

Thanks for your time

@hillelcoren
Copy link
Member

Thank you for your well written issue!

When we first started working on the app choosing a license was an extremely difficult decision, that said now that we've had a few years in production we're extremely happy with our choice.

The license is designed to be flexible for personal use, individual users can make any changes they want to the code. However, by design we want to prevent businesses from reselling our app.

  • There are three main partners running the app divided over two continents.
  • We have a reseller program to support precisely this. For example, in some countries the tax laws are too restrictive for our app to work. We're currently working with partners around the world to make the changes needed.
  • We'll have to cross that bridge when we get there. We've been actively developing the app for over three years now and have no plans of slowing down.

https://github.com/invoiceninja/invoiceninja/graphs/contributors

One of the main goals of our license is to ensure the financial success of our company. We work extremely hard to provide a pretty good app at no cost to the open-source community, that said we need to make money to keep adding these great features. The Attribution Assurance License has proven itself to us to be an excellent choice in this regard.

@alexgleason
Copy link
Author

alexgleason commented Sep 1, 2016

individual users can make any changes they want to the code. However, by design we want to prevent businesses from reselling our app.

I'm wondering what your thoughts are on Creative Common Attribution-NonCommercial 4.0. It seems to codify your intent.

  • Users and developers can freely adapt and redistribute the product
  • Anyone who adapts / redistributes the product must clearly attribute InvoiceNinja
  • No one can sell the product or derivatives of the product without explicit permission from the author

This is a more widely-known and less restrictive license than the current one, while maintaining the boundaries this project values.

@hillelcoren
Copy link
Member

Thanks for the suggestion, from a quick review it looks promising.

I'll keep you posted...

@hillelcoren
Copy link
Member

We've decided to remain with our current license, we feel the AAL license is simply a better fit.

@alexgleason
Copy link
Author

Fair enough. Thank you for considering it!

I will likely go with InvoicePlane given its BSD license, in spite of it being less actively developed and less complete. It needs a little bit of love on the front-end, but I feel more comfortable with this route knowing that contributions I might make will be owned by the community. Though I'm probably of a small minority who is this intolerant of non-libre software, even when it's open-source and distributed for free.

Thanks again for being open-minded and considerate.

@pierreozoux
Copy link

Hum, reading this now.

Does it mean I can't offer InvoiceNinja as a Service? I can't have paid users for hosting it?

@hillelcoren can you clarify me that please?
(I'm not asking for a permission, I'm just asking if I can host it for other people for money with the current license?)

Thanks!

@hillelcoren
Copy link
Member

If you'd like to resell the app you'd need to join the reseller program.

https://github.com/invoiceninja/invoiceninja#affiliates-programs

You can email us at contact@invoiceninja.com if the plan doesn't fit your needs.

@pierreozoux
Copy link

I really need to understand this better as it has great impact on me and my business.

From the freesoftware foundation:
https://www.gnu.org/philosophy/free-sw.en.html

Here are the 4 freedoms:

  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

If I understand well:

  • I can't run it as I want without your permission
  • I can't give a copy to my neighbor without your permission
  • I can't modify it and give the modified version to my neighbor without your permission

So I just have freedom 1, right?

Please confirm me, it has big impact for me.
(More important than the license, the text, is the way, you, the owner, interpret it.)

I respect your work, and I don't want to go against your will.

Thanks a lot for your work and your time!

@hillelcoren
Copy link
Member

Our app is open-source but it isn't necessarily free. I'm not sure you have freedom 1 as it's dependent on freedom 0. If you'd prefer you can email us at contact@invoiceninja.com to discuss the specifics.

@pierreozoux
Copy link

Arf, it is a sad day for me :/ (Thanks @alexgleason for bringing up the subject)

My ethic forbid me to use non libre software.

I was happy to pay the hosted version for such great libre software, but... It is not libre.

So I'll have to stop using this software.
I'll have to rethink my business around it.
I'll have to stop thinking about paying some devs to develop customs for Invoice ninja.
I'll have to stop recommending it.
I'll have to contact the friends I recommend using it to recommend to stop using it.
I'll have to contact @lalop to tell him it was a bad idea to recommend me using this non free software.
If @lalop has new questions about the Docker image, I'll have to charge him, as I can work for free just for free software.
I'll have to recommend my friend @moss-it to stop using it also https://github.com/moss-it/docker-invoiceninja.
And I have to find another software that is as great! (I think it'll be difficult, but who knows :) )

I respect your decision, but I think you should put a warning on the README, or your website. We all lost a lot of time because of that.

@hillelcoren
Copy link
Member

Sorry to hear it, we'll try to make it clearer.

@major-gnuisance
Copy link

Our app is open-source but it isn't necessarily free.

I think you'll find the definitions of Open Source and Free Software overlap virtually on all points except the philosophical.

https://opensource.org/osd-annotated

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

Thus, with your current licensing model, your app is neither Free nor Open Source Software.

The idea of using a software license as a means to prevent users from getting commercial support from a potential competitor is antithetical to both the Free Software and Open Source movements.

One of the core advantages of using FOSS is that users don't get shackled to a vendor and always have the option to move to greener pastures should their current vendor tank, change directions, become compromised by state espionage, engage in abusive practices, etc.

i.e. There's always an exit strategy, should things turn sour.

@hillelcoren
Copy link
Member

hillelcoren commented Oct 25, 2016

@pierreozoux, it'd be helpful if you could explain how you were planning to use the code.

We're open to adjusting our license but we'd want to keep it non-commercial. The suggested license seems like a good fit but it isn't clear if it fits the definition of "Open Source" either. Hopefully we can continue this conversation positively.

@hillelcoren
Copy link
Member

hillelcoren commented Oct 25, 2016

Discussion on Reddit:

https://www.reddit.com/r/freesoftware/comments/597602/invoice_ninja_gets_slammed_for_being_opensource/

Apologies to @alexgleason for incorrectly stating that he started the 'mean spirited' thread.

@pierreozoux
Copy link

@hillelcoren I'm happy you reopen the discussion.
(I thought your decision was taken).

I'm a free software advocate, but as stated by @major-gnuisance free software and open source are equivalent.

I'm not a lawyer, nor an expert, but IMHO the suggested license doesn't fit for software.
Take a look at this website: http://choosealicense.com/ It explains well the differences between licenses.
If you have a doubt, check debian list also: https://www.debian.org/legal/licenses/
If it is on this website, it is FLOSS (Free, Libre and Open Source Software).

About keeping it non-commercial, what do you mean? To my knowledge, there is no open source license that would forbid any body to make business around your software.
The most you can make is with your logo/brand, you can grant anybody to use the software, even for commercial purpose, and forbid people to use your logo/trademark without consent.
(It is what mozilla did for many years with debian for instance.

As part of the community, for me what is important is to be able to contribute and know that at one point, if we disagree, we can fork it, and take our contributions with us too.
Then as a hoster, I'd like to be able to offer hosting for InvoiceNinja (and for every FLOSS) without needing your permission (of course, I can ask, and I'm sure you'd give it to me, but the idea behind IndieHosters is to empower a network of hosters around the world, and with this permission thing, it wouldn't scale).
(If I can't put your logo, it would be counterproductive I guess, but well, it is up to you to decide after all).

About making it non commercial, I don't really understand. Let's take facebook example. Even if we had the source code of Facebook, I couldn't run facebook, I would never be as successful as facebook. I don't have the branding nor the marketing, nor the business team to run it. For your software, it is the same. I think you did an amazing job on your commercial offer, and there are many assets that are not part of the software. The marketing, the newsletter, the blog, the business development, the integration with payment providers, all of this, as a hoster I'll have to do it myself, and I doubt it'll ever be as good as you do.

I think this is what is beautiful about FLOSS, it is that you can create the perfect company.
You as developer, community manager, focus on making the community as healthy as possible, and make sure the software is going the right direction. (And probably contribute most of the code, it is like this for most FLOSS software, at least at the beginning).
And your company focus on bringing value to customers, and convince that this is the best product ever.

I hope you'll reconsider this License, and put an open source one.
If you prefer nobody makes business with your software, IMHO, the best would be to make it proprietary, then, this would be clearer for users like me.
(I don't see the point of putting software public on GitHub that is not FLOSS, if you know what you are doing, this is a nasty technique to "steal" contributions from naive people like me)

@turbo124
Copy link
Member

@pierreozoux I fail to see any commits from yourself at all, how could they have been stolen?

It is quite clear you are using Invoice Ninja outside the License terms, and only now realise your mistake.

Now you seem hell bent on causing as much reputational damage as possible by starting a Reddit thread trying to shame Invoice Ninja?

Keep it classy.

@ghost
Copy link

ghost commented Oct 25, 2016

@hillelcoren How mean-spirited? You say your software is open source (I imagine to cash in on the sweet, sweet FLOSS karma) but it is not. You have been informed several times in this thread it is not open source, but you continue to insist it is. What does that make you? There are only two options here.

Don't get me wrong: I have nothing against people developing proprietary software. That is there prerogative, but you should bite the bullet and stop posing as something you ain't, i.e. a free software provider.

@hillelcoren
Copy link
Member

@pierreozoux Thanks for your detailed response!

The last thing in the world we'd want is to trick a developer into contributing to our project.

There seems to be a simple answer here.

The clause in question was added two years ago. One of our partners asked us to include it to protect their exclusivity. Assuming they're ok with it we don't see a problem changing back to the standard AAL license.

https://opensource.org/licenses/alphabetical

We're more than happy to have people redistribute our code.

@alexgleason
Copy link
Author

I'm interested to know anyone else's thoughts, but I'm pretty sure that would indeed fix it.

Thanks!

@alexgleason alexgleason reopened this Oct 25, 2016
@pierreozoux
Copy link

@turbo124 I didn't post it on reddit.

I just use and pay for the official hosted version of InvoiceNinja. I don't use it yet outside of these terms.
But if I plan to base my business on a software, I want it FLOSS. That's it.
(And seriously, I'm a hosting business, I could host it myself, but I was really happy to give money to the developers)
(Choosing/Using/picking software is one of the most important time investment in many businesses)

I don't want to damage InvoiceNinja reputation, but I was mislead, I was recommending it, and I wanted to correct my mistake, and believe me, if it resolves the nice way, I'll be really happy to share the happy ending of this FLOSS fairy tale.

Reverting to standard AAL would resolve the issue for me :)

@hillelcoren
Copy link
Member

We've updated the license, thanks everyone for your feedback!

@alariva
Copy link

alariva commented Oct 25, 2016

I've been following this thread since the beginning. Both from User's perspective and as an Open-Source project owner. Let me say I get both sides' points, and that I find it myself a tricky matter for discussion (it is, indeed, a key subject on Internet and modern life with no clear edges and too many diverse points of view, and that's fine!)

Just take into the account that software as a product (something that has being created by someone), has an audience that may not only be the final user, but other developers, and as it pops out here, probably resellers (who knows how many other roles could come up later on).

So it's not just about software and users. It's -at least- about product and audience. And it's not the same use case a Contractor will give to the application, as the use case a Client will give to the application, as the use case a Developer to the codebase or the use case a reseller will to either the codebase or the application (aaand, so on....).

There are probably better forums for this generic and hot discussion, however, back to the show, I'd like to just add that I get both sides, and that I like Open-Source and free software (in terms of libre), but I'd also like my time efforts put on development to reflect some retribution (as a developer, designer and as an entrepreneur), and that is hard to achieve.

I hope this helps out for a smooth agreement between users in their maaaaany diverse role types, and their relationships around the project, the application, the service, and the codebase.

@alexgleason
Copy link
Author

This was an amazing conclusion. I'm switching over to Invoice Ninja.

Side story: InvoicePlane has really bad Docker images in Docker Hub. None of them work properly, or they bundle MySQL directly inside the image which is bad. I figured I'd just edit the Dockerfile from the most popular image and fix the issues, but it turns out that he also created the base image: a custom PHP image. So I looked at that, and learned that the base image's base image was a custom Ubuntu image by the same author. This guy had basically created Docker from scratch and went through two levels of it (custom Ubuntu --> custom PHP --> InvoicePlane) before concluding at this InvoicePlane image. Needless to say I did not extend his image, I created my own for InvoicePlane based on the official PHP base image and got it merged into the repo. It works perfectly. But it took me like 2 days of constant stress before figuring how to get everything to work.

So, basically I'm glad that other people have already taken on work creating a Docker image for this project, and hopefully it will be a smooth deployment. 😜

Going to leave this open in case anyone else has any comments. But seriously, great job!

@alexgleason
Copy link
Author

alexgleason commented Oct 25, 2016

One more comment: after carefully reading the license, it suggests that anyone redistributing the software (which I believe includes self-hosting, even for personal use) must follow this criteria:

each time the resulting
executable program or a program dependent thereon is launched, a
prominent display (e.g., splash screen or banner text) of the Author's
attribution information, which includes:
(a) Name ("Hillel Coren"),
(b) Professional identification ("Invoice Ninja"), and
(c) URL ("https://www.invoiceninja.com").

I don't think Invoice Ninja does this out of the box, so it might be worth including an option to allow this text to display in an agreed-upon way.

Attached is a mockup where I've added the attribution to the bottom-left corner of the screen.

screenshot from 2016-10-25 12 26 34

It may be worth templating this and then enabling/disabling it based on the presence of an environment variable. Like if INVOICENINJA_LICENSED is set to any value, the notification doesn't display, but by default it does display.

EDIT: If you think the sidebar is overkill I think technically it could also go at the bottom of the dashboard since the dashboard is the launch page. If it appears below the fold it may be arguable as to whether it's a prominent display, but that's your call.

EDIT2: Fixed "InvoicePlane" Freudian slip.

@hillelcoren
Copy link
Member

There should already be a "Powered by InvoiceNinja.com ..." footer at the bottom of the page. We could add the 'created by' info in the title tag or change the text to include it.

I'm not so into the .env idea, we'd like the link to always be shown.

hillelcoren added a commit that referenced this issue Oct 26, 2016
@pierreozoux
Copy link

And here is the happy ending: https://blog.indie.host/2016/the-author-of-invoiceninja-considered-again-the-license-and-reverted

A bright start of the day!

(I think we can close :) )

@nickbe
Copy link

nickbe commented Jan 30, 2017

Sorry for the late question. Does this mean we could now provide the software as a service to our own customers and modify it for this purpose?

@hillelcoren
Copy link
Member

You would need to leave our branding in place, removing the branding requires joining our reseller program.

@nickbe
Copy link

nickbe commented Jan 30, 2017

OK. That's of course perfect reasonable. I've also just read about the reseller program.
I suppose that the 10%/500$ regulation would be the required fees if we'd like to "re-brand" invoiceninja if we like to provide the software as a service to customers. Right?

@hillelcoren
Copy link
Member

Correct

@nickbe
Copy link

nickbe commented Jan 30, 2017

Ok. Sounds good. Thanks for explaining. I'm happy with this.

@mgralikowski
Copy link

What is the difference between white-label option and resseller options?
Can i provide my modified app as a service to other people with active white-label option?

@hillelcoren
Copy link
Member

The white label license is intended for personal use. It only removes our branding from client facing parts of the app, joining our reseller program enables you to remove all of our branding.

@mgralikowski
Copy link

Ok, i understand.

So.. If i would to create app with white label option (custom name and logo app) and selling access to this system in my country, firstly i need pay 500$ and next pay 10% revenue? How pay a revenue technically?

@hillelcoren
Copy link
Member

There's a route in the app which (when enabled for resellers) enables us to invoice you.

@malonnnn
Copy link

@hillelcoren

Sorry for bumping an old thread, but I just want to say thank you. I just switched to Invoice Ninja because of the change of license and the progression of this thread. Not because there was anything restricting me before, but simply because I needed a better invoicing solution and the devs on this project clearly care. I'm a huge fan of proper open source and seeing the devs (you) respond so positively is insanely refreshing . Thank you for your work, so very much.

@raviktiwari007
Copy link

Sorry for bumping an old thread, I have a tricky scenario (few of you might find it cheeky too).

As the code for Invocie-Ninja is available in public repository of Github, why I cannot fork it and ammend it as I want - including white lableing, using my own name & logo and then resell it as my own product, lets call it: Ninja-Invoice?

Which section of law stops me from doing this - specially given the fact this is an open source project and code base is available at opensource community.

Many Thanks,
Rav

@turbo124
Copy link
Member

turbo124 commented Jun 9, 2020

Just because something is Open Source, doesn't mean you can do whatever you like. You need to understand the license terms and operate within those.

If you breach the license terms, you risk losing all your hard work.

@raviktiwari007
Copy link

I have seen few of your earlier posts and I am not sure if you are an employee of Office Ninja company or one of the community member, but it seems that you have got it very clear in your mind that everyone MUST pay for the software, whatever be the circumstances. I have no issues with your view point because you are entitled to have one.

But you also need to understand other's (community and developers's) viewpoint. So from my point of view, invoice-Ninja team has built a code with the help of 100s of developers if not thousands plus their own contribution and now they are selling it with their own logo and a substantial amount of fee/charges/commission. I wonder if invoice-ninja is sharing the commission and revenue with the people/developer who contributed to your code over last 4-5 years?

If making money to maintain and manage your business important for you (which is understandable), they should keep the code in private repository or sell it as an enterprise solution (which is NOT opensource).

Same thing happened with Yetoforce CRM, which was forked from SugarCRM and then forked from V-Tiger and one more project and then they thought of becoming oversmart and charing money from the developers. But unfortunately Open Source licensing team was smarter and they were not allowed to register the product under open source licensing agreement and they have also ended up with an agreement to let people have their logo in the footer - I think that was too generous.

Anyways, coming back to my original question: if someone forks the source code (which is available freely at github in public repository) and take it to a different level using their own codes and modules, which section will hold him accountable for breech.

I dont need lecture, I just need the section number and link - if possible.

Many Thanks,
Rav

@turbo124
Copy link
Member

turbo124 commented Jun 9, 2020

I think you need to take a step back and do some more research about Open Source and licensing.

We have many people that use our software, customize it for their application and don't pay 1 cent, and we happily support them as they stay within the license.

Judging from your tone, you have your own definition of open source so I am not going to engage in conversation as I don't think there is any benefit from doing so, in fact, I am surprised you've even taken the effort to post here given you have already made your mind up what you want to do.

@raviktiwari007
Copy link

Yes, I am very upset how the term "opensource" is being abused now a days by many developers and companies.

I did some quick research on invoice ninja and got many interesting websites right from the days when you guys were desperately looking for people to help you out with coding and bug fixing and they did not want to help you because you guys wanted free help and still charge for the final product and obviously these "free helps" were not part of your revenue sharing model - now do you see why I am upset?

We are already developing our own invoicing software... we have already completed 4 moudules and working on 6 more. However, all of a suddent I started thinking about opensource projects and started exploring the idea around how we can use or integrate invoice-ninja or invoice-plane to create a pre-populated template and a more customised solution for our customers and they don't have to pay an ongoing license fee.

Anyways, I am dropping an email to you guys trying to understand how I can use your product for free and if I decide to sell it further using my name and logo (or even yours), what will be the charges/commission that I need to pay you... if all goes well, great... if not we will develop our own software and we will make it available on github for free for people to fork it and use it as they wish to.

Many Thanks,
Rav

@pierreozoux
Copy link

@raviktiwari007 I'm not a lawyer, and I don't think that the person that wrote the AAL license is neither, but as a personal advice I'd recommend you to follow the will of the original author of software.
If you are not ok with this license, then use another software or develop your own, no need to come here and say mean things without proofs.

@raviktiwari007
Copy link

raviktiwari007 commented Jun 10, 2020

Firsh thing first:
That is exactly what I am doing mate... we have decided to develop our own code and I will also try to open a thread on github asking people to come together, contribute, support and make a truly open source invoicing software. The end goal is to have the exact same functionality but for FREE without using a single line of code from Invoice-Ninja.

Now coming to your last point:
Given the fact that you opened Reddit thread blaming Invoice Ninja and calling them scammer (almost), tagging almost everyone on github and then also posting the final outcome on the indie post (the website is not working, looks like an issue with the reverse proxy), I think you are just provoking me to provide you with some proof. :-)

You know what? You got me mate... so here are few proofs for you to play with, enjoy, share and dig even more:

http://lists.opensource.org/pipermail/license-review_lists.opensource.org/2018-June/003381.html
YetiForceCompany/YetiForceCRM#5337
https://www.reddit.com/r/laravel/comments/3pc222/looking_to_work_on_an_opensource_project_consider/

Internet is full of all such stuff... the only issue is, this has been going on for last 6 yrs, so you need to do some deep digging to get the real spice. :-)

Anyways, I wish all the best to people using InvoiceNinja, sadly I cannot say the same to Office Ninja Corporate management team and their VCs because for me this is cheating.

Unfortunately, InvoiceNinja is not the only one, there are few other people/company trying to come up with this new scam model of, "I take code from the world and then I will sell the final product to the world without sharing the benefit with the people who helped me develop the code in the first place". In the name of maintenance, which again the community will do... :-) Isn't it a brilliant model?

I am glad that the open-source licensing team is aware of it and have not let them have a free run.

Anyways, this is my last post in this group, as I might not return here for foreseeable future... So stay safe, enjoy coding, keep experimenting, Donate, contribute and support opensource projects but NEVER pay for opensource - there is a reason it is called Open-Source. :-)

Thx: Rav

@invoiceninja invoiceninja deleted a comment from zanesc Jun 15, 2021
@zanesc
Copy link

zanesc commented Jun 15, 2021

I don’t plan on being censored for stating facts. I will repost my comment which you have deleted after giving you time to explain why you have deleted my comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests