All of lore.kernel.org
 help / color / mirror / Atom feed
* EXTRA_IMAGEDEPENDS documentation
@ 2011-11-16 18:09 Darren Hart
  2011-11-16 20:52 ` Rifenbark, Scott M
  0 siblings, 1 reply; 3+ messages in thread
From: Darren Hart @ 2011-11-16 18:09 UTC (permalink / raw)
  To: Yocto Project

For the situation where a recipe is required to build a final image, but
the output is not needed in the root filesystem, the EXTRA_IMAGEDEPENDS
variable can be used to define this dependency. Bootloaders seem to be
the common example for this (such as the beagleboard dependency on uboot).

This variable is not defined in the poky manual nor in the documentation
tags (meta/conf/documentation.conf).

Another aspect of this that could be made more explicit in the manual is
that the various *RRECOMMENDS and *RDEPENDS variables impact what is
installed in the root filesystem (because they operate on packages - not
recipes). Scott, I'd recommend a few extra words in the *RRECOMMENDS and
*RDEPENDS documentation to this effect. For example, "... a list of
packages to install TO THE ROOT FILESYSTEM ...".

As for the EXTRA_IMAGEDEPENDS definition, perhaps something like this:

in documentation.conf:

EXTRA_IMAGEDEPENDS[doc] = "Recipes to build that do not install packages
to the root filesystem, such as bootloaders."

in the reference manual:

EXTRA_IMAGEDEPENDS
A list of recipes to be built that do not provide packages to be
installed in the root filesystem. This is typically used to specify a
required bootloader in a machine config.

Note: To add packages to the root filesystem, see the various *DEPENDS
and *RECOMMENDS variables.

Scott, I'll leave the reference manual changes to you. RP, if you agree
with my doc tag, I can submit a patch for that.

Thanks,

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: EXTRA_IMAGEDEPENDS documentation
  2011-11-16 18:09 EXTRA_IMAGEDEPENDS documentation Darren Hart
@ 2011-11-16 20:52 ` Rifenbark, Scott M
  2011-11-16 22:11   ` Darren Hart
  0 siblings, 1 reply; 3+ messages in thread
From: Rifenbark, Scott M @ 2011-11-16 20:52 UTC (permalink / raw)
  To: Darren Hart, Yocto Project

Darren, 

Regarding *DEPENDS....  Right now these variables are documented in the YP Reference Manual.  Your email says that the *DEPENDS variables impact the root filesystem.  That is sort of vague.  
Can I just add that to each of these descriptions below?

	DEPENDS - A list of build-time dependencies for a given recipe.  
                The variable indicates recipes that must have been 
                staged before a particular recipe can configure.

	DISTRO_EXTRA_RDEPENDS - The list of packages required by the 
                distribution.

	LAYERDEPENDS - Lists the layers that this recipe depends upon, 
                separated by spaces.  Optionally, you can dspecify a 
                specific layer version for a dependency by adding it 
                to the end of the layer name with a colon 
                (e.g. "anotherlayer:3" to be compared against 
                LAYERVERSION_anotherlayer in this case).  An error will 
                be produced if any dependency is missing or the 
                version numbers do not match exactly (if specified).  
                This variable is used in the conf/layer.conf file and
                must be suffixed with the name of the specific layer 
                (e.g. LAYERDEPENDS_mylayer).

	MACHINE_ESSENTIAL_EXTRA_RDEPENDS - A list of required packages 
                to install as part of the package being built.  The 
                build process depends on these packages being present.  
                Furthermore, because this is a "machine essential" 
                variable, the list of packages are essential for the 
                machine to boot.  The impact of this variable affects 
                images based on task-core-boot including the 
                core-image-minimal image.

                This variable is similar to the 
                MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable with the 
                exception that the package being built has a build 
                dependency on the variable's list of packages.  In other 
                words, the image will not beuild if a file in this list 
                is not found.

                For example, suppose you are building a a runtime 
                package that depends on a certain disk driver.  In this 
                case, you would use the following:

                  MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "<disk_driver>"

	MACHINE_EXTRA_RDEPENDS - A list of optional but non-machine 
                    essential packages to install as part of the package 
                    being built.  Even though these packages are not 
                    essential for the machine to boot, the build process 
                    depends on them being present.  The impact of this 
                    variable affects all images based on task-base, which 
                    does not include the core-image-minimal or 
                    core-image-basic images.

                    This variable is similar to the 
                    MACHINE_EXTRA_RRECOMMENDS variable with the exception 
                    that the package being built has a build dependency on 
                    the variable's list of packages.  In other words, the 
                    image will not build if a file in this list is not 
                    found.

                    An example is a machine that might or might not have a 
                    WiFi card.  The package containing the WiFi support is 
                    not essential for the machine to boot the image.
                    If it is not there, the machine will boot but not be able 
                    to use the WiFi functionality.  However, if you include 
                    the package with the WiFi support as part of the 
                    variable's package list, the build process depends on 
                    finding the package.  In this case, you would use the 
                    following:

                        MACHINE_EXTRA_RDEPENDS += "<wifi_driver>"

	RDEPENDS - A list of packages that must be installed as part of a 
                    package being built.  The package being built has a runtime 
                    dependency on the packages in the variable's list.  In 
                    other words, in order for the package being built to run 
                    correctly, it depends on these listed packages.  If a 
                    package in this list cannot be found during the build, 
                    the build will not complete.

                    Because the RDEPENDS variable applies to packages 
                    being built, you should always attach an override to the 
                    variable to specify the particular runtime package
                    that has the dependency.  For example, suppose you are 
                    building a development package that depends on the 
                    perl package.  In this case, you would use the following 
                    RDEPENDS statement:

                        RDEPENDS_${PN}-dev += "perl"

                    In the example, the package name (${PN}-dev) must 
                    appear as it would in the PACKAGES namespace before any 
                    renaming of the output package by classes like 
                    debian.bbclass.

                    Some automatic handling occurs around the 
                    RDEPENDS variable:

                      * shlibdeps:  If a runtime package contains a shared 
                            library (.so), the build processes the library 
                            in order to determine other libraries to which it 
                            is dynamically linked.  The build process adds 
                            these libraries to RDEPENDS to create the runtime 
                            package.

                      * pcdeps:  If the package ships a pkg-config information 
                            file, the build process uses this file to add items
                            to the RDEPENDS variable to create the runtime 
                            packages.
	
It is safe to note in each of these descriptions that the root filesystem is impacted?  


-----Original Message-----
From: Darren Hart [mailto:dvhart@linux.intel.com] 
Sent: Wednesday, November 16, 2011 10:10 AM
To: Yocto Project
Cc: Rifenbark, Scott M; Richard Purdie
Subject: EXTRA_IMAGEDEPENDS documentation

For the situation where a recipe is required to build a final image, but
the output is not needed in the root filesystem, the EXTRA_IMAGEDEPENDS
variable can be used to define this dependency. Bootloaders seem to be
the common example for this (such as the beagleboard dependency on uboot).

This variable is not defined in the poky manual nor in the documentation
tags (meta/conf/documentation.conf).

Another aspect of this that could be made more explicit in the manual is
that the various *RRECOMMENDS and *RDEPENDS variables impact what is
installed in the root filesystem (because they operate on packages - not
recipes). Scott, I'd recommend a few extra words in the *RRECOMMENDS and
*RDEPENDS documentation to this effect. For example, "... a list of
packages to install TO THE ROOT FILESYSTEM ...".

As for the EXTRA_IMAGEDEPENDS definition, perhaps something like this:

in documentation.conf:

EXTRA_IMAGEDEPENDS[doc] = "Recipes to build that do not install packages
to the root filesystem, such as bootloaders."

in the reference manual:

EXTRA_IMAGEDEPENDS
A list of recipes to be built that do not provide packages to be
installed in the root filesystem. This is typically used to specify a
required bootloader in a machine config.

Note: To add packages to the root filesystem, see the various *DEPENDS
and *RECOMMENDS variables.

Scott, I'll leave the reference manual changes to you. RP, if you agree
with my doc tag, I can submit a patch for that.

Thanks,

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: EXTRA_IMAGEDEPENDS documentation
  2011-11-16 20:52 ` Rifenbark, Scott M
@ 2011-11-16 22:11   ` Darren Hart
  0 siblings, 0 replies; 3+ messages in thread
From: Darren Hart @ 2011-11-16 22:11 UTC (permalink / raw)
  To: Rifenbark, Scott M; +Cc: Yocto Project



On 11/16/2011 12:52 PM, Rifenbark, Scott M wrote:
> Darren, 
> 
> Regarding *DEPENDS....  Right now these variables are documented in the YP Reference Manual.  Your email says that the *DEPENDS variables impact the root filesystem.  That is sort of vague.  
> Can I just add that to each of these descriptions below?

I believe so, yes. Any place we refer to "packages" we are talking about
the root filesystem. One exception below is LAYERDEPENDS, that one does
not impact the root filesystem.

--
Darren

> 
> 	DEPENDS - A list of build-time dependencies for a given recipe.  
>                 The variable indicates recipes that must have been 
>                 staged before a particular recipe can configure.
> 
> 	DISTRO_EXTRA_RDEPENDS - The list of packages required by the 
>                 distribution.
> 
> 	LAYERDEPENDS - Lists the layers that this recipe depends upon, 
>                 separated by spaces.  Optionally, you can dspecify a 
>                 specific layer version for a dependency by adding it 
>                 to the end of the layer name with a colon 
>                 (e.g. "anotherlayer:3" to be compared against 
>                 LAYERVERSION_anotherlayer in this case).  An error will 
>                 be produced if any dependency is missing or the 
>                 version numbers do not match exactly (if specified).  
>                 This variable is used in the conf/layer.conf file and
>                 must be suffixed with the name of the specific layer 
>                 (e.g. LAYERDEPENDS_mylayer).
> 
> 	MACHINE_ESSENTIAL_EXTRA_RDEPENDS - A list of required packages 
>                 to install as part of the package being built.  The 
>                 build process depends on these packages being present.  
>                 Furthermore, because this is a "machine essential" 
>                 variable, the list of packages are essential for the 
>                 machine to boot.  The impact of this variable affects 
>                 images based on task-core-boot including the 
>                 core-image-minimal image.
> 
>                 This variable is similar to the 
>                 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable with the 
>                 exception that the package being built has a build 
>                 dependency on the variable's list of packages.  In other 
>                 words, the image will not beuild if a file in this list 
>                 is not found.
> 
>                 For example, suppose you are building a a runtime 
>                 package that depends on a certain disk driver.  In this 
>                 case, you would use the following:
> 
>                   MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "<disk_driver>"
> 
> 	MACHINE_EXTRA_RDEPENDS - A list of optional but non-machine 
>                     essential packages to install as part of the package 
>                     being built.  Even though these packages are not 
>                     essential for the machine to boot, the build process 
>                     depends on them being present.  The impact of this 
>                     variable affects all images based on task-base, which 
>                     does not include the core-image-minimal or 
>                     core-image-basic images.
> 
>                     This variable is similar to the 
>                     MACHINE_EXTRA_RRECOMMENDS variable with the exception 
>                     that the package being built has a build dependency on 
>                     the variable's list of packages.  In other words, the 
>                     image will not build if a file in this list is not 
>                     found.
> 
>                     An example is a machine that might or might not have a 
>                     WiFi card.  The package containing the WiFi support is 
>                     not essential for the machine to boot the image.
>                     If it is not there, the machine will boot but not be able 
>                     to use the WiFi functionality.  However, if you include 
>                     the package with the WiFi support as part of the 
>                     variable's package list, the build process depends on 
>                     finding the package.  In this case, you would use the 
>                     following:
> 
>                         MACHINE_EXTRA_RDEPENDS += "<wifi_driver>"
> 
> 	RDEPENDS - A list of packages that must be installed as part of a 
>                     package being built.  The package being built has a runtime 
>                     dependency on the packages in the variable's list.  In 
>                     other words, in order for the package being built to run 
>                     correctly, it depends on these listed packages.  If a 
>                     package in this list cannot be found during the build, 
>                     the build will not complete.
> 
>                     Because the RDEPENDS variable applies to packages 
>                     being built, you should always attach an override to the 
>                     variable to specify the particular runtime package
>                     that has the dependency.  For example, suppose you are 
>                     building a development package that depends on the 
>                     perl package.  In this case, you would use the following 
>                     RDEPENDS statement:
> 
>                         RDEPENDS_${PN}-dev += "perl"
> 
>                     In the example, the package name (${PN}-dev) must 
>                     appear as it would in the PACKAGES namespace before any 
>                     renaming of the output package by classes like 
>                     debian.bbclass.
> 
>                     Some automatic handling occurs around the 
>                     RDEPENDS variable:
> 
>                       * shlibdeps:  If a runtime package contains a shared 
>                             library (.so), the build processes the library 
>                             in order to determine other libraries to which it 
>                             is dynamically linked.  The build process adds 
>                             these libraries to RDEPENDS to create the runtime 
>                             package.
> 
>                       * pcdeps:  If the package ships a pkg-config information 
>                             file, the build process uses this file to add items
>                             to the RDEPENDS variable to create the runtime 
>                             packages.
> 	
> It is safe to note in each of these descriptions that the root filesystem is impacted?  
> 
> 
> -----Original Message-----
> From: Darren Hart [mailto:dvhart@linux.intel.com] 
> Sent: Wednesday, November 16, 2011 10:10 AM
> To: Yocto Project
> Cc: Rifenbark, Scott M; Richard Purdie
> Subject: EXTRA_IMAGEDEPENDS documentation
> 
> For the situation where a recipe is required to build a final image, but
> the output is not needed in the root filesystem, the EXTRA_IMAGEDEPENDS
> variable can be used to define this dependency. Bootloaders seem to be
> the common example for this (such as the beagleboard dependency on uboot).
> 
> This variable is not defined in the poky manual nor in the documentation
> tags (meta/conf/documentation.conf).
> 
> Another aspect of this that could be made more explicit in the manual is
> that the various *RRECOMMENDS and *RDEPENDS variables impact what is
> installed in the root filesystem (because they operate on packages - not
> recipes). Scott, I'd recommend a few extra words in the *RRECOMMENDS and
> *RDEPENDS documentation to this effect. For example, "... a list of
> packages to install TO THE ROOT FILESYSTEM ...".
> 
> As for the EXTRA_IMAGEDEPENDS definition, perhaps something like this:
> 
> in documentation.conf:
> 
> EXTRA_IMAGEDEPENDS[doc] = "Recipes to build that do not install packages
> to the root filesystem, such as bootloaders."
> 
> in the reference manual:
> 
> EXTRA_IMAGEDEPENDS
> A list of recipes to be built that do not provide packages to be
> installed in the root filesystem. This is typically used to specify a
> required bootloader in a machine config.
> 
> Note: To add packages to the root filesystem, see the various *DEPENDS
> and *RECOMMENDS variables.
> 
> Scott, I'll leave the reference manual changes to you. RP, if you agree
> with my doc tag, I can submit a patch for that.
> 
> Thanks,
> 

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-11-16 22:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-16 18:09 EXTRA_IMAGEDEPENDS documentation Darren Hart
2011-11-16 20:52 ` Rifenbark, Scott M
2011-11-16 22:11   ` Darren Hart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.