8 ms·
Government scientist here. IANAL, but my understanding is that all software written by US government civil servants is in the public domain. It cannot be copyr
by GlenTheMachine 8y ago
Government scientist here.
IANAL, but my understanding is that all software written by US government civil servants is in the public domain. It cannot be copyrighted or otherwise licensed (although the government can patent things). This does not necessarily mean that it is available to the public, as noted in the other comments; it may be classified, considered For Official Use Only, or restricted from release by ITAR regulations.
Barring any of those cases, you should be able to get a copy by filing a FOIA request. The problem with FOIA requests is that you have to know specifically what to request, usually by name. Obviously, it can be hard to put your finger on exactly what software you are requesting.
The bigger problem, though, is that much of the US government just isn't technically set up to release software (as opposed to documents). Setting up a git repository, in the DoD, is an utter nightmare. Every single patch has to be pushed through a public release process that can take weeks or months and involves review by as many as ten to fifteen different offices, few if any of which even know anything about software. If you're setting up your own server, getting the server itself approved and provisioned can be an exercise in bureaucratic frustration, and can take literally years to accomplish.
Those of us writing software very often want it to get out there. But the structure of the organization makes that excruciatingly difficult.
- ar_lan 8y agoI used to work in a state government job as a student intern, and they said they wanted an internal directory for some various tasks. You can think of it like an inventory manager sort of website, purely on our intranet. The mad lad my lead was, said we would need a database for retaining some of the basic data we needed to keep track of. Nothing all that special, just a few tables, and by nature nothing sensitive would be tracked. This got rejected immediately, and our IT literally cited "no database installations are allowed per security team." Needless to say 4 months later, after some back and forth, he eventually said "whatever, we'll just store everything to files then" and that's how he came up with the world's slowest inventory manager - I suspect just the way they like it.
- mountainofdeath 8y agoShh... Don't tell them that stuff like SQLite _is_ a flat-file database.
- sametmax 8y agoBesides, if you code your own database, at one point from a file to postgres, is it going to get rejected ?
- sokoloff 8y ago"Is this system a database?" "No sir! It's just a base of data." <checks spec book> "Very well; carry on then..."
- Godel_unicode 8y agoI've never understood this argument; sqlite specifies a file format, but that's hardly the only requirement. By this argument, any database with a public file spec is a flat-file database.
- kemiller2002 8y agoI used to be a contractor and worked on a web application distributed across multiple web servers. We needed a state server at the time to hold some cached information and share it among the servers. Now there was a rule that said a web server was not directly allowed to communicate with the database. Okay I get it, that makes sense. The state server we were going to use to store some application metadata had the word "database" in the product name. For that reason alone we got flat out rejected. I said to them, "So it's OK to store all the stuff we need in memory and on the file system on the servers, just not stored in the state server." Their response was, "Yes, because it's not in a database." We finally switched to another product that did not have the word database in the name, and they were completely fine with it.
- lowercased 8y agoI'm having to switch CentOS servers over to RHEL servers because... support(?) Some state work got in trouble a few years back because they'd updated guidelines that no applications could be on the same machine as a database server. Enforced separation, for security. Having enough staff and management to distribute that message to people dealing with the apps and servers didn't seem to be a requirement, however. And... when I was given this mandate, I had to ask for another server, then told there weren't any available, and I'd have to wait for several weeks, and I probably should shut down the current service (which had run for 3 years this way, well before the guidelines were in place). Navigating govt IT stuff is crazy. About half the people I've encountered are between competent and really talented, and the other half don't understand the basics. FWIW, if the web server can't communicate 'directly' with a database... what process do you use to communicate between them? Some sort of proxy? Or something else?
- natechols 8y agoIt depends on your definition of "civil servant". DoE national labs are run by contractors, such as the University of California, who have their own tech transfer policies and offices. As a result, I can't legally use most of the software I wrote as an NIH-funded postdoc. (One of the many reasons I don't work there any more.)
- GlenTheMachine 8y agoContractors are not civil servants. It is completely true that contractor-written software is legally different and has its own release policies. For one thing, it can be copyrighted. Again, IANAL, but I assume that there would be stipulations written into the contract governing IP.
- hinkley 8y agoLawyers for at least some multinationals get hives when you talk about public domain software. I've had to switch libraries or participate in cleanrooming a single PD function a couple times to get them to calm down. Apparently in Europe and some other places it's not so easy to disavow all rights to a bit of software. BSD- or MIT-style licenses are much more comforting.
- slondr 8y agoThis is why the CC0 is way more useful than just putting "This code is in the public domain" at the top of every header file.
- i_phish_cats 8y agoAnything written by federal contractors, and anything written with state funds are not in the public domain. National labs flat out refuse to release some of their source code.
- crankylinuxuser 8y agoAnd there's the way around public domain, open data, and free citizen access and usage requirements. The contractors don't have to be. It's the same reason why most people stay out of federal jobs - you can't make more than the president. But if you're a consultant working for the gov't, you can get paid $$$$$.
- AndrewKemendo 8y agoI'm joining the Air Force as a Civilian with the explicit purpose of solving this. In fact we've made a lot of progress with Continuous ATO and some other efforts to get faster iteration, deployment, sharing CI/CD etc... processes in place. It's going to take time but we're on the right track. Send me a message if you want to be involved in this culture change.
- spydum 8y agoVery cool, I recall seeing a lightning talk at KubeCon on this very thing: https://schd.ws/hosted_files/kccna18/45/NA%20KubeCon%202018%20-%20Running%20Kubernetes%20in%20the%20Federal%20Government.pdf https://schd.ws/hosted_files/kccna18/45/NA%20KubeCon%202018%...
- dwheeler 8y agoPlease join the mil-oss mailing list. I think you'll be glad you did.
- AndrewKemendo 8y agoIs the one you're referencing the google groups bbs group one? [1] Doesn't seem particularly active. https://groups.google.com/forum/#!forum/mil-oss https://groups.google.com/forum/#!forum/mil-oss
- dwheeler 8y agoMostly sortof true, but there are lots of complications. I've delved into this. For lots of detail on the current situation, see my paper, "Publicly Releasing Open Source Software Developed for the U.S. Government" by David A. Wheeler, https://www.csiac.org/journal-article/publicly-releasing-open-source-software-developed-for-the-u-s-government/ https://www.csiac.org/journal-article/publicly-releasing-ope... In almost all cases, if a US Federal employee writes software as part of his/her official duties, then there is no copyright IN THE UNITED STATES. There are a few exceptions (e.g., US Post Service Employees). Also, copyright doesn't apply in the US - but outside is a different matter (though enforcing said copyright is more complicated, and I would argue the US shouldn't try). More importantly, there may not be a copyright, but that doesn't guarantee release to the public (and often there isn't). You can ask via a FOIA, but that's no guarantee you'll get it. HOWEVER: Most software developed by government funds is developed, at least in part, by contractors. And that is a COMPLETELY different circumstance. The details, unsurprisingly, depend on the contract. If you're interested in the DoD, I suggest going to the MIL-OSS mailing list: https://groups.google.com/forum/#!forum/mil-oss https://groups.google.com/forum/#!forum/mil-oss It's possible to release software to the public. One approach is to get pre-approval where "as long as the changes meet this scope, and follow these rules, it's okay to post the changes." But you have to get local buy-in. In short: In a lot of places in the US federal government it's definitely difficult to do what in the rest of the world is normal. In the US, state/local/tribal is completely different, and I definitely don't claim to know the laws of other countries. Others can explain that better.
- pbhjpbhj 8y ago>Most software developed by government funds is developed, at least in part, by contractors. And that is a COMPLETELY different circumstance. The details, unsurprisingly, depend on the contract. // Isn't the point that the contact should have a non-negotiable OSS clause of it's using public funds. My impression, from my seat in Europe, is that USA government is run by rich capitalists that would as soon eat faeces live on TV as suggest private corporations be required to service the public good?
- dragonwriter 8y ago
- Wowfunhappy 8y ago> The bigger problem, though, is that much of the US government just isn't technically set up to release software (as opposed to documents). Setting up a git repository, in the DoD, is an utter nightmare. Every single patch has to be pushed through a public release process that can take weeks or months and involves review by as many as ten to fifteen different offices, few if any of which even know anything about software. If you're setting up your own server, getting the server itself approved and provisioned can be an exercise in bureaucratic frustration, and can take literally years to accomplish. Please excuse what I suspect is a naïve question: why can't they just throw the code into a zip file, and send out the file the same way they would other documents? Digitally or on a physical thumb drive. (The FOIA requester could then put the code on Github or similar.)
- GlenTheMachine 8y agoWhen we do release code, that's more or less how it works. The issue is that, basically 100% of the time, anything being released to the public has to go through a release process. If you produced it as an employee of one agency (eg the Air Force), but if was paid for by a different agency (eg DARPA), then it also needs to go through a similar release process on the sponsoring agency's side. Typically, this has to happen for every single “release”. In other words, for the original software, again for every subsequent patch, for the documentation, for every correction or update to the documentation, etc. If you want to give a presentation about it your slides need to be released. If you want to write a paper on it that needs to be released as well. Evey time through the release process takes two to six weeks, depending. This works OK if you are releasing documents. Once a document is written, it usually doesn't need hundreds or thousands of updates over it's lifetime. A journal paper gets released once, then it's done. But the same process is what we currently use for software, and software is just a very different thing than a document is. Imagine what would happen to the release cycle of a small OSS project if it took six weeks for github to get around to posting your update, and if github management rejected about half of them for reasons that were mostly inscrutible to you.
- Wowfunhappy 8y agoIt doesn't strike me as a huge loss to society if source code updates are only released, say, once per year. It's not ideal but it's not terrible either. (Of course, if the updates aren't happening at all because of opaque internal procedures, that's a different story.)
- cls59 8y agoHere's a good counter example: https://www.hec.usace.army.mil/software/hec-ras/downloads.aspx https://www.hec.usace.army.mil/software/hec-ras/downloads.as... Back when I did work on hydraulic modeling, HEC-RAS was the gold standard for open channel flow. It is only available as a pre-compiled Windows executable. I had a ton of parameterized simulations to run and would have loved to have gotten my hands on the source code in order to run it on EC2 Linux spot instances and to mechanize the parameter inputs by cutting the GUI input forms out.
- fulldecent2 8y agoI am working on this problem and contributing to https://code.mil https://code.mil. This project explains to DoD managers /how/ to set up an open source policy. It's going to be a long process, but we can do this!
- kfrzcode 8y agoAwesome awesome awesome to see this. I agree, the process will be arduous but it is incredibly achievable!!
- killjoywashere 8y agoplease send me an email.
- deleted 8y ago[deleted]
- vishvananda 8y agoContractors have their own hassles when it comes to open source. Pre-openstack, there was a small contracting company called Anso Labs that consisted of a few of us that were creating a private cloud for NASA. After a few months of banging our head against Eucalyptus (java based open-core private cloud software), we decided to write our own version over a weekend and call it Nova. We convinced the civil-servants in charge to allow us to use our new thing, which we continued to improve at NASA. This project eventually became the compute platform for openstack. There were multiple weeks of meetings with lawyers (including discussions of whether we needed a space act agreement[1]) to figure out how to actually open source the modifications we made on NASA's behalf. Ultimately we ended up having to assign all of the nova copyrights to the government[2] so that they could open source the modifications. I didn't even think that the government could own copyright but apparently it can[3]. [1]: https://www.nasa.gov/partnerships/about.html https://www.nasa.gov/partnerships/about.html [2]: https://github.com/openstack/nova/commit/c88d1f033bd600e855c57d9a65d9d832b1b0ab85 https://github.com/openstack/nova/commit/c88d1f033bd600e855c... [3]: https://www.usa.gov/government-works/ https://www.usa.gov/government-works/
- killjoywashere 8y agoIf you can, please send me an email.
- eslaught 8y agoOn the other hand, some branches like the Department of Energy are making a big push for open source. You can see how many projects Los Alamos has, for example: https://github.com/lanl https://github.com/lanl And: https://github.com/laristra https://github.com/laristra Keep in mind, Los Alamos is one of the big labs doing nuclear work for the DOE, so obviously a lot of what they do is classified, but of the stuff that isn't they're actually doing a pretty impressive job of open sourcing it.
- asabjorn 8y agoI used to work for a National Laboratory that was privatized, and the 1980 Bayhd-Dole [1] act made any intellectual property developed on a government contract on what was previously a public national lab now the private ownership of the company that took over the national lab. All the science done at that national lab for less money before it was privatized was after privatization private property, and before privatization more science was done for less money. The reason the costs became higher was that a private company is not tax excempt and the government guarantees a profit for the contract. In effect this is a no cost private theft of government funded research, and I find it fishy that almost all the national labs were made private in the decades after the act. The only upside seems to be that the private company take any blame for a scandal. [1] https://www.mofo https://www.mofo https://www.mofo.com/resources/news/the-governments-patent-policy-the-bayh-dole-act-and-authorization-and-consent.html.com/resources/news/the-governments-patent-policy-the-bayh-dole-act-and-authorization-and-consent.html https://www.mofo.com/resources/news/the-governments-patent-p...
- Godel_unicode 8y agoGovernment development can be bad, but it's nothing compared with most other large verticals (bio, insurance, finance, air lines...). None of the absolute statements here are remotely close to universally applicable (check out forge, 18f, national labs, the recent NSA ghidra announcement, etc). > Setting up a git repository Git != GitHub > Every single patch has to be pushed through a public release process Rebase is your friend.
- GlenTheMachine 8y agoI'm speaking to my experience in the DoD. Other agencies have different policies and procedures, and operate under different motivations and legal frameworks.
- jotux 8y agoWith regard to the DoD the CIO released some good guidance on OSS: https://dodcio.defense.gov/Open-Source-Software-FAQ/ https://dodcio.defense.gov/Open-Source-Software-FAQ/ Here is an excerpt that talks about licensing: >Q: Can government employees develop software and release it under an open source license? >Not under typical open source software licenses based on copyright, but there is an alternative with the same practical effect. >Software developed by US federal government employees (including military personnel) as part of their official duties is not subject to copyright protection and is considered “public domain” (see 17 USC § 105). Public domain software can be used by anyone for any purpose, and cannot be released under a copyright license (including typical open source software licenses). >However, software written entirely by federal government employees as part of their official duties can be released as “public domain” software. This is not under a copyright license, it is absence of a license. By some definitions this is technically not an open source license (because no license is needed), but “public domain” software can be legally used, modified, and combined with other software without restriction. Thus, “public domain” software provides recipients all of the rights that open source software must provide.