Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Most questions like this only seem to apply for big pieces of software for companies with money. I'm developing a small application targeted at individuals.

Informally speaking, I want to sell the application to users, but allow them to fix and modify it(but not redistribute).

Practically and legally speaking, how would I do this?

share|improve this question
14  
First step: don't call it open source if it isn't. It's okay if it is not open source, but don't confuse the issue by associating the term "open source" to your project. "open source" means a lot more than just "source available". –  Joachim Sauer Nov 7 '11 at 11:44
9  
So basically, you want your customer to work for you and pay you at the same time ? I would be very admirative you can make this work ! –  deadalnix Nov 7 '11 at 12:06
4  
You could make the core application a closed source, paid for product. Then allow people to write their own plugins using a freely-available SDK, and share those plugins with other users via your community forums. –  JohnL Nov 7 '11 at 12:38
add comment

6 Answers

up vote 1 down vote accepted

Most open source license permit unrestricted re-distribution. This includes GPL, MIT License, Apache etc. See this link blow. http://www.zdnet.com/blog/burnette/howto-pick-an-open-source-license-part-1/130

If you want to get a decent over view of Open source licensing see here: http://www.smashingmagazine.com/2010/03/24/a-short-guide-to-open-source-and-similar-licenses/ or
this http://openacs.org/about/licensing/open-source-licensing

Hence, redistribution is essential element of Open source license, hence, i guess these existing licenses formats are not for you.

It is a legitimate question who do you sell software with code but without re-distribution rights. This actually falls under forming a commercial license. This is often otherwise called EULA. This is not as hard though.

Few things might be as follows: a. Ensure the copyright in each file of code. b. Define terms of warranty as applicable. c. Terms of usage - for example number of installations, or users, or any such unit etc. that translates to amount of money paid. d. Negate the terms of re-distribution. e. Condition for payments for any modification. f. Declaration of patents and intellectual property.

It's is not hard to craft such a license for yourself. Of course, it is very hard to find if someone is actually violating and distributing the code without permission.

share|improve this answer
    
"It's is not hard to craft such a license for yourself." Well, assuming you don't want a license that will stand up in court. –  Alex Feinman Nov 7 '11 at 16:50
    
@AlexFeinman - i agree but in most cases, as the qeustion described it, as long as the customer is truly ok with the workmanship of the code and is already willing to accept the invoice for it. The issue that might go to court can only be either customer violating terms or you have committed the functionality (under warranty) which turns out to be a problem. –  Dipan Mehta Nov 7 '11 at 17:38
    
Oh, yes, i realized one major issue! The customer should be made aware and agreed upon, that the author owns the copy right and hence is free to use the same or modified code of the same package to others. This must be spelled out in license clearly. –  Dipan Mehta Nov 7 '11 at 17:40
add comment

Why exactly do you want to prevent your clients from redistributing the software? A fear that you may miss out when they turn your software into a multi billion dollar cash cow?

If you're writing softwarte that's customised for the needs of an individual client, then this scenario is so unlikely it's not woth the time to worry about it.

share|improve this answer
add comment

IANAL, as usual and if you are seriously in the business of earning money this way, you should definitely hire a lawyer for this.

The basic idea is that you can do pretty much whatever you want in your license.

Normal proprietary licenses are one things: you may use it, but nothing else.

Open source licenses are the other end of the spectrum: you may use it, modify it, redistribute it (and sometimes some restrictions as well).

You can put your own license anywhere in that spectrum (and probably somewhere outside that spectrum as well). So it would be fine to write a license that says "you may use this, read the code, modify the code, but you must not re-distribute the code (modified or unmodified)".

share|improve this answer
add comment

I know this doesn't necessarily answer your question but none of us are lawyers so we are not qualified to give you legal advice on this.

Some viable alternatives that could be lucrative as well:

  • It may be easier to give the application for free and then charge for support or consultation work to larger clients.

  • If this doesn't make sense in your business model then you can always follow the RedHat JBoss model and have an open source Community edition but have a seperate but highly similar branch that is for your proprietary edition.

  • As a supplementary source of income to support, you can always open source the software but sell the documentation, manuals and books. Good examples of successful open source projects that make good supplementary income on documentation, manuals and books are iText and Primefaces to name a few.

share|improve this answer
add comment

The underlying legal basis for open source software licenses is copyright. They allow you to distribute copies as long as you meet certain restrictions (such as also releasing your own modifications). If you don't want to allow them to redistribute copies then such licenses aren't helpful, as they are already prevented from doing so simply by virtue of you holding the copyright. What you really want is a non-disclosure agreement or end user license agreement.

share|improve this answer
add comment

This is the same arrangement where Microsoft releases the source code for some of it's libraries - such as MFC. This way every user gets to fix bugs in MFC in their own way, none of the fixes are shared or make it back to Microsoft. The result id every major Windows package shipped with it's own modified (but same version) MFC dlls'

If you want to copy MSFT's license text it's here http://referencesource.microsoft.com/Default.aspx

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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