diff options
| -rw-r--r-- | documentation/ref-manual/migration.xml | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/documentation/ref-manual/migration.xml b/documentation/ref-manual/migration.xml index efed11dcb2..864c489251 100644 --- a/documentation/ref-manual/migration.xml +++ b/documentation/ref-manual/migration.xml | |||
| @@ -1691,6 +1691,304 @@ | |||
| 1691 | </para> | 1691 | </para> |
| 1692 | </section> | 1692 | </section> |
| 1693 | </section> | 1693 | </section> |
| 1694 | |||
| 1695 | <section id='moving-to-the-yocto-project-1.7-release'> | ||
| 1696 | <title>Moving to the Yocto Project 1.7 Release</title> | ||
| 1697 | |||
| 1698 | <para> | ||
| 1699 | This section provides migration information for moving to the | ||
| 1700 | Yocto Project 1.7 Release from the prior release. | ||
| 1701 | </para> | ||
| 1702 | |||
| 1703 | |||
| 1704 | <section id='migration-1.7-autotools-class-changes'> | ||
| 1705 | <title>Autotools Class Changes</title> | ||
| 1706 | |||
| 1707 | <para> | ||
| 1708 | The following | ||
| 1709 | <link linkend='ref-classes-autotools'><filename>autotools</filename></link> | ||
| 1710 | class changes occurred: | ||
| 1711 | <itemizedlist> | ||
| 1712 | <listitem><para><emphasis> | ||
| 1713 | A separate build directory in Autotools recipes is | ||
| 1714 | handled:</emphasis> | ||
| 1715 | The <filename>autotools</filename> class has been changed | ||
| 1716 | to use a directory for building | ||
| 1717 | (<link linkend='var-B'><filename>B</filename></link>), | ||
| 1718 | which is separate from the source directory | ||
| 1719 | (<link linkend='var-S'><filename>S</filename></link>). | ||
| 1720 | If the software being built is already capable of | ||
| 1721 | building in a directory separate from the source, you | ||
| 1722 | do not need to do anything. | ||
| 1723 | However, if this capability does not exist, you will | ||
| 1724 | need to either patch the software so that it can build | ||
| 1725 | separately, or you will need to change the recipe to | ||
| 1726 | inherit the | ||
| 1727 | <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link> | ||
| 1728 | class instead of the <filename>autotools</filename> class. | ||
| 1729 | </para></listitem> | ||
| 1730 | <listitem><para><emphasis> | ||
| 1731 | Handle "foreign":</emphasis> | ||
| 1732 | The <filename>--foreign</filename> option is no longer | ||
| 1733 | passed to <filename>automake</filename> when running | ||
| 1734 | <filename>autoreconf</filename>. | ||
| 1735 | This option tells <filename>automake</filename> that a | ||
| 1736 | particular software package does not follow the GNU | ||
| 1737 | standards and therefore should not be expected | ||
| 1738 | to distribute certain files such as | ||
| 1739 | <filename>ChangeLog</filename>, | ||
| 1740 | <filename>AUTHORS</filename>, and so forth. | ||
| 1741 | The majority of upstream software packages already tell | ||
| 1742 | <filename>automake</filename> these packages are foreign | ||
| 1743 | and thus this option is mostly superfluous. | ||
| 1744 | However, some recipes will need patches for this change. | ||
| 1745 | You can easily make the change by patching | ||
| 1746 | <filename>configure.ac</filename> so that it passes | ||
| 1747 | "foreign" to <filename>AM_INIT_AUTOMAKE()</filename>. | ||
| 1748 | See | ||
| 1749 | <ulink url='http://cgit.openembedded.org/openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2'></ulink> | ||
| 1750 | for an example showing how to make the patch. | ||
| 1751 | </para></listitem> | ||
| 1752 | </itemizedlist> | ||
| 1753 | </para> | ||
| 1754 | </section> | ||
| 1755 | |||
| 1756 | <section id='migration-1.7-binary-configuration-scripts-disabled'> | ||
| 1757 | <title>Binary Configuration Scripts Disabled</title> | ||
| 1758 | |||
| 1759 | <para> | ||
| 1760 | Some of the core recipes that previously packaged binary | ||
| 1761 | configuration scripts now disable the scripts instead due to the | ||
| 1762 | scripts previously requiring error-prone path substitution. | ||
| 1763 | Software that links against these libraries using these scripts | ||
| 1764 | should use the much more robust | ||
| 1765 | <filename>pkg-config</filename> instead. | ||
| 1766 | The list of recipes changed in this version (and their | ||
| 1767 | configuration scripts) is as follows: | ||
| 1768 | <literallayout class='monospaced'> | ||
| 1769 | directfb (directfb-config) | ||
| 1770 | freetype (freetype-config) | ||
| 1771 | gpgme (gpgme-config) | ||
| 1772 | libassuan (libassuan-config) | ||
| 1773 | libcroco (croco-6.0-config) | ||
| 1774 | libgcrypt (libgcrypt-config) | ||
| 1775 | libgpg-error (gpg-error-config) | ||
| 1776 | libksba (ksba-config) | ||
| 1777 | libpcap (pcap-config) | ||
| 1778 | libpcre (pcre-config) | ||
| 1779 | libpng (libpng-config, libpng16-config) | ||
| 1780 | libsdl (sdl-config) | ||
| 1781 | libusb-compat (libusb-config) | ||
| 1782 | libxml2 (xml2-config) | ||
| 1783 | libxslt (xslt-config) | ||
| 1784 | ncurses (ncurses-config) | ||
| 1785 | neon (neon-config) | ||
| 1786 | npth (npth-config) | ||
| 1787 | pth (pth-config) | ||
| 1788 | taglib (taglib-config) | ||
| 1789 | </literallayout> | ||
| 1790 | <note> | ||
| 1791 | Support for <filename>pkg-config</filename> has been added to | ||
| 1792 | some recipes in the previous list in the rare cases | ||
| 1793 | where the upstream software package does not already provide | ||
| 1794 | it. | ||
| 1795 | </note> | ||
| 1796 | </para> | ||
| 1797 | </section> | ||
| 1798 | |||
| 1799 | <section id='migration-1.7-glibc-replaces-eglibc'> | ||
| 1800 | <title><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></title> | ||
| 1801 | |||
| 1802 | <para> | ||
| 1803 | Because <filename>eglibc</filename> and | ||
| 1804 | <filename>glibc</filename> were already fairly close, this | ||
| 1805 | replacement should not require any significant changes to other | ||
| 1806 | software that links to <filename>eglibc</filename>. | ||
| 1807 | However, there were a number of minor changes in | ||
| 1808 | <filename>glibc 2.20</filename> upstream that could require | ||
| 1809 | patching some software (e.g. the removal of the | ||
| 1810 | <filename>_BSD_SOURCE</filename> feature test macro). | ||
| 1811 | </para> | ||
| 1812 | |||
| 1813 | <para> | ||
| 1814 | <filename>glibc 2.20</filename> also minimally requires version | ||
| 1815 | 2.6.32 of the Linux kernel. | ||
| 1816 | Thus, older kernels will no longer be usable in conjunction with it. | ||
| 1817 | </para> | ||
| 1818 | |||
| 1819 | <para> | ||
| 1820 | For full details on the changes in <filename>glibc 2.20</filename>, | ||
| 1821 | see the upstream release notes at | ||
| 1822 | <ulink url='https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html'></ulink>. | ||
| 1823 | </para> | ||
| 1824 | </section> | ||
| 1825 | |||
| 1826 | <section id='migration-1.7-kernel-module-autoloading'> | ||
| 1827 | <title>Kernel Module Autoloading</title> | ||
| 1828 | |||
| 1829 | <para> | ||
| 1830 | The | ||
| 1831 | <link linkend='var-module_autoload'><filename>module_autoload_*</filename></link> | ||
| 1832 | and | ||
| 1833 | <link linkend='var-module_conf'><filename>module_conf_*</filename></link> | ||
| 1834 | variables have been replaced with the variables | ||
| 1835 | <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link> | ||
| 1836 | and | ||
| 1837 | <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link>, | ||
| 1838 | respectively. | ||
| 1839 | These variables no longer require you to specify the module name | ||
| 1840 | as part of the variable name. | ||
| 1841 | This change not only simplifies usage but also allows the values | ||
| 1842 | of these variables to be appropriately incorporated into task | ||
| 1843 | signatures and thus trigger the appropriate tasks to re-execute | ||
| 1844 | when changed. | ||
| 1845 | You should replace any references to | ||
| 1846 | <filename>module_autoload_*</filename> or | ||
| 1847 | <filename>module_conf_*</filename> with the new variables. | ||
| 1848 | <note> | ||
| 1849 | While it is recommended that you replace occurrences of the | ||
| 1850 | <filename>module_conf_*</filename> variable with the | ||
| 1851 | <filename>KERNEL_MODULE_PROBECONF</filename> variable, the | ||
| 1852 | OpenEmbedded build system still recognizes the | ||
| 1853 | <filename>module_conf_*</filename> variable. | ||
| 1854 | However, you must be sure that any module name used in the | ||
| 1855 | override with the <filename>module_conf</filename> variable | ||
| 1856 | is included in the <filename>KERNEL_MODULE_PROBECONF</filename> | ||
| 1857 | variable. | ||
| 1858 | </note> | ||
| 1859 | </para> | ||
| 1860 | |||
| 1861 | <para> | ||
| 1862 | For more information, see the | ||
| 1863 | <link linkend='var-KERNEL_MODULE_AUTOLOAD'><filename>KERNEL_MODULE_AUTOLOAD</filename></link> | ||
| 1864 | and | ||
| 1865 | <link linkend='var-KERNEL_MODULE_PROBECONF'><filename>KERNEL_MODULE_PROBECONF</filename></link> | ||
| 1866 | descriptions in the variable's glossary. | ||
| 1867 | </para> | ||
| 1868 | </section> | ||
| 1869 | |||
| 1870 | <section id='migration-1.7-removed-recipes'> | ||
| 1871 | <title>Removed Recipes</title> | ||
| 1872 | |||
| 1873 | <para> | ||
| 1874 | The following recipes have been removed: | ||
| 1875 | <itemizedlist> | ||
| 1876 | <listitem><para> | ||
| 1877 | <filename>x-load</filename>: | ||
| 1878 | This recipe has been superseded by | ||
| 1879 | U-boot SPL for all Cortex-based TI SoCs. | ||
| 1880 | For legacy boards, the <filename>meta-ti</filename> | ||
| 1881 | layer, which contains a maintained recipe, should be used | ||
| 1882 | instead. | ||
| 1883 | </para></listitem> | ||
| 1884 | <listitem><para> | ||
| 1885 | <filename>ubootchart</filename>: | ||
| 1886 | This recipe is obsolete. | ||
| 1887 | A <filename>bootchart2</filename> recipe has been added | ||
| 1888 | to functionally replace it. | ||
| 1889 | </para></listitem> | ||
| 1890 | <listitem><para> | ||
| 1891 | <filename>linux-yocto 3.4</filename>: | ||
| 1892 | Support for the linux-yocto 3.4 kernel has been dropped. | ||
| 1893 | Support for the 3.10 and 3.14 kernels remains, while | ||
| 1894 | support for version 3.17 has been added. | ||
| 1895 | </para></listitem> | ||
| 1896 | <listitem><para> | ||
| 1897 | <filename>eglibc</filename> has been removed in favor of | ||
| 1898 | <filename>glibc</filename>. | ||
| 1899 | See the | ||
| 1900 | "<link linkend='migration-1.7-glibc-replaces-eglibc'><filename>eglibc 2.19</filename> Replaced with <filename>glibc 2.20</filename></link>" | ||
| 1901 | section for more information. | ||
| 1902 | </para></listitem> | ||
| 1903 | </itemizedlist> | ||
| 1904 | </para> | ||
| 1905 | </section> | ||
| 1906 | |||
| 1907 | <section id='migration-1.7-minimum-git-version'> | ||
| 1908 | <title>Minimum Git version</title> | ||
| 1909 | |||
| 1910 | <para> | ||
| 1911 | The minimum | ||
| 1912 | <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> version required | ||
| 1913 | on the build host is now 1.7.8 because the | ||
| 1914 | <filename>‐‐list</filename> option is now required by | ||
| 1915 | BitBake's Git fetcher. | ||
| 1916 | As always, if your host distribution does not provide a version of | ||
| 1917 | Git that meets this requirement, you can use the | ||
| 1918 | <filename>buildtools-tarball</filename> that does. | ||
| 1919 | See the | ||
| 1920 | "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>" | ||
| 1921 | section for more information. | ||
| 1922 | </para> | ||
| 1923 | </section> | ||
| 1924 | |||
| 1925 | <section id='migration-1.7-qa-check-changes'> | ||
| 1926 | <title>QA Check Changes</title> | ||
| 1927 | |||
| 1928 | <para> | ||
| 1929 | The following changes have occurred to the QA check process: | ||
| 1930 | <itemizedlist> | ||
| 1931 | <listitem><para> | ||
| 1932 | Additional QA checks <filename>file-rdeps</filename> | ||
| 1933 | and <filename>build-deps</filename> have been added in | ||
| 1934 | order to verify that file dependencies are satisfied | ||
| 1935 | (e.g. package contains a script requiring | ||
| 1936 | <filename>/bin/bash</filename>) and build-time dependencies | ||
| 1937 | are declared, respectively. | ||
| 1938 | For more information, please see the | ||
| 1939 | "<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>" | ||
| 1940 | chapter. | ||
| 1941 | </para></listitem> | ||
| 1942 | <listitem><para> | ||
| 1943 | Package QA checks are now performed during a new | ||
| 1944 | <filename>do_package_qa</filename> task rather | ||
| 1945 | than being part of the | ||
| 1946 | <link linkend='ref-tasks-package'><filename>do_package</filename></link> | ||
| 1947 | task. | ||
| 1948 | This allows more parallel execution. | ||
| 1949 | This change is unlikely to be an issue except for highly | ||
| 1950 | customized recipes that disable packaging tasks themselves | ||
| 1951 | by marking them as <filename>noexec</filename>. | ||
| 1952 | For those packages, you will need to disable the | ||
| 1953 | <filename>do_package_qa</filename> task as well. | ||
| 1954 | </para></listitem> | ||
| 1955 | <listitem><para> | ||
| 1956 | Files being overwritten during the | ||
| 1957 | <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link> | ||
| 1958 | task now trigger an error instead of a warning. | ||
| 1959 | Recipes should not be overwriting files written to the | ||
| 1960 | sysroot by other recipes. | ||
| 1961 | If you have these types of recipes, you need to alter them | ||
| 1962 | so that they do not overwrite these files. | ||
| 1963 | </para></listitem> | ||
| 1964 | </itemizedlist> | ||
| 1965 | </para> | ||
| 1966 | </section> | ||
| 1967 | |||
| 1968 | <section id='migration-1.7-miscellaneous-changes'> | ||
| 1969 | <title>Miscellaneous Changes</title> | ||
| 1970 | |||
| 1971 | <para> | ||
| 1972 | The following miscellaneous change occurred: | ||
| 1973 | <itemizedlist> | ||
| 1974 | <listitem><para> | ||
| 1975 | The build history feature now writes | ||
| 1976 | <filename>build-id.txt</filename> instead of | ||
| 1977 | <filename>build-id</filename>. | ||
| 1978 | Additionally, <filename>build-id.txt</filename> | ||
| 1979 | now contains the full build header as printed by | ||
| 1980 | BitBake upon starting the build. | ||
| 1981 | You should manually remove old "build-id" files from your | ||
| 1982 | existing build history repositories to avoid confusion. | ||
| 1983 | For information on the build history feature, see the | ||
| 1984 | "<link linkend='maintaining-build-output-quality'>Maintaining Build Output Quality</link>" | ||
| 1985 | section. | ||
| 1986 | </para></listitem> | ||
| 1987 | </itemizedlist> | ||
| 1988 | </para> | ||
| 1989 | </section> | ||
| 1990 | </section> | ||
| 1991 | |||
| 1694 | </chapter> | 1992 | </chapter> |
| 1695 | <!-- | 1993 | <!-- |
| 1696 | vim: expandtab tw=80 ts=4 | 1994 | vim: expandtab tw=80 ts=4 |
