pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/doc/guide/files Clean up/rewrite LICENSE. Avoid "acce...
details: https://anonhg.NetBSD.org/pkgsrc/rev/01aadc22a129
branches: trunk
changeset: 528651:01aadc22a129
user: gdt <gdt%pkgsrc.org@localhost>
date: Sat May 12 01:01:39 2007 +0000
description:
Clean up/rewrite LICENSE. Avoid "accepted the license" language, and
instead talk in terms of the user giving instructions to pkgsrc about
what to do.
Major revamp of RESTRICTIONS.
(wiz: Your mail motivated me to work on this; I am not up to speed on
the docbook tools; please check/regen.)
diffstat:
doc/guide/files/fixes.xml | 158 ++++++++++++++++++++++++++++-----------------
1 files changed, 99 insertions(+), 59 deletions(-)
diffs (235 lines):
diff -r c51632194d3c -r 01aadc22a129 doc/guide/files/fixes.xml
--- a/doc/guide/files/fixes.xml Sat May 12 00:53:50 2007 +0000
+++ b/doc/guide/files/fixes.xml Sat May 12 01:01:39 2007 +0000
@@ -1,4 +1,4 @@
-<!-- $NetBSD: fixes.xml,v 1.82 2007/05/11 22:47:13 wiz Exp $ -->
+<!-- $NetBSD: fixes.xml,v 1.83 2007/05/12 01:01:39 gdt Exp $ -->
<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
<title>Making your package work</title>
@@ -97,20 +97,37 @@
<sect2 id="handling-licenses">
<title>Handling licenses</title>
- <para>A package may be covered by a license which the user has
- or has not agreed to accept. For these cases, pkgsrc contains
- a mechanism to note that a package is covered by a particular
- license, and the package cannot be built unless the user has
- accepted the license. (Installation of binary packages are
- not currently subject to this mechanism.) Packages with
- licenses that are either Open Source according to the Open
- Source Initiative or Free according to the Free Software
- Foundation will not be marked with a license tag. Packages
- with licenses that have not been determined to meet either
- definition will be marked with a license tag referring to the
- license. This will prevent building unless pkgsrc is informed
- that the license is acceptable, and enables displaying the
- license.</para>
+ <para>Authors of software can choose the licence under which
+ software can be copied. This is due to copyright law, and reasons
+ for license choices are outside the scope of pkgsrc. The pkgsrc
+ system recognizes that there are a number of licenses which some
+ users may find objectionable or difficult or impossible to comply
+ with. The Free Software Foundation has declared some licenses
+ "Free", and the Open Source Initiative has a definition of "Open
+ Source". The pkgsrc system, as a policy choice, does not label
+ packages which have licenses that are Free or Open Source.
+ However, packages without a license meeting either of those tests
+ are labeled with a license tag denoting the license. Note that a
+ package with no license to copy trivially does not meet either the
+ Free or Open Source test.</para>
+
+ <para>For packages which are not Free or Open Source, pkgsrc will
+ not build the package unless the user has indicated to pkgsrc that
+ packages with that particular license may be built. Note that
+ this documentation avoids the term "accepted the license". The
+ pkgsrc system is merely providing a mechanism to avoid
+ accidentially building a package with a non-free license;
+ judgement and responsibility remain with the user. (Installation
+ of binary packages are not currently subject to this mechanism;
+ this is a bug.)</para>
+
+ <para>One might want to only install packages with a BSD license,
+ or the GPL, and not the other. The pkgsrc license tag mechanism
+ does not provide a way to do this. It might be possible to put in
+ tags for free licenses, and have a default
+ <varname>ACCEPTABLE_LICENSES</varname> variable value, but this is
+ widely viewed as having a very poor ratio of benefit to
+ work.</para>
<para>The license tag mechanism is intended to address
copyright-related issues surrounding building, installing and
@@ -119,10 +136,11 @@
<varname>NO_SRC_ON_FTP</varname>, etc.). However, the above
definition of licenses for which tags are not needed implies
that packages with redistribution restrictions should have
- tags.</para>
+ tags, because Free or Open Source programs do not have
+ redistribution restrictions.</para>
- <para>Denoting that a package is covered by a particular license
- is done by placing the license in
+ <para>Denoting that a package may be copied according to a
+ particular license is done by placing the license in
<filename>pkgsrc/licenses</filename> and setting the
<varname>LICENSE</varname> variable to a string identifying the
license, e.g. in <filename
@@ -133,8 +151,8 @@
</programlisting>
<para>When trying to build, the user will get a notice that the
- package is covered by a license which has not been
- accepted:</para>
+ package is covered by a license which has not been placed in the
+ <varname>ACCEPTABLE_LICENSES</varname> variable:</para>
<programlisting>
&cprompt; <userinput>make</userinput>
@@ -146,42 +164,61 @@
</programlisting>
<para>The license can be viewed with <command>make
- show-license</command>, and if it is considered appropriate,
- the line printed above can be added to
- <filename>/etc/mk.conf</filename> to indicate acceptance of
- the particular license:</para>
+ show-license</command>, and if the user so chooses, the line
+ printed above can be added to <filename>/etc/mk.conf</filename> to
+ convey to pkgsrc that it should not in the future fail because of
+ that license:</para>
<programlisting>
ACCEPTABLE_LICENSES+=xv-license
</programlisting>
- <para>When adding a package with a new license, the license
- text should be added to <filename>pkgsrc/licenses</filename>
- for displaying. A list of known licenses can be seen in this
+ <para>When adding a package with a new license, 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>
- <para>When the license changes, please make sure that the new
- license has a different name (e.g., append the version number if
- it exists, or the date). Just because a user agreed to a previous
- version of a license does not mean that the new version is
- automatically ok too.</para>
+ <para>When the license changes (in a way other than formatting),
+ please make sure that the new license has a different name (e.g.,
+ append the version number if it exists, or the date). Just
+ because a user told pkgsrc to build programs under a previous
+ version of a license does not mean that pkgsrc should build
+ programs under the new licenes. The higher-level point is that
+ pkgsrc does not evaluate licenses for reasonableness; the only
+ test is a mechanistic test of whether a particular text has been
+ approved by either of two bodies.</para>
<para>The use of <varname>LICENSE=shareware</varname>,
- <varname>LICENSE=no-commercial-use</varname>, and similar
- language is deprecated because it does not crisply refer to
- a particular license text. Another problem with such usage
- is that it does not enable a user to denote acceptance of
- the license for a single package without accepting the same
- license text for another package. In particular, this can
- be inappropriate when e.g. one accepts a particular license to
- indicate to pkgsrc that a fee has been paid.</para>
- </sect2>
+ <varname>LICENSE=no-commercial-use</varname>, and similar language
+ is deprecated because it does not crisply refer to a particular
+ license text. Another problem with such usage is that it does not
+ enable a user to tell pkgsrc to proceed for a single package
+ without also telling pkgsrc to proceed for all packages with that
+ tag.</para> </sect2>
<sect2 id="restricted-packages">
<title>Restricted packages</title>
<para>Some licenses restrict how software may be re-distributed.
- In order to satisfy these restrictions, the package system
+ Because a license tag is required unless the package is Free or
+ Open Source, all packages with restrictions should have license
+ tags. By declaring the restrictions, package tools can
+ automatically refrain from e.g. placing binary packages on FTP
+ sites.</para>
+
+ <para>There are four restrictions that may be encoded, which are
+ the cross product of sources (distfiles) and binaries not being
+ placed on FTP sites and CD-ROMs. Because this is rarely the exact
+ language in any license, and because non-Free licenses tend to be
+ different from each other, pkgsrc adopts a definition of FTP and
+ CD-ROM. Pkgsrc uses "FTP" to mean that the source or binary file
+ should not be made available over the Internet at no charge.
+ Pkgsrc uses "CD-ROM" to mean that the source or binary may not be
+ made available on some kind of media, together with other source
+ and binary packages, and which is sold for a distribution charge.
+ </para>
+
+ <para>In order to encode these restrictions, the package system
defines five make variables that can be set to note these
restrictions:</para>
@@ -191,43 +228,46 @@
<para>This variable should be set whenever a restriction
exists (regardless of its kind). Set this variable to a
- string containing the reason for the restriction.</para>
+ string containing the reason for the restriction. It should
+ be understood that those wanting to understand the restriction
+ will have to read the license, and perhaps seek advice of
+ counsel.</para>
</listitem>
<listitem>
<para><varname>NO_BIN_ON_CDROM</varname></para>
- <para>Binaries may not be placed on CD-ROM. Set this
- variable to <varname>${RESTRICTED}</varname> whenever a
- binary package may not be included on a CD-ROM.</para>
+ <para>Binaries may not be placed on CD-ROM containing other
+ binary packages, for which a distribution charge may be made.
+ In this case, set this variable to
+ <varname>${RESTRICTED}</varname>.
</listitem>
<listitem>
<para><varname>NO_BIN_ON_FTP</varname></para>
- <para>Binaries may not be placed on an FTP server. Set
- this variable to <varname>${RESTRICTED}</varname>
- whenever a binary package may not be made available
- on the Internet.</para>
+ <para>Binaries may not made available on the Internet without
+ charge. In this case, set this variable to
+ <varname>${RESTRICTED}</varname>. If this variable is set,
+ binary packages will not be included on ftp.NetBSD.org.</para>
</listitem>
<listitem>
<para><varname>NO_SRC_ON_CDROM</varname></para>
- <para>Distfiles may not be placed on CD-ROM. Set this
- variable to <varname>${RESTRICTED}</varname> if
- re-distribution of the source code or other distfile(s) is
- not allowed on CD-ROMs.</para>
+ <para>Distfiles may not be placed on CD-ROM, together with
+ other distfiles, for which a fee may be charged. In this
+ case, set this variable to <varname>${RESTRICTED}</varname>.
+ </para>
</listitem>
<listitem>
<para><varname>NO_SRC_ON_FTP</varname></para>
- <para>Distfiles may not be placed on FTP. Set this variable
- to <varname>${RESTRICTED}</varname> if re-distribution of
- the source code or other distfile(s) via the Internet is not
- allowed. If this variable is not set, the distfile(s) will
- be mirrored on ftp.NetBSD.org.</para>
+ <para>Distfiles may not made available via FTP at no charge.
+ In this case, set this variable to
+ <varname>${RESTRICTED}</varname>. If this variable is set,
+ the distfile(s) will not be mirrored on ftp.NetBSD.org.</para>
</listitem>
</itemizedlist>
Home |
Main Index |
Thread Index |
Old Index