| <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
| "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" |
| [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > |
| |
| <chapter id='migration'> |
| <title>Migrating to a Newer Yocto Project Release</title> |
| |
| <para> |
| This chapter provides information you can use to migrate work to a |
| newer Yocto Project release. You can find the same information in the |
| release notes for a given release. |
| </para> |
| |
| <section id='general-migration-considerations'> |
| <title>General Migration Considerations</title> |
| |
| <para> |
| Some considerations are not tied to a specific Yocto Project |
| release. |
| This section presents information you should consider when |
| migrating to any new Yocto Project release. |
| <itemizedlist> |
| <listitem><para><emphasis>Dealing with Customized Recipes</emphasis>: |
| Issues could arise if you take older recipes that contain |
| customizations and simply copy them forward expecting them |
| to work after you migrate to new Yocto Project metadata. |
| For example, suppose you have a recipe in your layer that is |
| a customized version of a core recipe copied from the earlier |
| release, rather than through the use of an append file. |
| When you migrate to a newer version of Yocto Project, the |
| metadata (e.g. perhaps an include file used by the recipe) |
| could have changed in a way that would break the build. |
| Say, for example, a function is removed from an include file |
| and the customized recipe tries to call that function. |
| </para> |
| |
| <para>You could "forward-port" all your customizations in your |
| recipe so that everything works for the new release. |
| However, this is not the optimal solution as you would have |
| to repeat this process with each new release if changes |
| occur that give rise to problems.</para> |
| |
| <para>The better solution (where practical) is to use append |
| files (<filename>*.bbappend</filename>) to capture any |
| customizations you want to make to a recipe. |
| Doing so, isolates your changes from the main recipe making |
| them much more manageable. |
| However, sometimes it is not practical to use an append |
| file. |
| A good example of this is when introducing a newer or older |
| version of a recipe in another layer.</para> |
| </listitem> |
| <listitem><para><emphasis>Updating Append Files</emphasis>: |
| Since append files generally only contain your customizations, |
| they often do not need to be adjusted for new releases. |
| However, if the <filename>.bbappend</filename> file is |
| specific to a particular version of the recipe (i.e. its |
| name does not use the % wildcard) and the version of the |
| recipe to which it is appending has changed, then you will |
| at a minimum need to rename the append file to match the |
| name of the recipe file. |
| A mismatch between an append file and its corresponding |
| recipe file (<filename>.bb</filename>) will |
| trigger an error during parsing.</para> |
| <para>Depending on the type of customization the append file |
| applies, other incompatibilities might occur when you |
| upgrade. |
| For example, if your append file applies a patch and the |
| recipe to which it is appending is updated to a newer |
| version, the patch might no longer apply. |
| If this is the case and assuming the patch is still needed, |
| you must modify the patch file so that it does apply. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='moving-to-the-yocto-project-1.3-release'> |
| <title>Moving to the Yocto Project 1.3 Release</title> |
| |
| <para> |
| This section provides migration information for moving to the |
| Yocto Project 1.3 Release from the prior release. |
| </para> |
| |
| <section id='1.3-local-configuration'> |
| <title>Local Configuration</title> |
| |
| <para> |
| Differences include changes for |
| <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link> |
| and <filename>bblayers.conf</filename>. |
| </para> |
| |
| <section id='migration-1.3-sstate-mirrors'> |
| <title>SSTATE_MIRRORS</title> |
| |
| <para> |
| The shared state cache (sstate-cache), as pointed to by |
| <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>, by default |
| now has two-character subdirectories to prevent issues arising |
| from too many files in the same directory. |
| Also, native sstate-cache packages will go into a subdirectory named using |
| the distro ID string. |
| If you copy the newly structured sstate-cache to a mirror location |
| (either local or remote) and then point to it in |
| <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>, |
| you need to append "PATH" to the end of the mirror URL so that |
| the path used by BitBake before the mirror substitution is |
| appended to the path used to access the mirror. |
| Here is an example: |
| <literallayout class='monospaced'> |
| SSTATE_MIRRORS = "file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH" |
| </literallayout> |
| </para> |
| </section> |
| |
| <section id='migration-1.3-bblayers-conf'> |
| <title>bblayers.conf</title> |
| |
| <para> |
| The <filename>meta-yocto</filename> layer consists of two parts |
| that correspond to the Poky reference distribution and the |
| reference hardware Board Support Packages (BSPs), respectively: |
| <filename>meta-yocto</filename> and |
| <filename>meta-yocto-bsp</filename>. |
| When running BitBake or Hob for the first time after upgrading, |
| your <filename>conf/bblayers.conf</filename> file will be |
| updated to handle this change and you will be asked to |
| re-run or restart for the changes to take effect. |
| </para> |
| </section> |
| </section> |
| |
| <section id='1.3-recipes'> |
| <title>Recipes</title> |
| |
| <para> |
| Differences include changes for the following: |
| <itemizedlist> |
| <listitem><para>Python function whitespace</para></listitem> |
| <listitem><para><filename>proto=</filename> in <filename>SRC_URI</filename></para></listitem> |
| <listitem><para><filename>nativesdk</filename></para></listitem> |
| <listitem><para>Task recipes</para></listitem> |
| <listitem><para><filename>IMAGE_FEATURES</filename></para></listitem> |
| <listitem><para>Removed recipes</para></listitem> |
| </itemizedlist> |
| </para> |
| |
| <section id='migration-1.3-python-function-whitespace'> |
| <title>Python Function Whitespace</title> |
| |
| <para> |
| All Python functions must now use four spaces for indentation. |
| Previously, an inconsistent mix of spaces and tabs existed, |
| which made extending these functions using |
| <filename>_append</filename> or <filename>_prepend</filename> |
| complicated given that Python treats whitespace as |
| syntactically significant. |
| If you are defining or extending any Python functions (e.g. |
| <filename>populate_packages</filename>, <filename>do_unpack</filename>, |
| <filename>do_patch</filename> and so forth) in custom recipes |
| or classes, you need to ensure you are using consistent |
| four-space indentation. |
| </para> |
| </section> |
| |
| <section id='migration-1.3-proto=-in-src-uri'> |
| <title>proto= in SRC_URI</title> |
| |
| <para> |
| Any use of <filename>proto=</filename> in |
| <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link> |
| needs to be changed to <filename>protocol=</filename>. |
| In particular, this applies to the following URIs: |
| <itemizedlist> |
| <listitem><para><filename>svn://</filename></para></listitem> |
| <listitem><para><filename>bzr://</filename></para></listitem> |
| <listitem><para><filename>hg://</filename></para></listitem> |
| <listitem><para><filename>osc://</filename></para></listitem> |
| </itemizedlist> |
| Other URIs were already using <filename>protocol=</filename>. |
| This change improves consistency. |
| </para> |
| </section> |
| |
| <section id='migration-1.3-nativesdk'> |
| <title>nativesdk</title> |
| |
| <para> |
| The suffix <filename>nativesdk</filename> is now implemented |
| as a prefix, which simplifies a lot of the packaging code for |
| <filename>nativesdk</filename> recipes. |
| All custom <filename>nativesdk</filename> recipes and any |
| references need to be updated to use |
| <filename>nativesdk-*</filename> instead of |
| <filename>*-nativesdk</filename>. |
| </para> |
| </section> |
| |
| <section id='migration-1.3-task-recipes'> |
| <title>Task Recipes</title> |
| |
| <para> |
| "Task" recipes are now known as "Package groups" and have |
| been renamed from <filename>task-*.bb</filename> to |
| <filename>packagegroup-*.bb</filename>. |
| Existing references to the previous <filename>task-*</filename> |
| names should work in most cases as there is an automatic |
| upgrade path for most packages. |
| However, you should update references in your own recipes and |
| configurations as they could be removed in future releases. |
| You should also rename any custom <filename>task-*</filename> |
| recipes to <filename>packagegroup-*</filename>, and change |
| them to inherit <filename>packagegroup</filename> instead of |
| <filename>task</filename>, as well as taking the opportunity |
| to remove anything now handled by |
| <filename>packagegroup.bbclass</filename>, such as providing |
| <filename>-dev</filename> and <filename>-dbg</filename> |
| packages, setting |
| <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link>, |
| and so forth. |
| See the |
| "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>" |
| section for further details. |
| </para> |
| </section> |
| |
| <section id='migration-1.3-image-features'> |
| <title>IMAGE_FEATURES</title> |
| |
| <para> |
| Image recipes that previously included "apps-console-core" |
| in <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link> |
| should now include "splash" instead to enable the boot-up |
| splash screen. |
| Retaining "apps-console-core" will still include the splash |
| screen but generates a warning. |
| The "apps-x11-core" and "apps-x11-games" |
| <filename>IMAGE_FEATURES</filename> features have been removed. |
| </para> |
| </section> |
| |
| <section id='migration-1.3-removed-recipes'> |
| <title>Removed Recipes</title> |
| |
| <para> |
| The following recipes have been removed. |
| For most of them, it is unlikely that you would have any |
| references to them in your own |
| <ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>. |
| However, you should check your metadata against this list to be sure: |
| <itemizedlist> |
| <listitem><para><emphasis><filename>libx11-trim</filename></emphasis>: |
| Replaced by <filename>libx11</filename>, which has a negligible |
| size difference with modern Xorg.</para></listitem> |
| <listitem><para><emphasis><filename>xserver-xorg-lite</filename></emphasis>: |
| Use <filename>xserver-xorg</filename>, which has a negligible |
| size difference when DRI and GLX modules are not installed.</para></listitem> |
| <listitem><para><emphasis><filename>xserver-kdrive</filename></emphasis>: |
| Effectively unmaintained for many years.</para></listitem> |
| <listitem><para><emphasis><filename>mesa-xlib</filename></emphasis>: |
| No longer serves any purpose.</para></listitem> |
| <listitem><para><emphasis><filename>galago</filename></emphasis>: |
| Replaced by telepathy.</para></listitem> |
| <listitem><para><emphasis><filename>gail</filename></emphasis>: |
| Functionality was integrated into GTK+ 2.13.</para></listitem> |
| <listitem><para><emphasis><filename>eggdbus</filename></emphasis>: |
| No longer needed.</para></listitem> |
| <listitem><para><emphasis><filename>gcc-*-intermediate</filename></emphasis>: |
| The build has been restructured to avoid the need for |
| this step.</para></listitem> |
| <listitem><para><emphasis><filename>libgsmd</filename></emphasis>: |
| Unmaintained for many years. |
| Functionality now provided by |
| <filename>ofono</filename> instead.</para></listitem> |
| <listitem><para><emphasis>contacts, dates, tasks, eds-tools</emphasis>: |
| Largely unmaintained PIM application suite. |
| It has been moved to <filename>meta-gnome</filename> |
| in <filename>meta-openembedded</filename>.</para></listitem> |
| </itemizedlist> |
| In addition to the previously listed changes, the |
| <filename>meta-demoapps</filename> directory has also been removed |
| because the recipes in it were not being maintained and many |
| had become obsolete or broken. |
| Additionally, these recipes were not parsed in the default configuration. |
| Many of these recipes are already provided in an updated and |
| maintained form within the OpenEmbedded community layers such as |
| <filename>meta-oe</filename> and <filename>meta-gnome</filename>. |
| For the remainder, you can now find them in the |
| <filename>meta-extras</filename> repository, which is in the |
| Yocto Project |
| <ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>. |
| </para> |
| </section> |
| </section> |
| |
| <section id='1.3-linux-kernel-naming'> |
| <title>Linux Kernel Naming</title> |
| |
| <para> |
| The naming scheme for kernel output binaries has been changed to |
| now include |
| <link linkend='var-PE'><filename>PE</filename></link> as part of the |
| filename: |
| <literallayout class='monospaced'> |
| KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}" |
| </literallayout> |
| </para> |
| |
| <para> |
| Because the <filename>PE</filename> variable is not set by default, |
| these binary files could result with names that include two dash |
| characters. |
| Here is an example: |
| <literallayout class='monospaced'> |
| bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin |
| </literallayout> |
| </para> |
| </section> |
| </section> |
| |
| <section id='moving-to-the-yocto-project-1.4-release'> |
| <title>Moving to the Yocto Project 1.4 Release</title> |
| |
| <para> |
| This section provides migration information for moving to the |
| Yocto Project 1.4 Release from the prior release. |
| </para> |
| |
| <section id='migration-1.4-bitbake'> |
| <title>BitBake</title> |
| |
| <para> |
| Differences include the following: |
| <itemizedlist> |
| <listitem><para><emphasis>Comment Continuation:</emphasis> |
| If a comment ends with a line continuation (\) character, |
| then the next line must also be a comment. |
| Any instance where this is not the case, now triggers |
| a warning. |
| You must either remove the continuation character, or be |
| sure the next line is a comment. |
| </para></listitem> |
| <listitem><para><emphasis>Package Name Overrides:</emphasis> |
| The runtime package specific variables |
| <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, |
| <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, |
| <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, |
| <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, |
| <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>, |
| <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, |
| <link linkend='var-FILES'><filename>FILES</filename></link>, |
| <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>, |
| and the pre, post, install, and uninstall script functions |
| <filename>pkg_preinst</filename>, |
| <filename>pkg_postinst</filename>, |
| <filename>pkg_prerm</filename>, and |
| <filename>pkg_postrm</filename> should always have a |
| package name override. |
| For example, use <filename>RDEPENDS_${PN}</filename> for |
| the main package instead of <filename>RDEPENDS</filename>. |
| BitBake uses more strict checks when it parses recipes. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.4-build-behavior'> |
| <title>Build Behavior</title> |
| |
| <para> |
| Differences include the following: |
| <itemizedlist> |
| <listitem><para><emphasis>Shared State Code:</emphasis> |
| The shared state code has been optimized to avoid running |
| unnecessary tasks. |
| For example, the following no longer populates the target |
| sysroot since that is not necessary: |
| <literallayout class='monospaced'> |
| $ bitbake -c rootfs <replaceable>some-image</replaceable> |
| </literallayout> |
| Instead, the system just needs to extract the output |
| package contents, re-create the packages, and construct |
| the root filesystem. |
| This change is unlikely to cause any problems unless |
| you have missing declared dependencies. |
| </para></listitem> |
| <listitem><para><emphasis>Scanning Directory Names:</emphasis> |
| When scanning for files in |
| <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>, |
| the build system now uses |
| <link linkend='var-FILESOVERRIDES'><filename>FILESOVERRIDES</filename></link> |
| instead of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link> |
| for the directory names. |
| In general, the values previously in |
| <filename>OVERRIDES</filename> are now in |
| <filename>FILESOVERRIDES</filename> as well. |
| However, if you relied upon an additional value |
| you previously added to <filename>OVERRIDES</filename>, |
| you might now need to add it to |
| <filename>FILESOVERRIDES</filename> unless you are already |
| adding it through the |
| <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link> |
| or <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link> |
| variables, as appropriate. |
| For more related changes, see the |
| "<link linkend='migration-1.4-variables'>Variables</link>" |
| section. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| |
| <section id='migration-1.4-proxies-and-fetching-source'> |
| <title>Proxies and Fetching Source</title> |
| |
| <para> |
| A new <filename>oe-git-proxy</filename> script has been added to |
| replace previous methods of handling proxies and fetching source |
| from Git. |
| See the <filename>meta-yocto/conf/site.conf.sample</filename> file |
| for information on how to use this script. |
| </para> |
| </section> |
| |
| <section id='migration-1.4-custom-interfaces-file-netbase-change'> |
| <title>Custom Interfaces File (netbase change)</title> |
| |
| <para> |
| If you have created your own custom |
| <filename>etc/network/interfaces</filename> file by creating |
| an append file for the <filename>netbase</filename> recipe, |
| you now need to create an append file for the |
| <filename>init-ifupdown</filename> recipe instead, which you can |
| find in the |
| <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink> |
| at <filename>meta/recipes-core/init-ifupdown</filename>. |
| For information on how to use append files, see the |
| "<ulink url='&YOCTO_DOCS_DEV_URL;#using-bbappend-files'>Using .bbappend Files</ulink>" |
| in the Yocto Project Development Manual. |
| </para> |
| </section> |
| |
| <section id='migration-1.4-remote-debugging'> |
| <title>Remote Debugging</title> |
| |
| <para> |
| Support for remote debugging with the Eclipse IDE is now |
| separated into an image feature |
| (<filename>eclipse-debug</filename>) that corresponds to the |
| <filename>packagegroup-core-eclipse-debug</filename> package group. |
| Previously, the debugging feature was included through the |
| <filename>tools-debug</filename> image feature, which corresponds |
| to the <filename>packagegroup-core-tools-debug</filename> |
| package group. |
| </para> |
| </section> |
| |
| <section id='migration-1.4-variables'> |
| <title>Variables</title> |
| |
| <para> |
| The following variables have changed: |
| <itemizedlist> |
| <listitem><para><emphasis><filename>SANITY_TESTED_DISTROS</filename>:</emphasis> |
| This variable now uses a distribution ID, which is composed |
| of the host distributor ID followed by the release. |
| Previously, |
| <link linkend='var-SANITY_TESTED_DISTROS'><filename>SANITY_TESTED_DISTROS</filename></link> |
| was composed of the description field. |
| For example, "Ubuntu 12.10" becomes "Ubuntu-12.10". |
| You do not need to worry about this change if you are not |
| specifically setting this variable, or if you are |
| specifically setting it to "". |
| </para></listitem> |
| <listitem><para><emphasis><filename>SRC_URI</filename>:</emphasis> |
| The <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>, |
| <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename>, |
| <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename>, |
| and <filename>FILE_DIRNAME</filename> directories have been |
| dropped from the default value of the |
| <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link> |
| variable, which is used as the search path for finding files |
| referred to in |
| <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>. |
| If you have a recipe that relied upon these directories, |
| which would be unusual, then you will need to add the |
| appropriate paths within the recipe or, alternatively, |
| rearrange the files. |
| The most common locations are still covered by |
| <filename>${BP}</filename>, <filename>${BPN}</filename>, |
| and "files", which all remain in the default value of |
| <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-target-package-management-with-rpm'> |
| <title>Target Package Management with RPM</title> |
| |
| <para> |
| If runtime package management is enabled and the RPM backend |
| is selected, Smart is now installed for package download, dependency |
| resolution, and upgrades instead of Zypper. |
| For more information on how to use Smart, run the following command |
| on the target: |
| <literallayout class='monospaced'> |
| smart --help |
| </literallayout> |
| </para> |
| </section> |
| |
| <section id='migration-1.4-recipes-moved'> |
| <title>Recipes Moved</title> |
| |
| <para> |
| The following recipes were moved from their previous locations |
| because they are no longer used by anything in |
| the OpenEmbedded-Core: |
| <itemizedlist> |
| <listitem><para><emphasis><filename>clutter-box2d</filename>:</emphasis> |
| Now resides in the <filename>meta-oe</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>evolution-data-server</filename>:</emphasis> |
| Now resides in the <filename>meta-gnome</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>gthumb</filename>:</emphasis> |
| Now resides in the <filename>meta-gnome</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>gtkhtml2</filename>:</emphasis> |
| Now resides in the <filename>meta-oe</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>gupnp</filename>:</emphasis> |
| Now resides in the <filename>meta-multimedia</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>gypsy</filename>:</emphasis> |
| Now resides in the <filename>meta-oe</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>libcanberra</filename>:</emphasis> |
| Now resides in the <filename>meta-gnome</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>libgdata</filename>:</emphasis> |
| Now resides in the <filename>meta-gnome</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>libmusicbrainz</filename>:</emphasis> |
| Now resides in the <filename>meta-multimedia</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>metacity</filename>:</emphasis> |
| Now resides in the <filename>meta-gnome</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>polkit</filename>:</emphasis> |
| Now resides in the <filename>meta-oe</filename> layer. |
| </para></listitem> |
| <listitem><para><emphasis><filename>zeroconf</filename>:</emphasis> |
| Now resides in the <filename>meta-networking</filename> layer. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.4-removals-and-renames'> |
| <title>Removals and Renames</title> |
| |
| <para> |
| The following list shows what has been removed or renamed: |
| <itemizedlist> |
| <listitem><para><emphasis><filename>evieext</filename>:</emphasis> |
| Removed because it has been removed from |
| <filename>xserver</filename> since 2008. |
| </para></listitem> |
| <listitem><para><emphasis>Gtk+ DirectFB:</emphasis> |
| Removed support because upstream Gtk+ no longer supports it |
| as of version 2.18. |
| </para></listitem> |
| <listitem><para><emphasis><filename>libxfontcache / xfontcacheproto</filename>:</emphasis> |
| Removed because they were removed from the Xorg server in 2008. |
| </para></listitem> |
| <listitem><para><emphasis><filename>libxp / libxprintapputil / libxprintutil / printproto</filename>:</emphasis> |
| Removed because the XPrint server was removed from |
| Xorg in 2008. |
| </para></listitem> |
| <listitem><para><emphasis><filename>libxtrap / xtrapproto</filename>:</emphasis> |
| Removed because their functionality was broken upstream. |
| </para></listitem> |
| <listitem><para><emphasis>linux-yocto 3.0 kernel:</emphasis> |
| Removed with linux-yocto 3.8 kernel being added. |
| The linux-yocto 3.2 and linux-yocto 3.4 kernels remain |
| as part of the release. |
| </para></listitem> |
| <listitem><para><emphasis><filename>lsbsetup</filename>:</emphasis> |
| Removed with functionality now provided by |
| <filename>lsbtest</filename>. |
| </para></listitem> |
| <listitem><para><emphasis><filename>matchbox-stroke</filename>:</emphasis> |
| Removed because it was never more than a proof-of-concept. |
| </para></listitem> |
| <listitem><para><emphasis><filename>matchbox-wm-2 / matchbox-theme-sato-2</filename>:</emphasis> |
| Removed because they are not maintained. |
| However, <filename>matchbox-wm</filename> and |
| <filename>matchbox-theme-sato</filename> are still |
| provided. |
| </para></listitem> |
| <listitem><para><emphasis><filename>mesa-dri</filename>:</emphasis> |
| Renamed to <filename>mesa</filename>. |
| </para></listitem> |
| <listitem><para><emphasis><filename>mesa-xlib</filename>:</emphasis> |
| Removed because it was no longer useful. |
| </para></listitem> |
| <listitem><para><emphasis><filename>mutter</filename>:</emphasis> |
| Removed because nothing ever uses it and the recipe is |
| very old. |
| </para></listitem> |
| <listitem><para><emphasis><filename>orinoco-conf</filename>:</emphasis> |
| Removed because it has become obsolete. |
| </para></listitem> |
| <listitem><para><emphasis><filename>update-modules</filename>:</emphasis> |
| Removed because it is no longer used. |
| The kernel module <filename>postinstall</filename> and |
| <filename>postrm</filename> scripts can now do the same |
| task without the use of this script. |
| </para></listitem> |
| <listitem><para><emphasis><filename>web</filename>:</emphasis> |
| Removed because it is not maintained. Superseded by |
| <filename>web-webkit</filename>. |
| </para></listitem> |
| <listitem><para><emphasis><filename>xf86bigfontproto</filename>:</emphasis> |
| Removed because upstream it has been disabled by default |
| since 2007. |
| Nothing uses <filename>xf86bigfontproto</filename>. |
| </para></listitem> |
| <listitem><para><emphasis><filename>xf86rushproto</filename>:</emphasis> |
| Removed because its dependency in |
| <filename>xserver</filename> was spurious and it was |
| removed in 2005. |
| </para></listitem> |
| <listitem><para><emphasis><filename>zypper / libzypp / sat-solver</filename>:</emphasis> |
| Removed and been functionally replaced with Smart |
| (<filename>python-smartpm</filename>) when RPM packaging |
| is used and package management is enabled on the target. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| </section> |
| |
| <section id='moving-to-the-yocto-project-1.5-release'> |
| <title>Moving to the Yocto Project 1.5 Release</title> |
| |
| <para> |
| This section provides migration information for moving to the |
| Yocto Project 1.5 Release from the prior release. |
| </para> |
| |
| <section id='migration-1.5-host-dependency-changes'> |
| <title>Host Dependency Changes</title> |
| |
| <para> |
| The OpenEmbedded build system now has some additional requirements |
| on the host system: |
| <itemizedlist> |
| <listitem><para>Python 2.7.3+</para></listitem> |
| <listitem><para>Tar 1.24+</para></listitem> |
| <listitem><para>Git 1.7.8+</para></listitem> |
| <listitem><para>Patched version of Make if you are using |
| 3.82. |
| Most distributions that provide Make 3.82 use the patched |
| version.</para></listitem> |
| </itemizedlist> |
| If the Linux distribution you are using on your build host |
| does not provide packages for these, you can install and use |
| the Buildtools tarball, which provides an SDK-like environment |
| containing them. |
| </para> |
| |
| <para> |
| For more information on this requirement, see the |
| "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>" |
| section. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-atom-pc-bsp'> |
| <title><filename>atom-pc</filename> Board Support Package (BSP)</title> |
| |
| <para> |
| The <filename>atom-pc</filename> hardware reference BSP has been |
| replaced by a <filename>genericx86</filename> BSP. |
| This BSP is not necessarily guaranteed to work on all x86 |
| hardware, but it will run on a wider range of systems than the |
| <filename>atom-pc</filename> did. |
| <note> |
| Additionally, a <filename>genericx86-64</filename> BSP has |
| been added for 64-bit Atom systems. |
| </note> |
| </para> |
| </section> |
| |
| <section id='migration-1.5-bitbake'> |
| <title>BitBake</title> |
| |
| <para> |
| The following changes have been made that relate to BitBake: |
| <itemizedlist> |
| <listitem><para> |
| BitBake now supports a <filename>_remove</filename> |
| operator. |
| The addition of this operator means you will have to |
| rename any items in recipe space (functions, variables) |
| whose names currently contain |
| <filename>_remove_</filename> or end with |
| <filename>_remove</filename> to avoid unexpected behavior. |
| </para></listitem> |
| <listitem><para> |
| BitBake's global method pool has been removed. |
| This method is not particularly useful and led to clashes |
| between recipes containing functions that had the |
| same name.</para></listitem> |
| <listitem><para> |
| The "none" server backend has been removed. |
| The "process" server backend has been serving well as the |
| default for a long time now.</para></listitem> |
| <listitem><para> |
| The <filename>bitbake-runtask</filename> script has been |
| removed.</para></listitem> |
| <listitem><para> |
| <filename>${</filename><link linkend='var-P'><filename>P</filename></link><filename>}</filename> |
| and |
| <filename>${</filename><link linkend='var-PF'><filename>PF</filename></link><filename>}</filename> |
| are no longer added to |
| <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link> |
| by default in <filename>bitbake.conf</filename>. |
| These version-specific <filename>PROVIDES</filename> |
| items were seldom used. |
| Attempting to use them could result in two versions being |
| built simultaneously rather than just one version due to |
| the way BitBake resolves dependencies.</para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.5-qa-warnings'> |
| <title>QA Warnings</title> |
| |
| <para> |
| The following changes have been made to the package QA checks: |
| <itemizedlist> |
| <listitem><para> |
| If you have customized |
| <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link> |
| or <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link> |
| values in your configuration, check that they contain all of |
| the issues that you wish to be reported. |
| Previous Yocto Project versions contained a bug that meant |
| that any item not mentioned in <filename>ERROR_QA</filename> |
| or <filename>WARN_QA</filename> would be treated as a |
| warning. |
| Consequently, several important items were not already in |
| the default value of <filename>WARN_QA</filename>. |
| All of the possible QA checks are now documented in the |
| "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>" |
| section.</para></listitem> |
| <listitem><para> |
| An additional QA check has been added to check if |
| <filename>/usr/share/info/dir</filename> is being installed. |
| Your recipe should delete this file within |
| <link linkend='ref-tasks-install'><filename>do_install</filename></link> |
| if "make install" is installing it. |
| </para></listitem> |
| <listitem><para> |
| If you are using the buildhistory class, the check for the |
| package version going backwards is now controlled using a |
| standard QA check. |
| Thus, if you have customized your |
| <filename>ERROR_QA</filename> or |
| <filename>WARN_QA</filename> values and still wish to have |
| this check performed, you should add |
| "version-going-backwards" to your value for one or the |
| other variables depending on how you wish it to be handled. |
| See the documented QA checks in the |
| "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>" |
| section. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.5-directory-layout-changes'> |
| <title>Directory Layout Changes</title> |
| |
| <para> |
| The following directory changes exist: |
| <itemizedlist> |
| <listitem><para> |
| Output SDK installer files are now named to include the |
| image name and tuning architecture through the |
| <link linkend='var-SDK_NAME'><filename>SDK_NAME</filename></link> |
| variable.</para></listitem> |
| <listitem><para> |
| Images and related files are now installed into a directory |
| that is specific to the machine, instead of a parent |
| directory containing output files for multiple machines. |
| The |
| <link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link> |
| variable continues to point to the directory containing |
| images for the current |
| <link linkend='var-MACHINE'><filename>MACHINE</filename></link> |
| and should be used anywhere there is a need to refer to |
| this directory. |
| The <filename>runqemu</filename> script now uses this |
| variable to find images and kernel binaries and will use |
| BitBake to determine the directory. |
| Alternatively, you can set the |
| <filename>DEPLOY_DIR_IMAGE</filename> variable in the |
| external environment.</para></listitem> |
| <listitem><para> |
| When buildhistory is enabled, its output is now written |
| under the |
| <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> |
| rather than |
| <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>. |
| Doing so makes it easier to delete |
| <filename>TMPDIR</filename> and preserve the build history. |
| Additionally, data for produced SDKs is now split by |
| <link linkend='var-IMAGE_NAME'><filename>IMAGE_NAME</filename></link>. |
| </para></listitem> |
| <listitem><para> |
| The <filename>pkgdata</filename> directory produced as |
| part of the packaging process has been collapsed into a |
| single machine-specific directory. |
| This directory is located under |
| <filename>sysroots</filename> and uses a machine-specific |
| name (i.e. |
| <filename>tmp/sysroots/<replaceable>machine</replaceable>/pkgdata</filename>). |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.5-shortened-git-srcrev-values'> |
| <title>Shortened Git <filename>SRCREV</filename> Values</title> |
| |
| <para> |
| BitBake will now shorten revisions from Git repositories from the |
| normal 40 characters down to 10 characters within |
| <link linkend='var-SRCPV'><filename>SRCPV</filename></link> |
| for improved usability in path and file names. |
| This change should be safe within contexts where these revisions |
| are used because the chances of spatially close collisions |
| is very low. |
| Distant collisions are not a major issue in the way |
| the values are used. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-image-features'> |
| <title><filename>IMAGE_FEATURES</filename></title> |
| |
| <para> |
| The following changes have been made that relate to |
| <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>: |
| <itemizedlist> |
| <listitem><para> |
| The value of |
| <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link> |
| is now validated to ensure invalid feature items are not |
| added. |
| Some users mistakenly add package names to this variable |
| instead of using |
| <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link> |
| in order to have the package added to the image, which does |
| not work. |
| This change is intended to catch those kinds of situations. |
| Valid <filename>IMAGE_FEATURES</filename> are drawn from |
| <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link> |
| definitions, |
| <link linkend='var-COMPLEMENTARY_GLOB'><filename>COMPLEMENTARY_GLOB</filename></link> |
| and a new "validitems" varflag on |
| <filename>IMAGE_FEATURES</filename>. |
| The "validitems" varflag change allows additional features |
| to be added if they are not provided using the previous |
| two mechanisms. |
| </para></listitem> |
| <listitem><para> |
| The previously deprecated "apps-console-core" |
| <filename>IMAGE_FEATURES</filename> item is no longer |
| supported. |
| Add "splash" to <filename>IMAGE_FEATURES</filename> if you |
| wish to have the splash screen enabled, since this is |
| all that apps-console-core was doing.</para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.5-run'> |
| <title><filename>/run</filename></title> |
| |
| <para> |
| The <filename>/run</filename> directory from the Filesystem |
| Hierarchy Standard 3.0 has been introduced. |
| You can find some of the implications for this change |
| <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873'>here</ulink>. |
| The change also means that recipes that install files to |
| <filename>/var/run</filename> must be changed. |
| You can find a guide on how to make these changes |
| <ulink url='http://permalink.gmane.org/gmane.comp.handhelds.openembedded/58530'>here</ulink>. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-removal-of-package-manager-database-within-image-recipes'> |
| <title>Removal of Package Manager Database Within Image Recipes</title> |
| |
| <para> |
| The image <filename>core-image-minimal</filename> no longer adds |
| <filename>remove_packaging_data_files</filename> to |
| <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>. |
| This addition is now handled automatically when "package-management" |
| is not in |
| <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>. |
| If you have custom image recipes that make this addition, |
| you should remove the lines, as they are not needed and might |
| interfere with correct operation of postinstall scripts. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time'> |
| <title>Images Now Rebuild Only on Changes Instead of Every Time</title> |
| |
| <para> |
| The |
| <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link> |
| and other related image |
| construction tasks are no longer marked as "nostamp". |
| Consequently, they will only be re-executed when their inputs have |
| changed. |
| Previous versions of the OpenEmbedded build system always rebuilt |
| the image when requested rather when necessary. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-task-recipes'> |
| <title>Task Recipes</title> |
| |
| <para> |
| The previously deprecated <filename>task.bbclass</filename> has |
| now been dropped. |
| For recipes that previously inherited from this class, you should |
| rename them from <filename>task-*</filename> to |
| <filename>packagegroup-*</filename> and inherit packagegroup |
| instead. |
| </para> |
| |
| <para> |
| For more information, see the |
| "<link linkend='ref-classes-packagegroup'><filename>packagegroup.bbclass</filename></link>" |
| section. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-busybox'> |
| <title>BusyBox</title> |
| |
| <para> |
| By default, we now split BusyBox into two binaries: |
| one that is suid root for those components that need it, and |
| another for the rest of the components. |
| Splitting BusyBox allows for optimization that eliminates the |
| <filename>tinylogin</filename> recipe as recommended by upstream. |
| You can disable this split by setting |
| <link linkend='var-BUSYBOX_SPLIT_SUID'><filename>BUSYBOX_SPLIT_SUID</filename></link> |
| to "0". |
| </para> |
| </section> |
| |
| <section id='migration-1.5-automated-image-testing'> |
| <title>Automated Image Testing</title> |
| |
| <para> |
| A new automated image testing framework has been added |
| through the |
| <link linkend='ref-classes-testimage'><filename>testimage*.bbclass</filename></link> |
| class. |
| This framework replaces the older |
| <filename>imagetest-qemu</filename> framework. |
| </para> |
| |
| <para> |
| You can learn more about performing automated image tests in the |
| "<ulink url='&YOCTO_DOCS_DEV_URL;#performing-automated-runtime-testing'>Performing Automated Runtime Testing</ulink>" |
| section. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-build-history'> |
| <title>Build History</title> |
| |
| <para> |
| Following are changes to Build History: |
| <itemizedlist> |
| <listitem><para> |
| Installed package sizes: |
| <filename>installed-package-sizes.txt</filename> for an |
| image now records the size of the files installed by each |
| package instead of the size of each compressed package |
| archive file.</para></listitem> |
| <listitem><para> |
| The dependency graphs (<filename>depends*.dot</filename>) |
| now use the actual package names instead of replacing |
| dashes, dots and plus signs with underscores. |
| </para></listitem> |
| <listitem><para> |
| The <filename>buildhistory-diff</filename> and |
| <filename>buildhistory-collect-srcrevs</filename> |
| utilities have improved command-line handling. |
| Use the <filename>--help</filename> option for |
| each utility for more information on the new syntax. |
| </para></listitem> |
| </itemizedlist> |
| For more information on Build History, see the |
| "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>" |
| section. |
| </para> |
| </section> |
| |
| <section id='migration-1.5-udev'> |
| <title><filename>udev</filename></title> |
| |
| <para> |
| Following are changes to <filename>udev</filename>: |
| <itemizedlist> |
| <listitem><para> |
| <filename>udev</filename> no longer brings in |
| <filename>udev-extraconf</filename> automatically |
| through |
| <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, |
| since this was originally intended to be optional. |
| If you need the extra rules, then add |
| <filename>udev-extraconf</filename> to your image. |
| </para></listitem> |
| <listitem><para> |
| <filename>udev</filename> no longer brings in |
| <filename>pciutils-ids</filename> or |
| <filename>usbutils-ids</filename> through |
| <filename>RRECOMMENDS</filename>. |
| These are not needed by <filename>udev</filename> itself |
| and removing them saves around 350KB. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.5-removed-renamed-recipes'> |
| <title>Removed and Renamed Recipes</title> |
| |
| <itemizedlist> |
| <listitem><para> |
| The <filename>linux-yocto</filename> 3.2 kernel has been |
| removed.</para></listitem> |
| <listitem><para> |
| <filename>libtool-nativesdk</filename> has been renamed to |
| <filename>nativesdk-libtool</filename>.</para></listitem> |
| <listitem><para> |
| <filename>tinylogin</filename> has been removed. |
| It has been replaced by a suid portion of Busybox. |
| See the |
| "<link linkend='migration-1.5-busybox'>BusyBox</link>" section |
| for more information.</para></listitem> |
| <listitem><para> |
| <filename>external-python-tarball</filename> has been renamed |
| to <filename>buildtools-tarball</filename>. |
| </para></listitem> |
| <listitem><para> |
| <filename>web-webkit</filename> has been removed. |
| It has been functionally replaced by |
| <filename>midori</filename>.</para></listitem> |
| <listitem><para> |
| <filename>imake</filename> has been removed. |
| It is no longer needed by any other recipe. |
| </para></listitem> |
| <listitem><para> |
| <filename>transfig-native</filename> has been removed. |
| It is no longer needed by any other recipe. |
| </para></listitem> |
| <listitem><para> |
| <filename>anjuta-remote-run</filename> has been removed. |
| Anjuta IDE integration has not been officially supported for |
| several releases.</para></listitem> |
| </itemizedlist> |
| </section> |
| |
| <section id='migration-1.5-other-changes'> |
| <title>Other Changes</title> |
| |
| <para> |
| Following is a list of short entries describing other changes: |
| <itemizedlist> |
| <listitem><para> |
| <filename>run-postinsts</filename>: Make this generic. |
| </para></listitem> |
| <listitem><para> |
| <filename>base-files</filename>: Remove the unnecessary |
| <filename>media/</filename><replaceable>xxx</replaceable> directories. |
| </para></listitem> |
| <listitem><para> |
| <filename>alsa-state</filename>: Provide an empty |
| <filename>asound.conf</filename> by default. |
| </para></listitem> |
| <listitem><para> |
| <filename>classes/image</filename>: Ensure |
| <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link> |
| supports pre-renamed package names.</para></listitem> |
| <listitem><para> |
| <filename>classes/rootfs_rpm</filename>: Implement |
| <link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link> |
| for RPM.</para></listitem> |
| <listitem><para> |
| <filename>systemd</filename>: Remove |
| <filename>systemd_unitdir</filename> if |
| <filename>systemd</filename> is not in |
| <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>. |
| </para></listitem> |
| <listitem><para> |
| <filename>systemd</filename>: Remove |
| <filename>init.d</filename> dir if |
| <filename>systemd</filename> unit file is present and |
| <filename>sysvinit</filename> is not a distro feature. |
| </para></listitem> |
| <listitem><para> |
| <filename>libpam</filename>: Deny all services for the |
| <filename>OTHER</filename> entries. |
| </para></listitem> |
| <listitem><para> |
| <filename>image.bbclass</filename>: Move |
| <filename>runtime_mapping_rename</filename> to avoid |
| conflict with <filename>multilib</filename>. |
| See |
| <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=4993'><filename>YOCTO #4993</filename></ulink> |
| in Bugzilla for more information. |
| </para></listitem> |
| <listitem><para> |
| <filename>linux-dtb</filename>: Use kernel build system |
| to generate the <filename>dtb</filename> files. |
| </para></listitem> |
| <listitem><para> |
| <filename>kern-tools</filename>: Switch from guilt to |
| new <filename>kgit-s2q</filename> tool. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| </section> |
| |
| <section id='moving-to-the-yocto-project-1.6-release'> |
| <title>Moving to the Yocto Project 1.6 Release</title> |
| |
| <para> |
| This section provides migration information for moving to the |
| Yocto Project 1.6 Release from the prior release. |
| </para> |
| |
| |
| <section id='migration-1.6-archiver-class'> |
| <title><filename>archiver</filename> Class</title> |
| |
| <para> |
| The |
| <link linkend='ref-classes-archiver'><filename>archiver</filename></link> |
| class has been rewritten and its configuration has been simplified. |
| For more details on the source archiver, see the |
| "<ulink url='&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle'>Maintaining Open Source License Compliance During Your Product's Lifecycle</ulink>" |
| section in the Yocto Project Development Manual. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-packaging-changes'> |
| <title>Packaging Changes</title> |
| |
| <para> |
| The following packaging changes have been made: |
| <itemizedlist> |
| <listitem><para> |
| The <filename>binutils</filename> recipe no longer produces |
| a <filename>binutils-symlinks</filename> package. |
| <filename>update-alternatives</filename> is now used to |
| handle the preferred <filename>binutils</filename> |
| variant on the target instead. |
| </para></listitem> |
| <listitem><para> |
| The tc (traffic control) utilities have been split out of |
| the main <filename>iproute2</filename> package and put |
| into the <filename>iproute2-tc</filename> package. |
| </para></listitem> |
| <listitem><para> |
| The <filename>gtk-engines</filename> schemas have been |
| moved to a dedicated |
| <filename>gtk-engines-schemas</filename> package. |
| </para></listitem> |
| <listitem><para> |
| The <filename>armv7a</filename> with thumb package |
| architecture suffix has changed. |
| The suffix for these packages with the thumb |
| optimization enabled is "t2" as it should be. |
| Use of this suffix was not the case in the 1.5 release. |
| Architecture names will change within package feeds as a |
| result. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.6-bitbake'> |
| <title>BitBake</title> |
| |
| <para> |
| The following changes have been made to |
| <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>. |
| </para> |
| |
| <section id='migration-1.6-matching-branch-requirement-for-git-fetching'> |
| <title>Matching Branch Requirement for Git Fetching</title> |
| |
| <para> |
| When fetching source from a Git repository using |
| <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>, |
| BitBake will now validate the |
| <link linkend='var-SRCREV'><filename>SRCREV</filename></link> |
| value against the branch. |
| You can specify the branch using the following form: |
| <literallayout class='monospaced'> |
| SRC_URI = "git://server.name/repository;branch=<replaceable>branchname</replaceable>" |
| </literallayout> |
| If you do not specify a branch, BitBake looks |
| in the default "master" branch. |
| </para> |
| |
| <para> |
| Alternatively, if you need to bypass this check (e.g. |
| if you are fetching a revision corresponding to a tag that |
| is not on any branch), you can add ";nobranch=1" to |
| the end of the URL within <filename>SRC_URI</filename>. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-bitbake-deps'> |
| <title>Python Definition substitutions</title> |
| |
| <para> |
| BitBake had some previously deprecated Python definitions |
| within its <filename>bb</filename> module removed. |
| You should use their sub-module counterparts instead: |
| <itemizedlist> |
| <listitem><para><filename>bb.MalformedUrl</filename>: |
| Use <filename>bb.fetch.MalformedUrl</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.fetch.encodeurl</filename>: |
| Use <filename>bb.fetch.encodeurl</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.decodeurl</filename>: |
| Use <filename>bb.fetch.decodeurl</filename> |
| </para></listitem> |
| <listitem><para><filename>bb.mkdirhier</filename>: |
| Use <filename>bb.utils.mkdirhier</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.movefile</filename>: |
| Use <filename>bb.utils.movefile</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.copyfile</filename>: |
| Use <filename>bb.utils.copyfile</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.which</filename>: |
| Use <filename>bb.utils.which</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.vercmp_string</filename>: |
| Use <filename>bb.utils.vercmp_string</filename>. |
| </para></listitem> |
| <listitem><para><filename>bb.vercmp</filename>: |
| Use <filename>bb.utils.vercmp</filename>. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.6-bitbake-fetcher'> |
| <title>SVK Fetcher</title> |
| |
| <para> |
| The SVK fetcher has been removed from BitBake. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-bitbake-console-output'> |
| <title>Console Output Error Redirection</title> |
| |
| <para> |
| The BitBake console UI will now output errors to |
| <filename>stderr</filename> instead of |
| <filename>stdout</filename>. |
| Consequently, if you are piping or redirecting the output of |
| <filename>bitbake</filename> to somewhere else, and you wish |
| to retain the errors, you will need to add |
| <filename>2>&1</filename> (or something similar) to the |
| end of your <filename>bitbake</filename> command line. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-task-taskname-overrides'> |
| <title><filename>task-</filename><replaceable>taskname</replaceable> Overrides</title> |
| |
| <para> |
| <filename>task-</filename><replaceable>taskname</replaceable> overrides have been |
| adjusted so that tasks whose names contain underscores have the |
| underscores replaced by hyphens for the override so that they |
| now function properly. |
| For example, the task override for |
| <link linkend='ref-tasks-populate_sdk'><filename>do_populate_sdk</filename></link> |
| is <filename>task-populate-sdk</filename>. |
| </para> |
| </section> |
| </section> |
| |
| <section id='migration-1.6-variable-changes'> |
| <title>Changes to Variables</title> |
| |
| <para> |
| The following variables have changed. |
| For information on the OpenEmbedded build system variables, see the |
| "<link linkend='ref-variables-glos'>Variables Glossary</link>" Chapter. |
| </para> |
| |
| <section id='migration-1.6-variable-changes-TMPDIR'> |
| <title><filename>TMPDIR</filename></title> |
| |
| <para> |
| <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> |
| can no longer be on an NFS mount. |
| NFS does not offer full POSIX locking and inode consistency |
| and can cause unexpected issues if used to store |
| <filename>TMPDIR</filename>. |
| </para> |
| |
| <para> |
| The check for this occurs on startup. |
| If <filename>TMPDIR</filename> is detected on an NFS mount, |
| an error occurs. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-variable-changes-PRINC'> |
| <title><filename>PRINC</filename></title> |
| |
| <para> |
| The <filename>PRINC</filename> |
| variable has been deprecated and triggers a warning if |
| detected during a build. |
| For |
| <link linkend='var-PR'><filename>PR</filename></link> |
| increments on changes, use the PR service instead. |
| You can find out more about this service in the |
| "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>" |
| section in the Yocto Project Development Manual. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-variable-changes-IMAGE_TYPES'> |
| <title><filename>IMAGE_TYPES</filename></title> |
| |
| <para> |
| The "sum.jffs2" option for |
| <link linkend='var-IMAGE_TYPES'><filename>IMAGE_TYPES</filename></link> |
| has been replaced by the "jffs2.sum" option, which fits the |
| processing order. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-variable-changes-COPY_LIC_MANIFEST'> |
| <title><filename>COPY_LIC_MANIFEST</filename></title> |
| |
| <para> |
| The |
| <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link> |
| variable must |
| now be set to "1" rather than any value in order to enable |
| it. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-variable-changes-COPY_LIC_DIRS'> |
| <title><filename>COPY_LIC_DIRS</filename></title> |
| |
| <para> |
| The |
| <link linkend='var-COPY_LIC_DIRS'><filename>COPY_LIC_DIRS</filename></link> |
| variable must |
| now be set to "1" rather than any value in order to enable |
| it. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-variable-changes-PACKAGE_GROUP'> |
| <title><filename>PACKAGE_GROUP</filename></title> |
| |
| <para> |
| The |
| <link linkend='var-PACKAGE_GROUP'><filename>PACKAGE_GROUP</filename></link> |
| variable has been renamed to |
| <link linkend='var-FEATURE_PACKAGES'><filename>FEATURE_PACKAGES</filename></link> |
| to more accurately reflect its purpose. |
| You can still use <filename>PACKAGE_GROUP</filename> but |
| the OpenEmbedded build system produces a warning message when |
| it encounters the variable. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-variable-changes-variable-entry-behavior'> |
| <title>Preprocess and Post Process Command Variable Behavior</title> |
| |
| <para> |
| The following variables now expect a semicolon separated |
| list of functions to call and not arbitrary shell commands: |
| <literallayout class='monospaced'> |
| <link linkend='var-ROOTFS_PREPROCESS_COMMAND'>ROOTFS_PREPROCESS_COMMAND</link> |
| <link linkend='var-ROOTFS_POSTPROCESS_COMMAND'>ROOTFS_POSTPROCESS_COMMAND</link> |
| <link linkend='var-SDK_POSTPROCESS_COMMAND'>SDK_POSTPROCESS_COMMAND</link> |
| <link linkend='var-POPULATE_SDK_POST_TARGET_COMMAND'>POPULATE_SDK_POST_TARGET_COMMAND</link> |
| <link linkend='var-POPULATE_SDK_POST_HOST_COMMAND'>POPULATE_SDK_POST_HOST_COMMAND</link> |
| <link linkend='var-IMAGE_POSTPROCESS_COMMAND'>IMAGE_POSTPROCESS_COMMAND</link> |
| <link linkend='var-IMAGE_PREPROCESS_COMMAND'>IMAGE_PREPROCESS_COMMAND</link> |
| <link linkend='var-ROOTFS_POSTUNINSTALL_COMMAND'>ROOTFS_POSTUNINSTALL_COMMAND</link> |
| <link linkend='var-ROOTFS_POSTINSTALL_COMMAND'>ROOTFS_POSTINSTALL_COMMAND</link> |
| </literallayout> |
| For migration purposes, you can simply wrap shell commands in |
| a shell function and then call the function. |
| Here is an example: |
| <literallayout class='monospaced'> |
| my_postprocess_function() { |
| echo "hello" > ${IMAGE_ROOTFS}/hello.txt |
| } |
| ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; " |
| </literallayout> |
| </para> |
| </section> |
| </section> |
| |
| <section id='migration-1.6-directory-layout-changes'> |
| <title>Directory Layout Changes</title> |
| |
| <para> |
| The <filename>meta-hob</filename> layer has been removed from |
| the top-level of the |
| <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>. |
| The contents of this layer are no longer needed by the Hob |
| user interface for building images and toolchains. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-package-test-ptest'> |
| <title>Package Test (ptest)</title> |
| |
| <para> |
| Package Tests (ptest) are built but not installed by default. |
| For information on using Package Tests, see the |
| "<ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Setting up and running package test (ptest)</ulink>" |
| section in the Yocto Project Development Manual. |
| For information on the <filename>ptest</filename> class, see the |
| "<link linkend='ref-classes-ptest'><filename>ptest.bbclass</filename></link>" |
| section. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-build-changes'> |
| <title>Build Changes</title> |
| |
| <para> |
| Separate build and source directories have been enabled |
| by default for selected recipes where it is known to work |
| (a whitelist) and for all recipes that inherit the |
| <link linkend='ref-classes-cmake'><filename>cmake</filename></link> |
| class. |
| In future releases the |
| <link linkend='ref-classes-autotools'><filename>autotools</filename></link> |
| class will enable a separate build directory by default as |
| well. |
| Recipes building Autotools-based |
| software that fails to build with a separate build directory |
| should be changed to inherit from the |
| <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link> |
| class instead of the <filename>autotools</filename> class. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-building-qemu-native'> |
| <title><filename>qemu-native</filename></title> |
| |
| <para> |
| <filename>qemu-native</filename> now builds without |
| SDL-based graphical output support by default. |
| The following additional lines are needed in your |
| <filename>local.conf</filename> to enable it: |
| <literallayout class='monospaced'> |
| PACKAGECONFIG_pn-qemu-native = "sdl" |
| ASSUME_PROVIDED += "libsdl-native" |
| </literallayout> |
| <note> |
| The default <filename>local.conf</filename> |
| contains these statements. |
| Consequently, if you are building a headless system and using |
| a default <filename>local.conf</filename> file, you will need |
| comment these two lines out. |
| </note> |
| </para> |
| </section> |
| |
| <section id='migration-1.6-core-image-basic'> |
| <title><filename>core-image-basic</filename></title> |
| |
| <para> |
| <filename>core-image-basic</filename> has been renamed to |
| <filename>core-image-full-cmdline</filename>. |
| </para> |
| |
| <para> |
| In addition to <filename>core-image-basic</filename> being renamed, |
| <filename>packagegroup-core-basic</filename> has been renamed to |
| <filename>packagegroup-core-full-cmdline</filename> to match. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-licensing'> |
| <title>Licensing</title> |
| |
| <para> |
| The top-level <filename>LICENSE</filename> file has been changed |
| to better describe the license of the various components of |
| OE-Core. |
| However, the licensing itself remains unchanged. |
| </para> |
| |
| <para> |
| Normally, this change would not cause any side-effects. |
| However, some recipes point to this file within |
| <link linkend='var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></link> |
| (as <filename>${COREBASE}/LICENSE</filename>) and thus the |
| accompanying checksum must be changed from |
| 3f40d7994397109285ec7b81fdeb3b58 to |
| 4d92cd373abda3937c2bc47fbc49d690. |
| A better alternative is to have |
| <filename>LIC_FILES_CHKSUM</filename> point to a file |
| describing the license that is distributed with the source |
| that the recipe is building, if possible, rather than pointing |
| to <filename>${COREBASE}/LICENSE</filename>. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-cflags-options'> |
| <title><filename>CFLAGS</filename> Options</title> |
| |
| <para> |
| The "-fpermissive" option has been removed from the default |
| <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link> |
| value. |
| You need to take action on individual recipes that fail when |
| building with this option. |
| You need to either patch the recipes to fix the issues reported by |
| the compiler, or you need to add "-fpermissive" to |
| <filename>CFLAGS</filename> in the recipes. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-custom-images'> |
| <title>Custom Image Output Types</title> |
| |
| <para> |
| Custom image output types, as selected using |
| <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>, |
| must declare their dependencies on other image types (if any) using |
| a new |
| <link linkend='var-IMAGE_TYPEDEP'><filename>IMAGE_TYPEDEP</filename></link> |
| variable. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-do-package-write-task'> |
| <title>Tasks</title> |
| |
| <para> |
| The <filename>do_package_write</filename> task has been removed. |
| The task is no longer needed. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-update-alternatives-provider'> |
| <title><filename>update-alternative</filename> Provider</title> |
| |
| <para> |
| The default <filename>update-alternatives</filename> provider has |
| been changed from <filename>opkg</filename> to |
| <filename>opkg-utils</filename>. |
| This change resolves some troublesome circular dependencies. |
| The runtime package has also been renamed from |
| <filename>update-alternatives-cworth</filename> |
| to <filename>update-alternatives-opkg</filename>. |
| </para> |
| </section> |
| |
| <section id='migration-1.6-virtclass-overrides'> |
| <title><filename>virtclass</filename> Overrides</title> |
| |
| <para> |
| The <filename>virtclass</filename> overrides are now deprecated. |
| Use the equivalent class overrides instead (e.g. |
| <filename>virtclass-native</filename> becomes |
| <filename>class-native</filename>.) |
| </para> |
| </section> |
| |
| <section id='migration-1.6-removed-renamed-recipes'> |
| <title>Removed and Renamed Recipes</title> |
| |
| <para> |
| The following recipes have been removed: |
| <itemizedlist> |
| <listitem><para><filename>packagegroup-toolset-native</filename> - |
| This recipe is largely unused. |
| </para></listitem> |
| <listitem><para><filename>linux-yocto-3.8</filename> - |
| Support for the Linux yocto 3.8 kernel has been dropped. |
| Support for the 3.10 and 3.14 kernels have been added |
| with the <filename>linux-yocto-3.10</filename> and |
| <filename>linux-yocto-3.14</filename> recipes. |
| </para></listitem> |
| <listitem><para><filename>ocf-linux</filename> - |
| This recipe has been functionally replaced using |
| <filename>cryptodev-linux</filename>. |
| </para></listitem> |
| <listitem><para><filename>genext2fs</filename> - |
| <filename>genext2fs</filename> is no longer used by the |
| build system and is unmaintained upstream. |
| </para></listitem> |
| <listitem><para><filename>js</filename> - |
| This provided an ancient version of Mozilla's javascript |
| engine that is no longer needed. |
| </para></listitem> |
| <listitem><para><filename>zaurusd</filename> - |
| The recipe has been moved to the |
| <filename>meta-handheld</filename> layer. |
| </para></listitem> |
| <listitem><para><filename>eglibc 2.17</filename> - |
| Replaced by the <filename>eglibc 2.19</filename> |
| recipe. |
| </para></listitem> |
| <listitem><para><filename>gcc 4.7.2</filename> - |
| Replaced by the now stable |
| <filename>gcc 4.8.2</filename>. |
| </para></listitem> |
| <listitem><para><filename>external-sourcery-toolchain</filename> - |
| this recipe is now maintained in the |
| <filename>meta-sourcery</filename> layer. |
| </para></listitem> |
| <listitem><para><filename>linux-libc-headers-yocto 3.4+git</filename> - |
| Now using version 3.10 of the |
| <filename>linux-libc-headers</filename> by default. |
| </para></listitem> |
| <listitem><para><filename>meta-toolchain-gmae</filename> - |
| This recipe is obsolete. |
| </para></listitem> |
| <listitem><para><filename>packagegroup-core-sdk-gmae</filename> - |
| This recipe is obsolete. |
| </para></listitem> |
| <listitem><para><filename>packagegroup-core-standalone-gmae-sdk-target</filename> - |
| This recipe is obsolete. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.6-removed-classes'> |
| <title>Removed Classes</title> |
| |
| <para> |
| The following classes have become obsolete and have been removed: |
| <itemizedlist> |
| <listitem><para><filename>module_strip</filename> |
| </para></listitem> |
| <listitem><para><filename>pkg_metainfo</filename> |
| </para></listitem> |
| <listitem><para><filename>pkg_distribute</filename> |
| </para></listitem> |
| <listitem><para><filename>image-empty</filename> |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.6-reference-bsps'> |
| <title>Reference Board Support Packages (BSPs)</title> |
| |
| <para> |
| The following reference BSPs changes occurred: |
| <itemizedlist> |
| <listitem><para>The BeagleBoard |
| (<filename>beagleboard</filename>) ARM reference hardware |
| has been replaced by the BeagleBone |
| (<filename>beaglebone</filename>) hardware. |
| </para></listitem> |
| <listitem><para>The RouterStation Pro |
| (<filename>routerstationpro</filename>) MIPS reference |
| hardware has been replaced by the EdgeRouter Lite |
| (<filename>edgerouter</filename>) hardware. |
| </para></listitem> |
| </itemizedlist> |
| The previous reference BSPs for the |
| <filename>beagleboard</filename> and |
| <filename>routerstationpro</filename> machines are still available |
| in a new <filename>meta-yocto-bsp-old</filename> layer in the |
| <ulink url='&YOCTO_GIT_URL;'>Source Repositories</ulink> |
| at |
| <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/'>http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/</ulink>. |
| </para> |
| </section> |
| </section> |
| |
| <section id='moving-to-the-yocto-project-1.7-release'> |
| <title>Moving to the Yocto Project 1.7 Release</title> |
| |
| <para> |
| This section provides migration information for moving to the |
| Yocto Project 1.7 Release from the prior release. |
| </para> |
| |
| <section id='migration-1.7-changes-to-setting-qemu-packageconfig-options'> |
| <title>Changes to Setting QEMU <filename>PACKAGECONFIG</filename> Options in <filename>local.conf</filename></title> |
| |
| <para> |
| The QEMU recipe now uses a number of |
| <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link> |
| options to enable various optional features. |
| The method used to set defaults for these options means that |
| existing |
| <filename>local.conf</filename> files will need to be be |
| modified to append to <filename>PACKAGECONFIG</filename> for |
| <filename>qemu-native</filename> and |
| <filename>nativesdk-qemu</filename> instead of setting it. |
| In other words, to enable graphical output for QEMU, you should |
| now have these lines in <filename>local.conf</filename>: |
| <literallayout class='monospaced'> |
| PACKAGECONFIG_append_pn-qemu-native = " sdl" |
| PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" |
| </literallayout> |
| </para> |
| </section> |
| |
| <section id='migration-1.7-minimum-git-version'> |
| <title>Minimum Git version</title> |
| |
| <para> |
| The minimum |
| <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> version required |
| on the build host is now 1.7.8 because the |
| <filename>--list</filename> option is now required by |
| BitBake's Git fetcher. |
| As always, if your host distribution does not provide a version of |
| Git that meets this requirement, you can use the |
| <filename>buildtools-tarball</filename> that does. |
| See the |
| "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>" |
| section for more information. |
| </para> |
| </section> |
| |
| <section id='migration-1.7-autotools-class-changes'> |
| <title>Autotools Class Changes</title> |
| |
| <para> |
| The following |
| <link linkend='ref-classes-autotools'><filename>autotools</filename></link> |
| class changes occurred: |
| <itemizedlist> |
| <listitem><para><emphasis> |
| A separate build directory is now used by default:</emphasis> |
| The <filename>autotools</filename> class has been changed |
| to use a directory for building |
| (<link linkend='var-B'><filename>B</filename></link>), |
| which is separate from the source directory |
| (<link linkend='var-S'><filename>S</filename></link>). |
| This is commonly referred to as |
| <filename>B != S</filename>, or an out-of-tree build.</para> |
| <para>If the software being built is already capable of |
| building in a directory separate from the source, you |
| do not need to do anything. |
| However, if the software is not capable of being built |
| in this manner, you will |
| need to either patch the software so that it can build |
| separately, or you will need to change the recipe to |
| inherit the |
| <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link> |
| class instead of the <filename>autotools</filename> class. |
| </para></listitem> |
| <listitem><para><emphasis> |
| The <filename>--foreign</filename> option is |
| no longer passed to <filename>automake</filename> when |
| running <filename>autoconf</filename>:</emphasis> |
| This option tells <filename>automake</filename> that a |
| particular software package does not follow the GNU |
| standards and therefore should not be expected |
| to distribute certain files such as |
| <filename>ChangeLog</filename>, |
| <filename>AUTHORS</filename>, and so forth. |
| Because the majority of upstream software packages already |
| tell <filename>automake</filename> to enable foreign mode |
| themselves, the option is mostly superfluous. |
| However, some recipes will need patches for this change. |
| You can easily make the change by patching |
| <filename>configure.ac</filename> so that it passes |
| "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>. |
| See |
| <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'>this commit</ulink> |
| for an example showing how to make the patch. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.7-binary-configuration-scripts-disabled'> |
| <title>Binary Configuration Scripts Disabled</title> |
| |
| <para> |
| Some of the core recipes that package binary configuration scripts |
| now disable the scripts due to the |
| scripts previously requiring error-prone path substitution. |
| Software that links against these libraries using these scripts |
| should use the much more robust <filename>pkg-config</filename> |
| instead. |
| The list of recipes changed in this version (and their |
| configuration scripts) is as follows: |
| <literallayout class='monospaced'> |
| directfb (directfb-config) |
| freetype (freetype-config) |
| gpgme (gpgme-config) |
| libassuan (libassuan-config) |
| libcroco (croco-6.0-config) |
| libgcrypt (libgcrypt-config) |
| libgpg-error (gpg-error-config) |
| libksba (ksba-config) |
| libpcap (pcap-config) |
| libpcre (pcre-config) |
| libpng (libpng-config, libpng16-config) |
| libsdl (sdl-config) |
| libusb-compat (libusb-config) |
| libxml2 (xml2-config) |
| libxslt (xslt-config) |
| ncurses (ncurses-config) |
| neon (neon-config) |
| npth (npth-config) |
| pth (pth-config) |
| taglib (taglib-config) |
| </literallayout> |
| Additionally, support for <filename>pkg-config</filename> has been |
| added to some recipes in the previous list in the rare cases |
| where the upstream software package does not already provide |
| it. |
| </para> |
| </section> |
| |
| <section id='migration-1.7-glibc-replaces-eglibc'> |
| <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title> |
| |
| <para> |
| Because <filename>eglibc</filename> and |
| <filename>glibc</filename> were already fairly close, this |
| replacement should not require any significant changes to other |
| software that links to <filename>eglibc</filename>. |
| However, there were a number of minor changes in |
| <filename>glibc 2.20</filename> upstream that could require |
| patching some software (e.g. the removal of the |
| <filename>_BSD_SOURCE</filename> feature test macro). |
| </para> |
| |
| <para> |
| <filename>glibc 2.20</filename> requires version 2.6.32 or greater |
| of the Linux kernel. |
| Thus, older kernels will no longer be usable in conjunction with it. |
| </para> |
| |
| <para> |
| For full details on the changes in <filename>glibc 2.20</filename>, |
| see the upstream release notes |
| <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'>here</ulink>. |
| </para> |
| </section> |
| |
| <section id='migration-1.7-kernel-module-autoloading'> |
| <title>Kernel Module Autoloading</title> |
| |
| <para> |
| The |
| <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link> |
| variable is now deprecated and a new |
| <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link> |
| variable should be used instead. |
| Also, |
| <link linkend='var-module_conf'><filename>module_conf_*</filename></link> |
| must now be used in conjunction with a new |
| <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link> |
| variable. |
| The new variables no longer require you to specify the module name |
| as part of the variable name. |
| This change not only simplifies usage but also allows the values |
| of these variables to be appropriately incorporated into task |
| signatures and thus trigger the appropriate tasks to re-execute |
| when changed. |
| You should replace any references to |
| <filename>module_autoload_*</filename> with |
| <filename>KERNEL_MODULE_AUTOLOAD</filename>, and add any modules |
| for which <filename>module_conf_*</filename> is specified to |
| <filename>KERNEL_MODULE_PROBECONF</filename>. |
| </para> |
| |
| <para> |
| For more information, see the |
| <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link> |
| and |
| <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link> |
| variables. |
| </para> |
| </section> |
| |
| <section id='migration-1.7-qa-check-changes'> |
| <title>QA Check Changes</title> |
| |
| <para> |
| The following changes have occurred to the QA check process: |
| <itemizedlist> |
| <listitem><para> |
| Additional QA checks <filename>file-rdeps</filename> |
| and <filename>build-deps</filename> have been added in |
| order to verify that file dependencies are satisfied |
| (e.g. package contains a script requiring |
| <filename>/bin/bash</filename>) and build-time dependencies |
| are declared, respectively. |
| For more information, please see the |
| "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>" |
| chapter. |
| </para></listitem> |
| <listitem><para> |
| Package QA checks are now performed during a new |
| <link linkend='ref-tasks-package_qa'><filename>do_package_qa</filename></link> |
| task rather than being part of the |
| <link linkend='ref-tasks-package'><filename>do_package</filename></link> |
| task. |
| This allows more parallel execution. |
| This change is unlikely to be an issue except for highly |
| customized recipes that disable packaging tasks themselves |
| by marking them as <filename>noexec</filename>. |
| For those packages, you will need to disable the |
| <filename>do_package_qa</filename> task as well. |
| </para></listitem> |
| <listitem><para> |
| Files being overwritten during the |
| <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link> |
| task now trigger an error instead of a warning. |
| Recipes should not be overwriting files written to the |
| sysroot by other recipes. |
| If you have these types of recipes, you need to alter them |
| so that they do not overwrite these files.</para> |
| <para>You might now receive this error after changes in |
| configuration or metadata resulting in orphaned files |
| being left in the sysroot. |
| If you do receive this error, the way to resolve the issue |
| is to delete your |
| <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> |
| or to move it out of the way and then re-start the build. |
| Anything that has been fully built up to that point and |
| does not need rebuilding will be restored from the shared |
| state cache and the rest of the build will be able to |
| proceed as normal. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.7-removed-recipes'> |
| <title>Removed Recipes</title> |
| |
| <para> |
| The following recipes have been removed: |
| <itemizedlist> |
| <listitem><para> |
| <filename>x-load</filename>: |
| This recipe has been superseded by |
| U-boot SPL for all Cortex-based TI SoCs. |
| For legacy boards, the <filename>meta-ti</filename> |
| layer, which contains a maintained recipe, should be used |
| instead. |
| </para></listitem> |
| <listitem><para> |
| <filename>ubootchart</filename>: |
| This recipe is obsolete. |
| A <filename>bootchart2</filename> recipe has been added |
| to functionally replace it. |
| </para></listitem> |
| <listitem><para> |
| <filename>linux-yocto 3.4</filename>: |
| Support for the linux-yocto 3.4 kernel has been dropped. |
| Support for the 3.10 and 3.14 kernels remains, while |
| support for version 3.17 has been added. |
| </para></listitem> |
| <listitem><para> |
| <filename>eglibc</filename> has been removed in favor of |
| <filename>glibc</filename>. |
| See the |
| "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>" |
| section for more information. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.7-miscellaneous-changes'> |
| <title>Miscellaneous Changes</title> |
| |
| <para> |
| The following miscellaneous change occurred: |
| <itemizedlist> |
| <listitem><para> |
| The build history feature now writes |
| <filename>build-id.txt</filename> instead of |
| <filename>build-id</filename>. |
| Additionally, <filename>build-id.txt</filename> |
| now contains the full build header as printed by |
| BitBake upon starting the build. |
| You should manually remove old "build-id" files from your |
| existing build history repositories to avoid confusion. |
| For information on the build history feature, see the |
| "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>" |
| section. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| </section> |
| |
| <section id='moving-to-the-yocto-project-1.8-release'> |
| <title>Moving to the Yocto Project 1.8 Release</title> |
| |
| <para> |
| This section provides migration information for moving to the |
| Yocto Project 1.8 Release from the prior release. |
| </para> |
| |
| <section id='migration-1.8-removed-recipes'> |
| <title>Removed Recipes</title> |
| |
| <para> |
| The following recipes have been removed: |
| <itemizedlist> |
| <listitem><para><filename>owl-video</filename>: |
| Functionality replaced by <filename>gst-player</filename>. |
| </para></listitem> |
| <listitem><para><filename>gaku</filename>: |
| Functionality replaced by <filename>gst-player</filename>. |
| </para></listitem> |
| <listitem><para><filename>gnome-desktop</filename>: |
| This recipe is now available in |
| <filename>meta-gnome</filename> and is no longer needed. |
| </para></listitem> |
| <listitem><para><filename>gsettings-desktop-schemas</filename>: |
| This recipe is now available in |
| <filename>meta-gnome</filename> and is no longer needed. |
| </para></listitem> |
| <listitem><para><filename>python-argparse</filename>: |
| The <filename>argparse</filename> module is already |
| provided in the default Python distribution in a |
| package named <filename>python-argparse</filename>. |
| Consequently, the separate |
| <filename>python-argparse</filename> recipe is no |
| longer needed. |
| </para></listitem> |
| <listitem><para><filename>telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control</filename>: |
| All these recipes have moved to |
| <filename>meta-oe</filename> and are consequently no |
| longer needed by any recipes in OpenEmbedded-Core. |
| </para></listitem> |
| <listitem><para><filename>linux-yocto_3.10</filename> and <filename>linux-yocto_3.17</filename>: |
| Support for the linux-yocto 3.10 and 3.17 kernels has been |
| dropped. |
| Support for the 3.14 kernel remains, while support for |
| 3.19 kernel has been added. |
| </para></listitem> |
| <listitem><para><filename>poky-feed-config-opkg</filename>: |
| This recipe has become obsolete and is no longer needed. |
| Use <filename>distro-feed-config</filename> from |
| <filename>meta-oe</filename> instead. |
| </para></listitem> |
| <listitem><para><filename>libav 0.8.x</filename>: |
| <filename>libav 9.x</filename> is now used. |
| </para></listitem> |
| <listitem><para><filename>sed-native</filename>: |
| No longer needed. |
| A working version of <filename>sed</filename> is expected |
| to be provided by the host distribution. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.8-bluez'> |
| <title>BlueZ 4.x / 5.x Selection</title> |
| |
| <para> |
| Proper built-in support for selecting BlueZ 5.x in preference |
| to the default of 4.x now exists. |
| To use BlueZ 5.x, simply add "bluez5" to your |
| <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link> |
| value. |
| If you had previously added append files |
| (<filename>*.bbappend</filename>) to make this selection, you can |
| now remove them. |
| </para> |
| |
| <para> |
| Additionally, a |
| <link linkend='ref-classes-bluetooth'><filename>bluetooth</filename></link> |
| class has been added to make selection of the appropriate bluetooth |
| support within a recipe a little easier. |
| If you wish to make use of this class in a recipe, add something |
| such as the following: |
| <literallayout class='monospaced'> |
| inherit bluetooth |
| PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} |
| PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" |
| PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" |
| </literallayout> |
| </para> |
| </section> |
| |
| <section id='migration-1.8-kernel-build-changes'> |
| <title>Kernel Build Changes</title> |
| |
| <para> |
| The kernel build process was changed to place the source |
| in a common shared work area and to place build artifacts |
| separately in the source code tree. |
| In theory, migration paths have been provided for most common |
| usages in kernel recipes but this might not work in all cases. |
| In particular, users need to ensure that |
| <filename>${S}</filename> (source files) and |
| <filename>${B}</filename> (build artifacts) are used |
| correctly in functions such as |
| <link linkend='ref-tasks-configure'><filename>do_configure</filename></link> |
| and |
| <link linkend='ref-tasks-install'><filename>do_install</filename></link>. |
| For kernel recipes that do not inherit from |
| <filename>kernel-yocto</filename> or include |
| <filename>linux-yocto.inc</filename>, you might wish to |
| refer to the <filename>linux.inc</filename> file in the |
| <filename>meta-oe</filename> layer for the kinds of changes you |
| need to make. |
| For reference, here is the |
| <ulink url='http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee'>commit</ulink> |
| where the <filename>linux.inc</filename> file in |
| <filename>meta-oe</filename> was updated. |
| </para> |
| |
| <para> |
| Recipes that rely on the kernel source code and do not inherit |
| the module classes might need to add explicit dependencies on |
| the <filename>do_shared_workdir</filename> kernel task, for example: |
| <literallayout class='monospaced'> |
| do_configure[depends] += "virtual/kernel:do_shared_workdir" |
| </literallayout> |
| </para> |
| </section> |
| |
| <section id='migration-1.8-ssl'> |
| <title>SSL 3.0 is Now Disabled in OpenSSL</title> |
| |
| <para> |
| SSL 3.0 is now disabled when building OpenSSL. |
| Disabling SSL 3.0 avoids any lingering instances of the POODLE |
| vulnerability. |
| If you feel you must re-enable SSL 3.0, then you can add an |
| append file (<filename>*.bbappend</filename>) for the |
| <filename>openssl</filename> recipe to remove "-no-ssl3" |
| from |
| <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>. |
| </para> |
| </section> |
| |
| <section id='migration-1.8-default-sysroot-poisoning'> |
| <title>Default Sysroot Poisoning</title> |
| |
| <para> |
| <filename>gcc's</filename> default sysroot and include directories |
| are now "poisoned". |
| In other words, the sysroot and include directories are being |
| redirected to a non-existent location in order to catch when |
| host directories are being used due to the correct options not |
| being passed. |
| This poisoning applies both to the cross-compiler used within the |
| build and to the cross-compiler produced in the SDK. |
| </para> |
| |
| <para> |
| If this change causes something in the build to fail, it almost |
| certainly means the various compiler flags and commands are not |
| being passed correctly to the underlying piece of software. |
| In such cases, you need to take corrective steps. |
| </para> |
| </section> |
| |
| <section id='migration-1.8-rebuild-improvements'> |
| <title>Rebuild Improvements</title> |
| |
| <para> |
| Changes have been made to the |
| <link linkend='ref-classes-base'><filename>base</filename></link>, |
| <link linkend='ref-classes-autotools'><filename>autotools</filename></link>, |
| and |
| <link linkend='ref-classes-cmake'><filename>cmake</filename></link> |
| classes to clean out generated files when the |
| <link linkend='ref-tasks-configure'><filename>do_configure</filename></link> |
| task needs to be re-executed. |
| </para> |
| |
| <para> |
| One of the improvements is to attempt to run "make clean" during |
| the <filename>do_configure</filename> task if a |
| <filename>Makefile</filename> exists. |
| Some software packages do not provide a working clean target |
| within their make files. |
| If you have such recipes, you need to set |
| <link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link> |
| to "1" within the recipe, for example: |
| <literallayout class='monospaced'> |
| CLEANBROKEN = "1" |
| </literallayout> |
| </para> |
| </section> |
| |
| <section id='migration-1.8-qa-check-and-validation-changes'> |
| <title>QA Check and Validation Changes</title> |
| |
| <para> |
| The following QA Check and Validation Changes have occurred: |
| <itemizedlist> |
| <listitem><para> |
| Usage of <filename>PRINC</filename> |
| previously triggered a warning. |
| It now triggers an error. |
| You should remove any remaining usage of |
| <filename>PRINC</filename> in any recipe or append file. |
| </para></listitem> |
| <listitem><para> |
| An additional QA check has been added to detect usage of |
| <filename>${D}</filename> in |
| <link linkend='var-FILES'><filename>FILES</filename></link> |
| values where |
| <link linkend='var-D'><filename>D</filename></link> values |
| should not be used at all. |
| The same check ensures that <filename>$D</filename> is used |
| in |
| <filename>pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm</filename> |
| functions instead of <filename>${D}</filename>. |
| </para></listitem> |
| <listitem><para> |
| <link linkend='var-S'><filename>S</filename></link> now |
| needs to be set to a valid value within a recipe. |
| If <filename>S</filename> is not set in the recipe, the |
| directory is not automatically created. |
| If <filename>S</filename> does not point to a directory |
| that exists at the time the |
| <link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link> |
| task finishes, a warning will be shown. |
| </para></listitem> |
| <listitem><para> |
| <link linkend='var-LICENSE'><filename>LICENSE</filename></link> |
| is now validated for correct formatting of multiple |
| licenses. |
| If the format is invalid (e.g. multiple licenses are |
| specified with no operators to specify how the multiple |
| licenses interact), then a warning will be shown. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| |
| <section id='migration-1.8-miscellaneous-changes'> |
| <title>Miscellaneous Changes</title> |
| |
| <para> |
| The following miscellaneous changes have occurred: |
| <itemizedlist> |
| <listitem><para> |
| The <filename>send-error-report</filename> script now |
| expects a "-s" option to be specified before the server |
| address. |
| This assumes a server address is being specified. |
| </para></listitem> |
| <listitem><para> |
| The <filename>oe-pkgdata-util</filename> script now |
| expects a "-p" option to be specified before the |
| <filename>pkgdata</filename> directory, which is now |
| optional. |
| If the <filename>pkgdata</filename> directory is not |
| specified, the script will run BitBake to query |
| <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link> |
| from the build environment. |
| </para></listitem> |
| </itemizedlist> |
| </para> |
| </section> |
| </section> |
| |
| </chapter> |
| <!-- |
| vim: expandtab tw=80 ts=4 |
| --> |