ref-manual, dev-manual: Completed first draft of 2.3 migration section.

(From yocto-docs rev: 42ab9e34da640b46d39741c9c83648dc65518ec1)

Signed-off-by: Scott Rifenbark <srifenbark@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2017-04-28 16:23:48 -07:00 committed by Richard Purdie
parent 7fdd0ac087
commit b1dc0ee121
8 changed files with 538 additions and 109 deletions

View File

@ -5108,7 +5108,7 @@
Creating image(s)...
Info: The new image(s) can be found here:
/var/tmp/wic/build/mkefidisk-201310230946-sda.direct
<replaceable>current_directory</replaceable>/build/mkefidisk-201310230946-sda.direct
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/minnow-poky-linux/core-image-minimal/1.0-r0/rootfs
@ -5133,7 +5133,8 @@
<para>
The output specifies the exact image created as well as
where it was created.
where it was created, which is in the current
directory by default.
The output also names the artifacts used and the exact
<filename>.wks</filename> script that was used to
generate the image.
@ -5152,11 +5153,11 @@
<filename>bmaptool</filename> or
<filename>dd</filename>:
<literallayout class='monospaced'>
$ oe-run-native bmaptool copy /var/tmp/wic/build/mkefidisk-201310230946-sda.direct /dev/sd<replaceable>X</replaceable>
$ oe-run-native bmaptool copy build/mkefidisk-201310230946-sda.direct /dev/sd<replaceable>X</replaceable>
</literallayout>
or
<literallayout class='monospaced'>
$ sudo dd if=/var/tmp/wic/build/mkefidisk-201310230946-sda.direct of=/dev/sd<replaceable>X</replaceable>
$ sudo dd if=build/mkefidisk-201310230946-sda.direct of=/dev/sd<replaceable>X</replaceable>
</literallayout>
<note>
For more information on how to use the
@ -5240,7 +5241,7 @@
Creating image(s)...
Info: The new image(s) can be found here:
/var/tmp/wic/build/directdisksdb-201310231131-sdb.direct
<replaceable>current_directory</replaceable>/build/directdisksdb-201310231131-sdb.direct
The following build artifacts were used to create the image(s):
@ -5257,7 +5258,7 @@
whatever media for which you built your image,
and boot the resulting media:
<literallayout class='monospaced'>
$ sudo dd if=/var/tmp/wic/build/directdisksdb-201310231131-sdb.direct of=/dev/sdb
$ sudo dd if=build/directdisksdb-201310231131-sdb.direct of=/dev/sdb
86018+0 records in
86018+0 records out
44041216 bytes (44 MB) copied, 13.0734 s, 3.4 MB/s
@ -5284,7 +5285,7 @@
Creating image(s)...
Info: The new image(s) can be found here:
/var/tmp/wic/build/directdisk-201309252350-sda.direct
<replaceable>current_directory</replaceable>/build/directdisk-201309252350-sda.direct
The following build artifacts were used to create the image(s):
@ -5307,8 +5308,8 @@
(runs in Raw Mode) and uses a modified kickstart file.
The example also uses the <filename>-o</filename> option
to cause Wic to create the output
somewhere other than the default
<filename>/var/tmp/wic</filename> directory:
somewhere other than the default output directory,
which is the current directory:
<literallayout class='monospaced'>
$ wic create ~/test.wks -o /home/trz/testwic --rootfs-dir \
/home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs \

View File

@ -1411,7 +1411,7 @@
system has a list of tasks that it believes it can "accelerate"
and therefore does not need to run.
There is a final function call to the function specified by the
<ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></ulink>
<filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
variable that is able to require the tasks to be run that
that the OpenEmbedded build system initially was going to
skip.

View File

@ -3689,7 +3689,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
by <filename>BB_SETSCENE_VERIFY_FUNCTION</filename>
needed to change signature.
Consequently, a new variable named
<ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></ulink>
<filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
has been added allowing multiple versions of BitBake
to work with suitably written metadata, which includes
OpenEmbedded-Core and Poky.
@ -3974,20 +3974,100 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
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.
to be present in the shared sysroot in previous releases.
</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
populated into the sysroot for the recipe.
</para>
Consider the following:
<itemizedlist>
<listitem><para>
<emphasis>Declare Build-Time Dependencies:</emphasis>
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
populated into the sysroot for the recipe.
</para></listitem>
<listitem><para>
<emphasis>Specify Pre-Installation and Post-Installtion
Native Tool Dependencies:</emphasis>
You must specifically specify any special native tool
dependencies of <filename>pkg_preinst</filename> and
<filename>pkg_postinst</filename> scripts by using the
<link linkend='var-PACKAGE_WRITE_DEPS'><filename>PACKAGE_WRITE_DEPS</filename></link>
variable.
Specifying these dependencies ensures that these tools
are available if these scripts need to be run on the
build host during the
<link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
task.</para>
<para>
You can find information on how this works in the
<link linkend='ref-classes-staging'><filename>staging</filename></link>
class.
<para>As an example, see the <filename>dbus</filename>
recipe.
You will see that this recipe has a
<filename>pkg_postinst</filename> that calls
<filename>systemctl</filename> if "systemd" is in
<link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>.
In the example,
<filename>systemd-systemctl-native</filename> is added to
<filename>PACKAGE_WRITE_DEPS</filename>, which is also
conditional on "systemd" being in
<filename>DISTRO_FEATURES</filename>.
</para></listitem>
<listitem><para>
<emphasis>Examine Recipes that Use
<filename>SSTATEPOSTINSTFUNCS</filename>:</emphasis>
You need to examine any recipe that uses
<filename>SSTATEPOSTINSTFUNCS</filename> and determine
steps to take.</para>
<para>Functions added to
<filename>SSTATEPOSTINSTFUNCS</filename> are still
called as they were in previous Yocto Project releases.
However, since a separate sysroot is now being populated
for every recipe and if existing functions being called
through <filename>SSTATEPOSTINSTFUNCS</filename> are
doing relocation, then you will need to change these
to use a post-installation script that is installed by a
function added to
<link linkend='var-SYSROOT_PREPROCESS_FUNCS'><filename>SYSROOT_PREPROCESS_FUNCS</filename></link>.
</para>
<para>For an example, see the
<filename>pixbufcache</filename> class in
<filename>meta/classes/</filename> in the Yocto Project
<ulink url='&YOCTO_DOCS_DEV_URL;#source-repositories'>Source Repositories</ulink>.
<note>
The <filename>SSTATEPOSTINSTFUNCS</filename> variable
itself is now deprecated in favor of the
<filename>do_populate_sysroot[postfuncs]</filename>
task.
Consequently, if you do still have any function or
functions that need to be called after the sysroot
component is created for a recipe, then you would be
well advised to take steps to use a post installation
script as described previously.
Taking these steps prepares your code for when
<filename>SSTATEPOSTINSTFUNCS</filename> is
removed in a future Yocto Project release.
</note>
</para></listitem>
<listitem><para>
<emphasis>Specify Which
<filename>STAGING_DIR_NATIVE</filename> is Used:</emphasis>
Because the shared sysroot is now gone, the scripts
<filename>oe-find-native-sysroot</filename> and
<filename>oe-run-native</filename> have been changed such
that you need to specify which recipe's
<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>
is used.
</para></listitem>
</itemizedlist>
<note>
You can find more information on how recipe-specific sysroots
work in the
"<link linkend='ref-classes-staging'><filename>staging.bbclass</filename></link>"
section.
</note>
</para>
</section>
@ -3997,16 +4077,21 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
<para>
Within the environment used to run build tasks, the environment
variable <filename>PATH</filename> is now sanitized such that
symbolic links linking only the binaries from the host mentioned
in the
the normal native binary paths
(<filename>/bin</filename>, <filename>/sbin</filename>,
<filename>/usr/bin</filename> and so forth) are
removed and a directory containing symbolic links linking only
to the binaries from the host mentioned in the
<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>.
Consequently, any native binaries that you need to call should
either be in one of these two variables at the configuration
level.
variables is added to <filename>PATH</filename>.
</para>
<para>
Consequently, any native binaries provided by the host that you
need to call needs to be in one of these two variables at
the configuration level.
</para>
<para>
@ -4024,6 +4109,60 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
</para>
</section>
<section id='migration-2.3-scripts'>
<title>Changes to Scripts</title>
<para>
The following changes to scripts took place:
<itemizedlist>
<listitem><para>
<emphasis><filename>oe-find-native-sysroot</filename>:</emphasis>
The usage for the
<filename>oe-find-native-sysroot</filename> script has
changed to the following:
<literallayout class='monospaced'>
$ . oe-find-native-sysroot <replaceable>recipe</replaceable>
</literallayout>
You must now supply a recipe for
<replaceable>recipe</replaceable> as part of the command.
Prior to the Yocto Project &DISTRO; release, it was not
necessary to provide the script with the command.
</para></listitem>
<listitem><para>
<emphasis><filename>oe-run-native</filename>:</emphasis>
The usage for the
<filename>oe-run-native</filename> script has changed
to the following:
<literallayout class='monospaced'>
$ oe-run-native <replaceable>native_recipe</replaceable> <replaceable>tool</replaceable>
</literallayout>
You must supply the name of the native recipe and the tool
you want to run as part of the command.
Prior to the Yocto Project &DISTRO; release, it was not
necessary to provide the native recipe with the command.
</para></listitem>
<listitem><para>
<emphasis><filename>cleanup-workdir</filename>:</emphasis>
The <filename>cleanup-workdir</filename> script has been
removed because the script was found to be deleting
files it should not have, which lead to broken build
trees.
Rather than trying to delete portions of
<link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
and getting it wrong, it is recommended that you
delete <filename>TMPDIR</filename> and have it restored
from shared state (sstate) on subsequent builds.
</para></listitem>
<listitem><para>
<emphasis><filename>wipe-sysroot</filename>:</emphasis>
The <filename>wipe-sysroot</filename> script has been
removed as it is no longer needed with recipe-specific
sysroots.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='migration-2.3-functions'>
<title>Changes to Functions</title>
@ -4055,7 +4194,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
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
accurate than the data that was presented by
<filename>depexp</filename>.
Being able to visualize the data is an often requested
feature as standard <filename>*.dot</filename> file
@ -4063,7 +4202,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
the <filename>task-depends.dot</filename> file.
</para></listitem>
<listitem><para>
<emphasis>Dependency Tree Information Removals:</emphasis>
<emphasis>BitBake "-g" Output Changes:</emphasis>
The <filename>package-depends.dot</filename> and
<filename>pn-depends.dot</filename> files as previously
generated using the <filename>bitbake -g</filename> command
@ -4080,6 +4219,48 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
into account task-level dependencies between recipes,
which could be misleading.
</para></listitem>
<listitem><para>
<emphasis>Mirror Variable Splitting Changes:</emphasis>
Mirror variables including
<link linkend='var-MIRRORS'><filename>MIRRORS</filename></link>,
<link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>,
and
<link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
can now separate values entirely with spaces.
Consequently, you no longer need "\\n".
BitBake looks for pairs of values, which simplifies usage.
There should be no change required to existing mirror
variable values themselves.
</para></listitem>
<listitem><para>
<emphasis>The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an "rsh" Parameter:</emphasis>
The SVN fetcher now takes an "ssh" parameter instead of an
"rsh" parameter.
This new optional parameter is used when the "protocol"
parameter is set to "svn+ssh".
You can only use the new parameter to specify the
<filename>ssh</filename> program used by SVN.
The SVN fetcher passes the new parameter through the
<filename>SVN_SSH</filename> environment variable during
the
<link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>
task.</para>
<para>See the
"<ulink url='&YOCTO_DOCS_BB_URL;#svn-fetcher'>Subversion (SVN) Fetcher (svn://)</ulink>"
section in the Yocto Project BitBake User Manual for
additional information.
</para></listitem>
<listitem><para>
<emphasis><filename>BB_SETSCENE_VERIFY_FUNCTION</filename>
and <filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
Removed:</emphasis>
Because the mechanism they were part of is no longer
necessary with recipe-specific sysroots, the
<filename>BB_SETSCENE_VERIFY_FUNCTION</filename> and
<filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
variables have been removed.
</para></listitem>
</itemizedlist>
</para>
</section>
@ -4117,8 +4298,8 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
<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.
to substitute a GPLv2 version of a GPLv3 recipe, 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
@ -4127,7 +4308,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
</para>
<para>
These relocated GPLv3 recipes do not receive the same level of
These relocated GPLv2 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.
@ -4153,11 +4334,11 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
The following package management changes took place:
<itemizedlist>
<listitem><para>
Smart package manager is replaced by Dnf package manager.
Smart package manager is replaced by DNF package manager.
Smart has become unmaintained upstream, is not ported
to Python 3.x.
Consequently, Smart needed to be replaced.
Dnf is the only feasible candidate.</para>
DNF is the only feasible candidate.</para>
<para>The change in functionality is that the on-target
runtime package management from remote package feeds is
now done with a different tool that has a
@ -4165,14 +4346,14 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
If you have scripts that call the
tool directly, or use its API, they need to be fixed.</para>
<para>For more information, see the
<ulink url='http://dnf.readthedocs.io/en/latest/'>Dnf Documentation</ulink>.
<ulink url='http://dnf.readthedocs.io/en/latest/'>DNF Documentation</ulink>.
</para></listitem>
<listitem><para>
Rpm 5.x is replaced with Rpm 4.x.
This is done for two major reasons:
<itemizedlist>
<listitem><para>
Dnf is API-incompatible with Rpm 5.x and porting
DNF is API-incompatible with Rpm 5.x and porting
it and maintaining the port is non-trivial.
</para></listitem>
<listitem><para>
@ -4193,8 +4374,6 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
As a result, most mainstream open source projects
that require DB are still developed and tested with
DB 5.x.
By extension,all the open source projects are still
developed and tested with DB 5.x
</para></listitem>
<listitem><para>
In OE-core, the only thing that was requiring
@ -4220,7 +4399,7 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
Architecture-independent RPM packages are "noarch"
instead of "all".</para>
<para>This change was made because too many places in
dnf/rpm4 stack already make that assumption.
DNF/RPM4 stack already make that assumption.
Only the filenames and the architecture tag has changed.
Nothing else has changed in OE-core system, particularly
in the
@ -4233,16 +4412,307 @@ $ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.
is not currently supported.
This issue will be fully addressed in a future
Yocto Project release.
See <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>defect 11209</ulink>
for more information on a solution to package feed
signing with RPM in the Yocto Project 2.3 release.
</para></listitem>
<listitem><para>
OPKG now uses the libsolv backend for resolving package
dependencies by default.
This is vastly superior to OPKG's internal ad-hoc solver
that was previously used.
This change does have a small impact on disk (around
500 KB) and memory footprint.
<note>
See the defect
<ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=11209'>11209</ulink>
for more information on a solution to package feed
signing with RPM in the Yocto Project 2.3 release.
For further details on this change, see the
<ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?
id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message</ulink>.
</note>
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='migration-2.3-removed-recipes'>
<title>Removed Recipes</title>
<para>
The following recipes have been removed:
<itemizedlist>
<listitem><para>
<emphasis><filename>linux-yocto 4.8:</filename></emphasis>
Version 4.8 has been removed.
Versions 4.1 (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10
are now present.
</para></listitem>
<listitem><para>
<emphasis><filename>python-smartpm:</filename></emphasis>
Functionally replaced by <filename>dnf</filename>.
</para></listitem>
<listitem><para>
<emphasis><filename>createrepo:</filename></emphasis>
Replaced by the <filename>createrepo-c</filename> recipe.
</para></listitem>
<listitem><para>
<emphasis><filename>rpmresolve:</filename></emphasis>
No longer needed with the move to RPM 4 as RPM itself is
used instead.
</para></listitem>
<listitem><para>
<emphasis><filename>gstreamer:</filename></emphasis>
Removed the GStreamer Git version recipes as they have
been stale.
<filename>1.10.</filename><replaceable>x</replaceable>
recipes are still present.
</para></listitem>
<listitem><para>
<emphasis><filename>alsa-conf-base:</filename></emphasis>
Merged into <filename>alsa-conf</filename> since
<filename>libasound</filename> depended on both.
Essentially, no way existed to install only one of these.
</para></listitem>
<listitem><para>
<emphasis><filename>tremor:</filename></emphasis>
Moved to <filename>meta-multimedia</filename>.
Fixed-integer Vorbis decoding is not
needed by current hardware.
Thus, GStreamer's ivorbis plugin has been disabled
by default eliminating the need for the
<filename>tremor</filename> recipe in OE-Core.
</para></listitem>
<listitem><para>
<emphasis><filename>gummiboot:</filename></emphasis>
Replaced by <filename>systemd-boot</filename>.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='migration-2.3-wic-changes'>
<title>Wic Changes</title>
<para>
The following changes have been made to Wic:
<note>
For more information on Wic, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#creating-partitioned-images'>Creating Partitioned Images</ulink>"
section in the Yocto Project Development Manual.
</note>
<itemizedlist>
<listitem><para>
<emphasis>Default Output Directory Changed:</emphasis>
Wic's default output directory is now the current directory
by default instead of the unusual
<filename>/var/tmp/wic</filename>.</para>
<para>The "-o" and "--outdir" options remain unchanged
and are used to specify your preferred output directory
if you do not want to use the default directory.
</para></listitem>
<listitem><para>
<emphasis>fsimage Plug-in Removed:</emphasis>
The Wic fsimage plug-in has been removed as it duplicates
functionality of the rawcopy plug-in.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='migration-2.3-qa-changes'>
<title>QA Changes</title>
<para>
The following QA checks have changed:
<itemizedlist>
<listitem><para>
<emphasis><filename>unsafe-references-in-binaries</filename>:</emphasis>
The <filename>unsafe-references-in-binaries</filename>
QA check, which was disabled by default, has now been
removed.
This check was intended to detect binaries in
<filename>/bin</filename> that link to libraries in
<filename>/usr/lib</filename> and have the case where
the user has <filename>/usr</filename> on a separate
filesystem to <filename>/</filename>.</para>
<para>The removed QA check was buggy.
Additionally, <filename>/usr</filename> residing on a
separate partition from <filename>/</filename> is now
a rare configuration.
Consequently,
<filename>unsafe-references-in-binaries</filename> was
removed.
</para></listitem>
<listitem><para>
<emphasis><filename>file-rdeps</filename>:</emphasis>
The <filename>file-rdeps</filename> QA check is now an
error by default instead of a warning.
Because it is an error instead of a warning, you need to
address missing runtime dependencies.</para>
<para>For additional information, see the
<link linkend='ref-classes-insane'><filename>insane</filename></link>
class and the
"<link linkend='qa-errors-and-warnings'>Errors and Warnings</link>"
section.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='migration-2.3-miscellaneous-changes'>
<title>Miscellaneous Changes</title>
<para>
The following miscellaneous changes have occurred:
<itemizedlist>
<listitem><para>
In this release, a number of recipes have been changed to
ignore the <filename>largefile</filename>
<link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
item, enabling large file support unconditionally.
This feature has always been enabled by default.
Disabling the feature has not been widely tested.
<note>
Future releases of the Yocto Project will remove
entirely the ability to disable the
<filename>largefile</filename> feature,
which would make it unconditionally enabled everywhere.
</note>
</para></listitem>
<listitem><para>
If the
<link linkend='var-DISTRO_VERSION'><filename>DISTRO_VERSION</filename></link>
value contains the value of the
<link linkend='var-DATE'><filename>DATE</filename></link>
variable, which is the default between Poky releases,
the <filename>DATE</filename> value is explicitly excluded
from <filename>/etc/issue</filename> and
<filename>/etc/issue.net</filename>, which is displayed at
the login prompt, in order to avoid conflicts with
Multilib enabled.
Regardless, the <filename>DATE</filename> value is
inaccurate if the <filename>base-files</filename>
recipe is restored from shared state (sstate) rather
than rebuilt.</para>
<para>If you need the build date recorded in
<filename>/etc/issue*</filename> or anywhere else in your
image, a better method is to define a post-processing
function to do it and have the function called from
<link linkend='var-ROOTFS_POSTPROCESS_COMMAND'><filename>ROOTFS_POSTPROCESS_COMMAND</filename></link>.
Doing so ensures the value is always up-to-date with the
created image.
</para></listitem>
<listitem><para>
Dropbear's <filename>init</filename> script now disables
DSA host keys by default.
This change is in line with the systemd service
file, which supports RSA keys only, and with recent
versions of OpenSSH, which deprecates DSA host keys.
</para></listitem>
<listitem><para>
The
<link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
class now correctly uses tabs as separators between all
columns in <filename>installed-package-sizes.txt</filename>
in order to aid import into other tools.
</para></listitem>
<listitem><para>
The <filename>USE_LDCONFIG</filename> variable has been
replaced with the "ldconfig"
<link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
feature.
Distributions that previously set:
<literallayout class='monospaced'>
USE_LDCONFIG = "0"
</literallayout>
should now instead use the following:
<literallayout class='monospaced'>
DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig"
</literallayout>
</para></listitem>
<listitem><para>
The default value of
<link linkend='var-COPYLEFT_LICENSE_INCLUDE'><filename>COPYLEFT_LICENSE_INCLUDE</filename></link>
now includes all versions of AGPL licenses in addition
to GPL and LGPL.
<note>
The default list is not intended to be guaranteed
as a complete safe list.
You should seek legal advice based on what you are
distributing if you are unsure.
</note>
</para></listitem>
<listitem><para>
Kernel module packages are now suffixed with the kernel
version in order to allow module packages from multiple
kernel versions to co-exist on a target system.
If you wish to return to the previous naming scheme
that does not include the version suffix, use the
following:
<literallayout class='monospaced'>
KERNEL_MODULE_PACKAGE_SUFFIX to ""
</literallayout>
</para></listitem>
<listitem><para>
Removal of <filename>libtool</filename>
<filename>*.la</filename> files is now enabled by default.
The <filename>*.la</filename> files are not actually
needed on Linux and relocating them is an unnecessary
burden.</para>
<para>If you need to preserve these
<filename>.la</filename> files (e.g. in a custom
distribution), you must change
<link linkend='var-INHERIT_DISTRO'><filename>INHERIT_DISTRO</filename></link>
such that "remove-libtool" is not included in the value.
</para></listitem>
<listitem><para>
Extensible SDKs built for GCC 5+ now refuse to install on a
distribution where the host GCC version is 4.8 or 4.9.
This change resulted from the fact that the installation
is known to fail due to the way the
<filename>uninative</filename> shared state (sstate)
package is built.
See the
<link linkend='ref-classes-uninative'><filename>uninative</filename></link>
class for additional information.
</para></listitem>
<listitem><para>
All native and nativesdk recipes now use a separate
<link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
value instead of sharing the value used by recipes for the
target, in order to avoid unnecessary rebuilds.</para>
<para>The <filename>DISTRO_FEATURES</filename> for
<filename>native</filename> recipes is
<filename>DISTRO_FEATURES_NATIVE</filename> added to an
intersection of <filename>DISTRO_FEATURES</filename> and
<filename>DISTRO_FEATURES_FILTER_NATIVE</filename>.</para>
<para>For nativesdk recipes, the
corresponding variables are
<filename>DISTRO_FEATURES_NATIVESDK</filename> and
<filename>DISTRO_FEATURES_FILTER_NATIVESDK</filename>.
</para></listitem>
<listitem><para>
The <filename>FILESDIR</filename>
variable, which was previously deprecated and rarely used,
has now been removed.
You should change any recipes that set
<filename>FILESDIR</filename> to set
<link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>
instead.
</para></listitem>
<listitem><para>
The <filename>MULTIMACH_HOST_SYS</filename>
variable has been removed as it is no longer needed
with recipe-specific sysroots.
</para></listitem>
</itemizedlist>
</para>
</section>
</section>
</chapter>
<!--

View File

@ -1755,6 +1755,9 @@
<link linkend='qa-issue-textrel'><filename>ELF binary</filename></link>
message for more information regarding runtime performance issues.
</para></listitem>
<!--
This check was removed for YP 2.3 release
<listitem><para><emphasis><filename>unsafe-references-in-binaries:</filename></emphasis>
Reports when a binary installed in
<filename>${base_libdir}</filename>,
@ -1776,6 +1779,7 @@
<filename>/usr</filename>.
</note>
</para></listitem>
-->
<listitem><para><emphasis><filename>unsafe-references-in-scripts:</filename></emphasis>
Reports when a script file installed in
<filename>${base_libdir}</filename>,
@ -3671,6 +3675,14 @@
For an example, see the
<filename>meta/conf/distro/include/yocto-uninative.inc</filename>.
</para>
<para>
The <filename>uninative</filename> class is also used unconditionally
by the extensible SDK.
When building the extensible SDK,
<filename>uninative-tarball</filename> is built and the resulting
tarball is included within the SDK.
</para>
</section>
<section id='ref-classes-update-alternatives'>

View File

@ -195,6 +195,10 @@
<listitem><para><emphasis>keyboard:</emphasis> Include keyboard
support (e.g. keymaps will be loaded during boot).
</para></listitem>
<listitem><para><emphasis>ldconfig:</emphasis>
Include support for ldconfig and
<filename>ld.so.conf</filename> on the target.
</para></listitem>
<listitem><para><emphasis>nfs:</emphasis> Include NFS client
support (for mounting NFS exports on device).
</para></listitem>

View File

@ -1170,45 +1170,6 @@ can be found then it should be implemented. I can't find one at the moment.
</listitem>
</itemizedlist>
</para>
<!--
Here are some messages that might be documented in the future.
Right now we are not documenting them because the QA checks are not
enabled by default:
<para>
<itemizedlist>
<listitem><para>
<literallayout class='monospaced'>
Desktop file issue: &lt;error&gt; [desktop]
</literallayout>
NEED A DESCRIPTION AND SOLUTION
</para></listitem>
</itemizedlist>
</para>
<para>
<itemizedlist>
<listitem><para>
<literallayout class='monospaced'>
&lt;packagename&gt;: &lt;file&gt;, installed in the base_prefix, requires a shared library under exec_prefix (&lt;exec_prefix&t;g) [unsafe-references-in-binaries]
</literallayout>
NEED A DESCRIPTION AND SOLUTION
</para></listitem>
</itemizedlist>
</para>
<para>
<itemizedlist>
<listitem><para>
<literallayout class='monospaced'>
&lt;packagename&gt;: Found a reference to &lt;exec_prefix&gt;/ in &lt;path&gt; - Shell scripts in base_bindir and base_sbindir should not reference anything in exec_prefix [unsafe-references-in-scripts]
</literallayout>
NEED A DESCRIPTION AND SOLUTION
</para></listitem>
</itemizedlist>
</para>
-->
</section>
<section id='configuring-and-disabling-qa-checks'>

View File

@ -2421,12 +2421,11 @@
</para>
<para>
The default value, which is "GPL* LGPL*", for
<filename>COPYLEFT_LICENSE_INCLUDE</filename> is set
by the
The default value is set by the
<link linkend='ref-classes-copyleft_filter'><filename>copyleft_filter</filename></link>
class, which is inherited by the
<filename>archiver</filename> class.
The default value includes "GPL*", "LGPL*", and "AGPL*".
</para>
</glossdef>
</glossentry>
@ -8406,13 +8405,16 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<!--
<glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
<info>
MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
</info>
<glossdef>
<para role="glossdeffirst">
-->
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
<!--
Serves the same purpose as
<link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
but for the "HOST" system, in situations that involve a
@ -8430,6 +8432,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</para>
</glossdef>
</glossentry>
-->
<glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
<info>
@ -8459,9 +8462,6 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
See the
<link linkend='var-STAMP'><filename>STAMP</filename></link>
variable for an example.
<link linkend='var-MULTIMACH_HOST_SYS'><filename>MULTIMACH_HOST_SYS</filename></link>
is the corresponding variable for the host system in
situations that involve a "HOST" and a "TARGET" system.
See the
<link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
variable for more information.
@ -13065,12 +13065,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
they make use of host headers and libraries.
</para>
</note>
</para></listitem>
<listitem><para>For native SDK
recipes that build for the SDK
(<filename>nativesdk</filename>), the value is
"${STAGING_DIR}/${<link linkend='var-MULTIMACH_HOST_SYS'>MULTIMACH_HOST_SYS</link>}".
</para></listitem>
</para></listitem>
</itemizedlist>
</para>
</glossdef>

View File

@ -791,20 +791,6 @@
which is usually
<filename>${</filename><link linkend='var-BUILDDIR'><filename>BUILDDIR</filename></link><filename>}/tmp</filename>,
as it includes the staging sysroots.
Another, faster method to empty the staging sysroots is to use the
<filename>scripts/wipe-sysroot</filename> script,
which removes just the staging sysroots and keeps everything else
in <filename>TMPDIR</filename>.
<note>
The <filename>scripts/</filename> directory appears in
<filename>PATH</filename> after running the build environment
initialization script (i.e.
<link linkend='structure-core-script'><filename>oe-init-build-env</filename></link>
or
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>),
which results in the ability to to run
<filename>wipe-sysroot</filename> immediately.
</note>
</para>
</section>