usr/src/README.license-files
author Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
Mon, 02 Aug 2010 16:37:22 -0600
changeset 12998 c0270875939a
parent 11838 32bb5d254240
permissions -rw-r--r--
6929502 packages are missing some license files 6930656 license action improvements
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     1
#
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     2
# CDDL HEADER START
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     3
#
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     7
#
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    10
# See the License for the specific language governing permissions
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    11
# and limitations under the License.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    12
#
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    18
#
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    19
# CDDL HEADER END
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    20
#
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    21
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    22
#
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    23
# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    24
#
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    25
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    26
OK, so you've got approval to integrate code, and you want to know how to
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    27
properly communicate the license terms.  What do you do next?
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    28
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    29
0. Determine whether your code should be covered by Oracle copyright,
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    30
   CDDL, and/or a third party license.  If only Oracle copyright and/or
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    31
   CDDL, then skip to step 3.
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    32
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    33
1. Scan the source code and extract all of the third party licenses
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    34
   into one or more separate files.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    35
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    36
   This information may be present in comments in source code, or may
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    37
   already be provided as separate files.  For example, GPL license
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    38
   terms are often found in files named "COPYING."
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    39
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    40
   A. In general, you'll name these files "THIRDPARTYLICENSE," and
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    41
      you'll put one in each source directory (i.e. one per library,
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    42
      or one per command, or one per kernel module.)
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    43
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    44
      EXAMPLE: usr/src/uts/common/io/pcan/THIRDPARTYLICENSE
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    45
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    46
      If this file proves unmanageable, or you're adding licenses
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    47
      that really are independent of each other, you may instead
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    48
      create multiple "THIRDPARTYLICENSE.foo" files, where "foo"
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    49
      obviously corresponds to the license in question.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    50
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    51
      EXAMPLE: usr/src/lib/libsmbfs/smb/THIRDPARTYLICENSE.*
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    52
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    53
   B. If you planned ahead and included graceful delimiters in your
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    54
      source code, the THIRDPARTYLICENSE files may actually be build
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    55
      targets in your Makefiles.
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    56
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    57
      EXAMPLE: usr/src/cmd/perl/Makefile
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    58
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    59
      If the corresponding copyright will change dates frequently,
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    60
      then this approach can work well, because you won't need to
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    61
      update the license files manually.                                        
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    62
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    63
      If you do this, then your license file should be a dependency of
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    64
      both the all and install targets, and should be removed via
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    65
      clobber, usually by way of CLOBBERFILES.
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    66
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    67
2. Give each of the license files a corresponding ".descrip" file with
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    68
   a terse explanation of the contents.  Something like "MJN DRIVER"
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    69
   or "PORTIONS OF ARCANE FUNCTIONALITY" is sufficient.
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    70
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    71
   EXAMPLE: usr/src/cmd/refer/THIRDPARTYLICENSE.descrip
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    72
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    73
3. Figure out which packages deliver objects that are built using the
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    74
   new source, and add license actions to the package manifest(s).
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    75
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    76
   A. It's extremely rare for a package NOT to include a Sun copyright
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    77
      and CDDL.  If your package is one of the 99 percent that should
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    78
      have a Sun copyright and CDDL, then your package should have license
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    79
      actions like this:
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    80
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    81
	  license lic_CDDL license=lic_CDDL
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    82
	  license cr_Sun license=cr_Sun
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    83
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    84
   B. If your package delivers ONLY header files, and has multiple different
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    85
      copyrights or licenses, you can use
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    86
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    87
          license license_in_headers license=license_in_headers
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    88
	  license path/to/most/common/copyright/file \
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    89
	      license=path/to/most/common/copyright/file
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    90
	  license path/to/most/common/license/file \
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    91
	      license=path/to/most/common/license/file
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    92
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    93
   C. For your new license files, the path you use in your license
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
    94
      actions should be relative to ${CODEMGR_WS}.
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    95
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    96
   D. Empty packages: if your package delivers nothing (or, more strictly
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    97
      speaking, nothing besides directories) you should include the Sun
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
    98
      copyright but not the CDDL.
6417
7c259be9c77b 6677590 ON is now required to deliver license info via pkg copyright files
mjnelson
parents:
diff changeset
    99
11838
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
   100
   E. As with any other action that is architecture dependent, license
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
   101
      actions may be preceded by $(blah_ONLY), where "blah" corresponds
32bb5d254240 PSARC 2010/067 Interim modernization updates
Liane Praza <Liane.Praza@Sun.COM>
parents: 6417
diff changeset
   102
      to $(uname -p).
12998
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
   103
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
   104
   If you don't add the appropriate license actions to package
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
   105
   manifests, then your license and description files will show up as
c0270875939a 6929502 packages are missing some license files
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 11838
diff changeset
   106
   unreferenced in the build.