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.xml212
1 files changed, 212 insertions, 0 deletions
diff --git a/documentation/ref-manual/migration.xml b/documentation/ref-manual/migration.xml
index 2bdb542ec1..92f8a7f67b 100644
--- a/documentation/ref-manual/migration.xml
+++ b/documentation/ref-manual/migration.xml
@@ -3955,6 +3955,218 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
3955 </section> 3955 </section>
3956</section> 3956</section>
3957 3957
3958<section id='moving-to-the-yocto-project-2.3-release'>
3959 <title>Moving to the Yocto Project 2.3 Release</title>
3960
3961 <para>
3962 This section provides migration information for moving to the
3963 Yocto Project 2.3 Release from the prior release.
3964 </para>
3965
3966 <section id='migration-2.3-sysroots'>
3967 <title>Sysroots</title>
3968
3969 <para>
3970 The Open-Embedded build system now uses one sysroot per
3971 recipe to resolve long-standing issues with configuration
3972 script auto-detection of undeclared dependencies.
3973 Consequently, you must explicitely declare all build-time
3974 dependencies for your recipe.
3975 If you do not declare these dependencies, they are not
3976 populated into the sysroot for the recipe.
3977 </para>
3978 </section>
3979
3980 <section id='migration-2.3-path-variable'>
3981 <title><filename>PATH</filename> Variable</title>
3982
3983 <para>
3984 The environment variable <filename>PATH</filename> is now
3985 sanitized such that symbolic links linking only the binaries
3986 from the host mentioned in the
3987 <filename>HOSTTOOLS</filename> and
3988 <filename>HOSTTOOLS_NONFATAL</filename> variables into
3989 their own directory are added to <filename>PATH</filename>.
3990 Consequently, any native binaries that you need to call should
3991 either be in one of these two variables at the configuration
3992 level.
3993 </para>
3994
3995 <para>
3996 Alternatively, you can use a native recipe (i.e.
3997 <filename>-native</filename>) that includes the recipe's
3998 <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
3999 value.
4000 </para>
4001 </section>
4002
4003 <section id='migration-2.3-functions'>
4004 <title>Changes to Functions</title>
4005
4006 <para>
4007 The previously deprecated
4008 <filename>bb.data.getVar()</filename>,
4009 <filename>bb.data.setVar()</filename>, and
4010 related functions have been removed in favor of
4011 <filename>d.getVar()</filename>,
4012 <filename>d.setVar()</filename>, and so forth.
4013 </para>
4014
4015 <para>
4016 You need to fix any references to these old functions.
4017 </para>
4018 </section>
4019
4020 <section id='migration-2.3-dependency-tree-information'>
4021 <title>Dependency Tree Information</title>
4022
4023 <para>
4024 The <filename>package-depends.dot</filename> and
4025 <filename>pn-depends.dot</filename> files as previously generated
4026 using the <filename>bitbake -g</filename> command have been
4027 removed.
4028 A <filename>recipe-depends.dot</filename> file
4029 is now generated as a collapsed version of
4030 <filename>task-depends.dot</filename> instead.
4031 </para>
4032
4033 <para>
4034 The reason for this change is because
4035 <filename>package-depends.dot</filename> and
4036 <filename>pn-depends.dot</filename> largely date back to a time
4037 before task-based execution and do not take into account
4038 task-level dependencies between recipes, which could be
4039 misleading.
4040 </para>
4041 </section>
4042
4043 <section id='migration-2.3-bitbake-changes'>
4044 <title>BitBake Changes</title>
4045
4046 <para>
4047 The following changes took place for BitBake:
4048 <itemizedlist>
4049 <listitem><para>
4050 BitBake's graphical dependency explorer UI
4051 <filename>depexp</filename> was replaced by
4052 <filename>taskexp</filename>.
4053 </para></listitem>
4054 </itemizedlist>
4055 </para>
4056 </section>
4057
4058 <section id='migration-2.3-absolute-symlinks'>
4059 <title>Absolute Symbolic Links</title>
4060
4061 <para>
4062 Absolute symbolic links (symlinks) within staged files are no
4063 longer permitted and now trigger an error.
4064 </para>
4065 </section>
4066
4067 <section id='migration-2.3-gplv2-and-gplv3-moves'>
4068 <title>GPLv2 Versions of GPLv3 Recipes Moved</title>
4069
4070 <para>
4071 Older GPLv2 versions of GPLv3 recipes have moved to a
4072 separate <filename>meta-gplv2</filename> layer.
4073 </para>
4074 </section>
4075
4076 <section id='migration-2.3-package-management-changes'>
4077 <title>Package Management Changes</title>
4078
4079 <para>
4080 The following package management changes took place:
4081 <itemizedlist>
4082 <listitem><para>
4083 Smart package manager is replaced by Dnf package manager.
4084 Smart has become unmaintained upstream, is not ported
4085 to Python 3.x.
4086 Consequently, Smart needed to be replaced.
4087 Dnf is the only feasible candidate.</para>
4088 <para>The change in functionality is that the on-target
4089 runtime package management from remote package feeds is
4090 now done with a different tool that has a
4091 different set of command-line options.
4092 If you have scripts that call the
4093 tool directly, or use its API, they need to be fixed.</para>
4094 <para>For more information, see the
4095 <ulink url='http://dnf.readthedocs.io/en/latest/'>Dnf Documentation</ulink>.
4096 </para></listitem>
4097 <listitem><para>
4098 Rpm 5.x is replaced with Rpm 4.x.
4099 This is done for two major reasons:
4100 <itemizedlist>
4101 <listitem><para>
4102 Dnf is API-incompatible with Rpm 5.x and porting
4103 it and maintaining the port is non-trivial.
4104 </para></listitem>
4105 <listitem><para>
4106 Rpm 5.x itself is more or less unmaintained both
4107 in the upstream and in Yocto Project.
4108 Community support does not exist around it and
4109 the Yocto Project is the sole remaining user.
4110 </para></listitem>
4111 </itemizedlist>
4112 </para></listitem>
4113 <listitem><para>
4114 Berkeley db 6.x is removed and Berkeley db 5.x becomes
4115 the default:
4116 <itemizedlist>
4117 <listitem><para>
4118 Version 6.x of Berkeley DB has been rejected
4119 by the open source community due to its hostile
4120 AGPLv3 license.
4121 Both Fedora and Debian are sticking
4122 with db 5.x.
4123 By extension,all the open source projects are still
4124 developed and tested with db 5.x
4125 </para></listitem>
4126 <listitem><para>
4127 In OE-core, the only thing that was requiring
4128 db 6.x was Rpm 5.x.
4129 Thus, no reason exists to continue carrying db 6.x
4130 in OE-core.
4131 </para></listitem>
4132 </itemizedlist>
4133 </para></listitem>
4134 <listitem><para>
4135 <filename>createrepo</filename> is replaced with
4136 <filename>createrepo_c</filename>.</para>
4137 <para><filename>createrepo_c</filename> is the current
4138 incarnation of the tool that generates remote repository
4139 metadata.
4140 It is written in C as compared to
4141 <filename>createrepo</filename>, which is written in
4142 Python.
4143 <filename>createrepo_c</filename> is faster and is
4144 maintained.
4145 </para></listitem>
4146 <listitem><para>
4147 Architecture-independent RPM packages are "noarch"
4148 instead of "all".</para>
4149 <para>This change was made because too many places in
4150 dnf/rpm4 stack already make that assumption.
4151 Only the filenames and the architecture tag has changed.
4152 Nothing else has changed in OE-core system, particularly
4153 in the
4154 <link linkend='ref-classes-allarch'><filename>allarch.bbclass</filename></link>
4155 class.
4156 </para></listitem>
4157 <listitem><para>
4158 Signing of remote package feeds using
4159 <filename>PACKAGE_FEED_SIGN</filename> is not supported.
4160 <note>
4161 See the defect
4162 <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>11209</ulink>
4163 for more information on a solution.
4164 </note>
4165 </para></listitem>
4166 </itemizedlist>
4167 </para>
4168 </section>
4169</section>
3958</chapter> 4170</chapter>
3959<!-- 4171<!--
3960vim: expandtab tw=80 ts=4 4172vim: expandtab tw=80 ts=4