]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
dev-manual, ref-manual: Moved Wic Plug-In section to dev-manual
authorScott Rifenbark <srifenbark@gmail.com>
Wed, 10 Jan 2018 19:36:56 +0000 (11:36 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 14 Feb 2018 15:25:27 +0000 (15:25 +0000)
Fixes [YOCTO #12370]

I had a section on Wick Plug-Ins in the ref-manual in the
"technical details" chapter.  This section has been combined with the
section on using Wic that lives in the dev-manual.  This move creates
a single section on using Wic to create Wic-partitioned images.

The section was moved out of the ref-manual and merged into the
dev-manual Wic section.

(From yocto-docs rev: 8724049141c9a793312dcf5ff5c3425948d1cbd0)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
documentation/dev-manual/dev-manual-common-tasks.xml
documentation/ref-manual/ref-kickstart.xml
documentation/ref-manual/technical-details.xml

index 58bb6012cea02c3dbfca596b321cfc673d502b0f..78825c7f1edfe6341102fc6dfde1bf6d9b200dd7 100644 (file)
             customized images, and as such, was designed to be
             completely extensible through a plug-in interface.
             See the
-            "<ulink url='&YOCTO_DOCS_REF_URL;#wic-plug-ins-interface'>Wic Plug-Ins Interface</ulink>"
-            section in the Yocto Project Reference Manual for information
-            on these plug-ins.
+            "<link linkend='wic-using-the-wic-plug-ins-interface'>Using the Wic Plug-Ins Interface</link>"
+            section for information on these plug-ins.
         </para>
 
         <para>
             This section provides some background information on Wic,
             describes what you need to have in
             place to run the tool, provides instruction on how to use
-            the Wic utility, and provides several examples.
+            the Wic utility, provides information on using the Wic plug-ins
+            interface, and provides several examples that show how to use
+            Wic.
         </para>
 
         <section id='wic-background'>
             </para>
         </section>
 
+        <section id='wic-using-the-wic-plug-ins-interface'>
+            <title>Using the Wic Plug-Ins Interface</title>
+
+            <para>
+                You can extend and specialize Wic functionality by using
+                Wic plug-ins.
+                This section explains the Wic plug-in interface.
+                <note>
+                    Wic plug-ins consist of "source" and "imager" plug-ins.
+                    Imager plug-ins are beyond the scope of this section.
+                </note>
+            </para>
+
+            <para>
+                Source plug-ins provide a mechanism to customize partition
+                content during the Wic image generation process.
+                You can use source plug-ins to map values that you specify
+                using <filename>--source</filename> commands in kickstart
+                files (i.e. <filename>*.wks</filename>) to a plug-in
+                implementation used to populate a given partition.
+                <note>
+                    If you use plug-ins that have build-time dependencies
+                    (e.g. native tools, bootloaders, and so forth)
+                    when building a Wic image, you need to specify those
+                    dependencies using the
+                    <ulink url='&YOCTO_DOCS_REF_URL;#var-WKS_FILE_DEPENDS'><filename>WKS_FILE_DEPENDS</filename></ulink>
+                    variable.
+                </note>
+            </para>
+
+            <para>
+                Source plug-ins are subclasses defined in plug-in files.
+                As shipped, the Yocto Project provides several plug-in
+                files.
+                You can see the source plug-in files that ship with the
+                Yocto Project
+                <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/scripts/lib/wic/plugins/source'>here</ulink>.
+                Each of these plug-in files contains source plug-ins that
+                are designed to populate a specific Wic image partition.
+            </para>
+
+            <para>
+                Source plug-ins are subclasses of the
+                <filename>SourcePlugin</filename> class, which is
+                defined in the
+                <filename>poky/scripts/lib/wic/pluginbase.py</filename>
+                file.
+                For example, the <filename>BootimgEFIPlugin</filename>
+                source plug-in found in the
+                <filename>bootimg-efi.py</filename> file is a subclass of
+                the <filename>SourcePlugin</filename> class, which is found
+                in the <filename>pluginbase.py</filename> file.
+            </para>
+
+            <para>
+                You can also implement source plug-ins in a layer outside
+                of the Source Repositories (external layer).
+                To do so, be sure that your plug-in files are located in
+                a directory whose path is
+                <filename>scripts/lib/wic/plugins/source/</filename>
+                within your external layer.
+                When the plug-in files are located there, the source
+                plug-ins they contain are made available to Wic.
+            </para>
+
+            <para>
+                When the Wic implementation needs to invoke a
+                partition-specific implementation, it looks for the plug-in
+                with the same name as the <filename>--source</filename>
+                parameter used in the kickstart file given to that
+                partition.
+                For example, if the partition is set up using the following
+                command in a kickstart file:
+                <literallayout class='monospaced'>
+     part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
+                </literallayout>
+                The methods defined as class members of the matching
+                source plug-in (i.e. <filename>bootimg-pcbios</filename>)
+                in the <filename>bootimg-pcbios.py</filename> plug-in file
+                are used.
+            </para>
+
+            <para>
+                To be more concrete, here is the corresponding plug-in
+                definition from the <filename>bootimg-pcbios.py</filename>
+                file for the previous command along with an example
+                method called by the Wic implementation when it needs to
+                prepare a partition using an implementation-specific
+                function:
+                <literallayout class='monospaced'>
+     bootimg-pcbios.py
+                  .
+                  .
+                  .
+        class BootimgPcbiosPlugin(SourcePlugin):
+        """
+        Create MBR boot partition and install syslinux on it.
+        """
+
+        name = 'bootimg-pcbios'
+                  .
+                  .
+                  .
+        @classmethod
+        def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
+                                 oe_builddir, bootimg_dir, kernel_dir,
+                                 rootfs_dir, native_sysroot):
+            """
+            Called to do the actual content population for a partition i.e. it
+            'prepares' the partition to be incorporated into the image.
+            In this case, prepare content for legacy bios boot partition.
+            """
+                  .
+                  .
+                  .
+                </literallayout>
+                If a subclass (plug-in) itself does not implement a
+                particular function, Wic locates and uses the default
+                version in the superclass.
+                It is for this reason that all source plug-ins are derived
+                from the <filename>SourcePlugin</filename> class.
+            </para>
+
+            <para>
+                The <filename>SourcePlugin</filename> class defined in
+                the <filename>pluginbase.py</filename> file defines
+                a set of methods that source plug-ins can implement or
+                override.
+                Any plug-ins (subclass of
+                <filename>SourcePlugin</filename>) that do not implement
+                a particular method inherit the implementation of the
+                method from the <filename>SourcePlugin</filename> class.
+                For more information, see the
+                <filename>SourcePlugin</filename> class in the
+                <filename>pluginbase.py</filename> file for details:
+            </para>
+
+            <para>
+                The following list describes the methods implemented in the
+                <filename>SourcePlugin</filename> class:
+                <itemizedlist>
+                    <listitem><para>
+                        <emphasis><filename>do_prepare_partition()</filename>:</emphasis>
+                        Called to populate a partition with actual content.
+                        In other words, the method prepares the final
+                        partition image that is incorporated into the
+                        disk image.
+                        </para></listitem>
+                    <listitem><para>
+                        <emphasis><filename>do_configure_partition()</filename>:</emphasis>
+                        Called before
+                        <filename>do_prepare_partition()</filename> to
+                        create custom configuration files for a partition
+                        (e.g. syslinux or grub configuration files).
+                        </para></listitem>
+                    <listitem><para>
+                        <emphasis><filename>do_install_disk()</filename>:</emphasis>
+                        Called after all partitions have been prepared and
+                        assembled into a disk image.
+                        This method provides a hook to allow finalization
+                        of a disk image (e.g. writing an MBR).
+                        </para></listitem>
+                    <listitem><para>
+                        <emphasis><filename>do_stage_partition()</filename>:</emphasis>
+                        Special content-staging hook called before
+                        <filename>do_prepare_partition()</filename>.
+                        This method is normally empty.</para>
+
+                        <para>Typically, a partition just uses the passed-in
+                        parameters (e.g. the unmodified value of
+                        <filename>bootimg_dir</filename>).
+                        However, in some cases, things might need to be
+                        more tailored.
+                        As an example, certain files might additionally
+                        need to be taken from
+                        <filename>bootimg_dir + /boot</filename>.
+                        This hook allows those files to be staged in a
+                        customized fashion.
+                        <note>
+                            <filename>get_bitbake_var()</filename>
+                            allows you to access non-standard variables
+                            that you might want to use for this
+                            behavior.
+                        </note>
+                        </para></listitem>
+                </itemizedlist>
+            </para>
+
+            <para>
+                You can extend the source plug-in mechanism.
+                To add more hooks, create more source plug-in methods
+                within <filename>SourcePlugin</filename> and the
+                corresponding derived subclasses.
+                The code that calls the plug-in methods uses the
+                <filename>plugin.get_source_plugin_methods()</filename>
+                function to find the method or methods needed by the call.
+                Retrieval of those methods is accomplished by filling up
+                a dict with keys that contain the method names of interest.
+                On success, these will be filled in with the actual
+                methods.
+                See the Wic implementation for examples and details.
+            </para>
+        </section>
+
         <section id='wic-usage-examples'>
             <title>Examples</title>
 
index 1dd36b242c9449fd28347e7c1b96e1a5b3721df6..ab3d1b8ef18c3bc55590ae606c50da83146fcf1f 100644 (file)
                     The most common value for this option is "rootfs", but you
                     can use any value that maps to a valid source plug-in.
                     For information on the source plug-ins, see the
-                    "<link linkend='wic-plug-ins-interface'>Wic Plug-Ins Interface</link>"
-                    section.</para>
+                    "<ulink url='&YOCTO_DOCS_DEV_URL;#wic-using-the-wic-plug-ins-interface'>Using the Wic Plug-Ins Interface</ulink>"
+                    section in the Yocto Project Development Tasks Manual.
+                    </para>
 
                     <para>If you use <filename>--source rootfs</filename>, Wic
                     creates a partition as large as needed and to fill it with
index 1ac020a5cf4073bd521597708fa67f74ba75c627..5769cd619a74c1d996f0f1a89e20f672863fdb68 100644 (file)
     </para>
 </section>
 
-<section id='wic-plug-ins-interface'>
-    <title>Wic Plug-Ins Interface</title>
-
-    <para>
-        You can extend and specialize Wic functionality by using
-        Wic plug-ins.
-        This section explains the Wic plug-in interface.
-        For information on using Wic in general, see the
-        "<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images-using-wic'>Creating Partitioned Images Using Wic</ulink>"
-        section in the Yocto Project Development Tasks Manual.
-        <note>
-            Wic plug-ins consist of "source" and "imager" plug-ins.
-            Imager plug-ins are beyond the scope of this section.
-        </note>
-    </para>
-
-    <para>
-        Source plug-ins provide a mechanism to customize partition
-        content during the Wic image generation process.
-        You can use source plug-ins to map values that you specify
-        using <filename>--source</filename> commands in kickstart
-        files (i.e. <filename>*.wks</filename>) to a plug-in
-        implementation used to populate a given partition.
-        <note>
-            If you use plug-ins that have build-time dependencies
-            (e.g. native tools, bootloaders, and so forth)
-            when building a Wic image, you need to specify those
-            dependencies using the
-            <link linkend='var-WKS_FILE_DEPENDS'><filename>WKS_FILE_DEPENDS</filename></link>
-            variable.
-        </note>
-    </para>
-
-    <para>
-        Source plug-ins are subclasses defined in plug-in files.
-        As shipped, the Yocto Project provides several plug-in
-        files.
-        You can see the source plug-in files that ship with the
-        Yocto Project
-        <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/scripts/lib/wic/plugins/source'>here</ulink>.
-        Each of these plug-in files contain source plug-ins that
-        are designed to populate a specific Wic image partition.
-    </para>
-
-    <para>
-        Source plug-ins are subclasses of the
-        <filename>SourcePlugin</filename> class, which is
-        defined in the
-        <filename>poky/scripts/lib/wic/pluginbase.py</filename>
-        file.
-        For example, the <filename>BootimgEFIPlugin</filename>
-        source plug-in found in the
-        <filename>bootimg-efi.py</filename> file is a subclass of
-        the <filename>SourcePlugin</filename> class, which is found
-        in the <filename>pluginbase.py</filename> file.
-    </para>
-
-    <para>
-        You can also implement source plug-ins in a layer outside
-        of the Source Repositories (external layer).
-        To do so, be sure that your plug-in files are located in
-        a directory whose path is
-        <filename>scripts/lib/wic/plugins/source/</filename>
-        within your external layer.
-        When the plug-in files are located there, the source
-        plug-ins they contain are made available to Wic.
-    </para>
-
-    <para>
-        When the Wic implementation needs to invoke a
-        partition-specific implementation, it looks for the plug-in
-        with the same name as the <filename>--source</filename>
-        parameter used in the kickstart file given to that
-        partition.
-        For example, if the partition is set up using the following
-        command in a kickstart file:
-        <literallayout class='monospaced'>
-     part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
-        </literallayout>
-        The methods defined as class members of the matching
-        source plug-in (i.e. <filename>bootimg-pcbios</filename>)
-        in the <filename>bootimg-pcbios.py</filename> plug-in file
-        are used.
-    </para>
-
-    <para>
-        To be more concrete, here is the corresponding plug-in
-        definition from the <filename>bootimg-pcbios.py</filename>
-        file for the previous command along with an example
-        method called by the Wic implementation when it needs to
-        prepare a partition using an implementation-specific
-        function:
-        <literallayout class='monospaced'>
-     bootimg-pcbios.py
-                  .
-                  .
-                  .
-        class BootimgPcbiosPlugin(SourcePlugin):
-        """
-        Create MBR boot partition and install syslinux on it.
-        """
-
-        name = 'bootimg-pcbios'
-                  .
-                  .
-                  .
-        @classmethod
-        def do_prepare_partition(cls, part, source_params, creator, cr_workdir,
-                                 oe_builddir, bootimg_dir, kernel_dir,
-                                 rootfs_dir, native_sysroot):
-            """
-            Called to do the actual content population for a partition i.e. it
-            'prepares' the partition to be incorporated into the image.
-            In this case, prepare content for legacy bios boot partition.
-            """
-                  .
-                  .
-                  .
-        </literallayout>
-        If a subclass (plug-in) itself does not implement a
-        particular function, Wic locates and uses the default
-        version in the superclass.
-        It is for this reason that all source plug-ins are derived
-        from the <filename>SourcePlugin</filename> class.
-    </para>
-
-    <para>
-        The <filename>SourcePlugin</filename> class defined in
-        the <filename>pluginbase.py</filename> file defines
-        a set of methods that source plug-ins can implement or
-        override.
-        Any plug-ins (subclass of
-        <filename>SourcePlugin</filename>) that do not implement
-        a particular method inherit the implementation of the
-        method from the <filename>SourcePlugin</filename> class.
-        For more information, see the
-        <filename>SourcePlugin</filename> class in the
-        <filename>pluginbase.py</filename> file for details:
-    </para>
-
-    <para>
-        The following list describes the methods implemented in the
-        <filename>SourcePlugin</filename> class:
-        <itemizedlist>
-            <listitem><para>
-                <emphasis><filename>do_prepare_partition()</filename>:</emphasis>
-                Called to populate a partition with actual content.
-                In other words, the method prepares the final
-                partition image that is incorporated into the
-                disk image.
-                </para></listitem>
-            <listitem><para>
-                <emphasis><filename>do_configure_partition()</filename>:</emphasis>
-                Called before
-                <filename>do_prepare_partition()</filename> to
-                create custom configuration files for a partition
-                (e.g. syslinux or grub configuration files).
-                </para></listitem>
-            <listitem><para>
-                <emphasis><filename>do_install_disk()</filename>:</emphasis>
-                Called after all partitions have been prepared and
-                assembled into a disk image.
-                This method provides a hook to allow finalization
-                of a disk image (e.g. writing an MBR).
-                </para></listitem>
-            <listitem><para>
-                <emphasis><filename>do_stage_partition()</filename>:</emphasis>
-                Special content-staging hook called before
-                <filename>do_prepare_partition()</filename>.
-                This method is normally empty.</para>
-
-                <para>Typically, a partition just uses the passed-in
-                parameters (e.g. the unmodified value of
-                <filename>bootimg_dir</filename>).
-                However, in some cases, things might need to be
-                more tailored.
-                As an example, certain files might additionally
-                need to be taken from
-                <filename>bootimg_dir + /boot</filename>.
-                This hook allows those files to be staged in a
-                customized fashion.
-                <note>
-                    <filename>get_bitbake_var()</filename>
-                    allows you to access non-standard variables
-                    that you might want to use for this
-                    behavior.
-                </note>
-                </para></listitem>
-        </itemizedlist>
-    </para>
-
-    <para>
-        You can extend the source plug-in mechanism.
-        To add more hooks, create more source plug-in methods
-        within <filename>SourcePlugin</filename> and the
-        corresponding derived subclasses.
-        The code that calls the plug-in methods uses the
-        <filename>plugin.get_source_plugin_methods()</filename>
-        function to find the method or methods needed by the call.
-        Retrieval of those methods is accomplished by filling up
-        a dict with keys that contain the method names of interest.
-        On success, these will be filled in with the actual
-        methods.
-        See the Wic implementation for examples and details.
-    </para>
-</section>
-
 <section id="wayland">
     <title>Wayland</title>