diff --git a/documentation/mega-manual/figures/package-feeds.png b/documentation/mega-manual/figures/package-feeds.png index 4bc311f3d6..37c9c32506 100644 Binary files a/documentation/mega-manual/figures/package-feeds.png and b/documentation/mega-manual/figures/package-feeds.png differ diff --git a/documentation/ref-manual/closer-look.xml b/documentation/ref-manual/closer-look.xml index eaf07d665f..27f674ae2f 100644 --- a/documentation/ref-manual/closer-look.xml +++ b/documentation/ref-manual/closer-look.xml @@ -640,7 +640,9 @@ Package feeds are an intermediary step in the build process. - BitBake generates packages whose types are defined by the + The OpenEmbedded build system provides classes to generate + different package types, and you specify which classes to enable + through the PACKAGE_CLASSES variable. Before placing the packages into package feeds, @@ -651,22 +653,41 @@ - The package feed area resides in - tmp/deploy of the Build Directory. - Folders are created that correspond to the package type - (IPK, DEB, or RPM) created. - Further organization is derived through the value of the - PACKAGE_ARCH - variable for each package. - For example, packages can exist for the i586 or qemux86 - architectures. - The package files themselves reside within the appropriate - architecture folder. + The package feed area resides in the Build Directory. + The directory the build system uses to temporarily store packages + is determined by a combination of variables and the particular + package manager in use. + See the "Package Feeds" box in the illustration and note the + information to the right of that area. + In particular, the following defines where package files are + kept: + + DEPLOY_DIR: + Defined as tmp/deploy in the Build + Directory. + + DEPLOY_DIR_*: + Depending on the package manager used, the package type + sub-folder. + Given RPM, IPK, or DEB packaging and tarball creation, the + DEPLOY_DIR_RPM, + DEPLOY_DIR_IPK, + DEPLOY_DIR_DEB, + or + DEPLOY_DIR_TAR, + variables are used, respectively. + + PACKAGE_ARCH: + Defines architecture-specific sub-folders. + For example, packages could exist for the i586 or qemux86 + architectures. + + BitBake uses the do_package_write_* tasks to - place generated packages into the package holding area (e.g. + generate packages and place them into the package holding area (e.g. do_package_write_ipk for IPK packages). See the "do_package_write_deb", @@ -675,6 +696,13 @@ and "do_package_write_tar" sections for additional information. + As an example, consider a scenario where an IPK packaging manager + is being used and package architecture support for both i586 + and qemux86 exist. + Packages for the i586 architecture are placed in + build/tmp/deploy/ipk/i586, while packages for + the qemux86 architecture are placed in + build/tmp/deploy/ipk/qemux86. diff --git a/documentation/ref-manual/figures/package-feeds.png b/documentation/ref-manual/figures/package-feeds.png index 4bc311f3d6..37c9c32506 100644 Binary files a/documentation/ref-manual/figures/package-feeds.png and b/documentation/ref-manual/figures/package-feeds.png differ diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml index 880badda73..4eb61c5ba5 100644 --- a/documentation/ref-manual/ref-classes.xml +++ b/documentation/ref-manual/ref-classes.xml @@ -2263,11 +2263,12 @@ The package_deb class - provides support for creating packages that use the - .deb file format. - The class ensures the packages are written out to the - ${DEPLOY_DIR}/deb - directory in a .deb file format. + provides support for creating packages that use the Debian + (i.e. .deb) file format. + The class ensures the packages are written out in a + .deb file format to the + ${DEPLOY_DIR_DEB} + directory. @@ -2284,11 +2285,12 @@ The package_ipk class - provides support for creating packages that use the - .ipk file format. - The class ensures the packages are written out to the - ${DEPLOY_DIR}/ipk - directory in a .ipk file format. + provides support for creating packages that use the IPK + (i.e. .ipk) file format. + The class ensures the packages are written out in a + .ipk file format to the + ${DEPLOY_DIR_IPK} + directory. @@ -2305,11 +2307,12 @@ The package_rpm class - provides support for creating packages that use the - .rpm file format. - The class ensures the packages are written out to the - ${DEPLOY_DIR}/rpm - directory in a .rpm file format. + provides support for creating packages that use the RPM + (i.e. .rpm) file format. + The class ensures the packages are written out in a + .rpm file format to the + ${DEPLOY_DIR_RPM} + directory. @@ -2324,19 +2327,13 @@
<filename>package_tar.bbclass</filename> - Warning - The package_tar class is broken and is not - supported. - It is recommended that you do not use it. - - - The package_tar - class provides support for creating packages that use the - .tar file format. - The class ensures the packages are written out to the - ${DEPLOY_DIR}/tar - directory in a .tar file format. + The package_tar class + provides support for creating tarballs. + The class ensures the packages are written out in a + tarball format to the + ${DEPLOY_DIR_TAR} + directory. diff --git a/documentation/ref-manual/ref-tasks.xml b/documentation/ref-manual/ref-tasks.xml index 2b3031538f..59b4d9607a 100644 --- a/documentation/ref-manual/ref-tasks.xml +++ b/documentation/ref-manual/ref-tasks.xml @@ -144,9 +144,13 @@ <filename>do_package_write_deb</filename> - Creates the actual DEB packages and places them in the - Package Feeds - area. + Creates Debian packages (i.e. *.deb files) and + places them in the + ${DEPLOY_DIR_DEB} + directory in the package feeds area. + For more information, see the + "Package Feeds" + section.
@@ -154,9 +158,13 @@ <filename>do_package_write_ipk</filename> - Creates the actual IPK packages and places them in the - Package Feeds - area. + Creates IPK packages (i.e. *.ipk files) and + places them in the + ${DEPLOY_DIR_IPK} + directory in the package feeds area. + For more information, see the + "Package Feeds" + section. @@ -164,9 +172,13 @@ <filename>do_package_write_rpm</filename> - Creates the actual RPM packages and places them in the - Package Feeds - area. + Creates RPM packages (i.e. *.rpm files) and + places them in the + ${DEPLOY_DIR_RPM} + directory in the package feeds area. + For more information, see the + "Package Feeds" + section. @@ -174,9 +186,12 @@ <filename>do_package_write_tar</filename> - Creates tar archives for packages and places them in the - Package Feeds - area. + Creates tarballs and places them in the + ${DEPLOY_DIR_TAR} + directory in the package feeds area. + For more information, see the + "Package Feeds" + section. diff --git a/documentation/ref-manual/ref-variables.xml b/documentation/ref-manual/ref-variables.xml index c0cae81212..ecac2b6c26 100644 --- a/documentation/ref-manual/ref-variables.xml +++ b/documentation/ref-manual/ref-variables.xml @@ -2686,13 +2686,55 @@ section. For more detail on the contents of the deploy directory, see the - "Images" and + "Images", + "Package Feeds", + and "Application Development SDK" sections.
+ DEPLOY_DIR_DEB + + DEPLOY_DIR_DEB[doc] = "Points to a Debian-specific area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system." + + + + + Points to the area that the OpenEmbedded build system uses + to place Debian packages that are ready to be used outside + of the build system. + This variable applies only when + PACKAGE_CLASSES + contains "package_deb". + + + + The BitBake configuration file initially defines the + DEPLOY_DIR_DEB variable as a + sub-folder of + DEPLOY_DIR: + + DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb" + + + + + The + package_deb + class uses the + DEPLOY_DIR_DEB variable to make sure + the + do_package_write_deb + task writes Debian packages into the appropriate folder. + For more information on how packaging works, see the + "Package Feeds" + section. + + + + DEPLOY_DIR_IMAGE DEPLOY_DIR_IMAGE[doc] = "Points to the area that the OpenEmbedded build system uses to place images and other associated output files that are ready to be deployed onto the target machine." @@ -2724,6 +2766,123 @@ + DEPLOY_DIR_IPK + + DEPLOY_DIR_IPK[doc] = "Points to a IPK-specific area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system." + + + + + Points to the area that the OpenEmbedded build system uses + to place IPK packages that are ready to be used outside of + the build system. + This variable applies only when + PACKAGE_CLASSES + contains "package_ipk". + + + + The BitBake configuration file initially defines this + variable as a sub-folder of + DEPLOY_DIR: + + DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk" + + + + + The + package_ipk + class uses the + DEPLOY_DIR_IPK variable to make sure + the + do_package_write_ipk + task writes IPK packages into the appropriate folder. + For more information on how packaging works, see the + "Package Feeds" + section. + + + + + DEPLOY_DIR_RPM + + DEPLOY_DIR_RPM[doc] = "Points to a RPM-specific area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system." + + + + + Points to the area that the OpenEmbedded build system uses + to place RPM packages that are ready to be used outside + of the build system. + This variable applies only when + PACKAGE_CLASSES + contains "package_rpm". + + + + The BitBake configuration file initially defines this + variable as a sub-folder of + DEPLOY_DIR: + + DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm" + + + + + The + package_rpm + class uses the + DEPLOY_DIR_RPM variable to make sure + the + do_package_write_rpm + task writes RPM packages into the appropriate folder. + For more information on how packaging works, see the + "Package Feeds" + section. + + + + + DEPLOY_DIR_TAR + + DEPLOY_DIR_TAR[doc] = "Points to a tarball area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system." + + + + + Points to the area that the OpenEmbedded build system uses + to place tarballs that are ready to be used outside of + the build system. + This variable applies only when + PACKAGE_CLASSES + contains "package_tar". + + + + The BitBake configuration file initially defines this + variable as a sub-folder of + DEPLOY_DIR: + + DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar" + + + + + The + package_tar + class uses the + DEPLOY_DIR_TAR variable to make sure + the + do_package_write_tar + task writes TAR packages into the appropriate folder. + For more information on how packaging works, see the + "Package Feeds" + section. + + + + DEPLOYDIR DEPLOYDIR[doc] = "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."