An Introduction to Software Licensing

Slides:
https://softwaresaved.github.io/software-licensing-workshop

Materials:
https://github.com/softwaresaved/software-licensing-workshop

These materials are licensed under the CC-BY 4.0 license.

Suggest improvements using GitHub Issues

Who Am I?

Neil Chue Hong, Software Sustainability Institute

Email: N.ChueHong@software.ac.uk

Twitter: @npch

ORCID: 0000-0002-8876-7606

Acknowledgements

The development of this workshop was made possible by funding from EPSRC, ESRC and BBSRC through grants EP/H043160/1 and EP/N006410/1 for the UK Software Sustainability Institute.

The materials for this workshop were originally developed by Neil Chue Hong, based on material from Neil Chue Hong and Shoaib Sufi, qLegal and OSS-Watch. It was originally commissioned for workshops at Cambridge University and the TRAC2018 conference. Thanks to everyone at the Software Sustainability Institute for their support.

People get very __________ about licensing

I Am Not A Lawyer

(this is not legal advice, only opinion)

Other resources

Overview of workshop

  • Introduction to licensing and IP
  • Software licenses and why they’re important
  • Types of software licenses and how to choose
  • Licensing vs governance

Other topics

  • Research Funder Expectations
  • License compatibility
  • Business Models
  • Persuading your boss

Introduction to Licensing and Intellectual Property

Licensing and Intellectual Property

Official permission to do something, within limits:

  • You can drink in a pub during their licensed hours
  • You can play live music as long as it isn’t above 75db
  • You can drive a vehicle up to 3,500kg with up to 8 seats

Commonly used to exploit Intellectual Property:

  • You can use my photograph to advertise your product, but only in the United Kingdom
  • You can screen this movie in this venue on these dates

Intellectual Property Rights

Intellectual Property: legal rights (IPRs) from intellectual activity in the industrial, scientific, literary and artistic fields

Patent: Protects ‘new’ ideas and has an ‘inventive step’ that is not obvious to someone who works in the subject area

Copyright: Protection of a tangible manifestation of an idea; e.g. a book or source/object code

License: An agreement or permission that grants a right to use - often in the form of a contract

Why is software licensing important?

Common Fallacies

"I found it on the internet so I can use it"

Publishing in a public place does not automatically grant rights to use.

"It’s fine to not have a license"

No license worse than a restrictive license.

"You automatically own the IP to your creations"

Often your employer may own the IP you generate as part of your job. The right license will allow you to exploit it.

Common Use Cases

"I'd like to sell my software commercially"

A license allows you to set out the conditions of use.

"I want to let others easily reuse my work"

A license clearly sets out what people can do, and what you are liable for.

"I'd like to set up a company based on software I developed"

Choosing the right license will help you exploit your software outside the university.

What is a software license?

A legal instrument governs the permission you are granting to others to use or distribute the software you hold the copyright on:

  • Are you allowed to use it?
  • Are you allowed to copy it?
  • Are you allowed to resell it?
  • Are you allowed to change it?
  • Are you allowed to distribute it?
  • Who is liable if something goes wrong?

Choosing a license isn't hard, but we think it is

Types of License

  • Closed ("Proprietary")
  • Restricted ("Academic" / "Non-commercial")
  • Open ("Open Source")
    • Copyleft ("Share modifications under same license")
    • Permissive ("Use with Attribution")
  • Public Domain / CC0
  • Informal
  • No license

Question:

What do you want people to do with your software?

Key Considerations

  • Does your software depend on other software?
  • What type of impact are you seeking?
    • Widespread usage
    • Commercial revenue
    • Research outcomes
    • Social or cultural change
  • Do you care whether changes made by other people are made available?
  • Do you care if certain people / organisations use your software?

Other Considerations

  • Larger works comprising code with different licenses (“license compatibility”)
  • Software made available under more than one license (“dual licensing”)
  • Copyright holders can re-license as they own the IP (“relicensing”)
  • Projects with multi contributors from different organisations ("contributor agreements")

How do I actually license my software?

  • Choose a license (more on this soon)
  • Put the license text in a file called LICENSE.TXT or LICENSE.md in the root directory of your source code repository (you are using version control, right?)
  • Include information about your chosen license in your README (and website and documentation if you have them)
  • (Optionally) Add copyright and licensing information to your source code files (there are tools to help)

General Tips

  • If using a commercial license, get it checked by a lawyer
  • If using an open source license, use a popular OSI-approved one
  • If thinking about using an academic / non-commercial license, think about what you'd like to achieve and consider dual-licensing
  • If thinking about putting into public domain, consider using a permissive open source license or CC0 instead.
  • Don't ever think about writing your own license from scratch!

Pros and Cons of Open Source

Pros

  • Easier to evaluate
  • No lock-in
  • Easier to attract contributors and staff
  • Frictionless code sharing
  • Free advertising
  • Able to take with you
  • Reduced duplication
  • Can work together on common platforms

Cons

  • Harder to corner cut
  • Harder to gain income from directly selling the software
  • Cannot restrict to non-commercial use only
  • Once licensed, cannot revoke license
  • Can increase competition

Copyleft vs Permissive

  • Software freedom vs developer freedom
  • Copyleft licenses have increased license management costs
  • Industry is generally more supportive of permissive licenses
  • Open source software no longer written as an alternative to closed, but as the platform to drive service provision
  • Software no longer the competitive differentiator, but the ability to operate it at scale is
  • Further reading: Is Open Source Sustainable?

Common Licensing Scenarios

"I want a simple license that lets everyone use my code"

  • For a really simple license, consider the MIT license
    • Easy for anyone to reuse software: can do anything but must provide attribution and can't hold you liable
    • However software can be redistributed under different terms and modifications don't have to be shared
  • Don't want people using your (or your organisation's) name to promote products or services based on the code? Consider the BSD 3-Clause license
  • Concerned about patent right grants? Consider the Apache License 2.0

"I want any improvements to the code to be shared"

  • If you want all changes to be shared, consider the GNU GPLv3 license
    • Anyone who distributes, modifies or creates a derivative work from your software must make the source code available under the same terms
    • Provides an express grant of patent rights from contributors to users
  • Want to make it easier for people to "productise" your code? Consider the GNU Lesser GPL v3 License
  • Want internal deployment or software-as-a-service changes to be shared? Consider the GNU Affero GPL v3 License

"I want to make money"

  • You can commercially exploit software released under closed, restricted and open licenses.
    • Proprietary License: traditional "shrink wrap" software approach
    • Permissive Platforms: platform released under permissive license, encouraging development of an ecosystem of related tools, e.g. OpenStack
    • Dual-licensing: distributed under copyleft license but also available under commercial license, e.g. MongoDB
    • Dual-edition: open source community edition, closed source enhanced edition, e.g. SugarCRM

What does "express grant of patent rights mean"?

  • Releasing code which embodies a patent may be granting rights to use the patent to anyone who chooses to use it - even if the license does not explicitly say so
  • Licenses such as the Apache License V2.0 and GNU GPL v3 include specific clauses for:
    • patent grants: explicitly grant patent rights necessary to use, adapt and distribute the software
    • patent retaliation: anyone bringing legal action alleging the software embodies their software patents loses the licence you have granted to copy, use, adapt and distribute the software

Licensing vs Governance

Governance is...

...the thing that stops a project from descending into chaos

Ground rules for decision making, participation, communication and sharing.

Open source vs Open development

Open source software philosophy is more than the license

  • Some open licensed software is not produced openly
  • Some closed licensed software benefits from open source project principles and processes
  • Many open source contributors are paid (in some way) to do so

Best practice for software projects

Best practice identified from OSS projects useful for managing all types of software projects/products

Open source licensed software != Open development

Can use open development practices in closed source projects

Takeaways

  1. Understand who owns the IP
  2. Identify if your software incorporates existing licensed code
  3. Decide what impact you are seeking
  4. Choose an appropriate license, and apply it
  5. Put in place a governance model which supports contributors and enables impact

Thank you - questions?

Other Topics

Expectations from Research Funders

Science as an Open Enterprise

"Publishing data in a reusable form to support findings must be mandatory"

RCUK committed to openness

“As bodies charged with investing public money in research, the Research Councils take very seriously their responsibilities in making the outputs from this research publicly available – not just to other researchers, but also to potential users in business, charitable and public sectors, and to the general tax‐paying public.” - http://www.rcuk.ac.uk/research/openaccess/

“Publicly funded research data are a public good, produced in the public interest, which should be made openly available with as few restrictions as possible in a timely and responsible manner that does not harm intellectual property.” - http://www.rcuk.ac.uk/research/datapolicy/

What about software?

  • Depends on research being carried out
  • Deciding factor is whether the software is necessary to validate research findings
  • Even if you don’t need to preserve software, it’s good practice to make available to enable access, validation, and reuse of your results
  • And sometimes it’s easier to store the code than the results
  • Does not prevent commercialisation and exploitation of software, but you should make a case for why you are not open-sourcing code

Expectations around software

Research organisations are not expected to assume responsibility for software not produced within their own organisation

  • Prudent to take reasonable steps to assure the continued availability of the software you use
  • Preserving copy of open-source software
  • Use commercial software where a multi-year support agreement is available
  • Use open-data formats

Not all software must be shared, if there are ethical, legal or commercial reasons

Summary for PIs

  • Review what software you expect to use and produce
    • A software management plan may help
  • Record what software versions and parameters you use
    • In some cases, this may mean data storage is not required
  • Develop code in a repository
  • Open source should be de facto choice
    • Unless there are legal, ethical or commercial concerns
    • Enables validation of published results, in conjunction with appropriate documentation and access to data

License Compatibility

License Compatibility

Image courtesy of David A. Wheeler, licensed under CC-BY-SA

Notes on license compatibility

  • An arrow from box A to box B means that you can combine software with these licenses; the combined result effectively has the license of B, possibly with additions from A.
  • Strict GNU Public License v2 (no "or later" clause) cannot be combined with GPLv3 or LGPLv3
  • MPL is incompatible with GPL licenses

Business Models

Persuading Your Boss

Extra Reading Material