Sun Apr 21 11:33:57 2013 UTC ()
Clarified "Handling licenses", so gdt@ doesn't have to make the same post
on tech-pkg@ every month when people ask about adding licenses.


(rodent)
diff -r1.117 -r1.118 pkgsrc/doc/guide/files/fixes.xml

cvs diff -r1.117 -r1.118 pkgsrc/doc/guide/files/fixes.xml (expand / switch to unified diff)

--- pkgsrc/doc/guide/files/fixes.xml 2013/04/15 13:05:14 1.117
+++ pkgsrc/doc/guide/files/fixes.xml 2013/04/21 11:33:55 1.118
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1<!-- $NetBSD: fixes.xml,v 1.117 2013/04/15 13:05:14 wiz Exp $ --> 1<!-- $NetBSD: fixes.xml,v 1.118 2013/04/21 11:33:55 rodent Exp $ -->
2 2
3<chapter id="fixes"> <?dbhtml filename="fixes.html"?> 3<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
4<title>Making your package work</title> 4<title>Making your package work</title>
5 5
6<sect1 id="general-operation"> 6<sect1 id="general-operation">
7 <title>General operation</title> 7 <title>General operation</title>
8 8
9 <sect2 id="portability-of-packages"> 9 <sect2 id="portability-of-packages">
10 <title>Portability of packages</title> 10 <title>Portability of packages</title>
11 11
12 <para>One appealing feature of pkgsrc is that it runs on many 12 <para>One appealing feature of pkgsrc is that it runs on many
13 different platforms. As a result, it is important to ensure, 13 different platforms. As a result, it is important to ensure,
14 where possible, that packages in pkgsrc are portable. This 14 where possible, that packages in pkgsrc are portable. This
@@ -118,54 +118,60 @@ INTERACTIVE_STAGE= configure instal @@ -118,54 +118,60 @@ INTERACTIVE_STAGE= configure instal
118 pkgsrc system is merely providing a mechanism to avoid 118 pkgsrc system is merely providing a mechanism to avoid
119 accidentally building a package with a non-free license; 119 accidentally building a package with a non-free license;
120 judgement and responsibility remain with the user. (Installation 120 judgement and responsibility remain with the user. (Installation
121 of binary packages are not currently subject to this mechanism; 121 of binary packages are not currently subject to this mechanism;
122 this is a bug.)</para> 122 this is a bug.)</para>
123 123
124 <para>One might want to only install packages with a BSD license, 124 <para>One might want to only install packages with a BSD license,
125 or the GPL, and not the other. The free licenses are added to the  125 or the GPL, and not the other. The free licenses are added to the
126 default <varname>ACCEPTABLE_LICENSES</varname> variable. The 126 default <varname>ACCEPTABLE_LICENSES</varname> variable. The
127 user can override the default by setting the 127 user can override the default by setting the
128 <varname>ACCEPTABLE_LICENSES</varname> variable with "=" instead 128 <varname>ACCEPTABLE_LICENSES</varname> variable with "=" instead
129 of "+=". The licenses accepted by default are: 129 of "+=". The licenses accepted by default are:
130 <programlisting> 130 <programlisting>
131 public-domain unlicense 131 apache-1.1 apache-2.0
132 gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3 132 arphic-public
133 gnu-gpl-v1 133 artistic artistic-2.0
134 gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1 134 boost-license
135 gnu-gpl-v3 gnu-lgpl-v3 135 cc-by-sa-v3.0
136 original-bsd modified-bsd 2-clause-bsd 136 cddl-1.0
137 x11 mit miros 137 cpl-1.0
138 apache-1.1 apache-2.0 138 epl-v1.0
139 artistic artistic-2.0 139 gnu-fdl-v1.1 gnu-fdl-v1.2 gnu-fdl-v1.3
140 cddl-1.0 140 gnu-gpl-v1
141 cpl-1.0 141 gnu-gpl-v2 gnu-lgpl-v2 gnu-lgpl-v2.1
142 open-font-license 142 gnu-gpl-v3 gnu-lgpl-v3
143 mpl-1.0 mpl-1.1 mpl-2.0 143 ibm-public-license-1.0
144 php png-license 144 ipafont
145 postgresql-license 145 isc
146 zlib 146 lppl-1.3c
147 zpl 147 lucent
148 python-software-foundation 148 miros
149 ipafont 149 mit
150 ibm-public-license-1.0 150 mpl-1.0 mpl-1.1 mpl-2.0
151 isc 151 mplusfont
152 boost-license 152 ofl-v1.0 ofl-v1.1
153 mplusfont 153 original-bsd modified-bsd 2-clause-bsd
154 cc-by-sa-v3.0 154 php
155 lppl-1.3c 155 png-license
156 lucent 156 postgresql-license
157 epl-v1.0 157 public-domain
158 info-zip 158 python-software-foundation
 159 qpl-v1.0
 160 sleepycat-public
 161 unlicense
 162 x11
 163 zlib
 164 zpl
159 </programlisting> 165 </programlisting>
160 </para> 166 </para>
161 167
162 <para>The license tag mechanism is intended to address 168 <para>The license tag mechanism is intended to address
163 copyright-related issues surrounding building, installing and 169 copyright-related issues surrounding building, installing and
164 using a package, and not to address redistribution issues (see 170 using a package, and not to address redistribution issues (see
165 <varname>RESTRICTED</varname> and 171 <varname>RESTRICTED</varname> and
166 <varname>NO_SRC_ON_FTP</varname>, etc.).  172 <varname>NO_SRC_ON_FTP</varname>, etc.).
167 Packages with redistribution restrictions should set these 173 Packages with redistribution restrictions should set these
168 tags.</para> 174 tags.</para>
169 175
170 <para>Denoting that a package may be copied according to a 176 <para>Denoting that a package may be copied according to a
171 particular license is done by placing the license in 177 particular license is done by placing the license in
@@ -191,31 +197,37 @@ LICENSE= xv-license @@ -191,31 +197,37 @@ LICENSE= xv-license
191*** Error code 1 197*** Error code 1
192 </programlisting> 198 </programlisting>
193 199
194 <para>The license can be viewed with <command>make 200 <para>The license can be viewed with <command>make
195 show-license</command>, and if the user so chooses, the line 201 show-license</command>, and if the user so chooses, the line
196 printed above can be added to &mk.conf; to 202 printed above can be added to &mk.conf; to
197 convey to pkgsrc that it should not in the future fail because of 203 convey to pkgsrc that it should not in the future fail because of
198 that license:</para> 204 that license:</para>
199 205
200 <programlisting> 206 <programlisting>
201ACCEPTABLE_LICENSES+=xv-license 207ACCEPTABLE_LICENSES+=xv-license
202 </programlisting> 208 </programlisting>
203 209
204 <para>When adding a package with a new license, the license text 210 <para>When adding a package with a new license, the following steps
205 should be added to <filename>pkgsrc/licenses</filename> for 211 are required:</para>
206 displaying. A list of known licenses can be seen in this 212 <orderedlist>
207 directory.</para> 213 <listitem><para>Check if the file can avoid the -license filename tag as described above by referencing <ulink url="http://www.gnu.org/licenses/license-list.html">Various Licenses and Comments about Them</ulink> and <ulink url="http://opensource.org/licenses/alphabetical">Licenses by Name | Open Source Initiative</ulink>. If this is the case, additionally add the license filename to:</para>
208 214 <itemizedlist>
 215 <listitem><para>DEFAULT_ACCEPTABLE_LICENSES in <filename>pkgsrc/mk/license.mk</filename></para></listitem>
 216 <listitem><para>default_acceptable_licenses in <filename>pkgsrc/pkgtools/pkg_install/files/lib/license.c</filename></para></listitem>
 217 </itemizedlist>
 218 <para>with the proper syntax as demonstrated in those files, respectively.</para></listitem>
 219 <listitem><para>The license text should be added to <filename>pkgsrc/licenses</filename> for displaying. A list of known licenses can be seen in this directory.</para></listitem>
 220 </orderedlist>
209 <para>When the license changes (in a way other than formatting), 221 <para>When the license changes (in a way other than formatting),
210 please make sure that the new license has a different name (e.g., 222 please make sure that the new license has a different name (e.g.,
211 append the version number if it exists, or the date). Just 223 append the version number if it exists, or the date). Just
212 because a user told pkgsrc to build programs under a previous 224 because a user told pkgsrc to build programs under a previous
213 version of a license does not mean that pkgsrc should build 225 version of a license does not mean that pkgsrc should build
214 programs under the new licenses. The higher-level point is that 226 programs under the new licenses. The higher-level point is that
215 pkgsrc does not evaluate licenses for reasonableness; the only 227 pkgsrc does not evaluate licenses for reasonableness; the only
216 test is a mechanistic test of whether a particular text has been 228 test is a mechanistic test of whether a particular text has been
217 approved by either of two bodies.</para> 229 approved by either of two bodies.</para>
218 230
219 <para>The use of <varname>LICENSE=shareware</varname>, 231 <para>The use of <varname>LICENSE=shareware</varname>,
220 <varname>LICENSE=no-commercial-use</varname>, and similar language 232 <varname>LICENSE=no-commercial-use</varname>, and similar language
221 is deprecated because it does not crisply refer to a particular 233 is deprecated because it does not crisply refer to a particular