summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/migration.xml
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/migration.xml')
-rw-r--r--documentation/ref-manual/migration.xml174
1 files changed, 119 insertions, 55 deletions
diff --git a/documentation/ref-manual/migration.xml b/documentation/ref-manual/migration.xml
index 4ac36e5cf8..4cf72612bf 100644
--- a/documentation/ref-manual/migration.xml
+++ b/documentation/ref-manual/migration.xml
@@ -3345,7 +3345,8 @@
3345 <title>Minimum Kernel Version</title> 3345 <title>Minimum Kernel Version</title>
3346 3346
3347 <para> 3347 <para>
3348 The minimum kernel version is now 3.2.0, due to the upgrade 3348 The minimum kernel version for the target system and for SDK
3349 is now 3.2.0, due to the upgrade
3349 to <filename>glibc 2.24</filename>. 3350 to <filename>glibc 2.24</filename>.
3350 Specifically, for AArch64-based targets the version is 3351 Specifically, for AArch64-based targets the version is
3351 3.14. 3352 3.14.
@@ -3387,51 +3388,81 @@
3387 </para> 3388 </para>
3388 </section> 3389 </section>
3389 3390
3390 <section id='migration-2.2-bitbake-now-requires-python-3.4'> 3391 <section id='migration-2.2-python-changes'>
3391 <title>BitBake Now Requires Python 3.4+</title> 3392 <title>Python Changes</title>
3392 3393
3393 <para> 3394 <para>
3394 BitBake requires Python 3.4 or greater. 3395 The following changes for Python occurred:
3396 <note>
3397 Python 2 and recipes that use it can still be built for the
3398 target as with previous versions.
3399 </note>
3395 </para> 3400 </para>
3396 </section>
3397 3401
3398 <section id='migration-2.2-metadata-now-must-use-python-3-syntax'> 3402 <section id='migration-2.2-bitbake-now-requires-python-3.4'>
3399 <title>Metadata Must Now Use Python 3 Syntax</title> 3403 <title>BitBake Now Requires Python 3.4+</title>
3400 3404
3401 <para> 3405 <para>
3402 The metadata is now required to use Python 3 syntax. 3406 BitBake requires Python 3.4 or greater.
3403 For help preparing metadata, see any of the many Python 3 porting 3407 </para>
3404 guides available. 3408 </section>
3405 Alternatively, you can reference the conversion commits for Bitbake 3409
3406 and you can use OE-Core as a guide for changes. 3410 <section id='migration-2.2-utf-8-locale-required-on-build-host'>
3407 Following are particular areas of interest: 3411 <title>UTF-8 Locale Required on Build Host</title>
3408 <literallayout class='monospaced'> 3412
3413 <para>
3414 A UTF-8 locale is required on the build host due to Python 3.
3415 Since C.UTF-8 is not a standard, the default is en_US.UTF-8.
3416 </para>
3417 </section>
3418
3419 <section id='migration-2.2-metadata-now-must-use-python-3-syntax'>
3420 <title>Metadata Must Now Use Python 3 Syntax</title>
3421
3422 <para>
3423 The metadata is now required to use Python 3 syntax.
3424 For help preparing metadata, see any of the many Python 3 porting
3425 guides available.
3426 Alternatively, you can reference the conversion commits for Bitbake
3427 and you can use OE-Core as a guide for changes.
3428 Following are particular areas of interest:
3429 <literallayout class='monospaced'>
3409 * subprocess command-line pipes needing locale decoding 3430 * subprocess command-line pipes needing locale decoding
3410 * the syntax for octal values changed 3431 * the syntax for octal values changed
3411 * the <filename>iter*()</filename> functions changed name 3432 * the <filename>iter*()</filename> functions changed name
3412 * iterators now return views 3433 * iterators now return views, not lists
3413 * not lists
3414 * changed names for Python modules 3434 * changed names for Python modules
3415 </literallayout> 3435 </literallayout>
3416 </para> 3436 </para>
3417 </section> 3437 </section>
3418 3438
3419 <section id='migration-2.2-target-python-recipes-switched-to-python-3'> 3439 <section id='migration-2.2-target-python-recipes-switched-to-python-3'>
3420 <title>Target Python Recipes Switched to Python 3</title> 3440 <title>Target Python Recipes Switched to Python 3</title>
3421 3441
3422 <para> 3442 <para>
3423 Most target Python recipes have now been switched to Python 3. 3443 Most target Python recipes have now been switched to Python 3.
3424 Unfortunately, systems using RPM as a package manager and 3444 Unfortunately, systems using RPM as a package manager and
3425 providing online package-manager support through SMART still 3445 providing online package-manager support through SMART still
3426 require Python 2. 3446 require Python 2.
3427 </para> 3447 </para>
3448 </section>
3449
3450 <section id='migration-2.2-buildtools-tarball-includes-python-3'>
3451 <title><filename>buildtools-tarball</filename> Includes Python 3</title>
3452
3453 <para>
3454 <filename>buildtools-tarball</filename> now includes Python 3.
3455 </para>
3456 </section>
3428 </section> 3457 </section>
3429 3458
3430 <section id='migration-2.2-uclibc-replaced-by-musl'> 3459 <section id='migration-2.2-uclibc-replaced-by-musl'>
3431 <title>uClibc Replaced by musl</title> 3460 <title>uClibc Replaced by musl</title>
3432 3461
3433 <para> 3462 <para>
3434 Uclibc has been removed in favor of musl. 3463 uClibc has been removed in favor of musl.
3464 Musl has matured, is better maintained, and is compatible with a
3465 wider range of applications as compared to uClibc.
3435 </para> 3466 </para>
3436 </section> 3467 </section>
3437 3468
@@ -3453,21 +3484,34 @@
3453 </para> 3484 </para>
3454 </section> 3485 </section>
3455 3486
3456 <section id='migration-2.2-utf-8-locale-required-on-build-host'> 3487 <section id='migration-2.2-runqemu-ported-to-python'>
3457 <title>UTF-8 Locale Required on Build Host</title> 3488 <title><filename>runqemu</filename> Ported to Python</title>
3458 3489
3459 <para> 3490 <para>
3460 A UTF-8 locale is required on the build host due to Python 3. 3491 <filename>runqemu</filename> has been ported to Python and has
3461 Since C.UTF-8 is not a standard, the default is en_US.UTF-8. 3492 changed behavior in some cases.
3462 </para> 3493 </para>
3463 </section> 3494 </section>
3464 3495
3465 <section id='migration-2.2-runqemu-ported-to-python'> 3496 <section id='migration-2.2-default-linker-hash-style-changed'>
3466 <title><filename>runqemu</filename> Ported to Python</title> 3497 <title>Default Linker Hash Style Changed</title>
3467 3498
3468 <para> 3499 <para>
3469 <filename>runqemu</filename> has been ported to Python and has 3500 The default linker hash style for <filename>gcc-cross</filename>
3470 changed behavior in some cases. 3501 is now "sysv" in order to catch recipes that are building software
3502 without using the OpenEmbedded
3503 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>.
3504 This change could result in seeing some "No GNU_HASH in the elf
3505 binary" QA issues when building such recipes.
3506 You need to fix these recipes so that they use the expected
3507 <filename>LDFLAGS</filename>.
3508 Depending on how the software is built, the build system might
3509 need to be patched.
3510 However, sometimes making this fix is as simple as adding the
3511 following to the recipe:
3512 <literallayout class='monospaced'>
3513 TARGET_CC_ARCH += "${LDFLAGS}"
3514 </literallayout>
3471 </para> 3515 </para>
3472 </section> 3516 </section>
3473 3517
@@ -3499,8 +3543,8 @@
3499 <filename>SRC_URI</filename>. 3543 <filename>SRC_URI</filename>.
3500 </para></listitem> 3544 </para></listitem>
3501 <listitem><para> 3545 <listitem><para>
3502 Some of BitBake's internal code structures for storing the 3546 Some of BitBake's internal code structures for accessing
3503 recipe cache needed to be changed to support the new 3547 the recipe cache needed to be changed to support the new
3504 multi-configuration functionality. 3548 multi-configuration functionality.
3505 These changes will affect external tools that use BitBake's 3549 These changes will affect external tools that use BitBake's
3506 tinfoil module. 3550 tinfoil module.
@@ -3715,7 +3759,8 @@
3715 </para></listitem> 3759 </para></listitem>
3716 <listitem><para> 3760 <listitem><para>
3717 <filename>util-linux</filename>: 3761 <filename>util-linux</filename>:
3718 Make <filename>prlimit</filename> a separate package. 3762 Moved <filename>prlimit</filename> to a separate
3763 <filename>util-linux-prlimit</filename> package.
3719 </para></listitem> 3764 </para></listitem>
3720 </itemizedlist> 3765 </itemizedlist>
3721 </para> 3766 </para>
@@ -3728,25 +3773,21 @@
3728 The following miscellaneous changes have occurred: 3773 The following miscellaneous changes have occurred:
3729 <itemizedlist> 3774 <itemizedlist>
3730 <listitem><para> 3775 <listitem><para>
3731 <filename>buildtools-tarball</filename>:
3732 Replaced <filename>nativesdk-python</filename>
3733 with <filename>nativesdk-python3</filename>.
3734 </para></listitem>
3735 <listitem><para>
3736 <filename>package_regex.inc</filename>: 3776 <filename>package_regex.inc</filename>:
3737 Removed deprecated file. 3777 Removed because the definitions
3738 </para></listitem> 3778 <filename>package_regex.inc</filename> previously contained
3739 <listitem><para> 3779 have been moved to their respective recipes.
3740 <filename>recipetool</filename>:
3741 Set a fixed
3742 <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
3743 by default when fetching from Git.
3744 </para></listitem> 3780 </para></listitem>
3745 <listitem><para> 3781 <listitem><para>
3746 <filename>devtool</filename>: 3782 Both <filename>devtool add</filename> and
3747 Set a fixed 3783 <filename>recipetool create</filename> now use a fixed
3748 <link linkend='var-SRCREV'><filename>SRCREV</filename></link> 3784 <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
3749 by default when fetching from Git. 3785 by default when fetching from a Git repository.
3786 You can override this in either case to use
3787 <filename>${</filename><link linkend='var-AUTOREV'><filename>AUTOREV</filename></link><filename>}</filename>
3788 instead by using the <filename>-a</filename> or
3789 <filename>&dash;&dash;autorev</filename> command-line
3790 option
3750 </para></listitem> 3791 </para></listitem>
3751 <listitem><para> 3792 <listitem><para>
3752 <filename>distcc</filename>: 3793 <filename>distcc</filename>:
@@ -3759,6 +3800,29 @@
3759 <listitem><para> 3800 <listitem><para>
3760 <filename>image.bbclass</filename>: 3801 <filename>image.bbclass</filename>:
3761 Renamed COMPRESS(ION) to CONVERSION. 3802 Renamed COMPRESS(ION) to CONVERSION.
3803 This change means that
3804 <filename>COMPRESSIONTYPES</filename>,
3805 <filename>COMPRESS_DEPENDS</filename> and
3806 <filename>COMPRESS_CMD</filename> are deprecated in favor
3807 of <filename>CONVERSIONTYPES</filename>,
3808 <filename>CONVERSION_DEPENDS</filename> and
3809 <filename>CONVERSION_CMD</filename>.
3810 The <filename>COMPRESS*</filename> variable names will
3811 still work in the 2.2 release but metadata that does not
3812 need to be backwards-compatible should be changed to
3813 use the new names as the <filename>COMPRESS*</filename>
3814 ones will be removed in a future release.
3815 </para></listitem>
3816 <listitem><para>
3817 <filename>gtk-doc</filename>:
3818 A full version of <filename>gtk-doc</filename> is now
3819 made available.
3820 However, some old software might not be capable of using
3821 the current version of <filename>gtk-doc</filename>
3822 to build documentation.
3823 You need to change recipes that build such software so that
3824 they explicitly disable building documentation with
3825 <filename>gtk-doc</filename>.
3762 </para></listitem> 3826 </para></listitem>
3763 </itemizedlist> 3827 </itemizedlist>
3764 </para> 3828 </para>