diff options
| author | Scott Rifenbark <srifenbark@gmail.com> | 2017-04-28 09:13:17 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-05-10 12:13:32 +0100 |
| commit | 7fdd0ac087328524f27ae42d503898dbd113f417 (patch) | |
| tree | 5a7c2f2183e18ad9863055618e7bc8869e748de5 /documentation | |
| parent | 744cd8cfd7a3c3467a16465522183adc52518e73 (diff) | |
| download | poky-7fdd0ac087328524f27ae42d503898dbd113f417.tar.gz | |
ref-manual: Applied 2.3 Migration review comments.
(From yocto-docs rev: 08a077adea37d5b3eb3ac119b1a5981a6fef21a3)
Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
| -rw-r--r-- | documentation/ref-manual/migration.xml | 169 |
1 files changed, 120 insertions, 49 deletions
diff --git a/documentation/ref-manual/migration.xml b/documentation/ref-manual/migration.xml index 5b6409d503..ddd6644240 100644 --- a/documentation/ref-manual/migration.xml +++ b/documentation/ref-manual/migration.xml | |||
| @@ -3963,15 +3963,23 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 3963 | Yocto Project 2.3 Release from the prior release. | 3963 | Yocto Project 2.3 Release from the prior release. |
| 3964 | </para> | 3964 | </para> |
| 3965 | 3965 | ||
| 3966 | <section id='migration-2.3-sysroots'> | 3966 | <section id='migration-2.3-recipe-specific-sysroots'> |
| 3967 | <title>Sysroots</title> | 3967 | <title>Recipe-specific Sysroots</title> |
| 3968 | 3968 | ||
| 3969 | <para> | 3969 | <para> |
| 3970 | The Open-Embedded build system now uses one sysroot per | 3970 | The Open-Embedded build system now uses one sysroot per |
| 3971 | recipe to resolve long-standing issues with configuration | 3971 | recipe to resolve long-standing issues with configuration |
| 3972 | script auto-detection of undeclared dependencies. | 3972 | script auto-detection of undeclared dependencies. |
| 3973 | Consequently, you must explicitly declare all build-time | 3973 | Consequently, you might find that some of your previously |
| 3974 | dependencies for your recipe. | 3974 | written custom recipes are missing declared dependencies, |
| 3975 | particularly those dependencies that are incidentally built | ||
| 3976 | earlier in a typical build process and thus are already likely | ||
| 3977 | to be present in the shared sysroot in a previous release. | ||
| 3978 | </para> | ||
| 3979 | |||
| 3980 | <para> | ||
| 3981 | Because of this new feature, you must explicitly declare all | ||
| 3982 | build-time dependencies for your recipe. | ||
| 3975 | If you do not declare these dependencies, they are not | 3983 | If you do not declare these dependencies, they are not |
| 3976 | populated into the sysroot for the recipe. | 3984 | populated into the sysroot for the recipe. |
| 3977 | </para> | 3985 | </para> |
| @@ -3987,11 +3995,14 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 3987 | <title><filename>PATH</filename> Variable</title> | 3995 | <title><filename>PATH</filename> Variable</title> |
| 3988 | 3996 | ||
| 3989 | <para> | 3997 | <para> |
| 3990 | The environment variable <filename>PATH</filename> is now | 3998 | Within the environment used to run build tasks, the environment |
| 3991 | sanitized such that symbolic links linking only the binaries | 3999 | variable <filename>PATH</filename> is now sanitized such that |
| 3992 | from the host mentioned in the | 4000 | symbolic links linking only the binaries from the host mentioned |
| 3993 | <filename>HOSTTOOLS</filename> and | 4001 | in the |
| 3994 | <filename>HOSTTOOLS_NONFATAL</filename> variables into | 4002 | <link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link> |
| 4003 | and | ||
| 4004 | <link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link> | ||
| 4005 | variables into | ||
| 3995 | their own directory are added to <filename>PATH</filename>. | 4006 | their own directory are added to <filename>PATH</filename>. |
| 3996 | Consequently, any native binaries that you need to call should | 4007 | Consequently, any native binaries that you need to call should |
| 3997 | either be in one of these two variables at the configuration | 4008 | either be in one of these two variables at the configuration |
| @@ -3999,10 +4010,17 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 3999 | </para> | 4010 | </para> |
| 4000 | 4011 | ||
| 4001 | <para> | 4012 | <para> |
| 4002 | Alternatively, you can use a native recipe (i.e. | 4013 | Alternatively, you can add a native recipe (i.e. |
| 4003 | <filename>-native</filename>) that includes the recipe's | 4014 | <filename>-native</filename>) that provides the |
| 4015 | binary to the recipe's | ||
| 4004 | <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link> | 4016 | <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link> |
| 4005 | value. | 4017 | value. |
| 4018 | <note> | ||
| 4019 | <filename>PATH</filename> is not sanitized in the same way | ||
| 4020 | within <filename>devshell</filename>. | ||
| 4021 | If it were, you would have difficulty running host tools for | ||
| 4022 | development and debugging within the shell. | ||
| 4023 | </note> | ||
| 4006 | </para> | 4024 | </para> |
| 4007 | </section> | 4025 | </section> |
| 4008 | 4026 | ||
| @@ -4023,29 +4041,6 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 4023 | </para> | 4041 | </para> |
| 4024 | </section> | 4042 | </section> |
| 4025 | 4043 | ||
| 4026 | <section id='migration-2.3-dependency-tree-information'> | ||
| 4027 | <title>Dependency Tree Information</title> | ||
| 4028 | |||
| 4029 | <para> | ||
| 4030 | The <filename>package-depends.dot</filename> and | ||
| 4031 | <filename>pn-depends.dot</filename> files as previously generated | ||
| 4032 | using the <filename>bitbake -g</filename> command have been | ||
| 4033 | removed. | ||
| 4034 | A <filename>recipe-depends.dot</filename> file | ||
| 4035 | is now generated as a collapsed version of | ||
| 4036 | <filename>task-depends.dot</filename> instead. | ||
| 4037 | </para> | ||
| 4038 | |||
| 4039 | <para> | ||
| 4040 | The reason for this change is because | ||
| 4041 | <filename>package-depends.dot</filename> and | ||
| 4042 | <filename>pn-depends.dot</filename> largely date back to a time | ||
| 4043 | before task-based execution and do not take into account | ||
| 4044 | task-level dependencies between recipes, which could be | ||
| 4045 | misleading. | ||
| 4046 | </para> | ||
| 4047 | </section> | ||
| 4048 | |||
| 4049 | <section id='migration-2.3-bitbake-changes'> | 4044 | <section id='migration-2.3-bitbake-changes'> |
| 4050 | <title>BitBake Changes</title> | 4045 | <title>BitBake Changes</title> |
| 4051 | 4046 | ||
| @@ -4053,9 +4048,37 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 4053 | The following changes took place for BitBake: | 4048 | The following changes took place for BitBake: |
| 4054 | <itemizedlist> | 4049 | <itemizedlist> |
| 4055 | <listitem><para> | 4050 | <listitem><para> |
| 4051 | <emphasis>BitBake's Graphical Dependency Explorer UI Replaced:</emphasis> | ||
| 4056 | BitBake's graphical dependency explorer UI | 4052 | BitBake's graphical dependency explorer UI |
| 4057 | <filename>depexp</filename> was replaced by | 4053 | <filename>depexp</filename> was replaced by |
| 4058 | <filename>taskexp</filename>. | 4054 | <filename>taskexp</filename> ("Task Explorer"), which |
| 4055 | provides a graphical way of exploring the | ||
| 4056 | <filename>task-depends.dot</filename> file. | ||
| 4057 | The data presented by Task Explorer is much more | ||
| 4058 | accurate than the data that is presented by | ||
| 4059 | <filename>depexp</filename>. | ||
| 4060 | Being able to visualize the data is an often requested | ||
| 4061 | feature as standard <filename>*.dot</filename> file | ||
| 4062 | viewers cannot usual cope with the size of | ||
| 4063 | the <filename>task-depends.dot</filename> file. | ||
| 4064 | </para></listitem> | ||
| 4065 | <listitem><para> | ||
| 4066 | <emphasis>Dependency Tree Information Removals:</emphasis> | ||
| 4067 | The <filename>package-depends.dot</filename> and | ||
| 4068 | <filename>pn-depends.dot</filename> files as previously | ||
| 4069 | generated using the <filename>bitbake -g</filename> command | ||
| 4070 | have been removed. | ||
| 4071 | A <filename>recipe-depends.dot</filename> file | ||
| 4072 | is now generated as a collapsed version of | ||
| 4073 | <filename>task-depends.dot</filename> instead. | ||
| 4074 | </para> | ||
| 4075 | |||
| 4076 | <para>The reason for this change is because | ||
| 4077 | <filename>package-depends.dot</filename> and | ||
| 4078 | <filename>pn-depends.dot</filename> largely date back | ||
| 4079 | to a time before task-based execution and do not take | ||
| 4080 | into account task-level dependencies between recipes, | ||
| 4081 | which could be misleading. | ||
| 4059 | </para></listitem> | 4082 | </para></listitem> |
| 4060 | </itemizedlist> | 4083 | </itemizedlist> |
| 4061 | </para> | 4084 | </para> |
| @@ -4067,6 +4090,17 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 4067 | <para> | 4090 | <para> |
| 4068 | Absolute symbolic links (symlinks) within staged files are no | 4091 | Absolute symbolic links (symlinks) within staged files are no |
| 4069 | longer permitted and now trigger an error. | 4092 | longer permitted and now trigger an error. |
| 4093 | Any explicit creation of symlinks can use the | ||
| 4094 | <filename>lnr</filename> script, which is a replacement for | ||
| 4095 | <filename>ln -r</filename>. | ||
| 4096 | </para> | ||
| 4097 | |||
| 4098 | <para> | ||
| 4099 | If the build scripts in the software that the recipe is building | ||
| 4100 | are creating a number of absolute symlinks that need to be | ||
| 4101 | corrected, you can inherit | ||
| 4102 | <filename>relative_symlinks</filename> within the recipe to turn | ||
| 4103 | those absolute symlinks into relative symlinks. | ||
| 4070 | </para> | 4104 | </para> |
| 4071 | </section> | 4105 | </section> |
| 4072 | 4106 | ||
| @@ -4077,6 +4111,39 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 4077 | Older GPLv2 versions of GPLv3 recipes have moved to a | 4111 | Older GPLv2 versions of GPLv3 recipes have moved to a |
| 4078 | separate <filename>meta-gplv2</filename> layer. | 4112 | separate <filename>meta-gplv2</filename> layer. |
| 4079 | </para> | 4113 | </para> |
| 4114 | |||
| 4115 | <para> | ||
| 4116 | If you use | ||
| 4117 | <link linkend='var-INCOMPATIBLE_LICENSE'><filename>INCOMPATIBLE_LICENSE</filename></link> | ||
| 4118 | to exclude GPLv3 or set | ||
| 4119 | <link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link> | ||
| 4120 | to select recipes that use GPLv3, then you must add the | ||
| 4121 | <filename>meta-gplv2</filename> layer to your configuration. | ||
| 4122 | <note> | ||
| 4123 | You can find <filename>meta-gplv2</filename> layer in the | ||
| 4124 | OpenEmbedded layer index at | ||
| 4125 | <ulink url='https://layers.openembedded.org/layerindex/branch/master/layer/meta-gplv2/'></ulink>. | ||
| 4126 | </note> | ||
| 4127 | </para> | ||
| 4128 | |||
| 4129 | <para> | ||
| 4130 | These relocated GPLv3 recipes do not receive the same level of | ||
| 4131 | maintenance as other core recipes. | ||
| 4132 | The recipes do not get security fixes and upstream no longer | ||
| 4133 | maintains them. | ||
| 4134 | In fact, the upstream community is actively hostile towards people | ||
| 4135 | that use the old versions of the recipes. | ||
| 4136 | Moving these recipes into a separate layer both makes the different | ||
| 4137 | needs of the recipes clearer and clearly identifies the number of | ||
| 4138 | these recipes. | ||
| 4139 | <note> | ||
| 4140 | The long-term solution might be to move to BSD-licensed | ||
| 4141 | replacements of the GPLv3 components for those that need to | ||
| 4142 | exclude GPLv3-licensed components from the target system. | ||
| 4143 | This solution will be investigated for future Yocto | ||
| 4144 | Project releases. | ||
| 4145 | </note> | ||
| 4146 | </para> | ||
| 4080 | </section> | 4147 | </section> |
| 4081 | 4148 | ||
| 4082 | <section id='migration-2.3-package-management-changes'> | 4149 | <section id='migration-2.3-package-management-changes'> |
| @@ -4109,30 +4176,30 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 4109 | it and maintaining the port is non-trivial. | 4176 | it and maintaining the port is non-trivial. |
| 4110 | </para></listitem> | 4177 | </para></listitem> |
| 4111 | <listitem><para> | 4178 | <listitem><para> |
| 4112 | Rpm 5.x itself is more or less unmaintained both | 4179 | Rpm 5.x itself has limited maintenance upstream, |
| 4113 | in the upstream and in Yocto Project. | 4180 | and the Yocto Project is one of the very few |
| 4114 | Community support does not exist around it and | 4181 | remaining users. |
| 4115 | the Yocto Project is the sole remaining user. | ||
| 4116 | </para></listitem> | 4182 | </para></listitem> |
| 4117 | </itemizedlist> | 4183 | </itemizedlist> |
| 4118 | </para></listitem> | 4184 | </para></listitem> |
| 4119 | <listitem><para> | 4185 | <listitem><para> |
| 4120 | Berkeley db 6.x is removed and Berkeley db 5.x becomes | 4186 | Berkeley DB 6.x is removed and Berkeley DB 5.x becomes |
| 4121 | the default: | 4187 | the default: |
| 4122 | <itemizedlist> | 4188 | <itemizedlist> |
| 4123 | <listitem><para> | 4189 | <listitem><para> |
| 4124 | Version 6.x of Berkeley DB has been rejected | 4190 | Version 6.x of Berkeley DB has largely been |
| 4125 | by the open source community due to its hostile | 4191 | rejected by the open source community due to its |
| 4126 | AGPLv3 license. | 4192 | AGPLv3 license. |
| 4127 | Both Fedora and Debian are sticking | 4193 | As a result, most mainstream open source projects |
| 4128 | with db 5.x. | 4194 | that require DB are still developed and tested with |
| 4195 | DB 5.x. | ||
| 4129 | By extension,all the open source projects are still | 4196 | By extension,all the open source projects are still |
| 4130 | developed and tested with db 5.x | 4197 | developed and tested with DB 5.x |
| 4131 | </para></listitem> | 4198 | </para></listitem> |
| 4132 | <listitem><para> | 4199 | <listitem><para> |
| 4133 | In OE-core, the only thing that was requiring | 4200 | In OE-core, the only thing that was requiring |
| 4134 | db 6.x was Rpm 5.x. | 4201 | DB 6.x was Rpm 5.x. |
| 4135 | Thus, no reason exists to continue carrying db 6.x | 4202 | Thus, no reason exists to continue carrying DB 6.x |
| 4136 | in OE-core. | 4203 | in OE-core. |
| 4137 | </para></listitem> | 4204 | </para></listitem> |
| 4138 | </itemizedlist> | 4205 | </itemizedlist> |
| @@ -4162,11 +4229,15 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64. | |||
| 4162 | </para></listitem> | 4229 | </para></listitem> |
| 4163 | <listitem><para> | 4230 | <listitem><para> |
| 4164 | Signing of remote package feeds using | 4231 | Signing of remote package feeds using |
| 4165 | <filename>PACKAGE_FEED_SIGN</filename> is not supported. | 4232 | <filename>PACKAGE_FEED_SIGN</filename> |
| 4233 | is not currently supported. | ||
| 4234 | This issue will be fully addressed in a future | ||
| 4235 | Yocto Project release. | ||
| 4166 | <note> | 4236 | <note> |
| 4167 | See the defect | 4237 | See the defect |
| 4168 | <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>11209</ulink> | 4238 | <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>11209</ulink> |
| 4169 | for more information on a solution. | 4239 | for more information on a solution to package feed |
| 4240 | signing with RPM in the Yocto Project 2.3 release. | ||
| 4170 | </note> | 4241 | </note> |
| 4171 | </para></listitem> | 4242 | </para></listitem> |
| 4172 | </itemizedlist> | 4243 | </itemizedlist> |
