tags:

views:

165

answers:

6

I have read so much on licensing, but still don't understand what I can use for my situation.

I want to develop a program (with a sql db) and after working out some the bugs (with the help of testers), maybe sell some copies. (Please don't advise me on whether this is a good idea, my question is about licensing.)

I want to use free tools to create it with, but be able to legally sell it later. SaaS isn't an option. Can someone point me to a plain-English primer on licensing for my situation, or tell me what my options are? As I said, I need a sql db (haven't decided between serverless or server ability) and the rest.

(I have some beginner's programming experience, but I will have to learn by doing in whatever language I choose, so I'm pretty open.)

Thanks.

A: 

Have a look at the FSF website. The free software foundation has quite a lot written on the pros and cons of the various open source license environment.

extraneon
Thanks, but I've been there (spent a good amount of time) and still wasn't sure what's what for my situation. I think I need interpretation.
ChrisC
+3  A: 

Most likely, you'll be able to pick any license you want. Very few (if any) tools dictate the licensing of the output you create with them. For instance, GCC is released under the GPL, but you can compile closed-source binaries with it, no problem.

As for SQL, that should be easy. Most SQL databases (MySQL, Postgres, etc.) operate via a client-server architecture, so you're not embedding or linking to the database code in your program, and thus you don't have to use a license compatible with those database systems. You do link to SQLite code when using SQLite, but SQLite has such a permissive license that you can use it freely in pretty much every project (even closed-source projects), regardless of their licensing.

mipadi
Thanks for the info, mipadi. As I said above, I'm new to all this, so please forgive me for asking a (-nother) dumb question. How can I use a tool with GPL license and still legally compile closed source code and sell it? I thought yhe point of GPL was to make sure you couldn't sell it.
ChrisC
(1) The point of the GPL isn't to keep you from selling software; the point is to make sure that anyone else who uses your code keeps it open-source. You *can* sell GPL software, should you find an economically-viable way of doing so. (2) The GPL only covers *linking* to code, it doesn't cover the output of the software (generally speaking). Most GPL'ed tools, including GCC, don't apply their license to the output of the tool.
mipadi
So if I use libraries with the GPL license, how does that affect me? Must I publish my code that I created?
ChrisC
Yes, you have to, where publish means: You have to license your code under GPL, if you give it to anybody.
ebo
ebo strikes again with more useless jibberish. Please leave this thread. I have lost all confidence in you. (readers please refer to the comment section under the main question)
ChrisC
Well, ebo's right: if you link against a GPL'ed library, then your own code falls under the licensing guidelines of the GPL as well -- which means that you must provide the source code to parties to whom you distribute your software.
mipadi
Mipadi, I'm glad you knew what he meant because I didn't. Anyway, does that mean I can't use GPL libraries at all if I want to keep my code secret?
ChrisC
Right -- if you use GPL libraries and distribute your software, you have to make your source code available under the GPL as well.
mipadi
Thanks, mipadi.
ChrisC
+2  A: 

You can sell your software in whichever license you want to.

And developing a program in a language and compiling it to machine code is not derived work and may be distributed without being influenced by the compilers license.

Meaning: If you compile something with GCC (GPL) you are free to sell it. If you buy MS Visual Studio (or use the free express version): same thing.

Another question is whether the used runtime library is free. We are lucky on that regard: Both the glibc or msvcrt are liberally licensed or already distributed with windows.

If you want to use additional libraries, you will have to look at their respective licenses:

  • If it's GPL, you will have to license your own work under GPL, too.
  • If it's LGPL or BSD style, you are better of: You still have to respect the license of the lib, but you can sell your program as closed source.

As you mentioned you want to use SQL. There are several common options:

  • MySQL - Special case: It's dual licensed! In most cases: If you want to sell a program including MySQL, you'll have to buy a commercial license.
  • MSSQL, Access: You'll have to pay MS.
  • PostgreSQL: BSD style license!
  • SQLite: Public domain. Do what you like.
ebo
MySQL is dual-licensed, commercial and GPL, and you can sell under either license. GPL doesn't mean non-commercial, although it does not work with some business models. Moreover, whether including MySQL forces a program to be under the GPL depends entirely on how it communicates with it.
David Thornley
+2  A: 

First, worry about making something worth selling. You aren't likely to produce anything of salable quality without some experience with your tools.

Second, you haven't told us about anything like choice of platforms. I'd be happy to give you advice on how to build something on Linux, for example, but you may not be interested.

Third, for most mainstream languages, there are tools available at no cost that will do what you want. Narrow things down according to your need, and if necessary then you can ask about licensing.

For specifics:

The compiler you use almost certainly doesn't matter. With very few exceptions, nothing you write with any compiler will have license restrictions.

Check any libraries. Avoid ones usable only under the GPL, since they won't suit your business model. Most other Free/Open Source licenses will work for you. Exercise the same care if you copy source code from anywhere.

The database license may or may not matter, depending on how your program communicates with it. If it's linked in, avoid any with the GPL. If it will run as a separate process, make sure it's one you can redistribute, because the GPL won't apply.

David Thornley
+1  A: 
OscarRyz
Thanks. (filling to 15 characters)
ChrisC
+1  A: 

Final note on GPL.

You just have to offer your source code if your work is a modified version of a GPL software. For instance you take a GPL driver, add a couple - or a bunch - of code and you want to sell it. You can do it, you just have to offer your source code.

Other example. You take Linux, you add some fancy stuff and you try to sell it as: ChrisLux you can do it also, but since you're modifying a GPL software you have to publish your source code.

On the other hand, if you just use a GPL software unmodified just to run your own program, you may keep your source code closed ( and sell it also ).

For instance, you create a new program to ... whatever, and then you charge for it, and it runs on Linux. You didn't modify Linux, so you shouldn't offer your source code. Same goes for libraries, if you have to ship them with your product, you just have to include its license in your program, something like: "ChrisCthopia uses this and this and this library".

Here's an interesting article that may help you: General Public License, explained

OscarRyz
Very interesting, thank you. (/up vote) So if I need GPL libraries and my installer installs them along with everything else, that doesn't modify them, and so as long as I include the license for them somewhere, I'm fine and my program isn't subject to the GPL?
ChrisC
That's the idea. There are still a bunch of variations, like dynamic libraries vs. static libraries. But, you'll be able to find more about it. If you happen to finally understand all this information, do us all a favor. Post it somewhere!!! :)
OscarRyz