US legaleze help requested

Posts   
 
    
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39800
Joined: 17-Aug-2003
# Posted on: 14-Nov-2005 11:19:47   

I was looking at the license for powercollections for .NET 2.0 (which went RTM yesterday) and I stumbled across this paragraph:

K. That if you are an agency of the U.S. Government, (i) Software provided pursuant to a solicitation issued on or after December 1, 1995, is provided with the commercial license rights set forth in this license, and (ii) Software provided pursuant to a solicitation issued prior to December 1, 1995, is provided with “Restricted Rights” as set forth in FAR, 48 C.F.R. 52.227-14 (June 1987) or DFAR, 48 C.F.R. 252.227-7013 (Oct 198sunglasses , as applicable.

Now, I always wondered what this means, as I've seen it in other licenses as well. The license itself is pretty weird as it almost disclaims ownership of the software at all, but at the same time apparently has some kind of restrictive paragraph for users who work for the US government. What I'm after is what this paragraph means: a restriction for us government workers or simply not that important?

Frans Bouma | Lead developer LLBLGen Pro
swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 14-Nov-2005 15:21:31   

First, let me say that I'm not a lawyer. I have, however, purchased a lot of software as a contractor for various branches of the US government.

My understanding is that the paragraph re-states the law saying that the government is granted a license to use the software but does not own the software (and therefore it's source code, etc.) This is important because products owned by the US government are technically public property and are subject to certain rights of inspection by the public. This defines the 'ownership' as that of a license to use, which can be inspected, but not of the software, which cannot then be reverse engineered, and limiting the public's rights to review the source code. The paragraph is boilerplate, and protects the software developer. It does not restrict the usage by the government employee, but shields the product from inappropriate public inspection.

This coverage is being tested lately by a spate of people who are getting ticketed by speed cameras and alcohol breath analyzers. Because the government does not own the software in these devices (only the license to use it), people are claiming they have no right to inspect the 'workings' of these devices, and cannot verify the validity of the charge. The companies themselves refuse to turn over the source code to the devices at the request of the defendants (naturally), and the defendants claim they are unable to mount an adaquate defense. Case dismissed.

My guess is that, for devices that will have a public-facing component, the government will require of vendors some appropriate level of certification or third party escrow-type testing, in which the device's accuracy can be certified by the courts without the public having direct contact with the source code. This is a decade away, and a lot of drunks are going to go back on the streets in the meantime.

For your own purposes, the statement is helpful, and I recommend including it in your own EULA for government purchases in the US, including states and municipalities.

(To learn more about the Breathalyzer cases, see here http://www.techdirt.com/articles/20051020/107211_F.shtml )

swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 14-Nov-2005 18:02:34   

Wow, how could I never have heard of PowerCollections before? That stuff is great.

Does anyone know of such a library for string routines in .NET? There are times when I want something like 'replace between two tags', or 'find indexof fifth instance of string within string'. Is there a PowerString somewhere?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39800
Joined: 17-Aug-2003
# Posted on: 14-Nov-2005 18:24:58   

Thanks a million, Scott, it makes perfect sense now simple_smile (I indeed heard about those lawsuits related to those speedcameras. I didn't understand the problem, now I do wink )

Powercollections are amazing. I first thought: let's use them inside the library/base classes on them, but due to generics I don't have to. So with some simple comparer classes, it's possible to use Set logic with an entity collection simple_smile

Frans Bouma | Lead developer LLBLGen Pro