| Moving to the Yocto Project 1.5 Release |
| ======================================= |
| |
| This section provides migration information for moving to the Yocto |
| Project 1.5 Release from the prior release. |
| |
| .. _migration-1.5-host-dependency-changes: |
| |
| Host Dependency Changes |
| ----------------------- |
| |
| The OpenEmbedded build system now has some additional requirements on |
| the host system: |
| |
| - Python 2.7.3+ |
| |
| - Tar 1.24+ |
| |
| - Git 1.7.8+ |
| |
| - Patched version of Make if you are using 3.82. Most distributions |
| that provide Make 3.82 use the patched version. |
| |
| 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. |
| |
| For more information on this requirement, see the |
| ":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`" |
| section. |
| |
| .. _migration-1.5-atom-pc-bsp: |
| |
| ``atom-pc`` Board Support Package (BSP) |
| --------------------------------------- |
| |
| The ``atom-pc`` hardware reference BSP has been replaced by a |
| ``genericx86`` 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 |
| ``atom-pc`` did. |
| |
| .. note:: |
| |
| Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom |
| systems. |
| |
| .. _migration-1.5-bitbake: |
| |
| BitBake |
| ------- |
| |
| The following changes have been made that relate to BitBake: |
| |
| - BitBake now supports a ``_remove`` operator. The addition of this |
| operator means you will have to rename any items in recipe space |
| (functions, variables) whose names currently contain ``_remove_`` or |
| end with ``_remove`` to avoid unexpected behavior. |
| |
| - 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. |
| |
| - The "none" server backend has been removed. The "process" server |
| backend has been serving well as the default for a long time now. |
| |
| - The ``bitbake-runtask`` script has been removed. |
| |
| - ``${``\ :term:`P`\ ``}`` and |
| ``${``\ :term:`PF`\ ``}`` are no longer added to |
| :term:`PROVIDES` by default in ``bitbake.conf``. |
| These version-specific ``PROVIDES`` 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. |
| |
| .. _migration-1.5-qa-warnings: |
| |
| QA Warnings |
| ----------- |
| |
| The following changes have been made to the package QA checks: |
| |
| - If you have customized :term:`ERROR_QA` or |
| :term:`WARN_QA` 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 ``ERROR_QA`` or ``WARN_QA`` would be treated as |
| a warning. Consequently, several important items were not already in |
| the default value of ``WARN_QA``. All of the possible QA checks are |
| now documented in the ":ref:`insane.bbclass <ref-classes-insane>`" |
| section. |
| |
| - An additional QA check has been added to check if |
| ``/usr/share/info/dir`` is being installed. Your recipe should delete |
| this file within :ref:`ref-tasks-install` if "make |
| install" is installing it. |
| |
| - 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 ``ERROR_QA`` or ``WARN_QA`` 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 |
| ":ref:`insane.bbclass <ref-classes-insane>`" section. |
| |
| .. _migration-1.5-directory-layout-changes: |
| |
| Directory Layout Changes |
| ------------------------ |
| |
| The following directory changes exist: |
| |
| - Output SDK installer files are now named to include the image name |
| and tuning architecture through the :term:`SDK_NAME` |
| variable. |
| |
| - 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 |
| :term:`DEPLOY_DIR_IMAGE` variable continues |
| to point to the directory containing images for the current |
| :term:`MACHINE` and should be used anywhere there is a |
| need to refer to this directory. The ``runqemu`` script now uses this |
| variable to find images and kernel binaries and will use BitBake to |
| determine the directory. Alternatively, you can set the |
| ``DEPLOY_DIR_IMAGE`` variable in the external environment. |
| |
| - When buildhistory is enabled, its output is now written under the |
| :term:`Build Directory` rather than |
| :term:`TMPDIR`. Doing so makes it easier to delete |
| ``TMPDIR`` and preserve the build history. Additionally, data for |
| produced SDKs is now split by :term:`IMAGE_NAME`. |
| |
| - The ``pkgdata`` directory produced as part of the packaging process |
| has been collapsed into a single machine-specific directory. This |
| directory is located under ``sysroots`` and uses a machine-specific |
| name (i.e. ``tmp/sysroots/machine/pkgdata``). |
| |
| .. _migration-1.5-shortened-git-srcrev-values: |
| |
| Shortened Git ``SRCREV`` Values |
| ------------------------------- |
| |
| BitBake will now shorten revisions from Git repositories from the normal |
| 40 characters down to 10 characters within :term:`SRCPV` |
| 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. |
| |
| .. _migration-1.5-image-features: |
| |
| ``IMAGE_FEATURES`` |
| ------------------ |
| |
| The following changes have been made that relate to |
| :term:`IMAGE_FEATURES`: |
| |
| - The value of ``IMAGE_FEATURES`` is now validated to ensure invalid |
| feature items are not added. Some users mistakenly add package names |
| to this variable instead of using |
| :term:`IMAGE_INSTALL` 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 ``IMAGE_FEATURES`` |
| are drawn from ``PACKAGE_GROUP`` definitions, |
| :term:`COMPLEMENTARY_GLOB` and a new |
| "validitems" varflag on ``IMAGE_FEATURES``. The "validitems" varflag |
| change allows additional features to be added if they are not |
| provided using the previous two mechanisms. |
| |
| - The previously deprecated "apps-console-core" ``IMAGE_FEATURES`` item |
| is no longer supported. Add "splash" to ``IMAGE_FEATURES`` if you |
| wish to have the splash screen enabled, since this is all that |
| apps-console-core was doing. |
| |
| .. _migration-1.5-run: |
| |
| ``/run`` |
| -------- |
| |
| The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has |
| been introduced. You can find some of the implications for this change |
| :oe_git:`here </openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`. |
| The change also means that recipes that install files to ``/var/run`` |
| must be changed. You can find a guide on how to make these changes |
| `here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__. |
| |
| .. _migration-1.5-removal-of-package-manager-database-within-image-recipes: |
| |
| Removal of Package Manager Database Within Image Recipes |
| -------------------------------------------------------- |
| |
| The image ``core-image-minimal`` no longer adds |
| ``remove_packaging_data_files`` to |
| :term:`ROOTFS_POSTPROCESS_COMMAND`. |
| This addition is now handled automatically when "package-management" is |
| not in :term:`IMAGE_FEATURES`. 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. |
| |
| .. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time: |
| |
| Images Now Rebuild Only on Changes Instead of Every Time |
| -------------------------------------------------------- |
| |
| The :ref:`ref-tasks-rootfs` 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. |
| |
| .. _migration-1.5-task-recipes: |
| |
| Task Recipes |
| ------------ |
| |
| The previously deprecated ``task.bbclass`` has now been dropped. For |
| recipes that previously inherited from this class, you should rename |
| them from ``task-*`` to ``packagegroup-*`` and inherit packagegroup |
| instead. |
| |
| For more information, see the |
| ":ref:`packagegroup.bbclass <ref-classes-packagegroup>`" section. |
| |
| .. _migration-1.5-busybox: |
| |
| BusyBox |
| ------- |
| |
| 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 ``tinylogin`` recipe as recommended by upstream. You can disable |
| this split by setting |
| :term:`BUSYBOX_SPLIT_SUID` to "0". |
| |
| .. _migration-1.5-automated-image-testing: |
| |
| Automated Image Testing |
| ----------------------- |
| |
| A new automated image testing framework has been added through the |
| :ref:`testimage.bbclass <ref-classes-testimage*>` class. This |
| framework replaces the older ``imagetest-qemu`` framework. |
| |
| You can learn more about performing automated image tests in the |
| ":ref:`dev-manual/common-tasks:performing automated runtime testing`" |
| section in the Yocto Project Development Tasks Manual. |
| |
| .. _migration-1.5-build-history: |
| |
| Build History |
| ------------- |
| |
| Following are changes to Build History: |
| |
| - Installed package sizes: ``installed-package-sizes.txt`` for an image |
| now records the size of the files installed by each package instead |
| of the size of each compressed package archive file. |
| |
| - The dependency graphs (``depends*.dot``) now use the actual package |
| names instead of replacing dashes, dots and plus signs with |
| underscores. |
| |
| - The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs`` |
| utilities have improved command-line handling. Use the ``--help`` |
| option for each utility for more information on the new syntax. |
| |
| For more information on Build History, see the |
| ":ref:`dev-manual/common-tasks:maintaining build output quality`" |
| section in the Yocto Project Development Tasks Manual. |
| |
| .. _migration-1.5-udev: |
| |
| ``udev`` |
| -------- |
| |
| Following are changes to ``udev``: |
| |
| - ``udev`` no longer brings in ``udev-extraconf`` automatically through |
| :term:`RRECOMMENDS`, since this was originally |
| intended to be optional. If you need the extra rules, then add |
| ``udev-extraconf`` to your image. |
| |
| - ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids`` |
| through ``RRECOMMENDS``. These are not needed by ``udev`` itself and |
| removing them saves around 350KB. |
| |
| .. _migration-1.5-removed-renamed-recipes: |
| |
| Removed and Renamed Recipes |
| --------------------------- |
| |
| - The ``linux-yocto`` 3.2 kernel has been removed. |
| |
| - ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``. |
| |
| - ``tinylogin`` has been removed. It has been replaced by a suid |
| portion of Busybox. See the "`BusyBox <#busybox>`__" |
| section for more information. |
| |
| - ``external-python-tarball`` has been renamed to |
| ``buildtools-tarball``. |
| |
| - ``web-webkit`` has been removed. It has been functionally replaced by |
| ``midori``. |
| |
| - ``imake`` has been removed. It is no longer needed by any other |
| recipe. |
| |
| - ``transfig-native`` has been removed. It is no longer needed by any |
| other recipe. |
| |
| - ``anjuta-remote-run`` has been removed. Anjuta IDE integration has |
| not been officially supported for several releases. |
| |
| .. _migration-1.5-other-changes: |
| |
| Other Changes |
| ------------- |
| |
| Following is a list of short entries describing other changes: |
| |
| - ``run-postinsts``: Make this generic. |
| |
| - ``base-files``: Remove the unnecessary ``media/``\ xxx directories. |
| |
| - ``alsa-state``: Provide an empty ``asound.conf`` by default. |
| |
| - ``classes/image``: Ensure |
| :term:`BAD_RECOMMENDATIONS` supports |
| pre-renamed package names. |
| |
| - ``classes/rootfs_rpm``: Implement ``BAD_RECOMMENDATIONS`` for RPM. |
| |
| - ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in |
| :term:`DISTRO_FEATURES`. |
| |
| - ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is |
| present and ``sysvinit`` is not a distro feature. |
| |
| - ``libpam``: Deny all services for the ``OTHER`` entries. |
| |
| - ``image.bbclass``: Move ``runtime_mapping_rename`` to avoid conflict |
| with ``multilib``. See :yocto_bugs:`YOCTO #4993 </show_bug.cgi?id=4993>` |
| in Bugzilla for more information. |
| |
| - ``linux-dtb``: Use kernel build system to generate the ``dtb`` files. |
| |
| - ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool. |
| |