tags:

views:

149

answers:

4

What is the best practice for releasing a simple software? Suppose I created a very small simple and useful program or a tool and would like to share it with everyone by uploading it to my web-site.

  1. Do I need a license and which one? (I read http://www.gnu.org/ and http://www.fsf.org/ but still cannot decide - there are too many of them.)
  2. Do I need to put somewhere a copyright and what is the basic principles of creating "Copyright" string?
  3. How can I make a user, who is going to download and install my program, to believe that my program doesn't contain viruses or a malicious code?
A: 

You need a license if you want to make it open source. If so, the license will specify a copyright, and by publishing the source code users can feel safe that it doesn't contain a virus.

If you don't open source the app, just upload it to one of those shareware sites (download.com, tucows.com) - they will take care of scanning for viruses.

Martin
You definitely need a license for closed source too, you just cannot use any of the freely available open source licenses for that but need to write it yourself...
Kimvais
you don't even need a license for open source, you can just say it's public domain or "I don't care about the copyright"
hasen j
That not quite true. In some countries no-one can make his work 'public domain' and no license generally means no permission to use or distribute. I guess the safest choice is to use some proved license, even the simplest one (BSD or MIT).
Jacek Konieczny
+1  A: 

These answers are just my own opinions, not some widely established best practices

  1. Go for one of the permissive free software licenses, such as BSD license, they are short, simple and as the name states, permissive.
  2. Copyright 2010 Your Legal Name should be enough - I would put it as a comment in all source files and in "credits screen" / help menu / whatever of the GUI. Also put a pointer to the license there too.
  3. That is what the user uses antivirus for :) - perhaps host your software on some reputable site (like sourceforge), not on a suspicious site (like rapidshare). Also, just releasing your source code hints this (as anyone can take a look and see for themselves)
Kimvais
The GPL doesn't limit your future options, you can always re-release your own code however you like. The problem is accepting code contributions, because other people own the copyright to those. Those contributions would be given back to you under the GPL unless you were very clear otherwise, and you cannot re-license *other people's* code arbitrarily.
Roger Pate
@Roger Pate, yes, that is partly the thing I was thinking about - however, you have to agree that everyone is better of with a permissive license.
Kimvais
Why the downvote?
Kimvais
No, I don't. It's not a clear cut issue, and this is from someone that tends to prefer BSD-style licenses for most code. Regardless, your answer is blatantly wrong.
Roger Pate
Blatantly wrong about _my opinion_ about the license?
Kimvais
@Kimvais: Using the GPL on your own code today does not limit your licensing options tomorrow. That is how you were wrong, not on your opinion.
Roger Pate
+3  A: 

Since this is a "very small simple and useful program" (e.g. someone could recreate it easily), I would not worry too much about the details and choose a simple license, something you can include in about 20 lines at the top of every file:

Copyright (c) <year> <copyright holders>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

There's really nothing you can say to the pessimistic user to convince them it doesn't contain a virus, and I would not even go into detail about that. Scan the file with a virus scanner and simply state which one you used, if you want, but nothing more. Providing the source code so someone can read, understand, and compile themselves should alleviate most users' concerns about you intentionally trying to sabotage them. (And this works even without people actually reading the source, because most people are trusting.)

Roger Pate
A: 

If you are using anykind of .net language there is a publish option in the properties file where you can specify the ftp location and it automatically does a sufficient enough distribution system. Also you can have the program check for updates if there any have been released and it will develop the release before each run. Look trough that properties thing for copyright and support url and what not fields. For the copyright thing check Creative Commons if you want redistribution but as soon as you put that magic c in circle thing thats all you have to do to have copyright of your IP no applications necessary as far as I know.

Sevki