summaryrefslogtreecommitdiff
path: root/yocto-poky/documentation/ref-manual/migration.xml
diff options
context:
space:
mode:
Diffstat (limited to 'yocto-poky/documentation/ref-manual/migration.xml')
-rw-r--r--yocto-poky/documentation/ref-manual/migration.xml3286
1 files changed, 0 insertions, 3286 deletions
diff --git a/yocto-poky/documentation/ref-manual/migration.xml b/yocto-poky/documentation/ref-manual/migration.xml
deleted file mode 100644
index e6c0aa36b..000000000
--- a/yocto-poky/documentation/ref-manual/migration.xml
+++ /dev/null
@@ -1,3286 +0,0 @@
-<!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, which are built to run
- on the host system, 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 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, which are
- relocatable packages that are native to
- <link linkend='var-SDK_ARCH'><filename>SDK_ARCH</filename></link>,
- 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.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>&amp;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-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'><filename>autotools-brokensep</filename></link>
- class instead of the <filename>autotools</filename> or
- <filename>autotools_stage</filename>classes.
- </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'><filename>autotools-brokensep</filename></link>
- class instead of the <filename>autotools</filename> or
- <filename>autotools_stage</filename> classes.
- </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>
-
-<section id='moving-to-the-yocto-project-2.0-release'>
- <title>Moving to the Yocto Project 2.0 Release</title>
-
- <para>
- This section provides migration information for moving to the
- Yocto Project 2.0 Release from the prior release.
- </para>
-
- <section id='migration-2.0-gcc-5'>
- <title>GCC 5</title>
-
- <para>
- The default compiler is now GCC 5.2.
- This change has required fixes for compilation errors in a number
- of other recipes.
- </para>
-
- <para>
- One important example is a fix for when the Linux kernel freezes at
- boot time on ARM when built with GCC 5.
- If you are using your own kernel recipe or source tree and
- building for ARM, you will likely need to apply this
- <ulink url='https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2'>patch</ulink>.
- The standard <filename>linux-yocto</filename> kernel source tree
- already has a workaround for the same issue.
- </para>
-
- <para>
- For further details, see
- <ulink url='https://gcc.gnu.org/gcc-5/changes.html'></ulink> and
- the porting guide at
- <ulink url='https://gcc.gnu.org/gcc-5/porting_to.html'></ulink>.
- </para>
-
- <para>
- Alternatively, you can switch back to GCC 4.9 or 4.8 by
- setting <filename>GCCVERSION</filename> in your configuration,
- as follows:
- <literallayout class='monospaced'>
- GCCVERSION = "4.9%"
- </literallayout>
- </para>
- </section>
-
- <section id='migration-2.0-Gstreamer-0.10-removed'>
- <title>Gstreamer 0.10 Removed</title>
-
- <para>
- Gstreamer 0.10 has been removed in favor of Gstreamer 1.x.
- As part of the change, recipes for Gstreamer 0.10 and related
- software are now located
- in <filename>meta-multimedia</filename>.
- This change results in Qt4 having Phonon and Gstreamer
- support in QtWebkit disabled by default.
- </para>
- </section>
-
- <section id='migration-2.0-removed-recipes'>
- <title>Removed Recipes</title>
-
- <para>
- The following recipes have been moved or removed:
- <itemizedlist>
- <listitem><para>
- <filename>bluez4</filename>: The recipe is obsolete and
- has been moved due to <filename>bluez5</filename>
- becoming fully integrated.
- The <filename>bluez4</filename> recipe now resides in
- <filename>meta-oe</filename>.
- </para></listitem>
- <listitem><para>
- <filename>gamin</filename>: The recipe is obsolete and
- has been removed.
- </para></listitem>
- <listitem><para>
- <filename>gnome-icon-theme</filename>: The recipe's
- functionally has been replaced by
- <filename>adwaita-icon-theme</filename>.
- </para></listitem>
- <listitem><para>
- Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have
- been removed in favor of the recipes for Gstreamer 1.x.
- </para></listitem>
- <listitem><para>
- <filename>insserv</filename>: The recipe is obsolete and
- has been removed.
- </para></listitem>
- <listitem><para>
- <filename>libunique</filename>: The recipe is no longer
- used and has been moved to <filename>meta-oe</filename>.
- </para></listitem>
- <listitem><para>
- <filename>midori</filename>: The recipe's functionally
- has been replaced by <filename>epiphany</filename>.
- </para></listitem>
- <listitem><para>
- <filename>python-gst</filename>: The recipe is obsolete
- and has been removed since it only contains bindings for
- Gstreamer 0.10.
- </para></listitem>
- <listitem><para>
- <filename>qt-mobility</filename>: The recipe is obsolete and
- has been removed since it requires
- <filename>Gstreamer 0.10</filename>, which has been
- replaced.
- </para></listitem>
- <listitem><para>
- <filename>subversion</filename>: All 1.6.x versions of this
- recipe have been removed.
- </para></listitem>
- <listitem><para>
- <filename>webkit-gtk</filename>: The older 1.8.3 version
- of this recipe has been removed in favor of
- <filename>webkitgtk</filename>.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.0-bitbake-datastore-improvements'>
- <title>BitBake datastore improvements</title>
-
- <para>
- The method by which BitBake's datastore handles overrides has
- changed.
- Overrides are now applied dynamically and
- <filename>bb.data.update_data()</filename> is now a no-op.
- Thus, <filename>bb.data.update_data()</filename> is no longer
- required in order to apply the correct overrides.
- In practice, this change is unlikely to require any changes to
- Metadata.
- However, these minor changes in behavior exist:
- <itemizedlist>
- <listitem><para>
- All potential overrides are now visible in the variable
- history as seen when you run the following:
- <literallayout class='monospaced'>
- $ bitbake -e
- </literallayout>
- </para></listitem>
- <listitem><para>
- <filename>d.delVar('</filename><replaceable>varname</replaceable><filename>')</filename> and
- <filename>d.setVar('</filename><replaceable>varname</replaceable><filename>', None)</filename>
- result in the variable and all of its overrides being
- cleared out.
- Before the change, only the non-overridden values
- were cleared.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.0-shell-message-function-changes'>
- <title>Shell Message Function Changes</title>
-
- <para>
- The shell versions of the BitBake message functions (i.e.
- <filename>bbdebug</filename>, <filename>bbnote</filename>,
- <filename>bbwarn</filename>, <filename>bbplain</filename>,
- <filename>bberror</filename>, and <filename>bbfatal</filename>)
- are now connected through to their BitBake equivalents
- <filename>bb.debug()</filename>, <filename>bb.note()</filename>,
- <filename>bb.warn()</filename>, <filename>bb.plain()</filename>,
- <filename>bb.error()</filename>, and
- <filename>bb.fatal()</filename>, respectively.
- Thus, those message functions that you would expect to be printed
- by the BitBake UI are now actually printed.
- In practice, this change means two things:
- <itemizedlist>
- <listitem><para>
- If you now see messages on the console that you did not
- previously see as a result of this change, you might
- need to clean up the calls to
- <filename>bbwarn</filename>, <filename>bberror</filename>,
- and so forth.
- Or, you might want to simply remove the calls.
- </para></listitem>
- <listitem><para>
- The <filename>bbfatal</filename> message function now
- suppresses the full error log in the UI, which means any
- calls to <filename>bbfatal</filename> where you still
- wish to see the full error log should be replaced by
- <filename>die</filename> or
- <filename>bbfatal_log</filename>.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.0-extra-development-debug-package-cleanup'>
- <title>Extra Development/Debug Package Cleanup</title>
-
- <para>
- The following recipes have had extra
- <filename>dev/dbg</filename> packages removed:
- <itemizedlist>
- <listitem><para>
- <filename>acl</filename>
- </para></listitem>
- <listitem><para>
- <filename>apmd</filename>
- </para></listitem>
- <listitem><para>
- <filename>aspell</filename>
- </para></listitem>
- <listitem><para>
- <filename>attr</filename>
- </para></listitem>
- <listitem><para>
- <filename>augeas</filename>
- </para></listitem>
- <listitem><para>
- <filename>bzip2</filename>
- </para></listitem>
- <listitem><para>
- <filename>cogl</filename>
- </para></listitem>
- <listitem><para>
- <filename>curl</filename>
- </para></listitem>
- <listitem><para>
- <filename>elfutils</filename>
- </para></listitem>
- <listitem><para>
- <filename>gcc-target</filename>
- </para></listitem>
- <listitem><para>
- <filename>libgcc</filename>
- </para></listitem>
- <listitem><para>
- <filename>libtool</filename>
- </para></listitem>
- <listitem><para>
- <filename>libxmu</filename>
- </para></listitem>
- <listitem><para>
- <filename>opkg</filename>
- </para></listitem>
- <listitem><para>
- <filename>pciutils</filename>
- </para></listitem>
- <listitem><para>
- <filename>rpm</filename>
- </para></listitem>
- <listitem><para>
- <filename>sysfsutils</filename>
- </para></listitem>
- <listitem><para>
- <filename>tiff</filename>
- </para></listitem>
- <listitem><para>
- <filename>xz</filename>
- </para></listitem>
- </itemizedlist>
- All of the above recipes now conform to the standard packaging
- scheme where a single <filename>-dev</filename>,
- <filename>-dbg</filename>, and <filename>-staticdev</filename>
- package exists per recipe.
- </para>
- </section>
-
- <section id='migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core'>
- <title>Recipe Maintenance Tracking Data Moved to OE-Core</title>
-
- <para>
- Maintenance tracking data for recipes that was previously part
- of <filename>meta-yocto</filename> has been moved to OE-Core.
- The change includes <filename>package_regex.inc</filename> and
- <filename>distro_alias.inc</filename>, which are typically enabled
- when using the
- <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
- class.
- Additionally, the contents of
- <filename>upstream_tracking.inc</filename> has now been split out
- to the relevant recipes.
- </para>
- </section>
-
- <section id='migration-2.0-automatic-stale-sysroot-file-cleanup'>
- <title>Automatic Stale Sysroot File Cleanup</title>
-
- <para>
- Stale files from recipes that no longer exist in the current
- configuration are now automatically removed from
- sysroot as well as removed from
- any other place managed by shared state.
- This automatic cleanup means that the build system now properly
- handles situations such as renaming the build system side of
- recipes, removal of layers from
- <filename>bblayers.conf</filename>, and
- <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
- changes.
- </para>
-
- <para>
- Additionally, work directories for old versions of recipes are
- now pruned.
- If you wish to disable pruning old work directories, you can set
- the following variable in your configuration:
- <literallayout class='monospaced'>
- SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
- </literallayout>
- </para>
- </section>
-
- <section id='migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source'>
- <title><filename>linux-yocto</filename> Kernel Metadata Repository Now Split from Source</title>
-
- <para>
- The <filename>linux-yocto</filename> tree has up to now been a
- combined set of kernel changes and configuration (meta) data
- carried in a single tree.
- While this format is effective at keeping kernel configuration and
- source modifications synchronized, it is not always obvious to
- developers how to manipulate the Metadata as compared to the
- source.
- </para>
-
- <para>
- Metadata processing has now been removed from the
- <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
- class and the external Metadata repository
- <filename>yocto-kernel-cache</filename>, which has always been used
- to seed the <filename>linux-yocto</filename> "meta" branch.
- This separate <filename>linux-yocto</filename> cache repository
- is now the primary location for this data.
- Due to this change, <filename>linux-yocto</filename> is no longer
- able to process combined trees.
- Thus, if you need to have your own combined kernel repository,
- you must do the split there as well and update your recipes
- accordingly.
- See the <filename>meta/recipes-kernel/linux/linux-yocto_4.1.bb</filename>
- recipe for an example.
- </para>
- </section>
-
- <section id='migration-2.0-additional-qa-checks'>
- <title>Additional QA checks</title>
-
- <para>
- The following QA checks have been added:
- <itemizedlist>
- <listitem><para>
- Added a "host-user-contaminated" check for ownership
- issues for packaged files outside of
- <filename>/home</filename>.
- The check looks for files that are incorrectly owned by the
- user that ran BitBake instead of owned by a valid user in
- the target system.
- </para></listitem>
- <listitem><para>
- Added an "invalid-chars" check for invalid (non-UTF8)
- characters in recipe metadata variable values
- (i.e.
- <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>,
- <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>,
- <link linkend='var-LICENSE'><filename>LICENSE</filename></link>,
- and
- <link linkend='var-SECTION'><filename>SECTION</filename></link>).
- Some package managers do not support these characters.
- </para></listitem>
- <listitem><para>
- Added an "invalid-packageconfig" check for any options
- specified in
- <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
- that do not match any <filename>PACKAGECONFIG</filename>
- option defined for the recipe.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.0-miscellaneous'>
- <title>Miscellaneous Changes</title>
-
- <para>
- These additional changes exist:
- <itemizedlist>
- <listitem><para>
- <filename>gtk-update-icon-cache</filename> has been
- renamed to <filename>gtk-icon-utils</filename>.
- </para></listitem>
- <listitem><para>
- The <filename>tools-profile</filename>
- <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
- item as well as its corresponding packagegroup and
- <filename>packagegroup-core-tools-profile</filename> no
- longer bring in <filename>oprofile</filename>.
- Bringing in <filename>oprofile</filename> was originally
- added to aid compilation on resource-constrained
- targets.
- However, this aid has not been widely used and is not
- likely to be used going forward due to the more powerful
- target platforms and the existence of better
- cross-compilation tools.
- </para></listitem>
- <listitem><para>
- The
- <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
- variable's default value now specifies
- <filename>ext4</filename> instead of
- <filename>ext3</filename>.
- </para></listitem>
- <listitem><para>
- All support for the <filename>PRINC</filename>
- variable has been removed.
- </para></listitem>
- <listitem><para>
- The <filename>packagegroup-core-full-cmdline</filename>
- packagegroup no longer brings in
- <filename>lighttpd</filename> due to the fact that
- bringing in <filename>lighttpd</filename> is not really in
- line with the packagegroup's purpose, which is to add full
- versions of command-line tools that by default are
- provided by <filename>busybox</filename>.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-</section>
-
-<section id='moving-to-the-yocto-project-2.1-release'>
- <title>Moving to the Yocto Project 2.1 Release</title>
-
- <para>
- This section provides migration information for moving to the
- Yocto Project 2.1 Release from the prior release.
- </para>
-
- <section id='migration-2.1-variable-expansion-in-python-functions'>
- <title>Variable Expansion in Python Functions</title>
-
- <para>
- Variable expressions, such as
- <filename>${</filename><replaceable>varname</replaceable><filename>}</filename>
- no longer expand automatically within Python functions.
- Suppressing expansion was done to allow Python functions to
- construct shell scripts or other code for situations in which you
- do not want such expressions expanded.
- For any existing code that relies on these expansions, you need to
- change the expansions to either expand the value of individual
- variables through <filename>d.getVar()</filename>.
- To alternatively expand more complex expressions,
- use <filename>d.expand()</filename>.
- </para>
- </section>
-
- <section id='migration-2.1-overrides-must-now-be-lower-case'>
- <title>Overrides Must Now be Lower-Case</title>
-
- <para>
- The convention for overrides has always been for them to be
- lower-case characters.
- This practice is now a requirement as BitBake's datastore now
- assumes lower-case characters in order to give a slight performance
- boost during parsing.
- In practical terms, this requirement means that anything that ends
- up in
- <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
- must now appear in lower-case characters (e.g. values for
- <filename>MACHINE</filename>, <filename>TARGET_ARCH</filename>,
- <filename>DISTRO</filename>, and also recipe names if
- <filename>_pn-</filename><replaceable>recipename</replaceable>
- overrides are to be effective).
- </para>
- </section>
-
- <section id='migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory'>
- <title>Expand Parameter to <filename>getVar()</filename> and
- <filename>getVarFlag()</filename> is Now Mandatory</title>
-
- <para>
- The expand parameter to <filename>getVar()</filename> and
- <filename>getVarFlag()</filename> previously defaulted to
- False if not specified.
- Now, however, no default exists so one must be specified.
- You must change any <filename>getVar()</filename> calls that
- do not specify the final expand parameter to calls that do specify
- the parameter.
- You can run the following <filename>sed</filename> command at the
- base of a layer to make this change:
- <literallayout class='monospaced'>
- sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
- sed -e 's:\(\.getVarFlag([^,()]*, [^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
- </literallayout>
- <note>
- The reason for this change is that it prepares the way for
- changing the default to True in a future Yocto Project release.
- This future change is a much more sensible default than False.
- However, the change needs to be made gradually as a sudden
- change of the default would potentially cause side-effects
- that would be difficult to detect.
- </note>
- </para>
- </section>
-
- <section id='migration-2.1-makefile-environment-changes'>
- <title>Makefile Environment Changes</title>
-
- <para>
- <link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link>
- now defaults to "" instead of "-e MAKEFLAGS=".
- Setting <filename>EXTRA_OEMAKE</filename> to "-e MAKEFLAGS=" by
- default was a historical accident that has required many classes
- (e.g. <filename>autotools</filename>, <filename>module</filename>)
- and recipes to override this default in order to work with
- sensible build systems.
- When upgrading to the release, you must edit any recipe that
- relies upon this old default by either setting
- <filename>EXTRA_OEMAKE</filename> back to "-e MAKEFLAGS=" or by
- explicitly setting any required variable value overrides using
- <filename>EXTRA_OEMAKE</filename>, which is typically only needed
- when a Makefile sets a default value for a variable that is
- inappropriate for cross-compilation using the "=" operator rather
- than the "?=" operator.
- </para>
- </section>
-
- <section id='migration-2.1-libexecdir-reverted-to-prefix-libexec'>
- <title><filename>libexecdir</filename> Reverted to <filename>${prefix}/libexec</filename></title>
-
- <para>
- The use of <filename>${libdir}/${BPN}</filename> as
- <filename>libexecdir</filename> is different as compared to all
- other mainstream distributions, which either uses
- <filename>${prefix}/libexec</filename> or
- <filename>${libdir}</filename>.
- The use is also contrary to the GNU Coding Standards
- (i.e. <ulink url='https://www.gnu.org/prep/standards/html_node/Directory-Variables.html'></ulink>)
- that suggest <filename>${prefix}/libexec</filename> and also
- notes that any package-specific nesting should be done by the
- package itself.
- Finally, having <filename>libexecdir</filename> change between
- recipes makes it very difficult for different recipes to invoke
- binaries that have been installed into
- <filename>libexecdir</filename>.
- The Filesystem Hierarchy Standard
- (i.e. <ulink url='http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html'></ulink>)
- now recognizes the use of <filename>${prefix}/libexec/</filename>,
- giving distributions the choice between
- <filename>${prefix}/lib</filename> or
- <filename>${prefix}/libexec</filename> without breaking FHS.
- </para>
- </section>
-
- <section id='migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files'>
- <title><filename>ac_cv_sizeof_off_t</filename> is No Longer Cached in Site Files</title>
-
- <para>
- For recipes inheriting the
- <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
- class, <filename>ac_cv_sizeof_off_t</filename> is no longer cached
- in the site files for <filename>autoconf</filename>.
- The reason for this change is because the
- <filename>ac_cv_sizeof_off_t</filename> value is not necessarily
- static per architecture as was previously assumed.
- Rather, the value changes based on whether large file support is
- enabled.
- For most software that uses <filename>autoconf</filename>, this
- change should not be a problem.
- However, if you have a recipe that bypasses the standard
- <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
- task from the <filename>autotools</filename> class and the software
- the recipe is building uses a very old version of
- <filename>autoconf</filename>, the recipe might be incapable of
- determining the correct size of <filename>off_t</filename> during
- <filename>do_configure</filename>.
- </para>
-
- <para>
- The best course of action is to patch the software as necessary
- to allow the default implementation from the
- <filename>autotools</filename> class to work such that
- <filename>autoreconf</filename> succeeds and produces a working
- configure script), and to remove the
- overridden <filename>do_configure</filename> task such that the
- default implementation does get used.
- </para>
- </section>
-
- <section id='migration-2.1-image-generation-split-out-from-filesystem-generation'>
- <title>Image Generation is Now Split Out from Filesystem Generation</title>
-
- <para>
- Previously, for image recipes the
- <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
- task assembled the filesystem and then from that filesystem
- generated images.
- With this Yocto Project release, image generation is split into
- separate
- <link linkend='ref-tasks-image'><filename>do_image_*</filename></link>
- tasks for clarity both in operation and in the code.
- </para>
-
- <para>
- For most cases, this change does not present any problems.
- However, if you have made customizations that directly modify the
- <filename>do_rootfs</filename> task or that mention
- <filename>do_rootfs</filename>, you might need to update those
- changes.
- In particular, if you had added any tasks after
- <filename>do_rootfs</filename>, you should make edits so that
- those tasks are after the
- <link linkend='ref-tasks-image-complete'><filename>do_image_complete</filename></link>
- task rather than before the task so that the your added tasks
- run at the correct time.
- </para>
-
- <para>
- A minor part of this restructuring is that the post-processing
- definitions and functions have been moved from the
- <link linkend='ref-classes-image'><filename>image</filename></link>
- class to the
- <link linkend='ref-classes-rootfs*'><filename>rootfs-postcommands</filename></link>
- class.
- Functionally, however, they remain unchanged.
- </para>
- </section>
-
- <section id='migration-2.1-removed-recipes'>
- <title>Removed Recipes</title>
-
- <para>
- The following recipes have been removed in the 2.1 release:
- <itemizedlist>
- <listitem><para><filename>gcc</filename> version 4.8:
- Versions 4.9 and 5.3 remain.
- </para></listitem>
- <listitem><para><filename>qt4</filename>:
- All support for Qt 4.x has been moved out to a separate
- <filename>meta-qt4</filename> layer because Qt 4 is no
- longer supported upstream.
- </para></listitem>
- <listitem><para><filename>x11vnc</filename>:
- Moved to the <filename>meta-oe</filename> layer.
- </para></listitem>
- <listitem><para><filename>linux-yocto-3.14</filename>:
- No longer supported.
- </para></listitem>
- <listitem><para><filename>linux-yocto-3.19</filename>:
- No longer supported.
- </para></listitem>
- <listitem><para><filename>libjpeg</filename>:
- Replaced by the <filename>libjpeg-turbo</filename> recipe.
- </para></listitem>
- <listitem><para><filename>pth</filename>:
- Became obsolete.
- </para></listitem>
- <listitem><para><filename>liboil</filename>:
- Recipe is no longer needed and has been moved to the
- <filename>meta-multimedia</filename> layer.
- </para></listitem>
- <listitem><para><filename>gtk-theme-torturer</filename>:
- Recipe is no longer needed and has been moved to the
- <filename>meta-gnome</filename> layer.
- </para></listitem>
- <listitem><para><filename>gnome-mime-data</filename>:
- Recipe is no longer needed and has been moved to the
- <filename>meta-gnome</filename> layer.
- </para></listitem>
- <listitem><para><filename>udev</filename>:
- Replaced by the <filename>eudev</filename> recipe for
- compatibility when using <filename>sysvinit</filename>
- with newer kernels.
- </para></listitem>
- <listitem><para><filename>python-pygtk</filename>:
- Recipe became obsolete.
- </para></listitem>
- <listitem><para><filename>adt-installer</filename>:
- Recipe became obsolete.
- See the
- "<link linkend='migration-2.1-adt-removed'>ADT Removed</link>"
- section for more information.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.1-class-changes'>
- <title>Class Changes</title>
-
- <para>
- The following classes have changed:
- <itemizedlist>
- <listitem><para><filename>autotools_stage</filename>:
- Removed because the
- <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
- class now provides its functionality.
- Recipes that inherited from
- <filename>autotools_stage</filename> should now inherit
- from <filename>autotools</filename> instead.
- </para></listitem>
- <listitem><para><filename>boot-directdisk</filename>:
- Merged into the
- <link linkend='ref-classes-image-vm'><filename>image-vm</filename></link>
- class.
- The <filename>boot-directdisk</filename> class was rarely
- directly used.
- Consequently, this change should not cause any issues.
- </para></listitem>
- <listitem><para><filename>bootimg</filename>:
- Merged into the
- <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
- class.
- The <filename>bootimg</filename> class was rarely
- directly used.
- Consequently, this change should not cause any issues.
- </para></listitem>
- <listitem><para><filename>packageinfo</filename>:
- Removed due to its limited use by the Hob UI, which has
- itself been removed.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.1-build-system-ui-changes'>
- <title>Build System User Interface Changes</title>
-
- <para>
- The following changes have been made to the build system user
- interface:
- <itemizedlist>
- <listitem><para><emphasis>Hob GTK+-based UI</emphasis>:
- Removed because it is unmaintained and based on the
- outdated GTK+ 2 library.
- The Toaster web-based UI is much more capable and is
- actively maintained.
- See the
- "<ulink url='&YOCTO_DOCS_TOAST_URL;#using-the-toaster-web-interface'>Using the Toaster Web Interface</ulink>"
- section in the Yocto Project Toaster User Manual for more
- information on this interface.
- </para></listitem>
- <listitem><para><emphasis>"puccho" BitBake UI</emphasis>:
- Removed because is unmaintained and no longer useful.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.1-adt-removed'>
- <title>ADT Removed</title>
-
- <para>
- The Application Development Toolkit (ADT) has been removed
- because its functionality almost completely overlapped with the
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-using-the-standard-sdk'>standard SDK</ulink>
- and the
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>.
- For information on these SDKs and how to build and use them, see the
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
- </para>
- </section>
-
- <section id='migration-2.1-poky-reference-distribution-changes'>
- <title>Poky Reference Distribution Changes</title>
-
- <para>
- The following changes have been made for the Poky distribution:
- <itemizedlist>
- <listitem><para>
- The <filename>meta-yocto</filename> layer has been renamed
- to <filename>meta-poky</filename> to better match its
- purpose, which is to provide the Poky reference
- distribution.
- The <filename>meta-yocto-bsp</filename> layer retains its
- original name since it provides reference machines for
- the Yocto Project and it is otherwise unrelated to Poky.
- References to <filename>meta-yocto</filename> in your
- <filename>conf/bblayers.conf</filename> should
- automatically be updated, so you should not need to change
- anything unless you are relying on this naming elsewhere.
- </para></listitem>
- <listitem><para>
- The
- <link linkend='ref-classes-uninative'><filename>uninative</filename></link>
- class is now enabled by default in Poky.
- This class attempts to isolate the build system from the
- host distribution's C library and makes re-use of native
- shared state artifacts across different host distributions
- practical.
- With this class enabled, a tarball containing a pre-built
- C library is downloaded at the start of the build.</para>
-
- <para>The <filename>uninative</filename> class is enabled
- through the
- <filename>meta/conf/distro/include/yocto-uninative.inc</filename>
- file, which for those not using the Poky distribution, can
- include to easily enable the same functionality.</para>
-
- <para>Alternatively, if you wish to build your own
- <filename>uninative</filename> tarball, you can do so by
- building the <filename>uninative-tarball</filename> recipe,
- making it available to your build machines
- (e.g. over HTTP/HTTPS) and setting a similar configuration
- as the one set by <filename>yocto-uninative.inc</filename>.
- </para></listitem>
- <listitem><para>
- Static library generation, for most cases, is now disabled
- by default in the Poky distribution.
- Disabling this generation saves some build time as well
- as the size used for build output artifacts.</para>
-
- <para>Disabling this library generation is accomplished
- through a
- <filename>meta/conf/distro/include/no-static-libs.inc</filename>,
- which for those not using the Poky distribution can
- easily include to enable the same functionality.</para>
-
- <para>Any recipe that needs to opt-out of having the
- "--disable-static" option specified on the configure
- command line either because it is not a supported option
- for the configure script or because static libraries are
- needed should set the following variable:
- <literallayout class='monospaced'>
- DISABLE_STATIC = ""
- </literallayout>
- </para></listitem>
- <listitem><para>
- The separate <filename>poky-tiny</filename> distribution
- now uses the musl C library instead of a heavily pared
- down <filename>glibc</filename>.
- Using <filename>glibc</filename> results in a smaller
- distribution and facilitates much greater maintainability
- because musl is designed to have a small footprint.</para>
-
- <para>If you have used <filename>poky-tiny</filename> and
- have customized the <filename>glibc</filename>
- configuration you will need to redo those customizations
- with musl when upgrading to the new release.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.1-packaging-changes'>
- <title>Packaging Changes</title>
-
- <para>
- The following changes have been made to packaging:
- <itemizedlist>
- <listitem><para>
- The <filename>runuser</filename> and
- <filename>mountpoint</filename> binaries, which were
- previously in the main <filename>util-linux</filename>
- package, have been split out into the
- <filename>util-linux-runuser</filename> and
- <filename>util-linux-mountpoint</filename> packages,
- respectively.
- </para></listitem>
- <listitem><para>
- The <filename>python-elementtree</filename> package has
- been merged into the <filename>python-xml</filename>
- package.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.1-tuning-file-changes'>
- <title>Tuning File Changes</title>
-
- <para>
- The following changes have been made to the tuning files:
- <itemizedlist>
- <listitem><para>
- The "no-thumb-interwork" tuning feature has been dropped
- from the ARM tune include files.
- Because interworking is required for ARM EABI, attempting
- to disable it through a tuning feature no longer makes
- sense.
- <note>
- Support for ARM OABI was deprecated in gcc 4.7.
- </note>
- </para></listitem>
- <listitem><para>
- The <filename>tune-cortexm*.inc</filename> and
- <filename>tune-cortexr4.inc</filename> files have been
- removed because they are poorly tested.
- Until the OpenEmbedded build system officially gains
- support for CPUs without an MMU, these tuning files would
- probably be better maintained in a separate layer
- if needed.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='migration-2.1-miscellaneous-changes'>
- <title>Miscellaneous Changes</title>
-
- <para>
- These additional changes exist:
- <itemizedlist>
- <listitem><para>
- The minimum Git version has been increased to 1.8.3.1.
- If your host distribution does not provide a sufficiently
- recent version, you can install the buildtools, which
- will provide it.
- </para></listitem>
- <listitem><para>
- The buggy and incomplete support for the RPM version 4
- package manager has been removed.
- The well-tested and maintained support for RPM version 5
- remains.
- </para></listitem>
- <listitem><para>
- The
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'><filename>devtool modify</filename></ulink>
- command now defaults to extracting the source since that
- is most commonly expected.
- The "-x" or "--extract" options are now no-ops.
- If you wish to provide your own existing source tree, you
- will now need to specify either the "-n" or
- "--no-extract" option when running
- <filename>devtool modify</filename>.
- </para></listitem>
- <listitem><para>
- If the formfactor for a machine is either not supplied
- or does not specify whether a keyboard is attached, then
- the default is to assume a keyboard is attached rather
- than assume no keyboard.
- <note>
- This change primarily affects the Sato UI.
- </note>
- </para></listitem>
- <listitem><para>
- The <filename>.debug</filename> directory packaging is
- now automatic.
- If your recipe builds software that installs binaries into
- directories other than the standard ones, you no longer
- need to take care of setting
- <filename>FILES_${PN}-dbg</filename> to pick up the
- resulting <filename>.debug</filename> directories as these
- directories are automatically found and added.
- </para></listitem>
- <listitem><para>
- Inaccurate disk and CPU percentage data has been dropped
- from <filename>buildstats</filename> output.
- This data has been replaced with
- <filename>getrusage()</filename> data and corrected IO
- statistics.
- You will probably need to update code that reads the
- <filename>buildstats</filename> data.
- </para></listitem>
- <listitem><para>
- The
- <filename>meta/conf/distro/include/package_regex.inc</filename>
- is now deprecated.
- The contents of this file have been moved to individual
- recipes.
- <note><title>Tip</title>
- Because this file will likely be removed in a future
- Yocto Project release, it is suggested that you remove
- any references to the file that might be in your
- configuration.
- </note>
- </para></listitem>
- <listitem><para>
- The <filename>v86d/uvesafb</filename> has been removed from
- the <filename>genericx86</filename> and
- <filename>genericx86-64</filename> reference machines,
- which are provided by the
- <filename>meta-yocto-bsp</filename> layer.
- Most modern x86 boards do not rely on this file and it only
- adds kernel error messages during startup.
- If you do still need the file, you can simply add
- <filename>v86d</filename> to your image.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
-</section>
-
-</chapter>
-<!--
-vim: expandtab tw=80 ts=4
--->