Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Open Source Software Licensing

Empowering others to use your code

 TL:DR

  • IANAL, this isn’t :hammer: advice
  • Just slap the MIT license on it
  • Exception: GPL-derived code

 Roadmap

  1. Copyright
  2. Licensing
  3. Licensing + Gov
  4. Licensing + Community

 Copy Whatnow?

  • Six Exclusive Rights

    • Reproduce
    • Prepare derivative works
    • Distribute copies
    • Perform/display publicly
  • Since 1979, automatic at the time of creation

  • Can’t :copyright: ideas, only embodiments

Licensing

Ownership As Distinguished From Use

  • Think of it like renting an apartment
  • What can and can’t I do with your code?
  • If I contribute, what rights do I waive?

Software Licensing

  • Describe what rights I’m granting to you
  • Disclaim that if something goes wrong with the code, you can’t sue me
  • Require you to include the license if you redistribute my software
  • Can technically create your own, but don’t. Really, don’t do it.

Licenses

MIT, BSD, and Apache

  • Explicitly grants nearly unlimited rights

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.

GPL (copyleft)

  • “Viral” license
  • Derivative works must be GPL*
  • WordPress, Drupal, Linux
  • Forks, but also plugins
  • v2, v3, “or Later”

*If distributed

Dual Licensing

  • Usually GPL and something else
  • User can choose under which terms project is licensed
  • No action necessary
  • Easier to incorporate within other, already licensed projects

Open Source And The Man

Gov Specific Considerations

  • Strong presumption in favor of open source

  • Three ways code can come about:

    • Contractor-created
    • Gov-created
    • Community contributed

Contractor Created

  • Contracting officer must negotiate away Gov’s interest
  • Contractor must mark and claim code
  • FAR 27.404-3(a)(5), FAR 52.227-14(c)(1)
  • Pro tip: include as contract deliverable

Government Created

  • Government Employee, government time, within scope of work
  • “US Government Work”
  • No copyright protection per 17 USC § 105
  • Viral-derivative works: hands already tied

Community Contributed Code

  • Gov cannot accept voluntary professional services 31 USC § 1342
  • Require contributions be licensed under project terms
  • Individual contributor retains copyright
  • Gov uses publicly posted code

Community Building

Licensing To Build Communities

  • Always license the project
  • Coders don’t want to give away their code
  • Use a familiar license (read: MIT)
  • Minimize ambiguity, show you speak the language

Minimize Friction

  • Do: Use a familiar license
  • Do: Spell things out in the project readme
  • DO: Include a LICENSE.txt file
  • DO: Include a CONTRIBUTING.md file
  • Don’t: Require a Contributor License Agreement

You Can't Do That

  • Theoretically, initial commit can be public domain
  • Theoretically, individual lines of code can be public domain
  • Project as a whole is licensed
  • Project is licensed internationally
  • Benefit outweighs harm, risk extremely remote