summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2012-10-12 10:47:34 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-15 14:45:15 +0100
commit4c35e5a983f215e83ce80fde1810403d26a3341d (patch)
treeee02b8ef7c187046c8ca7e0c6599b78fa18d834d /documentation
parent715456acb8aa2866eca4f04b667a12d070e18cfa (diff)
downloadpoky-4c35e5a983f215e83ce80fde1810403d26a3341d.tar.gz
documentation: dev-manual - edits to the license compliance section.
Implemented Beth Flanagan's review comments. (From yocto-docs rev: d480c8525861db4383ce1b656168c01d01c26b2e) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml49
1 files changed, 33 insertions, 16 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 5ba1ff0173..fc7a535f85 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -2636,8 +2636,8 @@
2636 With hundreds of different open source licenses that the Yocto 2636 With hundreds of different open source licenses that the Yocto
2637 Project tracks, it is difficult to know the requirements of each 2637 Project tracks, it is difficult to know the requirements of each
2638 and every license. 2638 and every license.
2639 However, we can cover the requirements of all of the known licenses, by 2639 However, we can begin to cover the requirements of the major FLOSS licenses, by
2640 assuming that there there are three main areas of concern: 2640 assuming that there are three main areas of concern:
2641 <itemizedlist> 2641 <itemizedlist>
2642 <listitem><para>Source code must be provided.</para></listitem> 2642 <listitem><para>Source code must be provided.</para></listitem>
2643 <listitem><para>License text for the software must be 2643 <listitem><para>License text for the software must be
@@ -2649,6 +2649,10 @@
2649 There are other requirements beyond the scope of these 2649 There are other requirements beyond the scope of these
2650 three and the methods described in this section 2650 three and the methods described in this section
2651 (e.g. the mechanism through which source code is distributed). 2651 (e.g. the mechanism through which source code is distributed).
2652 As different organizations have different methods of complying with
2653 open source licensing, this section is not meant to imply that
2654 there is only one single way to meet your compliance obligations,
2655 but rather to describe one method of achieving compliance.
2652 </para> 2656 </para>
2653 2657
2654 <para> 2658 <para>
@@ -2667,7 +2671,7 @@
2667 <title>Providing the Source Code</title> 2671 <title>Providing the Source Code</title>
2668 2672
2669 <para> 2673 <para>
2670 Compliance needs to begin when you generate the 2674 Compliance activities should begin before you generate the
2671 final image. 2675 final image.
2672 The first thing you should look at is the requirement that 2676 The first thing you should look at is the requirement that
2673 tops the list for most compliance groups - providing 2677 tops the list for most compliance groups - providing
@@ -2683,20 +2687,24 @@
2683 used by the build. 2687 used by the build.
2684 This method, however, has a few issues. 2688 This method, however, has a few issues.
2685 The most obvious is the size of the directory since it includes 2689 The most obvious is the size of the directory since it includes
2686 all sources used in teh build and not just the ones to be released. 2690 all sources used in the build and not just the source used in
2691 the released image.
2692 It will include toolchain source, and other artifacts which
2693 you would not generally release.
2687 But, the more serious issue for most companies is accidental 2694 But, the more serious issue for most companies is accidental
2688 release of proprietary software. 2695 release of proprietary software.
2689 The Yocto Project provides an archiver class to help. 2696 The Yocto Project provides an archiver class to help avoid
2697 some of these concerns.
2690 </para> 2698 </para>
2691 2699
2692 <para> 2700 <para>
2693 Before you employ <filename>DL_DIR</filename> or the 2701 Before you employ <filename>DL_DIR</filename> or the
2694 archiver class, you need to decide how you choose to 2702 archiver class, you need to decide how you choose to
2695 provide source. 2703 provide source.
2696 The source archiver class can generate tarballs 2704 The source archiver class can generate tarballs and SRPMs
2697 and SRPMs and can create them with various levels of compliance. 2705 and can create them with various levels of compliance in mind.
2698 One way of doing this is to release just the original source 2706 One way of doing this (but certainly not the only way) is to
2699 as a tarball. 2707 release just the original source as a tarball.
2700 You can do this by adding the following to the 2708 You can do this by adding the following to the
2701 <filename>local.conf</filename> file found in the 2709 <filename>local.conf</filename> file found in the
2702 <link linkend='build-directory'>Build Directory</link>: 2710 <link linkend='build-directory'>Build Directory</link>:
@@ -2712,7 +2720,8 @@
2712 <filename>DEPLOY_DIR/sources</filename> based on the 2720 <filename>DEPLOY_DIR/sources</filename> based on the
2713 <ulink url='&YOCTO_DOCS_REF_URL;#var-LICENSE'><filename>LICENSE</filename></ulink> 2721 <ulink url='&YOCTO_DOCS_REF_URL;#var-LICENSE'><filename>LICENSE</filename></ulink>
2714 for each recipe. 2722 for each recipe.
2715 Releasing an entire directory ensures compliance. 2723 Releasing the entire directory ensures compliance with
2724 requirements concerning providing the unmodified source.
2716 It is important to note that the size of the directory can 2725 It is important to note that the size of the directory can
2717 get large. 2726 get large.
2718 </para> 2727 </para>
@@ -2731,7 +2740,8 @@
2731 At this point, you could create a tarball from the 2740 At this point, you could create a tarball from the
2732 <filename>gpl_source_release</filename> directory and 2741 <filename>gpl_source_release</filename> directory and
2733 provide that to the end user. 2742 provide that to the end user.
2734 This method achieves full source compliance for GPL. 2743 This method would be a step toward achieving compliance
2744 with section 3a of GPLv2 and with section 6 of GPLv3.
2735 </para> 2745 </para>
2736 </section> 2746 </section>
2737 2747
@@ -2754,6 +2764,11 @@
2754 Adding these statements to the configuration file ensures 2764 Adding these statements to the configuration file ensures
2755 that the licenses collected during package generation 2765 that the licenses collected during package generation
2756 are included on your image. 2766 are included on your image.
2767 As the source archiver has already archived the original
2768 unmodified source which would contain the license files,
2769 you would have already met the requirements for inclusion
2770 of the license information with source as defined by the GPL
2771 and other open source licenses.
2757 </para> 2772 </para>
2758 </section> 2773 </section>
2759 2774
@@ -2780,7 +2795,8 @@
2780 and a distro layer, and those those layers are used to patch, 2795 and a distro layer, and those those layers are used to patch,
2781 compile, package, or modify (in any way) any open source 2796 compile, package, or modify (in any way) any open source
2782 software included in your released images, you 2797 software included in your released images, you
2783 must release those layers. 2798 must release those layers as required by section 3 of GPLv2
2799 and section 1 of GPLv3.
2784 One way of doing that is with a clean 2800 One way of doing that is with a clean
2785 checkout of the version of the Yocto Project and layers used 2801 checkout of the version of the Yocto Project and layers used
2786 during your build. 2802 during your build.
@@ -2818,10 +2834,11 @@
2818 ##COREBASE##/meta-my-software-layer \ 2834 ##COREBASE##/meta-my-software-layer \
2819 " 2835 "
2820 </literallayout> 2836 </literallayout>
2821 Creating a tarball from the top-level 2837 Creating and providing an archive of the
2822 <link linkend='source-directory'>Source Directory</link> 2838 <link linkend='source-directory'>Source Directory</link>
2823 (e.g. <filename>poky</filename>) at this point ensures 2839 (e.g. <filename>poky</filename>) ensures that you have met your
2824 that you include the scripts and the modifications. 2840 requirements to include the scripts to control compilation
2841 as well as any modifications to the original source.
2825 </para> 2842 </para>
2826 </section> 2843 </section>
2827 </section> 2844 </section>