Skip to content

Commit

Permalink
Merge pull request #135 from esciencecenter-digital-skills/issue_96_l…
Browse files Browse the repository at this point in the history
…icensing_module_refactor

Rearrange the licensing module
  • Loading branch information
LourensVeen authored Oct 1, 2024
2 parents 2cdf7b3 + 83df286 commit dfadf5b
Show file tree
Hide file tree
Showing 14 changed files with 270 additions and 53 deletions.
2 changes: 1 addition & 1 deletion modules/licenses/copyright.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ type: reading
order: 2
---

## Copyright and software
## Copyright and software (2 minutes)

Creative works, like books, paintings and music, but also scientific articles and software, are covered by copyright. Copyright is a legal construct that gives the owner of the copyright on a work the exclusive right to reproduce, modify, publicly perform and distribute the work. As a result, anyone who is not the copyright holder needs to have permission from the copyright holder to also be able to do so.

Expand Down
4 changes: 2 additions & 2 deletions modules/licenses/ex_choose_a_license.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Choose a license
type: exercise
order: 7
order: 6
---

## Exercise 3: Choose a license for or using your policy (10 minutes)
## Exercise 2: Choose a license for or using your policy (10 minutes)

One of the concerns typically addressed in a software policy is licensing of software developed at the institution. Policies can choose a single license, or offer a range of options.

Expand Down
25 changes: 25 additions & 0 deletions modules/licenses/ex_finding_the_license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: Finding the license
type: exercise
order: 3
---

## Exercise 1: Find the license for a software package (10 minutes)

Imagine that a researcher comes to you and asks whether they can use a particular software package that they found online. One aspect to consider would be its license, if there is one.

Pick a software package from the following list, and try to find out whether it has a license and if so which. The idea is to cover the list together, so let's not all start at the top!

- Kernel Tuner
- nodal-dg
- OpenFOAM
- MATLAB
- COPASI
- Glotaran
- LinkAhead

A few hints:

- The researcher only gave you the name. You'll have to find the code on the Internet first.
- Licenses are not always advertised on a code's website. Try looking somewhere more technical if you can't find it in the documentation.

10 changes: 0 additions & 10 deletions modules/licenses/ex_have_licensing_policy.md

This file was deleted.

10 changes: 0 additions & 10 deletions modules/licenses/ex_licenses_in_use.md

This file was deleted.

44 changes: 44 additions & 0 deletions modules/licenses/how_to_share.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: How to share software
type: reading
order: 5
---

## How to share software (6 minutes)

Sharing software is done these days by making it available through the Internet, via e.g. GitHub or Zenodo. As we have seen however, that's not all you need to do. Because of copyright law, the software also needs a license. Sharing scientific software is sometimes simple from a legal perspective, but it can also be quite complicated. This section explains the main issues to take into account, which are ownership of the copyright, constraints imposed by dependencies, and choosing a license.

### Ownership

A copyright license must be given by the owner(s) of the copyright being licensed. This means that the first step to licensing a program is to find those owners. In most countries, including The Netherlands, any work you do as part of your tasks as an employee of an organisation belongs to your employer, not to you. After all, they're paying you to do the work. This means that the copyright on any software written by a university employee is owned by the university.

If the software to be shared is written entirely by one person, with no copy-pasting of code from others, and no help from people outside of the organisation, then the copyright is therefore owned by your organisation, and it can decide how to license the code.

Science is often done collaboratively though, and that makes things a bit more complicated. Funding for research is often given to consortia comprising multiple organisations that will collaboratively execute the research project. Such a consortium is governed by a Consortium Agreement (CA), which almost always has an Intellectual Property paragraph. Unfortunately, the standard text in the templates used for those documents rarely mentions software, as it mainly addresses patents and trade secrets. It does however usually say that each party gets to own the things they make, and that the partners can use it for the purpose of executing the research, but not beyond that. (Note that there is always some negotiation regarding the text, so you should check any specific CAs that apply, and not rely on this general description.)

Funding may also come with terms covering ownership. eScience Center grants for example come with a stipulation that both parties co-own the software even if it is written completely by one of the partners.

So, if your researcher works on the software together with a researcher from a different organisation, then both organisations need to agree to license their respective copyrights, ideally under the same license to avoid complicating things.

For long-lived scientific software that isn't Open Source already, it can sometimes be very difficult to determine ownership. It may not always be clear who wrote which part of the code (especially if no version control software was used), who they worked for when they did so, and which contracts were in place that governed their activities. Ideally, the copyright owners would have been carefully tracked over the life of the software, with copyright statements in the README documenting the owners. That is unfortunately very rare however. If it is not possible to determine the owners of the copyright, then the software cannot be licensed.

### Dependencies

Owners may not be completely free to decide how to license their software. Aside from any constraints imposed by funders, *dependencies* play a role. Dependencies are externally developed, separate software packages that are needed for the software to work. Having such dependencies is very common, and dependencies typically have their own dependencies, so that any complete computer program consists of a whole collection of software packages, usually written by different people. These days at least for Open Source software, the complete program is rarely distributed as a whole. Instead, the owners of the individual components each put their components online, and a special tool is used to collect all the required bits and combine them together on the computer of the user, who can then use the software.

As described in the section on licensing, strong copyleft licenses place constraints on how the combined software can be licensed. As a result, you cannot use them in a non-Open Source program. This does not mean that you have to make your software Open Source if has a copyleft dependency, but *if* you distribute it, then that must be done under the same license, and/or a more permissive one that does not conflict with it.

As you can see, dependencies with strong copyleft licenses can make life a bit more complicated. On the other hand, as long as no proprietary software is involved not much can go wrong. In case there are proprietary dependencies (including ones without a license, or "academic use only" or somesuch), there is a larger issue. If the software cannot work without the dependency, and the proprietary license does not allow redistribution, there we can still open source the software, but others won't be able to run it unless they can somehow get a copy of the proprietary dependency. And if you choose a strong copyleft license for your code, then you'll have to add a special exception for your users to be able to use it with the proprietary dependency.

So it is really proprietary software that complicates things legally, and that's aside from the lack of Open Science transparency. On the other hand, some proprietary software package is sometimes the only solution, and so proprietary dependencies cannot always be avoided. If that's the case, you'll have to look at the specific terms for that package and try to find a solution.

Weak copyleft licenses are less of an issue, because they do not reach beyond the licensed package itself. They can become an issue if your researcher has copy-pasted code from them into their own program (which is bad practice, but unfortunately fairly common still), or created a modified version. In that case the same weak copyleft license applies to (parts of) their code or the modified software, thus restricting the available license choices.

### Choosing a license

In almost all cases, scientific software should be licensed under a common, standard Open Source license. Open Source enables scientific collaboration and makes the work available to the society that paid for its creation, and not using a standard license creates enough legal risk that most potential users will not be willing to touch the software unless they really have to.

Whether to use a permissive, weak, or strong copyleft license is up to the copyright owner. If your organisation has a policy on software, then it may well say something about which licenses can be used, so be sure to check that. The authors of the software may also have an opinion, or develop one if you explain the different kinds of licenses to them. A tool like [ChooseALicense](https://www.choosealicense.com) may help here.

Note that Creative Commons licenses should not be used for software. They were created specifically to be able to apply the concept of Open Source to everything that is *not* software, and aren't suitable to the specific properties of software. So use CC for data and other works, and an Open Source license for software.

2 changes: 1 addition & 1 deletion modules/licenses/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Software licenses
category: Reusability
order: 25
author: eScience Center
abstract: What are software licenses, copyright and open-source, how are they related and why is it important to think about?
abstract: What are software licenses, copyright and open-source, how are they related and why is it important to think about?
thumbnail: "thumbnail-licenses.png"
visibility: visible
---
Expand Down
7 changes: 4 additions & 3 deletions modules/licenses/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ order: 0
Obtain the skills and knowledge necessary to address the following questions:

- What is a software license? What is copyright?
- What are the different kinds of software license?
- Why is it important to provide a license with research software?
- How do I support researchers in choosing the right license for their software?
- How to legally use software made by others in your organisation?
- How to license software created by your organisation?
- How to license contributions to external Open Source projects?

4 changes: 2 additions & 2 deletions modules/licenses/licenses.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Software licenses
type: reading
order: 6
order: 4
---

## Software licenses
## Software licenses (8 minutes)

Software licenses are legal statements that give permission to use, modify and/or distribute software. By copyright law, only the copyright owner(s) can give this permission, so the license must be granted by those owners.

Expand Down
Binary file added modules/licenses/media/Kleine_Dinge.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added modules/licenses/media/Zytgloggeturm_Bern.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit dfadf5b

Please sign in to comment.