CS 346 (W23)
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Copyright & Licensing

Before distributing your software, in any form, it’s critical to establish ownership and rights pertaining to that software.

A copyright is a type of intellectual property that gives its owner the exclusive right to copy and distribute a creative work, usually for a limited time. Copyright is intended to protect the original expression of an idea in the form of a creative work, but not the idea itself. A copyright is subject to limitations based on public interest considerations, such as the fair use doctrine.

Software copyright is the application of copyright in law to machine-readable software. Under Canadian and US law, all software is copyright protected, in both source code and object code forms.

Practically, this means that different companies can independently produce software that solves the same problem, and there is no law preventing that from occurring, provided that they do not reuse actual source or object code from their competitor.

In Canada, software is protected under the Copyright Act of Canada. Copyright is acquired automatically when an original work is generated; the creator is not required to register or mark the work with the copyright symbol in order to be protected. The rights holder is granted: the exclusive right of reproduction, the right to rent the software, the right to restrain others from renting the software and the right to assign or license the copyright to others.

It’s common practice to assert your copyright claim in the header of your software source files. Although is not required to assert copyright, it’s a flag for potential violators, and it might make it easier to defend in court.

Copyright (c) 2022. Jeff Avery.

Licensing

As the rights holder, you can grant others rights with respect to your software. A software license is a legal instrument that grants the licensee (i.e. an end-user) permission to use the software in a manner dictated by the license. These rights could include (but aren’t limited to) the right to install and use it, the right to modify the source code, or the right to redistribute the software with or without changes.

Authors of copyrighted software can also choose to donate their software to the public domain, in which case it is also not covered by copyright and, as a result, cannot be licensed.

Standard Licenses

There are a number of standard software licenses that have been developed and are commonly used, particularly with resepect to Open Source software1. The following table is extracted from the Wikipedia page for software licensing.

Permissive License Copyleft Noncommercial Proprietary
Desc. Grants use rights, including right to relicense Grants use rights, forbids proprietization Grants rights for noncommercial use only. Traditional use of copyright; no rights need be granted
Examples MIT, Apache, MPL GPL, AGPL JRL, AFPL Proprietary software, no public license

A permissive software license, sometimes also called BSD-style is a free-software license which instead of copyleft protections, carries only minimal restrictions on how the software can be used, modified, and redistributed, usually including a warranty disclaimer. Examples include the GNU All-permissive License, MIT License, BSD licenses, Apple Public Source License and Apache license. As of 2016, the most popular free-software license is the permissive MIT license.

Copyleft is the practice of granting the right to freely distribute and modify intellectual property with the requirement that the same rights be preserved in derivative works created from that property.

Copyleft software licenses are considered protective in contrast with permissive free software licenses, and require that information necessary for reproducing and modifying the work must be made available to recipients of the software program. This information is most commonly in the form of source code files, which usually contain a copy of the license terms and acknowledge the authors of the code. Notable copyleft licenses include the GNU General Public License (GPL), originally written by Richard Stallman, and the Creative Commons share-alike license.

Non-commercial licenses are intended to be used only be entities with no profit motive, including charities and public institutions. This is not common, and is both difficult to interpret and enforce.

A proprietary license refers to any other license, but usually one which grants few to no rights to the end-user (e.g. most commercial software licenses, which do not grant you any rights apart from the ability to install and use on a single machine).

It’s standard practice to include your license agreement with your product, typically as a license.txt file or something similar in your distribution.

How do I apply a license?

  1. Distribute the license with your program.
  • Include a license.txt file in your distribution.
  • If you provide source code to anyone, include a statement about how it is licensed in the header of each file. Check the license to see what is required.
  1. Include a licensing statement on your website.
  • See terms of each license to check what’s suitable. e.g.

Unless explicitly stated otherwise all files in this repository are licensed under the Apache Software License 2.0 [insert boilerplate notice here]

Resources

Open Source Initiative. 2022. Licenses and Standards. https://opensource.org/licenses


  1. Of course, you can always write your own software licensing agreement, but for it to be enforcable you will need a lot of assistance from some highly specialized lawyers, who tend to be very expensive, and who charge by the hour… ↩︎