Commit ab9085c4 authored by Javier Serrano's avatar Javier Serrano

Format and small typos

parent 3ea4ddcf
...@@ -27,20 +27,20 @@ citecolor=blue]{hyperref} ...@@ -27,20 +27,20 @@ citecolor=blue]{hyperref}
\section{Introduction} \section{Introduction}
This document contains guidelines on how to apply the CERN-OHL-S v2 to a given 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 hardware design, and on the use of hardware designs licensed under CERN-OHL-S
CERN-OHL-S v2. This means we will be talking to you sometimes as a licensor, v2. This means we will be talking to you sometimes as a licensor, and other
and other times as a licensee. times as a licensee.
As a licensor, there are many ways in which you can make it clear to your As a licensor, there are many ways in which you can make it clear to your
licensees that you are sharing your designs under the licence. These guidelines 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 are only to be taken as advice, illustrating some ways in which we think this
can be done efficiently. can be done efficiently.
To help you distinguish between requirements imposed by the licence (mostly as a licensee) To help you distinguish between requirements imposed by the licence (mostly as a
and our suggestions to you (mostly as a licensor), we will use the word `rule' licensee) and our suggestions to you (mostly as a licensor), we will use the
for the former and the word `suggestion' for the latter. Any perceived word `rule' for the former and the word `suggestion' for the latter. Any
contradiction between these guidelines and the licence text should of course be perceived contradiction between these guidelines and the licence text should of
resolved in favour of the licence text. course be resolved in favour of the licence text.
\section{How to apply CERN-OHL-S v2 to a hardware design} \section{How to apply CERN-OHL-S v2 to a hardware design}
...@@ -48,17 +48,17 @@ resolved in favour of the licence text. ...@@ -48,17 +48,17 @@ resolved in favour of the licence text.
Authorship/ownership of the design must be clear and undisputed. Only the legal 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 owner of the rights in the hardware design may decide under what conditions to
make it available. Generally, If ownership is vested in more than one person/entity, there make it available. Generally, if ownership is vested in more than one
must be an agreement among the owners (or a chain of compatible licences from person/entity, there must be an agreement among the owners (or a chain of
each of them) to release the hardware design as open hardware, and under the compatible licences from each of them) to release the hardware design as open
CERN-OHL-S v2 in particular. hardware, and under the CERN-OHL-S v2 in particular.
\subsection{Your sources} \subsection{Your sources}
\label{subsec:your-sources} \label{subsec:your-sources}
Nowadays, most designers who intend to share their work do so by hosting their Nowadays, most designers who intend to share their work do so by hosting their
design files (sources) in a publicly-accessible repository using design files (sources) in a publicly-accessible repository using version-control
version-control systems such as git. The sites hosting these repositories usually provide users 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. 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 zip) file. This is a very effective way of working: it makes it easier for you
to receive feedback, shows your users the complete history of the project and to receive feedback, shows your users the complete history of the project and
...@@ -73,21 +73,13 @@ allows them to easily start using it and contributing improvements. ...@@ -73,21 +73,13 @@ allows them to easily start using it and contributing improvements.
If your goal is to share, it makes sense to provide enough information to users If your 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 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 them to browse that information. For example, if you have designed your hardware
hardware using proprietary tools, people who download the design files may not using proprietary tools, people who download the design files may not have
have access to the tools you used. Sometimes you can also provide exported access to the tools you used. Sometimes you can also provide exported versions
versions of those files which, although not as useful for modification as the of those files which, although not as useful for modification as the originals,
originals, will make life easier for people who want to understand your designs. will make life easier for people who want to understand your designs. For
For example, PCB schematics and layout can be exported as pdf files, and example, PCB schematics and layout can be exported as pdf files, and 3D
3D mechanical designs can be exported to the STEP format. mechanical designs can be exported to the STEP format.
\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.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.2}] \begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.2}]
\item \textbf{Suggestion: } include in your design sources versions of the \item \textbf{Suggestion: } include in your design sources versions of the
...@@ -96,6 +88,13 @@ For example, PCB schematics and layout can be exported as pdf files, and ...@@ -96,6 +88,13 @@ For example, PCB schematics and layout can be exported as pdf files, and
source licences, provide information about where the recipient can find them. source licences, provide information about where the recipient can find them.
\end{enumerate} \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 a
free or open source software licence.
\end{enumerate} \end{enumerate}
It can also be good to let people know that you are following this guide, so It can also be good to let people know that you are following this guide, so
...@@ -123,40 +122,41 @@ to the licence at ...@@ -123,40 +122,41 @@ to the licence at
One of the requirements for licensees who make modifications to the design and 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. publish those modifications is to make them explicit in a dedicated text file.
As a licensor, you can make this obligation more easy for licensees to see and bear in mind As a licensor, you can make this obligation more easy for licensees to see and
by including a placeholder file called CHANGES.txt in your sources. bear in mind by including a placeholder file called CHANGES.txt in your sources.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.6}] \begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.6}]
\item \textbf{Suggestion: } include an empty CHANGES.txt file in your sources. \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 anyone You may write a few lines in the beginning of the file stating that anyone
modifying the design should provide brief information about the modifications, modifying the design should provide brief information about the modifications,
including the date they were made, and stating that information about the design should be including the date they were made, and stating that information about the
added but never removed from that file. It could also state that, according to section 3.3.b design should be added but never removed from that file. It could also state
of the licence, licensees should provide a brief entry with a date and the nature of the that, according to section 3.3.b of the licence, licensees should provide a
modification for each design change. For example `26 April 2020: AC/DC power converter circuit brief entry with a date and the nature of the modification for each design
removed as AC input no longer necessary'. You can make this obligation easier to manage by change. For example `26 April 2020: AC/DC power converter circuit removed as
making your design modular in the first place (so that the CHANGES.txt file does not accumulate AC input no longer necessary'. You can make this obligation easier to manage
information from parts of designs which you are not using). by making your design modular in the first place (so that the CHANGES.txt file
does not accumulate information from parts of designs which you are not
using).
\end{enumerate} \end{enumerate}
Now, as you have seen, as the initial licensor, relatively few rules apply to 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 you. We are going to assume that it is your intent to license your design under
design under CERN-OHL-S v2 though, and in that sense the minimal requirements CERN-OHL-S v2 though, and in that sense the minimal requirements are going to be
are going to be described as `rules' below. described as `rules' below.
Some files can easily include a header of a text box with copyright and 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 licensing information which will be easily visible to whoever opens them. For
file types which do not easily grant that possibility, consider using a file types which do not easily grant that possibility, consider using a separate
separate text file taking as its name the name of the original file with text file taking as its name the name of the original file with
`.license'\footnote{Here we exceptionally use US spelling for the word `.license'\footnote{Here we exceptionally use US spelling for the word `licence'
`licence' in order to be coherent with the REUSE project, which is where we got in order to be coherent with the REUSE project, which is where we got this
this idea. See \href{https://reuse.software/}{https://reuse.software/} for idea. See \href{https://reuse.software/}{https://reuse.software/} for
details.} appended to it. So if you have e.g. a file called 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', you can add another file in the same directory called
`my\_3d\_design.FCStd.license' which is a text file containing copyright and `my\_3d\_design.FCStd.license' which is a text file containing copyright and
licensing information. licensing information.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.7}] \begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.7}]
\item \textbf{Rule: } include for each source file, either embedded in the file \item \textbf{Rule: } include for each source file, either embedded in the file
itself or in a separate text file which refers to it: itself or in a separate text file which refers to it:
...@@ -179,8 +179,7 @@ licensing information. ...@@ -179,8 +179,7 @@ licensing information.
\end{enumerate} \end{enumerate}
\end{enumerate} \end{enumerate}
Here is an example for a hypothetical designer called Sam Smith hosting a Here is an example for a hypothetical designer called Sam Smith hosting a design
design
called Gizmo at https://example\_url: called Gizmo at https://example\_url:
\begin{mdframed} \begin{mdframed}
...@@ -197,31 +196,29 @@ called Gizmo at https://example\_url: ...@@ -197,31 +196,29 @@ called Gizmo at https://example\_url:
Source location: https://example\_url Source location: https://example\_url
\\ \\
As per CERN-OHL-S v2 section 4, should You produce hardware based on this As per CERN-OHL-S v2 section 4, should You produce hardware based on this
source, You must where practicable maintain the Source Location visible on the external case of source, You must where practicable maintain the Source Location visible on the
the Gizmo or other products you make using this source. external case of the Gizmo or other products you make using this source.
\end{mdframed} \end{mdframed}
The first three lines in the example above, containing copyright and licence The first three lines in the example above, containing copyright and licence
type, can be substituted by a valid SPDX header, like this: type, can be substituted by a valid SPDX header, like this:
\noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless \noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless
sam@example.com\textgreater\\ sam@example.com\textgreater\\ SPDX-License-Identifier: CERN-OHL-S-2.0
SPDX-License-Identifier: CERN-OHL-S-2.0
or, in case the `or later' version is preferred: or, in case the `or later' version is preferred:
\noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless \noindent SPDX-FileCopyrightText: 2020 Sam Smith \textless
sam@example.com\textgreater\\ sam@example.com\textgreater\\ SPDX-License-Identifier: CERN-OHL-S-2.0+
SPDX-License-Identifier: CERN-OHL-S-2.0+
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.7}] \begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.8}]
\item \textbf{Suggestion: } use standard SPDX headers whenever possible so that \item \textbf{Suggestion: } use standard SPDX headers whenever possible so that
your choice of licence is easy to understand by humans and computers alike. your choice of licence is easy to understand by humans and computers alike.
\end{enumerate} \end{enumerate}
Why would you license your design under `CERN-OHL-S v2 or later'? Imagine we 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, discovered a shortcoming of the licence which made us write a new version, let's
let's say version 3.0, to fix it. Let us further imagine that we decided to make v3 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 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 licensed under v3. If, on the other hand, you license your design under `v2 or
...@@ -229,11 +226,10 @@ later', you give future licensees the option of interpreting the design as ...@@ -229,11 +226,10 @@ later', you give future licensees the option of interpreting the design as
licensed under the hypothetical v3, and there would be no compatibility issues. 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, This is quite an important decision to take when you use a reciprocal licence,
so we thought we'd mention it in this guide. You have to make your own judgment 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 as to whether you believe that CERN can be trusted to ensure that future
future versions of the CERN-OHL will be similar in spirit and effect to versions of the CERN-OHL will be similar in spirit and effect to this version.
this version.
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.8}] \begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.9}]
\item \textbf{Suggestion: } give some thought to the `or later' option before \item \textbf{Suggestion: } give some thought to the `or later' option before
publishing your design under CERN-OHL-S v2. publishing your design under CERN-OHL-S v2.
\end{enumerate} \end{enumerate}
...@@ -242,46 +238,44 @@ We are going to assume that you, as a licensor, want people who receive a produc ...@@ -242,46 +238,44 @@ We are going to assume that you, as a licensor, want people who receive a produc
based on your design to know that it is Open Hardware and where they can find based on your design to know that it is Open Hardware and where they can find
the design files for that product, hence: the design files for that product, hence:
\begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.9}] \begin{enumerate}[label=\textbf{\ref*{subsec:your-sources}.10}]
\item \textbf{Rule: } include in a part of the Source corresponding to a \item \textbf{Rule: } include in a part of the Source corresponding to a visible
visible
part of the Product (e.g. silkscreen or top copper for a printed circuit part of the Product (e.g. silkscreen or top copper for a printed circuit
board): board):
\begin{enumerate} \begin{enumerate}
\item the licence notice: “Licensed under CERN-OHL-S v2”; \item the licence notice: “Licensed under CERN-OHL-S v2”;
\item the Source Location. \item the Source Location.
\end{enumerate} \end{enumerate}
\item \textbf{Suggestion: }You can optionally include a copyright notice to be \item \textbf{Suggestion: } You can optionally include a copyright notice to
printed on the Product (remember you must keep intact any Notices in the source, be printed on the Product (remember you must keep intact any Notices in the
though), but do \emph{not} include the CERN logo. You may include a copyright source, though), but do \emph{not} include the CERN logo. You may include a
notice. If you do, and your design includes part of other designs, you should at copyright notice. If you do, and your design includes part of other designs,
least acknowledge the work is not all your own by using Copyright \textcopyright you should at least acknowledge the work is not all your own by using e.g.
2020 Sam Smith and others. Copyright \textcopyright 2020 Sam Smith and others.
\end{enumerate} \end{enumerate}
\subsection{A Note on Components} \subsection{A Note on Components}
\label{subsec:note-components} \label{subsec:note-components}
If your design is modular, consider licensing each of the components you have designed If your design is modular, consider licensing each of the components you have
separately, and then having an overarching design, also licensed under an appropriate designed separately, and then having an overarching design, also licensed under
variant of CERN-OHL which contains each of the sub-components as an Available Component. an appropriate variant of CERN-OHL which contains each of the sub-components as
This will make life easier for licensees who only want to make use of one an Available Component. This will make life easier for licensees who only want
component of your design. to make use of one component of your design.
\section{How to deal with hardware designs licensed under CERN-OHL-S v2} \section{How to deal with hardware designs licensed under CERN-OHL-S v2}
\label{sec:receive-designs} \label{sec:receive-designs}
Generally speaking, you must comply with the requirements applying to a Generally speaking, you must comply with the requirements applying to a
particular design detailed in the accompanying licence. If you particular design detailed in the accompanying licence. If you receive hardware
receive hardware designs licensed under the CERN-OHL-S v2, the requirements are designs licensed under the CERN-OHL-S v2, the requirements are to:
to:
\begin{enumerate}[label=\textbf{\ref*{sec:receive-designs}.1}] \begin{enumerate}[label=\textbf{\ref*{sec:receive-designs}.1}]
\item \textbf{Rule: } keep intact all the copyright, acknowledgment and \item \textbf{Rule: } keep intact all the copyright, acknowledgment and
trademark notices and trademark notices and Source Location notices that are on the hardware design
Source Location notices that are on the hardware design sources. sources.
\end{enumerate}
\begin{enumerate}[label=\textbf{\ref*{sec:receive-designs}.2}] \begin{enumerate}[label=\textbf{\ref*{sec:receive-designs}.2}]
\item \textbf{Rule: } keep intact the references to the CERN-OHL-S v2. \item \textbf{Rule: } keep intact the references to the CERN-OHL-S v2.
\end{enumerate} \end{enumerate}
...@@ -321,7 +315,7 @@ products, you must: ...@@ -321,7 +315,7 @@ products, you must:
\begin{enumerate}[label=\textbf{\ref*{subsec:modify-designs}.4}] \begin{enumerate}[label=\textbf{\ref*{subsec:modify-designs}.4}]
\item \textbf{Rule: } license the modifications under the `CERN-OHL-S v2' (or \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 `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. components of the design allow you to license with the `or later' option).
\end{enumerate} \end{enumerate}
\subsection{Hardware production and distribution} \subsection{Hardware production and distribution}
...@@ -349,8 +343,10 @@ Location on the hardware: ...@@ -349,8 +343,10 @@ Location on the hardware:
\section{Asking for help} \section{Asking for help}
If there is something unclear in this guide, or you have any question on how to If there is something unclear in this guide, or you have any question on how to
apply the licence, the best place to ask is the CERN OHL forum at\\ apply the licence, the best place to ask is the CERN OHL forum
\href{https://forums.ohwr.org/c/cernohl}{https://forums.ohwr.org/c/cernohl}. You may also find useful information in the FAQs at \href{https://www.ohwr.org/project/cernohl/wikis/faq}{https://www.ohwr.org/project/cernohl/wikis/faq}. at\\ \href{https://forums.ohwr.org/c/cernohl}{https://forums.ohwr.org/c/cernohl}.
\end {enumerate} You may also find useful information in the FAQs at
\href{https://www.ohwr.org/project/cernohl/wikis/faq}
{https://www.ohwr.org/project/cernohl/wikis/faq}.
\end{document} \end{document}
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