systemd: move "machines" symlinks to systemd-container
Move symlinks to the machines.target and var-lib-machines.mount units to
the systemd-container package, where the pointed at units are located as
well.
This avoids an implicit dependency of the systemd package on
systemd-container, which prevented the use of systemd without installing
systemd-container.
systemd: Use PACKAGECONFIG definition to depend on libnss-myhostname
Rather than adding the dependency on libnss-myhostname to
RDEPENDS_${PN} if the myhostname PACKAGECONFIG is set, add the runtime
dependency to myhostname's PACKAGECONFIG definition.
Alex Kiernan [Wed, 8 May 2019 15:57:28 +0000 (16:57 +0100)]
systemd: Restore mask and preset targets, fix instance creation
Ensure that anyone who sets SYSTEMD_AUTO_ENABLE_${PN} = "mask" (or
"preset") retains the previous behaviour. In addition fix "enable" so it
can (again) create instance units out of templates.
Remove over-zealous quoting of SYSTEMD_SERVICE_ESCAPED as it's already
safely escaped (and can be multiple arguments).
Alex Kiernan [Wed, 8 May 2019 15:57:27 +0000 (16:57 +0100)]
systemd-systemctl: Restore support for enable command
Refactor so that SystemdUnit is its own class, then add support for the
enable command. This restores the ability of systemd.bbclass to create
instances using syntax such as:
Alex Kiernan [Wed, 8 May 2019 15:57:26 +0000 (16:57 +0100)]
systemd: Default to non-stateless images
When creating images, for anything other than the explicitly stateless
case, touch /etc/machine-id so that the images can be booted without an
initramfs and with `ro` set on the kernel command line, otherwise system
refuses to start:
[ 7.222134] systemd[1]: No hostname configured.
[ 7.227266] systemd[1]: Set hostname to <localhost>.
[ 7.232622] systemd[1]: System cannot boot: Missing /etc/machine-id and /etc is mounted read-only.
[ 7.241750] systemd[1]: Booting up is supported only when:
[ 7.247362] systemd[1]: 1) /etc/machine-id exists and is populated.
[ 7.253752] systemd[1]: 2) /etc/machine-id exists and is empty.
[ 7.259757] systemd[1]: 3) /etc/machine-id is missing and /etc is writable.
If IMAGE_FEATURES includes `stateless-rootfs` then systemctl-native is
not run on the image leaving the image for population at runtime by
systemd.
map unexpectedSuccesses to PASSED and improve the way they're displayed. We
expect/allow ptest runner to fail but if it passes we should handle it correctly.
Richard Purdie [Wed, 8 May 2019 17:22:19 +0000 (18:22 +0100)]
meta/lib+scripts: Convert to SPDX license headers
This adds SPDX license headers in place of the wide assortment of things
currently in our script headers. We default to GPL-2.0-only except for the
oeqa code where it was clearly submitted and marked as MIT on the most part
or some scripts which had the "or later" GPL versioning.
The patch also drops other obsolete bits of file headers where they were
encoountered such as editor modelines, obsolete maintainer information or
the phrase "All rights reserved" which is now obsolete and not required in
copyright headers (in this case its actually confusing for licensing as all
rights were not reserved).
More work is needed for OE-Core but this takes care of the bulk of the scripts
and meta/lib directories.
The top level LICENSE files are tweaked to match the new structure and the
SPDX naming.
Richard Purdie [Wed, 8 May 2019 15:56:32 +0000 (16:56 +0100)]
oeqa: Drop OETestID
These IDs refer to testopia which we're no longer using. We would now use the test
names to definitively reference tests and the IDs can be dropped, along with their
supporting code.
It fails to build lib32-target-sdk-provides-dummy with error messages:
| ERROR: target-sdk-provides-dummy-1.0-r0 do_packagedata: The recipe target-sdk-provides-dummy
| is trying to install files into a shared area when those files already exist. Those files
| and their manifest location are:
| .../tmp/pkgdata/qemux86-64/lib32-target-sdk-provides-dummy
| (matched in manifest-qemux86_64-lib32-target-sdk-provides-dummy.packagedata)
| .../tmp/pkgdata/qemux86-64/runtime/lib32-target-sdk-provides-dummy
| (matched in manifest-qemux86_64-lib32-target-sdk-provides-dummy.packagedata)
| ... snip ...
| Please verify which recipe should provide the above files.
Add related directories to SSTATE_DUPWHITELIST to avoid the failures.
Changqing Li [Wed, 8 May 2019 10:05:27 +0000 (18:05 +0800)]
python3: fix do_install fail for parallel buiild
When using make -j with the 'install' target, it's possible for altbininstall
(which normally creates BINDIR) and libainstall (which doesn't, though it
installs python-config there) to race, resulting in a failure due to
attempting to install python-config into a nonexistent BINDIR. Ensure it also
exists in the libainstall target.
Joshua Watt [Wed, 8 May 2019 16:16:23 +0000 (11:16 -0500)]
resulttool: Add option to dump all ptest logs
Adds an option to dump all the ptest logs to individual files in a
specified directory. If multiple test runs are present, the
'--prepend-run' argument will create separate directories for each test
run under the target directory and put the logs there to prevent each
test run from clobbering the others.
Richard Purdie [Wed, 8 May 2019 10:50:14 +0000 (11:50 +0100)]
scripts/pybootchart/draw: Fix some bounding problems
The chart size extents were being incorrectly reported, not accounting for the
width of the legend. Set a minimum width to account for that (its fixed size).
Also stop printing the chart background off the bottom of the chart extents.
Richard Purdie [Wed, 8 May 2019 10:48:35 +0000 (11:48 +0100)]
scripts/pybootchart: Port to python3
This updates the pybootchart code (used for viewing build timing profiles)
to use python3. The bulk of the changes are to use gi instead of pygtk, i.e.
port from gtk+2 to gtk+3.
The main change is to make the bootchart widget inherit gtk.Scrollable
and change the way the scrollbars are implemented to match the new method
upstream. The drawing code used cairo already so can remain unchanged,
Hongxu Jia [Mon, 6 May 2019 02:37:27 +0000 (10:37 +0800)]
acpica: use update-alternatives for acpidump
acpidump is both provided by acpica and pmtools, so use
update-alternatives to fix conflicts:
...
|Error: Transaction check error:
| file /usr/bin/acpidump conflicts between attempted installs of
pmtools-20130209+git0+3ebe0e54c5-r0.i586 and acpica-20190405-r0.i586
...
Khem Raj [Mon, 6 May 2019 17:51:36 +0000 (10:51 -0700)]
gcc-target: Do not set --with-sysroot and gxx-include-dir paths
These options are not needed on target infact since the defaults would
be good enough for compiler to find the relevant headers and libraries
from compiler runtime
with gcc9 it starts to strip the sysroot from gxx-include-dir which
means it tries to look for gxx headers in localdir
Whenever cml1 do_configure is used with a defconfig, oldconfig waits for
input. This silently fails on recent kconfig projects with:
"Error in reading or end of file."
We cannot use a more up to date kconfig target such as olddefconfig,
because busybox does not support it.
Douglas Royds [Mon, 6 May 2019 06:47:25 +0000 (18:47 +1200)]
distutils: Run python from the PATH in the -native case as well
The python distutils generate a python wrapper script for each package,
containing shebang lines pointing to the python executable.
In our case, this is a fully-qualified path to python-native in the
recipe-sysroot-native.
Ubuntu 18.04 restricts the useful length of the shebang line to 125
characters, and Ubuntu 16.04 restricts it to 77. In both cases, the
staged python script fails to run due to the length of the path to
the python-native executable.
Replace the shebang line with nativepython or nativepython3 as appropriate.
The nativepython symlink is installed by the python-native recipe:
#!/usr/bin/env nativepython
We were already doing this for on-target distutils components.
This change applies the sed-line to -native distutils components as well.
In this way, -native clients of these components can invoke the wrapper scripts
directly, without themselves needing to inherit pythonnative.
This works around a known setuptools issue:
https://github.com/pypa/setuptools/issues/494
Even once this issue has been resolved upstream,
we will still need to replace `python` with `nativepython`
Alex Kiernan [Sun, 5 May 2019 05:24:27 +0000 (06:24 +0100)]
recipetool: fix unbound variable when fixed SRCREV can't be found
If attempting to find a fixed SRCREV fails because the directory doesn't exit,
avoid failing with:
Traceback (most recent call last):
File "/home/vagrant/poky/scripts/recipetool", line 121, in <module>
ret = main()
File "/home/vagrant/poky/scripts/recipetool", line 110, in main
ret = args.func(args)
File "/home/vagrant/poky/scripts/lib/recipetool/create.py", line 707, in create_recipe
srcrev = stdout.rstrip()
UnboundLocalError: local variable 'stdout' referenced before assignment
Alex Kiernan [Sun, 5 May 2019 05:23:32 +0000 (06:23 +0100)]
go: Exclude vcs files when installing deps
Because our clones use the host git, on (say) Ubuntu 18.04, the local
git directories acquire perl scripts such as fsmonitor-watchman.sample.
During packaging, this leads to failures:
ERROR: go-hsperfdata-1.0.3+gitAUTOINC+b58598ac84-r0 do_package_qa: QA Issue: /usr/lib/go/pkg/dep/sources/https---github.com-nsf-termbox--go/.git/hooks/fsmonitor-watchman.sample contained in package go-hsperfdata-staticdev requires /usr/bin/perl, but no providers found in RDEPENDS_go-hsperfdata-staticdev? [file-rdeps]
ERROR: go-hsperfdata-1.0.3+gitAUTOINC+b58598ac84-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: go-hsperfdata-1.0.3+gitAUTOINC+b58598ac84-r0 do_package_qa:
ERROR: go-hsperfdata-1.0.3+gitAUTOINC+b58598ac84-r0 do_package_qa: Function failed: do_package_qa
Alex Kiernan [Sun, 5 May 2019 05:23:13 +0000 (06:23 +0100)]
python3: Add ntpath.py to python core
The newer python3 recipe no longer includes ntpath.py in core, leading
to failures in pkg_resources:
Traceback (most recent call last):
File "/usr/bin/bmaptool", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 42, in <module>
import ntpath
ModuleNotFoundError: No module named 'ntpath'
Hongxu Jia [Sun, 5 May 2019 10:04:24 +0000 (18:04 +0800)]
cpio/tar/native.bbclass: move rmt to sbindir and add a prefix to avoid native clashing
The rmt in cpio-native and tar-native is clashing, since
tar-native has set var-NATIVE_PACKAGE_PATH_SUFFIX, we move rmt
to sbindir, and add suffix NATIVE_PACKAGE_PATH_SUFFIX to sbindir
could avoid the clashing.
And in Ubuntu, rmt is in sbindir
$ which rmt
/usr/sbin/rmt
Scott Rifenbark [Mon, 6 May 2019 19:44:48 +0000 (12:44 -0700)]
documentation: Cleaned up "plug-in"/"plugin" terminology.
The YP manual set was using the plugin term inconsistently.
It was appearing as "plugin" as well as "plug-in". The
plugins in the project are all named without a hyphen.
The term itself is either/or according to Google. I have
changed all references to plugin so that they do not use
a hyphen.
Scott Rifenbark [Fri, 19 Apr 2019 16:51:59 +0000 (09:51 -0700)]
dev-manual: Added reasoning blurb to "Viewing Variables" section.
I put a new introductory paragraph in the "Viewing Variables"
section that alludes to why you might want to see variables.
Also, I linked to the section "Modifying Variable Values" in
the BB manual.
Scott Rifenbark [Fri, 12 Apr 2019 21:12:10 +0000 (14:12 -0700)]
mega-manual, overview-manual: Added updated index releases figure
The index-downloads.png file changes due to "eclipse" no
longer being there. Both the overview-manual and the
mega-manual figures folders hold this figure.
Scott Rifenbark [Fri, 12 Apr 2019 21:07:01 +0000 (14:07 -0700)]
Documentation: Removed customization.xsl files for Eclipse
The help files for YP manuals used in the Eclipse application
are no longer supported. I removed the individual
*-customization.xsl files for the individual YP manuals.
Signed-off-by: Paul Barker <paul@betafive.co.uk> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Paul Barker <paul@betafive.co.uk> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Fri, 3 May 2019 06:29:26 +0000 (23:29 -0700)]
mdadm: Disable Werror
Werror spews more warnings with gcc9, like other distros (
debian/fedora) disable Warnings as errors
Fixes
super-intel.c:696:9: error: taking address of packed member of 'struct imsm_super' may result in an unaligned pointer value [-Werror=address-of-packed-member]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Max Kellermann <max.kellermann@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Max Kellermann <max.kellermann@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 1 May 2019 11:09:44 +0000 (12:09 +0100)]
bitbake: bitbake: Strip old editor directives from file headers
There are much better ways to handle this and most editors shouldn't need this
in modern times, drop the noise from the files. Its not consitently applied
anyway.
Richard Purdie [Wed, 1 May 2019 10:47:13 +0000 (11:47 +0100)]
bitbake: bitbake: Drop duplicate license boilerplace text
With the introduction of SPDX-License-Identifier headers, we don't need a ton
of header boilerplate in every file. Simplify the files and rely on the top
level for the full licence text.
Richard Purdie [Tue, 30 Apr 2019 10:05:26 +0000 (11:05 +0100)]
bitbake: bitbake: Add initial pass of SPDX license headers to source code
This adds the SPDX-License-Identifier license headers to the majority of
our source files to make it clearer exactly which license files are under.
The bulk of the files are under GPL v2.0 with one found to be under V2.0
or later, some under MIT and some have dual license. There are some files
which are potentially harder to classify where we've imported upstream code
and those can be handled specifically in later commits.
The COPYING file is replaced with LICENSE.X files which contain the full
license texts.