aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2023-10-21 14:03:53 +0200
committerUlrich Müller <ulm@gentoo.org>2023-10-22 13:35:52 +0200
commitbbba1f2dc618c7d937a62474c755e1cd834d4808 (patch)
treebe21a20f8bcf7d14bbb99235beab9788bd240ec7 /general-concepts/copyright-policy
parentdevbook.xsl: Support type and start attributes for ordered lists (diff)
downloaddevmanual-bbba1f2dc618c7d937a62474c755e1cd834d4808.tar.gz
devmanual-bbba1f2dc618c7d937a62474c755e1cd834d4808.tar.bz2
devmanual-bbba1f2dc618c7d937a62474c755e1cd834d4808.zip
general-concepts/copyright-policy: Reformat the General guideline section
Use nested ordered lists instead of one description list. Hopefully, this will make the logic better understandable. Add a diagram with a flowchart. Also commit the SVG output, so we don't need Graphviz as build dependency for a single file that isn't expected to change very often. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'general-concepts/copyright-policy')
-rw-r--r--general-concepts/copyright-policy/diagram.dot43
-rw-r--r--general-concepts/copyright-policy/diagram.svg107
-rw-r--r--general-concepts/copyright-policy/text.xml113
3 files changed, 221 insertions, 42 deletions
diff --git a/general-concepts/copyright-policy/diagram.dot b/general-concepts/copyright-policy/diagram.dot
new file mode 100644
index 0000000..5b29ab7
--- /dev/null
+++ b/general-concepts/copyright-policy/diagram.dot
@@ -0,0 +1,43 @@
+// Copyright 2023 Gentoo Authors
+// Distributed under the terms of the CC-BY-SA-4.0 license
+
+digraph g {
+ size = "8!,2";
+ node [ penwidth = 2; fontname = "Open Sans" ];
+ edge [ penwidth = 2; fontname = "Open Sans" ];
+
+ start [ width = 1.4; height = 0.9; label = "Start" ];
+
+ signoff [ shape = diamond; width = 2.4; height = 1.3;
+ style = filled; fillcolor = "cyan";
+ label = "Signed-off-by?" ];
+ size [ shape = diamond; width = 2.4; height = 1.3;
+ style = filled; fillcolor = "cyan";
+ label = "Tiny\ncontribution?" ];
+ license [ shape = diamond; width = 2.4; height = 1.3;
+ style = filled; fillcolor = "cyan";
+ label = "Contains\nlicense notice?" ];
+
+ accept4 [ shape = rect; width = 1.6; height = 0.8;
+ style = filled; fillcolor = "lime";
+ label = "Accept\n(GCO point 4)" ];
+ accept2 [ shape = rect; width = 1.6; height = 0.8;
+ style = filled; fillcolor = "lime";
+ label = "Accept\n(GCO point 2)" ];
+ reject [ shape = rect; width = 1.6; height = 0.7;
+ style = filled; fillcolor = "red";
+ label = "Do not accept" ];
+
+ start -> signoff;
+
+ signoff:s -> accept4 [ label = " Yes " ];
+ signoff -> size [ label = " No " ];
+
+ size:s -> accept2 [ label = " Yes " ];
+ size -> license [ label = " No " ];
+
+ license:s -> accept2 [ label = " Yes " ];
+ license -> reject [ label = " No " ];
+
+ { rank = same; start; signoff; size; license; reject; }
+}
diff --git a/general-concepts/copyright-policy/diagram.svg b/general-concepts/copyright-policy/diagram.svg
new file mode 100644
index 0000000..3affb30
--- /dev/null
+++ b/general-concepts/copyright-policy/diagram.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 9.0.0 (20230911.1827)
+ -->
+<!-- Title: g Pages: 1 -->
+<svg width="576pt" height="132pt"
+ viewBox="0.00 0.00 576.00 131.70" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(0.613419 0.613419) rotate(0) translate(4 210.7)">
+<title>g</title>
+<polygon fill="white" stroke="none" points="-4,4 -4,-210.7 935,-210.7 935,4 -4,4"/>
+<!-- start -->
+<g id="node1" class="node">
+<title>start</title>
+<ellipse fill="none" stroke="black" stroke-width="2" cx="50.4" cy="-159.9" rx="50.4" ry="32.4"/>
+<text text-anchor="middle" x="50.4" y="-156.35" font-family="Open Sans" font-size="14.00">Start</text>
+</g>
+<!-- signoff -->
+<g id="node2" class="node">
+<title>signoff</title>
+<polygon fill="cyan" stroke="black" stroke-width="2" points="222.4,-206.7 136,-159.9 222.4,-113.1 308.8,-159.9 222.4,-206.7"/>
+<text text-anchor="middle" x="222.4" y="-156.35" font-family="Open Sans" font-size="14.00">Signed&#45;off&#45;by?</text>
+</g>
+<!-- start&#45;&gt;signoff -->
+<g id="edge1" class="edge">
+<title>start&#45;&gt;signoff</title>
+<path fill="none" stroke="black" stroke-width="2" d="M101.8,-159.9C108.32,-159.9 114.83,-159.9 121.35,-159.9"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="121.28,-163.4 131.28,-159.9 121.28,-156.4 121.28,-163.4"/>
+</g>
+<!-- size -->
+<g id="node3" class="node">
+<title>size</title>
+<polygon fill="cyan" stroke="black" stroke-width="2" points="446.4,-206.7 360,-159.9 446.4,-113.1 532.8,-159.9 446.4,-206.7"/>
+<text text-anchor="middle" x="446.4" y="-166.1" font-family="Open Sans" font-size="14.00">Tiny</text>
+<text text-anchor="middle" x="446.4" y="-146.6" font-family="Open Sans" font-size="14.00">contribution?</text>
+</g>
+<!-- signoff&#45;&gt;size -->
+<g id="edge3" class="edge">
+<title>signoff&#45;&gt;size</title>
+<path fill="none" stroke="black" stroke-width="2" d="M310.61,-159.9C321.91,-159.9 333.54,-159.9 345.03,-159.9"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="344.88,-163.4 354.88,-159.9 344.88,-156.4 344.88,-163.4"/>
+<text text-anchor="middle" x="334.4" y="-169.1" font-family="Open Sans" font-size="14.00"> &#160;No &#160;</text>
+</g>
+<!-- accept4 -->
+<g id="node5" class="node">
+<title>accept4</title>
+<polygon fill="lime" stroke="black" stroke-width="2" points="280,-57.6 164.8,-57.6 164.8,0 280,0 280,-57.6"/>
+<text text-anchor="middle" x="222.4" y="-35" font-family="Open Sans" font-size="14.00">Accept</text>
+<text text-anchor="middle" x="222.4" y="-15.5" font-family="Open Sans" font-size="14.00">(GCO point 4)</text>
+</g>
+<!-- signoff&#45;&gt;accept4 -->
+<g id="edge2" class="edge">
+<title>signoff:s&#45;&gt;accept4</title>
+<path fill="none" stroke="black" stroke-width="2" d="M222.4,-113.1C222.4,-99.43 222.4,-84.51 222.4,-71.11"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="225.9,-71.36 222.4,-61.36 218.9,-71.36 225.9,-71.36"/>
+<text text-anchor="middle" x="240.77" y="-81.8" font-family="Open Sans" font-size="14.00"> &#160;Yes &#160;</text>
+</g>
+<!-- license -->
+<g id="node4" class="node">
+<title>license</title>
+<polygon fill="cyan" stroke="black" stroke-width="2" points="674.4,-206.7 584.66,-159.9 674.4,-113.1 764.14,-159.9 674.4,-206.7"/>
+<text text-anchor="middle" x="674.4" y="-166.1" font-family="Open Sans" font-size="14.00">Contains</text>
+<text text-anchor="middle" x="674.4" y="-146.6" font-family="Open Sans" font-size="14.00">license notice?</text>
+</g>
+<!-- size&#45;&gt;license -->
+<g id="edge5" class="edge">
+<title>size&#45;&gt;license</title>
+<path fill="none" stroke="black" stroke-width="2" d="M534.88,-159.9C546.25,-159.9 557.97,-159.9 569.57,-159.9"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="569.56,-163.4 579.56,-159.9 569.56,-156.4 569.56,-163.4"/>
+<text text-anchor="middle" x="558.73" y="-169.1" font-family="Open Sans" font-size="14.00"> &#160;No &#160;</text>
+</g>
+<!-- accept2 -->
+<g id="node6" class="node">
+<title>accept2</title>
+<polygon fill="lime" stroke="black" stroke-width="2" points="618,-57.6 502.8,-57.6 502.8,0 618,0 618,-57.6"/>
+<text text-anchor="middle" x="560.4" y="-35" font-family="Open Sans" font-size="14.00">Accept</text>
+<text text-anchor="middle" x="560.4" y="-15.5" font-family="Open Sans" font-size="14.00">(GCO point 2)</text>
+</g>
+<!-- size&#45;&gt;accept2 -->
+<g id="edge4" class="edge">
+<title>size:s&#45;&gt;accept2</title>
+<path fill="none" stroke="black" stroke-width="2" d="M446.4,-113.1C446.4,-86.44 466.98,-67.39 490.65,-54.31"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="492.02,-57.54 499.36,-49.9 488.86,-51.29 492.02,-57.54"/>
+<text text-anchor="middle" x="479.77" y="-81.8" font-family="Open Sans" font-size="14.00"> &#160;Yes &#160;</text>
+</g>
+<!-- license&#45;&gt;accept2 -->
+<g id="edge6" class="edge">
+<title>license:s&#45;&gt;accept2</title>
+<path fill="none" stroke="black" stroke-width="2" d="M674.4,-113.1C674.4,-86.44 653.82,-67.39 630.15,-54.31"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="631.94,-51.29 621.44,-49.9 628.78,-57.54 631.94,-51.29"/>
+<text text-anchor="middle" x="687.77" y="-81.8" font-family="Open Sans" font-size="14.00"> &#160;Yes &#160;</text>
+</g>
+<!-- reject -->
+<g id="node7" class="node">
+<title>reject</title>
+<polygon fill="red" stroke="black" stroke-width="2" points="931,-185.1 815.8,-185.1 815.8,-134.7 931,-134.7 931,-185.1"/>
+<text text-anchor="middle" x="873.4" y="-156.35" font-family="Open Sans" font-size="14.00">Do not accept</text>
+</g>
+<!-- license&#45;&gt;reject -->
+<g id="edge7" class="edge">
+<title>license&#45;&gt;reject</title>
+<path fill="none" stroke="black" stroke-width="2" d="M766.04,-159.9C778.12,-159.9 790.35,-159.9 802.03,-159.9"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="801.9,-163.4 811.9,-159.9 801.9,-156.4 801.9,-163.4"/>
+<text text-anchor="middle" x="789.97" y="-169.1" font-family="Open Sans" font-size="14.00"> &#160;No &#160;</text>
+</g>
+</g>
+</svg>
diff --git a/general-concepts/copyright-policy/text.xml b/general-concepts/copyright-policy/text.xml
index 7b877f8..c8d6865 100644
--- a/general-concepts/copyright-policy/text.xml
+++ b/general-concepts/copyright-policy/text.xml
@@ -62,54 +62,83 @@ author is, or is not required. The list below serves as a general guideline.
</body>
<subsection>
-<title>Examples for general guideline</title>
+<title>General guideline</title>
<body>
-<dl>
- <dt>A contribution with a Signed-off-by line by its author</dt>
- <dd>
- Can be accepted, because the author confirmed that it is under a free
- software license. The committer adds another S-o-b line and certifies the
- commit under point 4 of the
+<figure link="diagram.png" short="When can a contribution be accepted?"
+ caption="Flowchart showing the steps for accepting a contribution" />
+
+<p>
+When can a contribution be accepted?
+</p>
+
+<ol type="1">
+ <li>
+ <p>
+ When signed off by its author (i.e. with a <c>Signed-off-by</c> line):
+ </p>
+ <p>
+ Can be accepted, because the author has confirmed that it is under a free
+ software license. The committer adds another <c>Signed-off-by</c> line and
+ certifies the commit under point 4 of the
<uri link="https://www.gentoo.org/glep/glep-0076.html#certificate-of-origin">
Certificate of Origin</uri>.
+ </p>
<note>
- Use common sense here, especially if you don't know the contributor. If the
- contribution was taken from somewhere else and the contributor doesn't have
- the right to distribute it under a free software license, you as the
- committer might get into trouble. So in this situation, do your best to
- check repositories for matching code, and whether they hold any special
- copyright claims.
+ Use common sense here, especially if you don't know the contributor.
+ If the contribution was taken from somewhere else and the contributor
+ doesn't have the right to distribute it under a free software license,
+ you as the committer might get into trouble. So in this situation, do your
+ best to check repositories for matching code, and whether they hold any
+ special copyright claims.
</note>
- </dd>
- <dt>
- A contribution without a S-o-b line and of significant size, but with an
- independent indication of its license (e.g. copyright and license notices
- in the file's header)
- </dt>
- <dd>
- Can be accepted. The committer adds a S-o-b line and certifies the commit
- under point 2 of the Certificate of Origin.
- </dd>
- <dt>
- A contribution without a S-o-b line but not
- <uri link="https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html">
- "legally significant"</uri> (by the FSF's 15-lines rule of thumb)
- </dt>
- <dd>
- Can be accepted. The committer adds a S-o-b line and certifies the commit
- under point 2 of the Certificate of Origin.
- </dd>
- <dt>
- A contribution without a S-o-b line and of significant size, without any
- other indication of its license
- </dt>
- <dd>
- Can <e>not</e> be accepted. There's no indication that the author has
- released their work under a free license, therefore it must not be
- distributed by Gentoo.
- </dd>
-</dl>
+ </li>
+ <li>
+ <p>
+ When <e>not</e> signed off:
+ </p>
+ <ol type="a">
+ <li>
+ <p>
+ If the contribution is not of
+ <uri link="https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html">
+ "legally significant"</uri> size (by the FSF's 15-lines rule of thumb):
+ </p>
+ <p>
+ Can be accepted. The committer adds a <c>Signed-off-by</c> line and
+ certifies the commit under point 2 of the Certificate of Origin.
+ </p>
+ </li>
+ <li>
+ <p>
+ If the contribution is of significant size, and
+ </p>
+ <ol type="i">
+ <li>
+ <p>
+ with an independent indication of its license (e.g. copyright and
+ license notices in the file's header):
+ </p>
+ <p>
+ Can be accepted. The committer adds a <c>Signed-off-by</c> line and
+ certifies the commit under point 2 of the Certificate of Origin.
+ </p>
+ </li>
+ <li>
+ <p>
+ <e>without</e> any other indication of its license:
+ </p>
+ <p>
+ Can <e>not</e> be accepted. There's no indication that the author
+ has released their work under a free license, therefore it must not
+ be distributed by Gentoo.
+ </p>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+</ol>
</body>
</subsection>