Home | History | Annotate | only in /systemz/usr/src
Up to higher level directory
NameDateSize
cmd/05-Aug-2008
common/02-Aug-2008
grub/02-Aug-2008
head/06-Aug-2008
lib/06-Aug-2008
libm/04-Aug-2008
Makefile07-Oct-200811.9K
Makefile.ast02-Aug-20082K
Makefile.ksh93switch02-Aug-20081.3K
Makefile.lint07-Oct-20088K
Makefile.mapfilegnu19-Aug-2008478
Makefile.mapfilegnu.maponly02-Sep-2008268
Makefile.master07-Oct-200834.9K
Makefile.master.6407-Oct-20082.4K
Makefile.msg.targ07-Oct-20082.3K
Makefile.noget02-Aug-20084.1K
Makefile.psm02-Aug-20089.2K
Makefile.psm.targ02-Aug-20086.1K
Makefile.s390x07-Oct-20082K
Makefile.s390x.cross07-Oct-20082.3K
Makefile.s390x.nativetargets07-Oct-20082.1K
OPENSOLARIS.LICENSE02-Aug-200818.5K
pkgdefs/02-Aug-2008
prototypes/02-Aug-2008
psm/02-Aug-2008
README.license-files02-Aug-20085.6K
req.flg02-Aug-20081.7K
stand/02-Aug-2008
Targetdirs04-Aug-200864.8K
tools/02-Sep-2008
ucbcmd/02-Aug-2008
ucbhead/06-Aug-2008
ucblib/02-Aug-2008
uts/02-Sep-2008
xmod/02-Aug-2008

README.license-files

      1 #
      2 # CDDL HEADER START
      3 #
      4 # The contents of this file are subject to the terms of the
      5 # Common Development and Distribution License (the "License").
      6 # You may not use this file except in compliance with the License.
      7 #
      8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
      9 # or http://www.opensolaris.org/os/licensing.
     10 # See the License for the specific language governing permissions
     11 # and limitations under the License.
     12 #
     13 # When distributing Covered Code, include this CDDL HEADER in each
     14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     15 # If applicable, add the following below this CDDL HEADER, with the
     16 # fields enclosed by brackets "[]" replaced with your own identifying
     17 # information: Portions Copyright [yyyy] [name of copyright owner]
     18 #
     19 # CDDL HEADER END
     20 #
     21 #
     22 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
     23 # Use is subject to license terms.
     24 #
     25 # ident	"%Z%%M%	%I%	%E% SMI"
     26 #
     27 
     28 OK, so you've got approval to integrate code, and you want to know how to
     29 properly communicate the license terms.  What do you do next?
     30 
     31 0. If everything is covered by a Sun copyright and the CDDL, you're done.
     32 
     33 1. Scan the source code and extract all of the third party licenses
     34    into one or more separate files.
     35 
     36    A. In general, you'll name these files "THIRDPARTYLICENSE," and
     37       you'll put one in each source directory (i.e. one per library,
     38       or one per command, or one per kernel module.)
     39 
     40       EXAMPLE: usr/src/uts/common/io/pcan/THIRDPARTYLICENSE
     41 
     42       If this file proves unmanageable, or you're adding licenses
     43       that really are independent of each other, you may instead
     44       create multiple "THIRDPARTYLICENSE.foo" files, where "foo"
     45       obviously corresponds to the license in question.
     46 
     47       EXAMPLE: usr/src/lib/libsmbfs/smb/THIRDPARTYLICENSE.*
     48 
     49    B. If you planned ahead and included graceful delimiters in your
     50       source code, the THIRDPARTYLICENSE files may actually be build
     51       targets in your Makefiles.
     52 
     53       EXAMPLE: usr/src/cmd/perl/Makefile
     54 
     55       This approach is usually overkill.  But if the third party license
     56       will remain unchanged while the corresponding copyright will change
     57       dates frequently, then this approach can work well, because you won't
     58       need to update the license files manually.                                        
     59 
     60 2. Give each of the license files a corresponding ".descrip" file with
     61    an extremely terse explanation of the contents.  Something like
     62    "MJN DRIVER" or "PORTIONS OF ARCANE FUNCTIONALITY" is sufficient.
     63 
     64    EXAMPLE: usr/src/cmd/refer/THIRDPARTYLICENSE.descrip
     65 
     66 3. Edit usr/src/tools/opensolaris/license-list and add the full path
     67    of your new license file(s).
     68 
     69 4. Figure out which packages deliver objects that are built using the
     70    new third party source, and add a reference to LICENSEFILES in the
     71    pkg Makefile.
     72 
     73    A. It's extremely rare for a package NOT to include a Sun copyright
     74       statement.  If your package is one of the 99 percent that should
     75       have a Sun copyright, then you should append to LICENSEFILES like
     76       this:
     77 
     78           LICENSEFILES += relative/path/to/my/new/license/file
     79 
     80       or
     81 
     82           LICENSEFILES += \
     83                   path/to/first/file \
     84                   path/to/other/file
     85 
     86       These paths should be relative to the pkg build directory, for
     87       example relative to usr/src/pkgdefs/SUNWbcp for pkg SUNWbcp.
     88 
     89       EXAMPLE: usr/src/pkgdefs/SUNWpsm-ipp/Makefile
     90       EXAMPLE: usr/src/pkgdefs/SUNWrcmdc/Makefile
     91 
     92    B. If, on the other hand, you do NOT want a Sun copyright, then you
     93       should follow the example above, but use "=" instead of "+=" when
     94       you assign the LICENSEFILES macro.
     95 
     96       EXAMPLE: usr/src/pkgdefs/SUNWrtls/Makefile
     97 
     98    C. It's also unusual for a package NOT to reference the CDDL.  If you
     99       used "+=" above, and you want the CDDL, then you don't need to do
    100       anything else.  It will automatically be appended.
    101 
    102    D. If you used "+=" above, because you want the Sun copyright, but you
    103       do NOT want the CDDL, then you should also include the following line:
    104 
    105           CDDL=
    106 
    107       in your pkg Makefile.
    108 
    109       EXAMPLE: usr/src/pkgdefs/SUNWwpi/Makefile
    110 
    111    E. If you used "=" above, then you will not get the CDDL unless you
    112       explicitly append it to LICENSEFILES:
    113 
    114           LICENSEFILES = \
    115                   path/to/first/file \
    116                   path/to/other/file \
    117                   $(CDDL)
    118 
    119 
    120       EXAMPLE: usr/src/pkgdefs/SUNWhea/Makefile
    121 
    122    F. If your package delivers ONLY header files, and has multiple different
    123       copyrights or licenses, you can use
    124 
    125           LICENSEFILES = $(LIC_IN_HDRS) \
    126                   path/to/most/common/copyright/file \
    127                   path/to/most/common/license/file
    128 
    129       EXAMPLE: usr/src/pkgdefs/SUNWhea/Makefile
    130 
    131    G. Empty packages: if your package delivers nothing (or, more strictly
    132       speaking, nothing besides directories) you should keep the Sun
    133       copyright but nix the CDDL.  As a reminder, that's done simply by
    134       adding the single line
    135 
    136           CDDL=
    137 
    138       to your pkg Makefile.
    139 
    140       EXAMPLE: usr/src/pkgdefs/SUNWdfb.i/Makefile
    141 
    142    H. COPYRIGHT: Don't mess with this.  If you reset this, then you must
    143       use the "copyright=" convention in your prototype_com.  As described
    144       above, LICENSEFILES is the preferred mechanism.
    145 
    146    I. Architecture dependent license files look like this:
    147 
    148           LICENSEFILES_i386 = path/to/i386/only/license(s)
    149 
    150           LICENSEFILES_sparc = path/to/sparc/only/license(s)
    151 
    152           LICENSEFILES += \
    153                   path/to/common/license/files(s) \
    154                   $(LICENSEFILES_$(MACH))
    155 
    156       EXAMPLE: usr/src/pkgdefs/SUNWcsl/Makefile
    157       EXAMPLE: usr/src/pkgdefs/SUNWbcp/Makefile
    158 
    159