View Single Post
  #26   Spotlight this post!  
Unread 30-04-2004, 09:51
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,590
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: Coding / Style Standards for sharing C code

Quote:
Originally Posted by Joe Johnson
...so, I suppose we will have to have several license levels based on some combination of the author's wishes and the license that the software was developed from (some maybe license free, some maybe gpl, some with other licenses).
Completely license free shouldn't be an option for this project. When you release something with no license, it is covered by normal copyright laws, which are much too restrictive. Thus, the same things you learned about plagiarism still apply and effectively, you can't use the code.

Now, this may not be a problem in FIRST, as I would assume that no one would ever pursue any type of copyright violations. However, if we are going to take the time to teach students about coding standards, we should spend a few extra minutes and talk about correct licensing.

If you really want something with no license, you must explicitly grant it into the public domain. However, the person would have to agree to this when the code is entered into the repository, and a notice that this code is in the public domain would have to appear on the site.

Of course, there are many other licenses that are open source, some would be good for this project, and others wouldn't.

The BSD license (http://www.opensource.org/licenses/bsd-license.php) Allows any modification to the code to be used for any reason, as long as the license notice is retained. Thus, it is close to being public domain, but you guarantee that your name will stay with the code for posterity (as opposed to the public domain, where you could remove any notices from the code).

Another problem depends on whether the code is distributed as a library, or a snippet of code (such as a function). If you paste a snippet of code into your file (including the license), you've then licensed the whole source file. So, you are restricted from choosing your own license for other parts of your code.

If the code is distributed as a library, it is a little different. If the code licensed under the GPL (http://www.opensource.org/licenses/gpl-license.php), then anything that uses the code must also be GPL. However, if the library is licensed under the LGPL (http://www.opensource.org/licenses/lgpl-license.php), anything that uses it can have a different license.

Even if someone licenses their library as GPL, for FIRST robots, it probably doesn't mean that you have to give other people your entire robot code, however. Under the GPL, you only have to distribute your source to the people who you distribute binaries (it doesn't need to be publicly accessible). Since it isn't likely that you will be giving someone your robot's HEX file, you really don't need to distribute the source.

This last issue makes this not as big of an issue, but it should be addressed in some way.would have to appear on the site.

Of course, there are many other licenses that are open source, some would be good for this project, and others wouldn't.

The BSD license (http://www.opensource.org/licenses/bsd-license.php) Allows any modification to the code to be used for any reason, as long as the license notice is retained. Thus, it is close to being public domain, but you guarantee that your name will stay with the code for posterity (as opposed to the public domain, where you could remove any notices from the code).

Another problem depends on whether the code is distributed as a library, or a snippet of code (such as a function). If you paste a snippet of code into your file (including the license), you've then licensed the whole source file. So, you are restricted from chosing your own license for other parts of your code.

If the code is distributed as a library, it is a little different. If the code licensend under the GPL (http://www.opensource.org/licenses/gpl-license.php), then anything that uses the code must also be GPL. However, if the library is licensed under the LGPL (http://www.opensource.org/licenses/lgpl-license.php), anything that uses it can have a different license.

Even if someone licenses their library as GPL, for FIRST robots, it probably doesn't mean that you have to give other people your entire robot code, however. Under the GPL, you only have to distribute your source to the people who you distribute binaries (it doesn't need to be publicly accessible). Since it isn't likely that you will be giving someone your robot's HEX file, you really don't need to distribute the source.

This last issue makes this not as big of an issue, but it should be addressed in some way.