Commit 0de38fdc authored by Andrew Katz's avatar Andrew Katz Committed by Javier Serrano

Changes to licensor obligations

parent 852e5a9f
......@@ -16,7 +16,8 @@ citecolor=blue]{hyperref}
\SetWatermarkText{DRAFT}
%\SetWatermarkScale{5}
\title{CERN Open Hardware Licence Version 2 - Strongly Reciprocal \\ User Guide}
\title{CERN Open Hardware Licence Version 2 - Strongly Reciprocal \\ User
Guide}
\date{\today\\Guide version: 1.0}
......@@ -28,7 +29,8 @@ citecolor=blue]{hyperref}
This document contains guidelines on how to apply the CERN-OHL-S v2 to a given
hardware design, and on the use of hardware designs licensed under the
CERN-OHL-S v2. This means we will be talking to you sometimes as a licensor, and
CERN-OHL-S v2. This means we will be talking to you sometimes as a licensor,
and
other times as a licensee.
As a licensor, there are many ways in which you can make it clear to your
......@@ -36,11 +38,19 @@ licensees that you are sharing your designs under the licence. These guidelines
are only to be taken as advice, illustrating some ways in which we think this
can be done efficiently.
In order to help you distinguish between your obligations (mostly as a licensee)
In order to help you distinguish between your obligations (mostly as a
licensee)
and our suggestions to you (mostly as a licensor), we will use the word `rule'
for the former and the word `suggestion' for the latter. Any perceived
contradiction between these guidelines and the licence text should of course be
resolved in favour of the licence text.
resolved in favour of the licence text. \footnote{Lawyers among you may realise
that, technically, the CERN-OHL family of licences do not place any obligations
on Licensors at all (unless they are also licensees). However, if you if, as a
licensor, you do not comply with the "rules" you are not acting within the
spirit of the CERN-OHL, and you will almost certainly make it more difficult
for potential licensees to make use of the designs, something which contradicts
the most basic intention of the licence. Therefore, even as a Licensor,
please regard the rules as binding.}.
\section{How to apply CERN-OHL-S v2 to a hardware design}
......@@ -48,7 +58,8 @@ resolved in favour of the licence text.
Authorship/ownership of the design must be clear and undisputed. Only the legal
owner of the rights in the hardware design may decide under what conditions to
make it available. If ownership is vested in more than one person/entity, there
make it available. Generally, If ownership is vested in more than one
person/entity, there
must be an agreement among the owners (or a chain of compatible licences from
each of them) to release the hardware design as open hardware, and under the
CERN-OHL-S v2 in particular.
......@@ -57,7 +68,8 @@ CERN-OHL-S v2 in particular.
\label{subsec:your-sources}
Nowadays most designers who intend to share their work do so by hosting their
design files (sources) in a publicly-accessible repository using version-control
design files (sources) in a publicly-accessible repository using
version-control
systems such as git. The sites hosting these repositories usually provide users
with the convenience of downloading a whole repository as a compressed (e.g.
zip) file. This is a very effective way of working: it makes it easier for you
......@@ -66,30 +78,55 @@ allows them to easily start using it and contributing improvements.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.1}]
\item \textbf{Suggestion: } try to host your design in a publicly-accessible
repository using version control. If that is not possible, compress your whole
repository using version control. If that is not possible, compress your
whole
directory structure into one file and publish that file, so users get your
whole project in one go.
\end{enumerate}
If you goal is to share, it makes sense to provide enough information to users
about the contents of the design package they download, and to make it easy for
them to browse that information. For example, if you have designed your hardware
using proprietary tools, maybe people who download the design files will not
them to browse that information. For example, if you have designed your
hardware using proprietary tools, maybe people who download the design files
will not
have access to the tools you used. Sometimes you can also provide exported
versions of those files which, although not as useful for modification as the
originals, will make life easier for people who want to understand your designs.
originals, will make life easier for people who want to understand your
designs.
For example, PCB schematics and layout can be exported as pdf files, and
3D mechanical designs can be exported to the STEP format.
Where possible, provide the design files in the version which provides the most
convenience and information to a recipient, and if this a proprietary file
format, also provide the information, where your tools allow this, in a form
which makes it possible for licensees to read it using open source tools.
In fact, it's a licence obligation for you to produce open-source-readable
files if your design incorporates anyone else's design licensed under CERN-OHL,
CERN-OHL-S or CERN-OHL-W.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.2}]
\item \textbf{Suggestion: } include in your design sources versions of the files
exported to formats everybody can read.
\item \textbf{Suggestion: } include in your design sources versions of the
files exported to formats everybody can read. It would be helpful to specify
the tools you used, and, if they are publicly available under free and open
source licences, provide information about where the recipient can find them.
\end{enumerate}
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.3}]
\item \textbf{Rule: } if your design is a modification of someone else's
design, or incorporates parts of another's design, and in each case the
other's design is released under CERN-OHL, CERN-OHL-W or CERN-OHL-S you must
(if your tools allow this) include in your design sources versions of the
files exported to formats everybody can read using tools available under an
free or open source software licence.
\end{enumerate}
It can also be good to let people know that you are following this guide, so
they see why you are doing things in this or that way.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.3}]
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.4}]
\item \textbf{Suggestion: } include a copy of this user guide, in pdf or plain
text format, in your sources.
\end{enumerate}
......@@ -101,45 +138,56 @@ URL pointing to the licence text, but it does not hurt to include the licence
text in the source package for the convenience of the user and to make it very
visible that the whole design is open source.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.4}]
\item \textbf{Suggestion: } include a copy of the CERN-OHL-S v2 licence text, in
pdf or plain text format, in your sources.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.5}]
\item \textbf{Suggestion: } include a copy of the CERN-OHL-S v2 licence text,
in pdf or plain text format, in your sources, and failing that, provide a link
to the licence at
\href{https://ohwr.org/cern_ohl_s_v2.pdf}{https://ohwr.org/cern\_ohl\_s\_v2.pdf
}.
\end{enumerate}
One of the requirements for licensees who make modifications to the design and
publish those modifications, is to make them explicit in a dedicated text file.
As a licensor, you can make this obligation more easy to see and bear in mind by
including an empty file called CHANGES.txt in your sources.
As a licensor, you can make this obligation more easy to see and bear in mind
by including a placeholder file called CHANGES.txt in your sources.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.5}]
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.6}]
\item \textbf{Suggestion: } include an empty CHANGES.txt file in your sources.
You may write a few lines in the beginning of the file stating that
information should be added but never removed from that file, and that,
according to section 3.3.b of the licence, licensees should provide a brief
entry with a date and the nature of the modification for each design change.
For example `26 April 2020: AC/DC power converter circuit removed as AC input
no longer necessary'.
You may write a few lines in the beginning of the file stating that anyone
modifying the design provide brief information about the modifications,
including the date they were made, and stating that information should be
added but never removed from that file (except you are
sure that the changes listed only apply to a part of the file you are not
using), and that, according to section 3.3.b of the licence, licensees should
provide a brief entry with a date and the nature of the modification for each
design change. For example `26 April 2020: AC/DC power converter circuit
removed as AC input no longer necessary'.
You can make this obligation easier to manage my making your design modular in
for the first place (see [ref]).
\end{enumerate}
Now, as you have seen, as the initial licensor you have relatively few
obligations. We are going to assume that it is your intent to license your
Now, as you have seen, as the initial licensor relatively few rules apply to
you. We are going to assume that it is your intent to license your
design under CERN-OHL-S v2 though, and in that sense the minimal requirements
are going to be described as `rules' below.
Some files can easily include a header of a text box with copyright and
licensing information which will be easily visible to whoever opens them. For
file types which do not easily grant that possibility, consider using a separate
text file taking as its name the name of the original file with
`.license'\footnote{Here we exceptionally use US spelling for the word `licence'
in order to be coherent with the REUSE project, which is where we got this
idea. See \href{https://reuse.software/}{https://reuse.software/} for
file types which do not easily grant that possibility, consider using a
separate text file taking as its name the name of the original file with
`.license'\footnote{Here we exceptionally use US spelling for the word
`licence' in order to be coherent with the REUSE project, which is where we got
this idea. See \href{https://reuse.software/}{https://reuse.software/} for
details.} appended to it. So if you have e.g. a file called
`my\_3d\_design.FCStd', you can add another file in the same directory called
`my\_3d\_design.FCStd.license' which is a text file containing copyright and
licensing information.
%AK: I have a concern here that this might cause incompatibilities with some of
%AK the scripting which is creeping into GitHub and GitLab which automatically
%AK allocates a licence to a project based on what's in a file called LICENSE.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.6}]
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.7}]
\item \textbf{Rule: } include for each source file, either embedded in the file
itself or in a separate text file which refers to it:
\begin{enumerate}
......@@ -161,7 +209,8 @@ licensing information.
\end{enumerate}
\end{enumerate}
Here is an example for a hypothetical designer called Sam Smith hosting a design
Here is an example for a hypothetical designer called Sam Smith hosting a
design
called Gizmo at https://example\_url:
\begin{mdframed}
......@@ -185,12 +234,14 @@ called Gizmo at https://example\_url:
The first three lines in the example above, containing copyright and licence
type, can be substituted by a valid SPDX header, like this:
\noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless sam@example.com\textgreater\\
\noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless
sam@example.com\textgreater\\
SPDX-License-Identifier: CERN-OHL-S-2.0
or, in case the `or later' version is preferred:
\noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless sam@example.com\textgreater\\
\noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless
sam@example.com\textgreater\\
SPDX-License-Identifier: CERN-OHL-S-2.0+
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.7}]
......@@ -199,37 +250,77 @@ SPDX-License-Identifier: CERN-OHL-S-2.0+
\end{enumerate}
Why would you license your design under `CERN-OHL-S v2 or later'? Imagine we
discovered a shortcoming of the licence which made us write a new version, let's
discovered a shortcoming of the licence which made us write a new version,
let's
say version 3.0, to fix it. Let us further imagine that we decided to make v3
incompatible with v2 (this actually happened with the GPL). If you licensed your
incompatible with v2 (this actually happened with the GPL). If you licensed
your
design under `v2 only' that means it could not be combined with new designs
licensed under v3. If, on the other hand, you license your design under `v2 or
later', you give future licensees the option of interpreting the design as
licensed under the hypothetical v3, and there would be no compatibility issues.
This is quite an important decision to take when you use a reciprocal licence,
so we thought we'd mention it in this guide.
so we thought we'd mention it in this guide. You have to make your own judgment
as to whether you believe that CERN can be trusted to ensure that
future
versions of the CERN-OHL will be similar in spirit and effect to this version.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.8}]
\item \textbf{Suggestion: } give some thought to the `or later' option before
publishing your design under CERN-OHL-S v2.
\end{enumerate}
We are going to assume that you, as a licensor, want people who receive a product
We are going to assume that you, as a licensor, want people who receive a
product
based on your design to know that it is Open Hardware and where they can find
the design files for that product, hence:
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.9}]
\item \textbf{Rule: } include in a part of the Source corresponding to a visible
\item \textbf{Rule: } include in a part of the Source corresponding to a
visible
part of the Product (e.g. silkscreen or top copper for a Printed Circuit
Board):
\begin{enumerate}
\item the licence notice: “Licensed under CERN-OHL-S v2”;
\item the Source Location.
\end{enumerate}
Do \emph{not} include the CERN logo or the copyright notice in there.
Do \emph{not} include the CERN logo in there. Only include the CERN copyright
notice if your design includes portions of a design from CERN which contains
that CERN copyright notice (in which case, you will be required to reproduce it
as part of your obligations as a licensee under terms of the CERN-OHL under which
the design is licensed to you.
{\color{red} discuss this}
\end{enumerate}
\subsection{A Note on Components}
\label{subsec:note-components}
If your design is modular, it may well be helpful to consider licensing each of
the components you have designed separately, and then having an overarching
design, also licensed under an appropriate variant of CERN-OHL which contains
the each of the sub-components.
Why? It will make life easier for licensees who only want to make use of one
component of
your design: they will not have to extract the relevant component from your
design and then work out which parts of Notices they are allowed to delete.
You may also want to attach different notice requirements to different
components. For example, if you have a processor and a power supply in your
design, you may want to ensure that the source location for the design files
for the processor are printed on the outside casing of anything using the
processor,but you are less concerned about this when people use the design for
the power
supply. Or, to take a more extreme example, you may want to license the design
for a hydraulic press, and you also include your recipe for hydraulic fluid.
Both can be incorporated into the same design, but it becomes very difficult to
see how a general obligation in the notice file to place the source location
URL on the press can be followed if a licensee only wants to manufacture and
use the hydraulic fluid. This issue can be addressed if the hydraulic fluid is
licensed separately, and there is either has no NOTICE obligation to place the
url on the design, or simply one to place it on the first container in which
the fluid is shipped.
\section{How to deal with hardware designs licensed under CERN-OHL-S v2}
\label{sec:receive-designs}
......@@ -239,9 +330,11 @@ receive hardware designs licensed under the CERN-OHL-S v2, the obligations are
to:
\begin{enumerate}[label=\textbf{\ref*{sec:receive-designs}.1}]
\item \textbf{Rule: } keep intact all the copyright and trademark notices and
\item \textbf{Rule: } keep intact all the copyright, acknowledgment and
trademark notices and
Source Location notices that are on the hardware design sources.
\end{enumerate}
\begin{enumerate}[label=\textbf{\ref*{sec:receive-designs}.2}]
\item \textbf{Rule: } keep intact the references to the CERN-OHL-S v2.
......@@ -280,18 +373,21 @@ products, you must:
\end{enumerate}
\begin{enumerate}[label=\textbf{\ref*{subsec:modify-designs}.4}]
\item \textbf{Rule: } license the modifications under the `CERN-OHL-S v2' or
`CERN-OHL-S v2 or later' as decided by the original licensor.
\item \textbf{Rule: } license the modifications under the `CERN-OHL-S v2' (or
`CERN-OHL-S v2 or later' if permitted by the original licensor, and all other
components of the design allow you to license with the "or later" option.
\end{enumerate}
\subsection{Hardware production and distribution}
\label{subsec:make-hardware}
If, as a licensee, you want to produce hardware based on a design licensed under
If, as a licensee, you want to produce hardware based on a design licensed
under
CERN-OHL-S v2 and/or distribute that hardware, you need to:
\begin{enumerate}[label=\textbf{\ref*{subsec:make-hardware}.1}]
\item \textbf{Rule: } either provide each recipient with a copy of the Complete
Source or ensure that each recipient is notified of the Source Location of the
Source or ensure that each recipient is notified of the Source Location of
the
Complete Source.
\end{enumerate}
......@@ -301,7 +397,8 @@ expressed by the licensor to have a clear visual indication of the Source
Location on the hardware:
\begin{enumerate}[label=\textbf{\ref*{subsec:make-hardware}.2}]
\item \textbf{Rule: } if specified in a Notice by the licensor, the Product must
\item \textbf{Rule: } if specified in a Notice by the licensor, the Product
must
visibly and securely display the Source Location on it or its packaging or
documentation in the manner specified in that Notice.
\end{enumerate}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment