Code-dot-mil / code.mil

An experiment in open source at the Department of Defense.
https://www.code.mil
MIT License
1.29k stars 127 forks source link

BRL-CAD #84

Closed johnmod3 closed 7 years ago

johnmod3 commented 7 years ago

a project to reach out to in the Army project BRL-CAD (sine 1979 as an OSS project) http://svn.code.sf.net/p/brlcad/code/brlcad/trunk/COPYING https://brlcad.org/ https://brlcad.org/d/about see: BRL-CAD Copying and Distribution

BRL-CAD is Open Source software with copyright primarily held by the U.S. Government. The source code is controlled and maintained by a core team of Open Source developers working around the world. Those core developers operate under a meritocracy organizational structure adhering to developer guidelines outlined in the HACKING developer's guide and to the legal conventions and requirements outlined in this document.

As a unified work, BRL-CAD is made available under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation.

As distinctly organized and separate components, parts of BRL-CAD are made available under different licenses for different portions including the BSD license and files in the public domain. The Overview section describes how the various licenses apply to the different portions of BRL-CAD.

BRL-CAD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this file. If you did not, please contact one of the BRL-CAD project administrators listed at the SourceForge project site http://sf.net/projects/brlcad/ or listed in the AUTHORS file included as part of the distribution.

Overview

BRL-CAD consists primarily of libraries, applications, scripts, documentation, geometric models, images, data resources, and build infrastructure. The BRL-CAD libraries provide their headers in the include/ directory as well as all of the directories that begin with the prefix "lib" in the src/ directory (e.g. src/librt/). All of BRL-CAD's libraries, applications, and any content lacking a license specification are covered by the terms of the LGPL.

Most of BRL-CAD's build infrastructure including files required by the GNU Build System (such as the CMakeLists.txt files), a variety of scripts located in the misc/ and sh/ directories, and the testing infrastructure (scripts and resources) are provided either under the BSD license or are in the public domain. Similarly, most of the geometric models, images, and other data resources are also provided under the BSD license. Refer to each individual file for specific terms.

BRL-CAD's documentation consists of manual pages located throughout the package, most of the files in the doc/ directory, and the top-level administrative project text files (e.g. README & AUTHORS). Unless otherwise denoted, all of BRL-CAD's documentation is made available under the terms of the BSD Documentation License (BDL) or are in the public domain. Refer to each document for specific terms.

The full text of the LGPL, BDL, and BSD license should be included in the source distribution of BRL-CAD in the doc/legal/ directory. Refer to the full license text for more details, information, requirements, and implications of each license.

3rd-Party Components

The BRL-CAD package utilizes and redistributes several 3rd party source codes, libraries, and applications. Said 3rd party source code, libraries, and applications all retain their respective agreements, licenses, and copyrights and should be referred to individually for their specific terms. For the purposes of redistribution and legal compatibility for all of BRL-CAD's existing user base, NO 3RD PARTY LIBRARIES SHALL BE INCLUDED THAT ARE UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE or any other license with similar legal implications that would impose legal obligations on external codes that utilize BRL-CAD as a library.

When referring to BRL-CAD, its source code, documentation, and libraries, the reference is not meant to include or imply 3rd party source code, libraries, and/or applications unless specifically stated otherwise. No endorsement or claim of authorship is implied to any 3rd party asset that is included with BRL-CAD. The majority of the 3rd party source code, libraries, and applications included with BRL-CAD are located in the src/other/ directory of the source code distribution.

Copyright

All contributions to BRL-CAD have been provided under agreement. By requiring all contributions be given back to the BRL-CAD developers, this agreement allows the BRL-CAD project to continue to grow unhindered. As such, a majority of the source code is copyright by the United States Government as represented by the United States Army Research Laboratory.

Authors and other BRL-CAD contributors must comply with the copyright terms for their respective contributions unless otherwise noted or arranged. This includes an implicit assignment of copyright for any and all contributions being made. The following notice should be prominent in the BRL-CAD sources:

Copyright (c) 1984-2016 United States Government as represented by the U.S. Army Research Laboratory.

Contact

Questions or comments regarding BRL-CAD legal issues pertaining to copying, linking, licensing, trademark, or otherwise should be directed to the BRL-CAD Development Team at the following address:

BRL-CAD Development Team devs@brlcad.org http://brlcad.org


$Revision$

brlcad commented 7 years ago

Just a point of clarity, BRL-CAD has been under development since 1979 but wasn't open sourced until 2004. Copyright was acquired via assignment of a substantial derivative work under contract. This made it possible to license BRL-CAD as a collective work under any existing copyright-based OSI license without issue.

marctjones commented 7 years ago

Thanks for that clarification @brlcad. It sounds like a very similar approach to what DDS are trying to achieve here. I guess BRL-CAD is the forerunner!

It does not seem like this presents an "issue" to be resolved though. I would suggest that the project maintainers close this issue, once they have checked out BRL-CAD and appreciated the lessons they can learn from it.

BRL-CAD README does do a nice job of explaining how the different components of the project are licensed. (Many projects over look that and just say: "it is licensed under the GPL.") BRL-CAD's approach is much more accurate in describing the "unified work" as being licensed under the LGPL. It also gives some back story on how the government got copyright and talks about the different licensing for 3rd party components. and what LICENSEs need to be included in redistribution.

brlcad commented 7 years ago

As far as I know @marctjones, my work to get BRL-CAD directly released as open source was the first in the DoD. There are older DoD codes that went the abandonware public domain route (e.g., GRASS by Army CoE), but still the first to directly get "published" as first-class OSS while still in active funded use. It took five years, starting in 1998. I gave a MIL-OSS presentation on it at the second working group in 2010.

The difference with what DDS is trying to achieve is the novelty of essentially saying "ignore the public domain bits" when it comes to the copyright license, and apply that license to the collective work. BRL-CAD essentially does that as well, but we went through additional steps to acquire copyright on the collective work, i.e., by creating a substantial derivative, so that public domain bits were relegated to digging through historical commits.

This is the important part. There was some question (back in early 2000s) as to what would happen if the collective work is 99% or even 51% public domain. One might argue that there is not significantly distinct intellectual property, that it's all unprotected derivation of the public domain work, thus all still public domain.

This of course was and remains completely untested legal speculation. There wasn't any DoD OSS at the time, none of the lawyers had warm feelings one way or the other, and we simply had no idea what would even happen. Today the perspective is VERY different as there are many established projects, many agencies (in DoD and elsewhere) doing open source daily, and a lot more pressures to leverage open source participation from an acquisitions standpoint. These days, at least under FARS and DFARS, it's illegal to not consider open sourcing code. ;-)

marctjones commented 7 years ago

@brlcad out of curiosity. The BRL-CAD site says that the website is not a government website. Who runs the BRL-CAD website and what if any relationship is there to ongoing development by any government agencies that are still involved?

brlcad commented 7 years ago

@marctjones It's run by the BRL-CAD open source community. The Gov't is a participant in that community, but not the controlling dictating authority (we operate under meritocracy). Of course, the Gov't is very significant and important supporter and participant, but governance was specifically and intentionally set up so that the BRL-CAD open source participants would not be beholden to current legal opinion, management will, or other Gov't shenanigans. If the Gov't ever decided to not be a participant in OSS, the BRL-CAD open source community remains unaffected.

There's a diagram of this on page 40 here: http://brlcad.org/BRL-CAD_An_Open_Source_Perspective.pdf

Individuals should be empowered. Projects backed by agencies (or companies) that continue to see themselves as the center of that open source project's universe miss the point of OSS and put the project at great risk. It was very important to me to put BRL-CAD into the public, to establish a vibrant community of participants around it. This has proven not just useful over the years, but necessary for sustaining a vibrant community.

marctjones commented 7 years ago

@brlcad That is awesome. Thank you for the quick response. I think that is a wonderful approach to set up a community driven process. Glad it has worked out for you. And sounds like a good example of citizenship involvement in government.

jordangov commented 7 years ago

Hey folks! This is really helpful information, and I'm glad it's in the repo (even though I'm going to close this issue). I'm getting caught up on all of these GH issues to see where the discussion has led, and having context about previous efforts within the gov helps a lot.

Thank you!