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>
This commit is contained in:
parent
744cd8cfd7
commit
7fdd0ac087
|
@ -3963,15 +3963,23 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
Yocto Project 2.3 Release from the prior release.
|
Yocto Project 2.3 Release from the prior release.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<section id='migration-2.3-sysroots'>
|
<section id='migration-2.3-recipe-specific-sysroots'>
|
||||||
<title>Sysroots</title>
|
<title>Recipe-specific Sysroots</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The Open-Embedded build system now uses one sysroot per
|
The Open-Embedded build system now uses one sysroot per
|
||||||
recipe to resolve long-standing issues with configuration
|
recipe to resolve long-standing issues with configuration
|
||||||
script auto-detection of undeclared dependencies.
|
script auto-detection of undeclared dependencies.
|
||||||
Consequently, you must explicitly declare all build-time
|
Consequently, you might find that some of your previously
|
||||||
dependencies for your recipe.
|
written custom recipes are missing declared dependencies,
|
||||||
|
particularly those dependencies that are incidentally built
|
||||||
|
earlier in a typical build process and thus are already likely
|
||||||
|
to be present in the shared sysroot in a previous release.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Because of this new feature, you must explicitly declare all
|
||||||
|
build-time dependencies for your recipe.
|
||||||
If you do not declare these dependencies, they are not
|
If you do not declare these dependencies, they are not
|
||||||
populated into the sysroot for the recipe.
|
populated into the sysroot for the recipe.
|
||||||
</para>
|
</para>
|
||||||
|
@ -3987,11 +3995,14 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
<title><filename>PATH</filename> Variable</title>
|
<title><filename>PATH</filename> Variable</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The environment variable <filename>PATH</filename> is now
|
Within the environment used to run build tasks, the environment
|
||||||
sanitized such that symbolic links linking only the binaries
|
variable <filename>PATH</filename> is now sanitized such that
|
||||||
from the host mentioned in the
|
symbolic links linking only the binaries from the host mentioned
|
||||||
<filename>HOSTTOOLS</filename> and
|
in the
|
||||||
<filename>HOSTTOOLS_NONFATAL</filename> variables into
|
<link linkend='var-HOSTTOOLS'><filename>HOSTTOOLS</filename></link>
|
||||||
|
and
|
||||||
|
<link linkend='var-HOSTTOOLS_NONFATAL'><filename>HOSTTOOLS_NONFATAL</filename></link>
|
||||||
|
variables into
|
||||||
their own directory are added to <filename>PATH</filename>.
|
their own directory are added to <filename>PATH</filename>.
|
||||||
Consequently, any native binaries that you need to call should
|
Consequently, any native binaries that you need to call should
|
||||||
either be in one of these two variables at the configuration
|
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.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Alternatively, you can use a native recipe (i.e.
|
Alternatively, you can add a native recipe (i.e.
|
||||||
<filename>-native</filename>) that includes the recipe's
|
<filename>-native</filename>) that provides the
|
||||||
|
binary to the recipe's
|
||||||
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
|
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
|
||||||
value.
|
value.
|
||||||
|
<note>
|
||||||
|
<filename>PATH</filename> is not sanitized in the same way
|
||||||
|
within <filename>devshell</filename>.
|
||||||
|
If it were, you would have difficulty running host tools for
|
||||||
|
development and debugging within the shell.
|
||||||
|
</note>
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -4023,29 +4041,6 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id='migration-2.3-dependency-tree-information'>
|
|
||||||
<title>Dependency Tree Information</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The <filename>package-depends.dot</filename> and
|
|
||||||
<filename>pn-depends.dot</filename> files as previously generated
|
|
||||||
using the <filename>bitbake -g</filename> command have been
|
|
||||||
removed.
|
|
||||||
A <filename>recipe-depends.dot</filename> file
|
|
||||||
is now generated as a collapsed version of
|
|
||||||
<filename>task-depends.dot</filename> instead.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The reason for this change is because
|
|
||||||
<filename>package-depends.dot</filename> and
|
|
||||||
<filename>pn-depends.dot</filename> largely date back to a time
|
|
||||||
before task-based execution and do not take into account
|
|
||||||
task-level dependencies between recipes, which could be
|
|
||||||
misleading.
|
|
||||||
</para>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section id='migration-2.3-bitbake-changes'>
|
<section id='migration-2.3-bitbake-changes'>
|
||||||
<title>BitBake Changes</title>
|
<title>BitBake Changes</title>
|
||||||
|
|
||||||
|
@ -4053,9 +4048,37 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
The following changes took place for BitBake:
|
The following changes took place for BitBake:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
|
<emphasis>BitBake's Graphical Dependency Explorer UI Replaced:</emphasis>
|
||||||
BitBake's graphical dependency explorer UI
|
BitBake's graphical dependency explorer UI
|
||||||
<filename>depexp</filename> was replaced by
|
<filename>depexp</filename> was replaced by
|
||||||
<filename>taskexp</filename>.
|
<filename>taskexp</filename> ("Task Explorer"), which
|
||||||
|
provides a graphical way of exploring the
|
||||||
|
<filename>task-depends.dot</filename> file.
|
||||||
|
The data presented by Task Explorer is much more
|
||||||
|
accurate than the data that is presented by
|
||||||
|
<filename>depexp</filename>.
|
||||||
|
Being able to visualize the data is an often requested
|
||||||
|
feature as standard <filename>*.dot</filename> file
|
||||||
|
viewers cannot usual cope with the size of
|
||||||
|
the <filename>task-depends.dot</filename> file.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>
|
||||||
|
<emphasis>Dependency Tree Information Removals:</emphasis>
|
||||||
|
The <filename>package-depends.dot</filename> and
|
||||||
|
<filename>pn-depends.dot</filename> files as previously
|
||||||
|
generated using the <filename>bitbake -g</filename> command
|
||||||
|
have been removed.
|
||||||
|
A <filename>recipe-depends.dot</filename> file
|
||||||
|
is now generated as a collapsed version of
|
||||||
|
<filename>task-depends.dot</filename> instead.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>The reason for this change is because
|
||||||
|
<filename>package-depends.dot</filename> and
|
||||||
|
<filename>pn-depends.dot</filename> largely date back
|
||||||
|
to a time before task-based execution and do not take
|
||||||
|
into account task-level dependencies between recipes,
|
||||||
|
which could be misleading.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
@ -4067,6 +4090,17 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
<para>
|
<para>
|
||||||
Absolute symbolic links (symlinks) within staged files are no
|
Absolute symbolic links (symlinks) within staged files are no
|
||||||
longer permitted and now trigger an error.
|
longer permitted and now trigger an error.
|
||||||
|
Any explicit creation of symlinks can use the
|
||||||
|
<filename>lnr</filename> script, which is a replacement for
|
||||||
|
<filename>ln -r</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If the build scripts in the software that the recipe is building
|
||||||
|
are creating a number of absolute symlinks that need to be
|
||||||
|
corrected, you can inherit
|
||||||
|
<filename>relative_symlinks</filename> within the recipe to turn
|
||||||
|
those absolute symlinks into relative symlinks.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -4077,6 +4111,39 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
Older GPLv2 versions of GPLv3 recipes have moved to a
|
Older GPLv2 versions of GPLv3 recipes have moved to a
|
||||||
separate <filename>meta-gplv2</filename> layer.
|
separate <filename>meta-gplv2</filename> layer.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you use
|
||||||
|
<link linkend='var-INCOMPATIBLE_LICENSE'><filename>INCOMPATIBLE_LICENSE</filename></link>
|
||||||
|
to exclude GPLv3 or set
|
||||||
|
<link linkend='var-PREFERRED_VERSION'><filename>PREFERRED_VERSION</filename></link>
|
||||||
|
to select recipes that use GPLv3, then you must add the
|
||||||
|
<filename>meta-gplv2</filename> layer to your configuration.
|
||||||
|
<note>
|
||||||
|
You can find <filename>meta-gplv2</filename> layer in the
|
||||||
|
OpenEmbedded layer index at
|
||||||
|
<ulink url='https://layers.openembedded.org/layerindex/branch/master/layer/meta-gplv2/'></ulink>.
|
||||||
|
</note>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
These relocated GPLv3 recipes do not receive the same level of
|
||||||
|
maintenance as other core recipes.
|
||||||
|
The recipes do not get security fixes and upstream no longer
|
||||||
|
maintains them.
|
||||||
|
In fact, the upstream community is actively hostile towards people
|
||||||
|
that use the old versions of the recipes.
|
||||||
|
Moving these recipes into a separate layer both makes the different
|
||||||
|
needs of the recipes clearer and clearly identifies the number of
|
||||||
|
these recipes.
|
||||||
|
<note>
|
||||||
|
The long-term solution might be to move to BSD-licensed
|
||||||
|
replacements of the GPLv3 components for those that need to
|
||||||
|
exclude GPLv3-licensed components from the target system.
|
||||||
|
This solution will be investigated for future Yocto
|
||||||
|
Project releases.
|
||||||
|
</note>
|
||||||
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id='migration-2.3-package-management-changes'>
|
<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.
|
||||||
it and maintaining the port is non-trivial.
|
it and maintaining the port is non-trivial.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Rpm 5.x itself is more or less unmaintained both
|
Rpm 5.x itself has limited maintenance upstream,
|
||||||
in the upstream and in Yocto Project.
|
and the Yocto Project is one of the very few
|
||||||
Community support does not exist around it and
|
remaining users.
|
||||||
the Yocto Project is the sole remaining user.
|
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Berkeley db 6.x is removed and Berkeley db 5.x becomes
|
Berkeley DB 6.x is removed and Berkeley DB 5.x becomes
|
||||||
the default:
|
the default:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Version 6.x of Berkeley DB has been rejected
|
Version 6.x of Berkeley DB has largely been
|
||||||
by the open source community due to its hostile
|
rejected by the open source community due to its
|
||||||
AGPLv3 license.
|
AGPLv3 license.
|
||||||
Both Fedora and Debian are sticking
|
As a result, most mainstream open source projects
|
||||||
with db 5.x.
|
that require DB are still developed and tested with
|
||||||
|
DB 5.x.
|
||||||
By extension,all the open source projects are still
|
By extension,all the open source projects are still
|
||||||
developed and tested with db 5.x
|
developed and tested with DB 5.x
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
In OE-core, the only thing that was requiring
|
In OE-core, the only thing that was requiring
|
||||||
db 6.x was Rpm 5.x.
|
DB 6.x was Rpm 5.x.
|
||||||
Thus, no reason exists to continue carrying db 6.x
|
Thus, no reason exists to continue carrying DB 6.x
|
||||||
in OE-core.
|
in OE-core.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -4162,11 +4229,15 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Signing of remote package feeds using
|
Signing of remote package feeds using
|
||||||
<filename>PACKAGE_FEED_SIGN</filename> is not supported.
|
<filename>PACKAGE_FEED_SIGN</filename>
|
||||||
|
is not currently supported.
|
||||||
|
This issue will be fully addressed in a future
|
||||||
|
Yocto Project release.
|
||||||
<note>
|
<note>
|
||||||
See the defect
|
See the defect
|
||||||
<ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>11209</ulink>
|
<ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>11209</ulink>
|
||||||
for more information on a solution.
|
for more information on a solution to package feed
|
||||||
|
signing with RPM in the Yocto Project 2.3 release.
|
||||||
</note>
|
</note>
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
Loading…
Reference in New Issue