<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl"
        href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"?>

<!-- Process this file with an XSLT processor, e.g. xsltproc:    -->
<!-- `xsltproc \
      -''-nonet \
      1.0.xml'  -->

<!DOCTYPE article PUBLIC '-//OASIS//DTD DocBook XML V4.5//EN'
                         'http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd'>

<article class="specification" status="draft" lang="en" id="copyright-format">
  <articleinfo>
    <title>
      Machine-readable <filename>debian/copyright</filename> file.
    </title>
    <legalnotice>
      <para>
        Copying and distribution of this file, with or without modification, are
        permitted in any medium without royalty provided the copyright notice
        and this notice are preserved.
      </para>
    </legalnotice>
    <abstract>
      <para>
        Establish a standard, machine-readable format for
        <filename>debian/copyright</filename> files within packages and to
        facilitate automated checking and reporting of licenses for packages
        and sets of packages.
      </para>
    </abstract>
  </articleinfo>

  <section id="introduction">
    <title>Introduction</title>
    <para>
      This is a proposal to make <filename>debian/copyright</filename>
      machine-interpretable.  This file is one of the most important files in
      Debian packaging, yet there is currently no standard format defined for it
      and its contents vary tremendously across packages, making it difficult to
      automatically extract licensing information.
    </para>
    <para>
      This is not a proposal to change the policy in the short term.  In
      particular, nothing in this proposal supersedes or modifies any of the
      requirements specified in Debian Policy regarding the appropriate detail
      or granularity to use when documenting copyright and license status in
      <filename>debian/copyright</filename>.
    </para>
  </section>

  <section id="rationale">
    <title>Rationale</title>
    <para>
      The diversity of free software licenses means that Debian needs to care
      not only about the freeness of a given work, but also its license's
      compatibility with the other parts of Debian it uses.
    </para>
    <para>
      The arrival of the GPL version 3, its incompatibility with version 2, and
      our inability to spot the software where the incompatibility might be
      problematic is one prominent occurrence of this limitation.
    </para>
    <para>
      There are earlier precedents, also. One is the GPL/OpenSSL
      incompatibility.  Apart from grepping
      <filename>debian/copyright</filename>, which is prone to numerous false
      positives (packaging under the GPL but software under another license) or
      negatives (GPL software but with an <quote>OpenSSL special
      exception</quote> dual licensing form), there is no reliable way to know
      which software in Debian might be problematic.
    </para>
    <para>
      And there is more to come.  There are issues with shipping GPLv2-only
      software with a CDDL operating system such as Nexenta. The GPL version 3
      solves this issue, but not all GPL software can switch to it and we have
      no way to know how much of Debian should be stripped from such a system.
    </para>
    <para>
      A user might want to have a way to avoid software with certain licenses
      they have a problem with, even if the licenses are DFSG-free. For example,
      the Affero GPL.
    </para>
  </section>

  <section id="acknowledgements">
    <title>Acknowledgements</title>
    <para>
      Many people have worked on this specification over the years.  The
      following alphabetical list is incomplete, please suggest missing people:
      Russ Allbery,
      Ben Finney,
      Sam Hocevar,
      Steve Langasek,
      Charles Plessy,
      Noah Slater,
      Jonas Smedegaard,
      Lars Wirzenius.
    </para>
  </section>

  <section id="file-syntax">
    <title>File syntax</title>
    <para>
      The <filename>debian/copyright</filename> file must be
      machine-interpretable, yet human-readable, while communicating all
      mandated upstream information, copyright notices and licensing details.
    </para>
    <para>
      The syntax of the file is the same as for other Debian control files, as
      specified in the Debian Policy Manual.  See its <ulink
      url="http://www.debian.org/doc/debian-policy/ch-controlfields#s-controlsyntax">section
      5.1</ulink> for details. Extra fields can be added to any paragraph.  No
      prefixing is necessary or desired, but please avoid names similar to
      standard ones so that mistakes are easier to catch.  Future versions of
      the <filename>debian/copyright</filename> specification will attempt to
      avoid conflicting specifications for widely used extra fields.
    </para>
    <para>
      The file consists of two or more paragraphs.  At minimum, the file
      must include one <link linkend="header-paragraph">header
      paragraph</link> and one <link linkend="files-paragraph">Files
      paragraph</link>.
    </para>
    <para>
      The value of each field is of one of the four types listed below.  The
      definition for each field in this document indicates which type of
      value it takes.
    </para>

    <section id="single-line">
      <title>Single-line values</title>
      <para>
        A single-line value means that the whole value of a field must fit
        on a single line.  For example, the <varname>Format</varname> field
        has a single-line value specifying the version of the
        machine-readable format that is used.
      </para>
    </section>

    <section id="white-space-lists">
      <title>Whitespace-separated lists</title>
      <para>
        A whitespace-separated list means that the field value may be on one
        line or many, but values in the list are separated by one or more
        whitespace characters (including space, TAB, and newline).  For
        example, the <varname>Files</varname> field has a list of filename
        patterns.
      </para>
    </section>

    <section id="line-based-lists">
      <title>Line-based lists</title>
      <para>
        Another kind of list value has one value per line. For example,
        <varname>Copyright</varname> can list many copyright statements, one per
        line.
      </para>
    </section>

    <section id="formatted-text">
      <title>Text formatted like package long descriptions</title>
      <para>
        Formatted text fields use the same rules as the long description in a
        package's <varname>Description</varname> field, possibly also using the
        first line  as a synopsis, like <varname>Description</varname> uses it
        for the short description. See Debian Policy's section 5.6.13, <ulink
        url="http://www.debian.org/doc/debian-policy/ch-controlfields#s-f-Description"><quote>Description</quote></ulink>,
        for details.  For example, <varname>Disclaimer</varname> has no special
        first line, whereas <varname>License</varname> does.
      </para>
    </section>
  </section>

  <section id="paragraphs">
    <title>Paragraphs</title>
    <para>
      There are three kinds of paragraphs.  The first paragraph in the file
      is called the <link linkend="header-paragraph">header paragraph</link>.
      Every other paragraph is either a <link
      linkend="files-paragraph">Files paragraph</link> or a <link
      linkend="stand-alone-license-paragraph">stand-alone License
      paragraph</link>.  This is similar to source and binary package
      paragraphs in <filename>debian/control</filename> files.
    </para>

    <section id="header-paragraph">
      <title>Header paragraph (Once)</title>
      <para>
        The following fields may be present in a header paragraph.
      </para>
      <itemizedlist>
        <listitem>
          <para>
            <link linkend="format-field">Format</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="upstream-name-field">Upstream-Name</link>:
            optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link
            linkend="upstream-contact-field">Upstream-Contact</link>:
            optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="source-field">Source</link>: optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="disclaimer-field">Disclaimer</link>:
            optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="comment-field">Comment</link>: optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="license-field">License</link>: optional.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="copyright-field">Copyright</link>: optional.
          </para>
        </listitem>
      </itemizedlist>
      <para>
        The <varname>Copyright</varname> and <varname>License</varname>
        fields in the <emphasis>header paragraph</emphasis> may complement
        but do not replace the <emphasis>Files paragraphs</emphasis>.  They
        can be used to summarise the contributions and redistribution terms
        for the whole package, for instance when a work combines a
        permissive and a copyleft license, or to document a
        <emphasis>compilation copyright</emphasis> and license.  It is
        possible to use only <varname>License</varname> in the header
        paragraph, but <varname>Copyright</varname> alone makes no sense.
      </para>

      <section id="example-header-paragraph">
        <title>Example header paragraph</title>
<programlisting>Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: SOFTware
Upstream-Contact: John Doe &lt;john.doe@example.com&gt;
Source: http://www.example.com/software/project</programlisting>
      </section>
    </section>

     <section id="files-paragraph">
      <title>Files paragraph (Repeatable)</title>
      <para>
        The declaration of copyright and license for files is done in one or
        more paragraphs.  In the simplest case, a single paragraph can be used
        which applies to all files and lists all applicable copyrights and
        licenses.
      </para>
      <para>
        The following fields may be present in a Files paragraph.
      </para>

      <itemizedlist>
        <listitem>
          <para>
            <link linkend="files-field">Files</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="copyright-field">Copyright</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="license-field">License</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="comment-field">Comment</link>: optional.
          </para>
        </listitem>
      </itemizedlist>

      <section id="example-files-paragraph">
        <title>Example files paragraphs</title>
<programlisting>Files: *
Copyright: 1975-2010 Ulla Upstream
License: GPL-2+

Files: debian/*
Copyright: 2010 Daniela Debianizer
License: GPL-2+

Files: debian/patches/fancy-feature
Copyright: 2010 Daniela Debianizer
License: GPL-3+

Files: */*.1
Copyright: 2010 Manuela Manpager
License: GPL-2+</programlisting>
        <para>
          In this example, all files are copyright by the upstream and licensed
          under the GPL, version 2 or later, with three exceptions.  All the
          Debian packaging files are copyright by the packager, and further one
          specific file providing a new feature is licensed differently.
          Finally, there are some manual pages added to the package, written by
          a third person.
        </para>
      </section>
    </section>

    <section id="stand-alone-license-paragraph">
      <title>Stand-alone License Paragraph (Optional, Repeatable)</title>
      <para>
        Where a set of files are dual (tri, etc) licensed, or when the same
        license occurs multiple times, you can use a single-line
        <varname>License</varname> field and stand-alone
        <varname>License</varname> paragraphs to expand the license short names.
      </para>
      <para>
        The following fields may be present in a stand-alone License
        paragraph.
      </para>

      <itemizedlist>
        <listitem>
          <para>
            <link linkend="license-field">License</link>: required.
          </para>
        </listitem>
        <listitem>
          <para>
            <link linkend="comment-field">Comment</link>: optional.
          </para>
        </listitem>
      </itemizedlist>
      <example>
        <title>tri-licensed files</title>
<programlisting>Files: src/js/editline/*
Copyright: 1993, John Doe
           1993, Joe Average
License: MPL-1.1 or GPL-2 or LGPL-2.1

License: MPL-1.1
 [LICENSE TEXT]

License: GPL-2
 [LICENSE TEXT]

License: LGPL-2.1
 [LICENSE TEXT]</programlisting>
      </example>

      <example>
        <title>recurrent license</title>
<programlisting>Files: src/js/editline/*
Copyright: 1993, John Doe
           1993, Joe Average
License: MPL-1.1

Files: src/js/fdlibm/*
Copyright: 1993, J-Random Corporation
License: MPL-1.1

License: MPL-1.1
 [LICENSE TEXT]</programlisting>
      </example>
    </section>
  </section>

  <section id="fields">
    <title>Fields</title>
    <para>
      The following fields are defined for use in
      <filename>debian/copyright</filename>.
    </para>

    <section id="format-field">
      <title><varname>Format</varname></title>
      <para>
        Single-line: URI of the format specification, such as:
        <literal>http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/</literal>.
      </para>
    </section>

    <section id="upstream-name-field">
      <title><varname>Upstream-Name</varname></title>
      <para>
        Single-line: the name upstream uses for the software
      </para>
    </section>

    <section id="upstream-contact-field">
      <title><varname>Upstream-Contact</varname></title>
      <para>
        Line-based list: the preferred address(es) to reach the upstream
        project.  May be free-form text, but by convention will usually be
        written as a list of RFC5322 addresses or URIs.
      </para>
    </section>

    <section id="source-field">
      <title><varname>Source</varname></title>
      <para>
        Formatted text, no synopsis: an explanation from where the upstream
        source came from.  Typically this would be a URL, but it might be a
        free-form explanation.  The Debian Policy section <ulink
        url="http://www.debian.org/doc/debian-policy/ch-docs#s-copyrightfile">12.5</ulink>
        requires this information unless there are no upstream sources,
        which is mainly the case for native Debian packages.  If the
        upstream source has been modified to remove non-free parts, that
        should be explained in this field.
      </para>
    </section>

    <section id="disclaimer-field">
      <title><varname>Disclaimer</varname></title>
      <para>
        Formatted text, no synopsis: this field can be used in the case of
        non-free and contrib packages (see <ulink
        url="http://www.debian.org/doc/debian-policy/ch-docs#s-copyrightfile">12.5</ulink>).
      </para>
    </section>

    <section id="comment-field">
      <title><varname>Comment</varname></title>
      <para>
        Formatted text, no synopsis: this field can provide additional
        information.  For example, it might quote an e-mail from upstream
        justifying why the license is acceptable to the main archive, or an
        explanation of how this version of the package has been forked from
        a version known to be DFSG-free, even though the current upstream
        version is not.
      </para>
    </section>

    <section id="license-field">
      <title><varname>License</varname></title>
      <para>
        Formatted text, with synopsis.  In the header paragraph, this field
        gives the license information for the package as a whole, which may
        be different or simplified from a combination of all the per-file
        license information.  In a Files paragraph, this field gives the
        licensing terms for the files listed in the <varname>Files</varname>
        field for this paragraph.  In a stand-alone License paragraph, it
        gives the licensing terms for those paragraphs which reference it.
      </para>
      <para>
        First line: an abbreviated name for the license, or expression
        giving alternatives (see <link linkend="license-short-name">Short
        names</link> section for a list of standard abbreviations).  If
        there are licenses present in the package without a standard short
        name, an arbitrary short name may be assigned for these licenses. 
        These arbitrary names are only guaranteed to be unique within a
        single copyright file.
      </para>
      <para>
        Remaining lines: if left blank here, the file
        <emphasis>must</emphasis> include a <link
        linkend="stand-alone-license-paragraph">stand-alone License
        paragraph</link> matching each license short
        name listed on the first line.
        Otherwise, this field should either
        include the full text of the license(s) or include a pointer to the
        license file under <filename>/usr/share/common-licenses</filename>. 
        This field should include all text needed in order to fulfill both
        Debian Policy's requirement for including a copy of the software's
        distribution license (<ulink
        url="http://www.debian.org/doc/debian-policy/ch-docs#s-copyrightfile">12.5</ulink>),
        and any license requirements to include warranty disclaimers or
        other notices with the binary package.
      </para>
    </section>

    <section id="copyright-field">
      <title><varname>Copyright</varname></title>
      <para>
        Formatted text, no synopsis: one or more free-form copyright
        statement(s).  Any formatting is permitted; see the examples below
        for some ideas for how to structure the field to make it easier to
        read.  In the header paragraph, this field gives the copyright
        information for the package as a whole, which may be different or
        simplified from a combination of all the per-file copyright
        information.  In the Files paragraphs, it gives the copyright
        information that applies to the files matched by the
        <varname>Files</varname> pattern.  If a work has no copyright holder
        (i.e., it is in the public domain), that information should be
        recorded here.
      </para>
      <para>
        The <varname>Copyright</varname> field collects all relevant
        copyright notices for the files of this paragraph.  Not all
        copyright notices may apply to every individual file, and years of
        publication for one copyright holder may be gathered together.  For
        example, if file A has:
<programlisting>Copyright 2008 John Smith
Copyright 2009 Angela Watts</programlisting>
        and file B has:
<programlisting>Copyright 2010 Angela Watts</programlisting>
        the <varname>Copyright</varname> field for a stanza covering both
        file A and file B need contain only:
<programlisting>Copyright 2008 John Smith
Copyright 2009, 2010 Angela Watts</programlisting>
      </para>
      <para>
        The <varname>Copyright</varname> field may contain the original
        copyright statement copied exactly (including the word
        <quote>Copyright</quote>), or it can shorten the text, as long as it
        does not sacrifice information.  Examples in this specification use
        both forms.
      </para>
    </section>

    <section id="files-field">
      <title><varname>Files</varname></title>
      <para>
        Whitespace-separated list: list of patterns indicating files covered
        by the license and copyright specified in this paragraph.
      </para>
      <para>
        Filename patterns in the <varname>Files</varname> field are
        specified using a simplified shell glob syntax.  Patterns are
        separated by whitespace.
        <itemizedlist>
          <listitem>
            <para>
              Only the wildcards <literal>*</literal> and <literal>?</literal>
              apply; the former matches any number of characters (including
              none), the latter a single character.  Both match a slash
              (<literal>/</literal>) and a leading dot.
            </para>
          </listitem>
          <listitem>
            <para>
              Patterns match pathnames that start at the root of the source
              tree.  Thus, <quote><filename>Makefile.in</filename></quote>
              matches only the file at the root of the tree, but
              <quote><filename>*/Makefile.in</filename></quote> matches at
              any depth.
            </para>
          </listitem>
          <listitem>
            <para>
              The backslash (<literal>\</literal>) is used to remove the
              magic from the next character; see table below.
            </para>
          </listitem>
        </itemizedlist>
        <informaltable>
          <tgroup cols="2">
            <thead>
              <row>
                <entry>Escape sequence</entry>
                <entry>Matches</entry>
              </row>
            </thead>
            <tbody>
              <row>
                <entry><literal>\*</literal></entry>
                <entry>star (asterisk)</entry>
              </row>
              <row>
                <entry><literal>\?</literal></entry>
                <entry>question mark</entry>
              </row>
              <row>
                <entry><literal>\\</literal></entry>
                <entry>backslash</entry>
              </row>
            </tbody>
          </tgroup>
        </informaltable>
        Any other character following a backslash is an error.
      </para>
      <para>
        Multiple <varname>Files</varname> paragraphs are allowed.  The last
        paragraph that matches a particular file applies to it.
      </para>
      <para>
        Exclusions are done by having multiple <varname>Files</varname>
        paragraphs.
      </para>
    </section>

  </section>
  <section id="license-specification">
    <title>License specification</title>

    <section id="license-short-name">
      <title>Short name</title>
      <para>
        Much of the value of a machine-parseable copyright file lies in being
        able to correlate the licenses of multiple pieces of software.  To that
        end, this spec defines standard short names for a number of commonly
        used licenses, which can be used in the first line of a
        <varname>License</varname> field.
      </para>
      <para>
        These short names have the specified meanings across all uses of this
        file format, and <emphasis>must not</emphasis> be used to refer to any
        other licenses.  Parsers may thus rely on these short names referring to
        the same licenses wherever they occur, without needing to parse or
        compare the full license text.
      </para>
      <para>
        From time to time, licenses may be added to or removed from the list of
        standard short names.  Such changes in the list of short names will
        always be accompanied by changes to the recommended
        <varname>Format</varname> value. Implementers who are parsing copyright
        files should take care not to assume anything about the meaning of
        license short names for unknown <varname>Format</varname> versions.
      </para>
      <para>
        Use of a standard short name does not override the Debian Policy
        requirement to include the full license text in
        <filename>debian/copyright</filename>, nor any requirements in the
        license of the work regarding reproduction of legal notices.  This
        information must still be included in the <varname>License</varname>
        field, either in a stand-alone License paragraph or in the relevant
        files paragraph.
      </para>
      <para>
        For licenses which have multiple versions in use, the version number is
        added, using a dash as a separator. If omitted, the lowest version
        number is implied. When the license grant permits using the terms of any
        later version of that license, the short name is finished with a plus
        sign. For <link linkend="spdx">SPDX</link> compatibility, trailing
        <emphasis>dot-zeroes</emphasis> are considered to be equal to plainer
        version (e.g., <quote>2.0.0</quote> is considered equal to
        <quote>2.0</quote> and <quote>2</quote>).
      </para>
      <para>
        Currently, the full text of the licenses is only available in the <ulink
        url="http://spdx.org/licenses">SPDX Open Source License Registry</ulink>.
      </para>
      <informaltable>
        <tgroup cols="2">
          <thead>
            <row>
              <entry>Keyword</entry>
              <entry>Meaning</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>public-domain</entry>
              <entry>
                No license required for any purpose; the work is not subject to
                copyright in any jurisdiction.
              </entry>
            </row>
            <row>
              <entry>
                Apache
              </entry>
              <entry>
                Apache license
                <ulink url="http://spdx.org/licenses/Apache-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/Apache-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Artistic
              </entry>
              <entry>
                Artistic license
                <ulink url="http://spdx.org/licenses/Artistic-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/Artistic-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                BSD-2-clause
              </entry>
              <entry>
                Berkeley software distribution license,
                <ulink url="http://spdx.org/licenses/BSD-2-Clause">2-clause
                version</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                BSD-3-clause
              </entry>
              <entry>
                Berkeley software distribution license,
                <ulink url="http://spdx.org/licenses/BSD-3-Clause">3-clause
                version</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                BSD-4-clause
              </entry>
              <entry>
                Berkeley software distribution license,
                <ulink url="http://spdx.org/licenses/BSD-4-Clause">4-clause
                version</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                ISC
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/ISC">Internet Software
                Consortium</ulink>, sometimes also known as the OpenBSD License.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY
              </entry>
              <entry>
                Creative Commons Attribution license
                <ulink url="http://spdx.org/licenses/CC-BY-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-SA
              </entry>
              <entry>
                Creative Commons Attribution Share Alike license
                <ulink url="http://spdx.org/licenses/CC-BY-SA-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-SA-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-SA-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-SA-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-ND
              </entry>
              <entry>
                Creative Commons Attribution No Derivatives license
                <ulink url="http://spdx.org/licenses/CC-BY-ND-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-ND-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-ND-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-ND-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-NC
              </entry>
              <entry>
                Creative Commons Attribution Non-Commercial license
                <ulink url="http://spdx.org/licenses/CC-BY-NC-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-NC-SA
              </entry>
              <entry>
                Creative Commons Attribution Non-Commercial Share Alike license
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-SA-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC-BY-NC-ND
              </entry>
              <entry>
                Creative Commons Attribution Non-Commercial No Derivatives license
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-2.5">2.5</ulink>,
                <ulink url="http://spdx.org/licenses/CC-BY-NC-ND-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CC0
              </entry>
              <entry>
                Creative Commons Zero
                <ulink url="http://spdx.org/licenses/CC0-1.0">1.0 Universal</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CDDL
              </entry>
              <entry>
                Common Development and Distribution License
                <ulink url="http://spdx.org/licenses/CDDL-1.0">1.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                CPL
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/CPL-1.0">IBM Common Public
                License</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                EFL
              </entry>
              <entry>
                The Eiffel Forum License
                <ulink url="http://spdx.org/licenses/EFL-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/EFL-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Expat
              </entry>
              <entry>
                The <ulink url="http://www.jclark.com/xml/copying.txt">Expat</ulink>
                license.
              </entry>
            </row>
            <row>
              <entry>
                GPL
              </entry>
              <entry>
                GNU General Public License
                <ulink url="http://spdx.org/licenses/GPL-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/GPL-2.0">2.0</ulink>,
                <ulink url="http://spdx.org/licenses/GPL-3.0">3.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                LGPL
              </entry>
              <entry>
                GNU Lesser General Public License
                <ulink url="http://spdx.org/licenses/LGPL-2.1">2.1</ulink>,
                <ulink url="http://spdx.org/licenses/LGPL-3.0">3.0</ulink>, or
                GNU Library General Public License
                <ulink url="http://spdx.org/licenses/LGPL-2.0">2.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                GFDL
              </entry>
              <entry>
                GNU Free Documentation License 1.0, or
                <ulink url="http://spdx.org/licenses/GFDL-1.1">1.1</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                GFDL-NIV
              </entry>
              <entry>
                GNU Free Documentation License, with no invariant sections.
              </entry>
            </row>
            <row>
              <entry>
                LPPL
              </entry>
              <entry>
                <ulink url="http://www.latex-project.org/lppl/">LaTeX Project
                Public License</ulink>
                <ulink url="http://spdx.org/licenses/LPPL-1.0">1.0</ulink>,
                <ulink url="http://spdx.org/licenses/LPPL-1.1">1.1</ulink>,
                <ulink url="http://spdx.org/licenses/LPPL-1.2">1.2</ulink>,
                <ulink url="http://spdx.org/licenses/LPPL-1.3c">1.3c</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                MPL
              </entry>
              <entry>
                Mozilla Public License
                <ulink url="http://spdx.org/licenses/MPL-1.1">1.1</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Perl
              </entry>
              <entry>
                <ulink url="http://dev.perl.org/licenses/">Perl</ulink> license
                (use <quote><literal>GPL-1+ or Artistic-1</literal></quote>
                instead).
              </entry>
            </row>
            <row>
              <entry>
                Python
              </entry>
              <entry>
                Python license
                <ulink url="http://spdx.org/licenses/Python-2.0">2.0</ulink>.
              </entry>
              <!-- See https://fossbazaar.org/pipermail/spdx-legal/2011-February/000010.html -->
            </row>
            <row>
              <entry>
                QPL
              </entry>
              <entry>
                Q Public License <ulink
                url="http://spdx.org/licenses/QPL-1.0">1.0</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                W3C
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/W3C">W3C Software
                License</ulink> For more information, consult the
                <ulink
                url="http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620">W3C
                Intellectual Rights FAQ</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Zlib
              </entry>
              <entry>
                <ulink url="http://spdx.org/licenses/Zlib">
                zlib/libpng license</ulink>.
              </entry>
            </row>
            <row>
              <entry>
                Zope
              </entry>
              <entry>
                Zope Public License 1.0,
                  <ulink url="http://spdx.org/licenses/ZPL-1.1">1.1</ulink>,
                  <ulink url="http://spdx.org/licenses/ZPL-2.0">2.0</ulink>,
                  <ulink url="http://spdx.org/licenses/ZPL-2.1">2.1</ulink>.
              </entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
      <para>
        There are <ulink
        url="http://en.wikipedia.org/wiki/MIT_License#Various_versions">many
        versions of the MIT license</ulink>. Please use Expat instead, when it
        matches.
      </para>
      <para>
        An exception or clarification to a license is signaled in plain text, by appending
        <literal>with <varname><replaceable>keywords</replaceable></varname>
        exception</literal> to the short name.  This document provides a list of
        keywords that must be used when referring to the most frequent
        exceptions.  When exceptions other than these are in effect that modify
        a common license by granting additional permissions, you may use an
        arbitrary keyword not taken from the below list of keywords.  When a
        license differs from a common license because of added restrictions
        rather than because of added permissions, a distinct short name should
        be used instead of <literal>with
        <varname><replaceable>keywords</replaceable></varname>
        exception</literal>.
      </para>
      <para>
        Only one exception may be specified for each license within a given
        license specification.  If more than one exception applies to a single
        license, an arbitrary short name must be used instead.
      </para>
      <para>
        The GPL <literal>Font</literal> exception refers to the text added to the
        license notice of each file as specified at <ulink
        url="http://www.gnu.org/licenses/gpl-faq#FontException">How does the GPL
        apply to fonts</ulink>.  The precise text corresponding to this
        exception is:
<programlisting>As a special exception, if you create a document which uses this font,
and embed this font or unaltered portions of this font into the
document, this font does not by itself cause the resulting document to
be covered by the GNU General Public License. This exception does not
however invalidate any other reasons why the document might be covered
by the GNU General Public License. If you modify this font, you may
extend this exception to your version of the font, but you are not
obligated to do so. If you do not wish to do so, delete this exception
statement from your version.</programlisting>
        </para>
        <para>
          The GPL <literal>OpenSSL</literal> exception gives permission to link GPL-licensed
code with the OpenSSL library, which contains GPL-incompatible clauses.
For more information, see <ulink
url="http://www.gnome.org/~markmc/openssl-and-the-gpl">The -OpenSSL License and
The GPL</ulink> by Mark
McLoughlin and the message <ulink
url="http://lists.debian.org/debian-legal/2004/05/msg00595.html">middleman
software license conflicts with OpenSSL</ulink>
by Mark McLoughlin on the <emphasis>debian-legal</emphasis> mailing list.  The text corresponding
to this exception is:
<programlisting>In addition, as a special exception, the copyright holders give
permission to link the code of portions of this program with the
OpenSSL library under certain conditions as described in each
individual source file, and distribute linked combinations including
the two.

You must obey the GNU General Public License in all respects for all
of the code used other than OpenSSL. If you modify file(s) with this
exception, you may extend this exception to your version of the
file(s), but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version. If you delete
this exception statement from all source files in the program, then
also delete it here.</programlisting>
        </para>

        <section id="public-domain">
          <title>Public domain</title>
          <para>
            The <varname>License</varname> short name
            <literal>public-domain</literal> does not refer to a set of license
            terms. There are some works which are not subject to copyright in
            any jurisdiction and therefore no license is required for any
            purpose covered by copyright law. This short name is an explicit
            declaration that the associated files are <quote>in the public
            domain</quote>.
          </para>
          <para>
            Widespread misunderstanding about copyright in general, and the
            public domain in particular, results in the common assertion that a
            work is in the public domain when this is partly or wholly untrue
            for that work. The <ulink
            url="http://en.wikipedia.org/wiki/Public_domain">Wikipedia article
            on public domain</ulink> is a useful reference for this subject.
          </para>
          <para>
            When the <varname>License</varname> field in a paragraph has the
            short name <literal>public-domain</literal>, the remaining lines of
            the field <emphasis>must</emphasis> explain exactly what exemption
            the corresponding files for that paragraph have from default
            copyright restrictions.
        </para>
      </section>
    </section>

    <section id="license-syntax">
      <title>Syntax</title>
      <para>
        License names are case-insensitive, and may not contain spaces.
      </para>
      <para>
        In case of multi-licensing, the license short names are separated by
        <literal>or</literal> when the user can chose between different licenses,
        and by <literal>and</literal> when use of the work must simultaneously
        comply with the terms of multiple licenses.
      </para>
      <para>
        For instance, this is a simple, <quote>GPL version 2 or later</quote>
        field:
<programlisting>License: GPL-2+</programlisting>
        This is a dual-licensed GPL/Artistic work such as Perl:
<programlisting>License: GPL-1+ or Artistic</programlisting>
        This is for a file that has both GPL and classic BSD code in it:
<programlisting>License: GPL-2+ and BSD</programlisting>
        For the most complex cases, the comma is used to disambiguate the
        priority of <literal>or</literal>s and <literal>and</literal>s
        <literal>and</literal> has the priority over <literal>or</literal>,
        unless preceded by a comma. For instance:
      </para>
      <simpara>
        <literal>A or B and C</literal> means <literal>A or (B and C)</literal>.
      </simpara>
      <simpara>
        <literal>A or B, and C</literal> means <literal>(A or B), and
        C</literal>.
      </simpara>
      <para>
        This is for a file that has Perl code and classic BSD code in it:
<programlisting>License: GPL-2+ or Artistic-2.0, and BSD</programlisting>
        A <literal>GPL-2+</literal> work with the <literal>OpenSSL</literal>
        exception is in effect a dual-licensed work that can be redistributed
        either under the <literal>GPL-2+</literal>, or under the
        <literal>GPL-2+</literal> with the <literal>OpenSSL</literal> exception.
        It is thus expressed as <literal>GPL-2+ with OpenSSL
        exception</literal>:
<programlisting>License: GPL-2+ with OpenSSL exception
 This program is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later
 version.
 .
 In addition, as a special exception, the author of this
 program gives permission to link the code of its
 release with the OpenSSL project's "OpenSSL" library (or
 with modified versions of it that use the same license as
 the "OpenSSL" library), and distribute the linked
 executables. You must obey the GNU General Public
 License in all respects for all of the code used other
 than "OpenSSL".  If you modify this file, you may extend
 this exception to your version of the file, but you are
 not obligated to do so.  If you do not wish to do so,
 delete this exception statement from your version.
 .
 This program is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the GNU General Public License for more
 details.
 .
 You should have received a copy of the GNU General Public
 License along with this package; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 Boston, MA  02110-1301 USA
 .
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file
 `/usr/share/common-licenses/GPL-2'.</programlisting>
       </para>
     </section>

    <section id="spdx">
      <title>SPDX</title>
      <para>
        <ulink url="http://spdx.org/">SPDX</ulink> is an attempt to standardize
        a format for communicating the components, licenses and copyrights
        associated with a software package. It and the machine-readable
        <filename>debian/copyright</filename> format attempt to be somewhat
        compatible. However, the two formats have different aims, and so the
        formats are different. The <ulink
        url="http://wiki.debian.org/Proposals/CopyrightFormat">DEP5 wiki
        page</ulink> will be used to track the differences.
      </para>
    </section>
  </section>

  <section id="examples">
    <title>Examples</title>
    <example>
      <title>Simple</title>
      <para>
        A possible <filename>debian/copyright</filename> file for the program
        <quote>X Solitaire</quote> distributed in the Debian source package
        <literal>xsol</literal>:
<programlisting><![CDATA[Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: X Solitaire
Source: ftp://ftp.example.com/pub/games

Files: *
Copyright: Copyright 1998 John Doe <jdoe@example.com>
License: GPL-2+
 This program is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later
 version.
 .
 This program is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the GNU General Public License for more
 details.
 .
 You should have received a copy of the GNU General Public
 License along with this package; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 Boston, MA  02110-1301 USA
 .
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file
 `/usr/share/common-licenses/GPL-2'.

Files: debian/*
Copyright: Copyright 1998 Jane Smith <jsmith@example.net>
License: GPL-2+
 [LICENSE TEXT]]]></programlisting>
      </para>
    </example>

    <example>
      <title>Complex</title>
      <para>
        A possible <filename>debian/copyright</filename> file for the program
        <quote>Planet Venus</quote>, distributed in the Debian source
        package <literal>planet-venus</literal>:
<programlisting><![CDATA[Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Planet Venus
Upstream-Contact: John Doe <jdoe@example.com>
Source: http://www.example.com/code/venus

Files: *
Copyright: 2008, John Doe <jdoe@example.com>
           2007, Jane Smith <jsmith@example.org>
           2007, Joe Average <joe@example.org>
           2007, J. Random User <jr@users.example.com>
License: PSF-2
 [LICENSE TEXT]

Files: debian/*
Copyright: 2008, Dan Developer <dan@debian.example.com>
License: permissive
 Copying and distribution of this package, with or without
 modification, are permitted in any medium without royalty
 provided the copyright notice and this notice are
 preserved.

Files: debian/patches/theme-diveintomark.patch
Copyright: 2008, Joe Hacker <hack@example.org>
License: GPL-2+
 [LICENSE TEXT]

Files: planet/vendor/compat_logging/*
Copyright: 2002, Mark Smith <msmith@example.org>
License: MIT
 [LICENSE TEXT]

Files: planet/vendor/httplib2/*
Copyright: 2006, John Brown <brown@example.org>
License: MIT2
 Unspecified MIT style license.

Files: planet/vendor/feedparser.py
Copyright: 2007, Mike Smith <mike@example.org>
License: PSF-2
 [LICENSE TEXT]

Files: planet/vendor/htmltmpl.py
Copyright: 2004, Thomas Brown <coder@example.org>
License: GPL-2+
 This program is free software; you can redistribute it
 and/or modify it under the terms of the GNU General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later
 version.
 .
 This program is distributed in the hope that it will be
 useful, but WITHOUT ANY WARRANTY; without even the implied
 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.  See the GNU General Public License for more
 details.
 .
 You should have received a copy of the GNU General Public
 License along with this package; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 Boston, MA  02110-1301 USA
 .
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file
 `/usr/share/common-licenses/GPL-2'.]]></programlisting>
      </para>
    </example>
  </section>

</article>
