NO_PROXY may contain * elements, and if we are unlucky (or want to match
all hosts with *), we will pick up local files rather than doing the
match in match_host. Quoting helps here.
(From OE-Core rev: 7e216e806ca765152fd874e24785f783a3201284)
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The check_commits logic assumes that both devtool-base and args.branch
exist in the git repo that it is operating on. In order to prevent
errors at that point it's best to first ensure that both of these refs
actually exist. If they don't both exist then the check_commits logic
should just be skipped, as it would be if the repo wasn't originally
checked out by devtool.
Previously if a user removed the args.branch branch from their devtool
cloned repo this code would crash on adding the repo with -n. The crash
would look like this:
Traceback (most recent call last):
File "/home/ddedrick/src/poky/scripts/devtool", line 344, in <module>
ret = main()
File "/home/ddedrick/src/poky/scripts/devtool", line 331, in main
ret = args.func(args, config, basepath, workspace)
File "/home/ddedrick/src/poky/scripts/lib/devtool/standard.py", line 812, in modify
(stdout, _) = bb.process.run('git log devtool-base..%s' % branch, cwd=srctree)
File "/home/ddedrick/src/poky/bitbake/lib/bb/process.py", line 178, in run
raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git log devtool-base..devtool' failed with exit code 128:
fatal: ambiguous argument 'devtool-base..devtool': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
(From OE-Core rev: f13a3490fdb404bbd4c77e45b83540d6deec1358)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
DEVTOOL_EXTRA_OVERRIDES only needs one entry for each instance of
overrides. Previous to these changes it would find every override to
SRC_URI and add it to the list. This would duplicate instances where
SRC_URI is modified multiple times with the same override like:
SRC_URI_append_foo += "file://0001-foo.patch"
SRC_URI_append_foo += "file://0002-bar.patch"
A bbappend might also overwrite a SRC_URI override, which would also
cause multiple instances to occur.
When there are multiple instances of the same override in
DEVTOOL_EXTRA_OVERRIDES it causes devtool modify to fail when creating
override branches. The failure occurs when attempting to create the same
override branch a second time and looks like this:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:devtool_post_patch(d)
0003:
File: '/build/poky/meta/classes/devtool-source.bbclass', lineno: 202, function: devtool_post_patch
0198:
0199: for override in extra_override_list:
0200: localdata = bb.data.createCopy(d)
0201: if override in default_overrides:
*** 0202: bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir)
0203: else:
0204: # Reset back to the initial commit on a new branch
0205: bb.process.run('git checkout %s -b devtool-override-%s' % (initial_rev, override), cwd=srcsubdir)
0206: # Run do_patch function with the override applied
File: '/build/poky/bitbake/lib/bb/process.py', lineno: 178, function: run
0174: if not stderr is None:
0175: stderr = stderr.decode("utf-8")
0176:
0177: if pipe.returncode != 0:
*** 0178: raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
0179: return stdout, stderr
Exception: bb.process.ExecutionError: Execution of 'git branch devtool-override-foo devtool' failed with exit code 128:
fatal: A branch named 'devtool-override-foo' already exists.
(From OE-Core rev: 90f667db2219f04e6d61588cd61056d3d8da6d7d)
Signed-off-by: Dan Dedrick <ddedrick@lexmark.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is the older script which the code in lib/oeqa/buildperf replaces so
delete the obsolete script to avoid confusion.
(From OE-Core rev: 9908b7955e75e10d6a1384e4c08417ef534464af)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This tweaks the script to:
* Ensure directories exist and can be written to
* Allow the downloads directory to be specified
* Error early if the phantomjs or optipng dependencies are not installed
* Allow the location of the globalres.log file to be specified
This means that the main build directory can be destroyed and any state
from the script is stored elsewhere allowing it to be triggered
automatically from the autobuilder infrastructure.
(From OE-Core rev: 1de5fbd484e6a747ae6419ccc89d8c2911b9706b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Apparently either nobody ever used sdimage-bootpart.wks
or fstab was kept untouched due to "--no-fstab-update" usage as
some boards like IMX may have, see [1].
Otherwise addition of the following line to the target's fstab:
---------------------->8-----------------
/dev/mmcblkp1 /boot vfat defaults 0 0
---------------------->8-----------------
gets us unusable target:
---------------------->8-----------------
[* ] A start job is running for dev-mmcblkp1.device (23s / 1min 30s)
[ TIME ] Timed out waiting for device dev-mmcblkp1.device.
[DEPEND] Dependency failed for /boot.
[DEPEND] Dependency failed for Local File Systems.
You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" or "exit"
to boot into default mode.
Press Enter for maintenance
---------------------->8-----------------
Fix it with use of "mmcblk0" device name.
[1] https://lists.yoctoproject.org/pipermail/meta-freescale/2018-February/022156.html
(From OE-Core rev: 57a925dbd949e488980b02896106efd82bf47ed2)
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
Cc: Maciek Borzecki <maciek.borzecki@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
image_types_wic.bbclass has a mechanism for doing variable substitution
on .wks files by simply letting the input file be called
.wks.in. However, that doesn't allow using variables in files included
via the include directive. This is unfortunate, because lacking either
the ability to include other files or variable substitution leads to
fragile and error-prone duplication between kickstarter files and
recipes/configuration files used for various boards.
This adds (somewhat naive) support for variable substitution in all
files parsed by wic. The user should add all required variables to
WICVARS to get them exported appropriately.
(From OE-Core rev: 8a75d614a8a1ff72c4af448ac3e1292d0e1d1a79)
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without installing gitpython package, oe-git-archive will face error
below, where it was referencing key that was non-existent inside
metadata object.
Traceback (most recent call last):
File "<poky_dir>/scripts/oe-git-archive", line 271, in <module>
sys.exit(main())
File "<poky_dir>/scripts/oe-git-archive", line 229, in main
'commit_count': metadata['layers']['meta']['commit_count'],
KeyError: 'commit_count'
Fix this error by adding exception catch when referencing
non-existent key (based on inputs provided by Richard Purdie).
[YOCTO# 13082]
(From OE-Core rev: 9a3cc9b8523b78dda6c3f3f2e12798b2b907d7e5)
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Then we can get user's UID and GID rather than hardcode to 1000, e.g.:
- Without sudo
$ runqemu-gen-tapdevs --help
[snip]
$ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin
[snip]
- With sudo
$ sudo ../poky/scripts/runqemu-gen-tapdevs --help
[snip]
$ sudo ../poky/scripts/runqemu-gen-tapdevs 15220 100 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin
[snip]
(From OE-Core rev: 446e7da7e56f9de3602498b5ef40e9e0f8f71837)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Where possible pass lists instead of strings, don't use a subshell, and call
check*() instead of using Popen directly.
(From OE-Core rev: d2374623444752af1ad748ed36b68ea58f629bf6)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add various fixes and improvements including the ability to export
patch statsitics as json data.
(From OE-Core rev: aa4a4b3ca799948047337e006ee9bf482be7b409)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On python versions with close_fds=True (python 3.2 onwards), the tap
device lockfile isn't passed to the child process.
Since this guards against use of an active interface, we really want this
here, so pass it in pass_fds. This means if the parent exits early, the child
still holds the lock, avoiding messages like:
runqemu - ERROR - Failed to run qemu: qemu-system-x86_64: could not configure /dev/net/tun (tap0): Device or resource busy
(From OE-Core rev: 17a0a067d597c445c5892ff9914e91a2187f7e09)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Various tweaks:
- Balance up the aquire/release functions
- Use debug messge for both acquiring and release message for consistency in logs
- Use None instead of an empty string
- Reset the value of the field if we don't have the lock any more
(From OE-Core rev: 58e48211f7cb44d959b571d449a94291c27535a5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
MACHINE=qemux86-64 oe-selftest -r runqemu.RunqemuTests.test_boot_machine_slirp_qcow2
fails yet
oe-selftest -r runqemu.RunqemuTests.test_boot_machine_slirp_qcow2
with MACHINE in local.conf would work.
It turns out that:
runqemu slirp wic.qcow2 qemux86-64
works but:
MACHINE=qemux86-64 runqemu slirp wic.qcow2 qemux86-64
does not.
The reason are the misplaced return statements in runqemu, its skipping a block
of logic when MACHINE is set in the environment when it shouldn't. Fix this.
(From OE-Core rev: 98d113ae52cbbc88773a81a17b0933412a8e463b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is a fixup for: e1ba46109e
devtool deploy-target --strip foo root@192.168.7.2
ended up with:
Traceback (most recent call last):
File "/home/user/bar_sdk/sysroots/x86_64-pokysdk-linux/usr/bin/
devtool", line 344, in <module>
ret = main()
File "/home/user/bar_sdk/sysroots/x86_64-pokysdk-linux/usr/bin/
devtool", line 331, in main
ret = args.func(args, config, basepath, workspace)
File "/home/user/bar_sdk/layers/poky/scripts/lib/devtool/
deploy.py", line 187, in deploy
rd.getVar('base_libdir'))
TypeError: strip_exbar() missing 1 required positional argument: 'd'
(From OE-Core rev: bc349b2d99d74f6d7fb590fd97750e5ff8d6e6c4)
Signed-off-by: Adrian Freihofer <adrian.freihofer@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The imp module is deprecated, port the code over to use importlib
as recently done for bb.utils as well.
(From OE-Core rev: 24809582d4850190d87cd8eb8180d0dce215dbdf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sometimes the users might want to change the title showing on UEFI
booting screen, so far it's hard-coded to 'boot'.
There is not a easy way to customize it in current design, I tried
firstly with '--configfile', but that does not work with --use-uuid,
since the later option will generate a UUID and write it to boot
config, only when the former option is not enabled.
So a new source parameter 'titile' is added in this patch, it defaults
to 'boot' to be consistent with the original title.
(From OE-Core rev: 37e16188ef3b1b328eb18b3e459c051c9c9f0332)
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
fix below problem:
pydevshell raises exception when maximize the python shell window.
when click maximize, rlist of select return ready object, but the
pty.read is None, so throw exception of 'NoneType' object has no
attribute 'decode', change to only decode when readdata is valid.
[YOCTO #11875]
(From OE-Core rev: d598f8d48e9b094af99effa7471d613b16ffa817)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
yocto-check-layer will find locked-sigs.inc under builddir,
but locked-sigs.inc is generated under current bitbake working
dir. if run yocto-check-layer outside builddir, we will met error
like "No such file or directory: *locked-sigs.inc". change to
run bitbake -S under builddir to fix this problem.
[YOCTO #12973]
(From OE-Core rev: 2ec0bc0b038bc6413978c8f34ef5c0d22b4bc3e7)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Check that yocto-autobuilder-helper has been cloned to the correct location.
Check that vnc is running using the same script the autobuilder does.
Set the DISPLAY enviroment variable to :1 the same way we do when building
normally.
Make the VM's serial console available so we can log in and power off allowing
the tests to continue.
(From OE-Core rev: 5fb26ff0b56eebb864fd8f74c015e414476eec43)
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
subprocess.run() was introduced in Python 3.5. We currently support down to
Python 3.4 so I've replaced it with subprocess.check_call() which is available
in that version.
(From OE-Core rev: 3a09cee5994ce65079dab1042e47e5eed4540bb9)
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Its currently not possible to have a console available whilst using qemu in graphics
mode. This is causing some issues for testing autobuilder bringup so all a "serialstdio"
mode to runqemu to accomodate this.
The existing serialstdio internal variable is renamed to allow the new user visible option.
(From OE-Core rev: 101b70d3c6a0a5a022d96dfdd21500b757c8fada)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Temporarily modify path to run as non-privileged user on more distros.
Change the recommended value to match what we use on the autobuilder.
(From OE-Core rev: 2f86c3f1180ba8bf77301a0bc29c3b290bc28d91)
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
os.errno doesn't work in Python 3.7 and shouldn't have ever worked, so use
import errno explicitly.
(From OE-Core rev: 82f9157e84dcaf0ad4292053b09be68c2290d197)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Several distros are now shipping "python" as python v3 contra to the original
python guidelines. This causes users confusion/pain in trying to use our tools.
We can just force "python" to "python2" within HOSTTOOLS to avoid this issue
and hide the complexity from the user.
(From OE-Core rev: b06a6cde5c5503f456f260c773cf126085e18c8d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When multilib is enabled and both udev-hwdb and ${MLPREFIX}udev-hwdb are
installed to image, it fails to run one of their postinstall scripts
that they both call ${base_bindir}/udevadm with same user mode qemu.
Duplicate udevadm and add postinst-intercept update_udev_hwdb to fix the
failures.
(From OE-Core rev: d6b737a31a8842cdc770b05e28503c81a691d10d)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Only look in recipes-* folders for patches, to stop finding patches in
e.g. meta/lib/oeqa/manual.
(From OE-Core rev: ed912e10c61ea9d45ca648e03eebafeebcf7e9b0)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It fails to build multilib image such as lib32-core-image-minimal with
wic by set 'IMAGE_FSTYPES = "wic"':
| ERROR: Couldn't find correct bootimg_dir, exiting
When multilib is enabled, STAGING_DATADIR is expanded with MLPREFIX. But
dependencies of images such as syslinux is still populated to nonarch
STAGING_DATADIR.
Search nonarch STAGING_DATADIR to fix the error.
(From OE-Core rev: dbae9a6f9a1c6cc7d4dd680d7bbda3dfa40f3491)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Running wic commands on Debian 10 systems fail in
scripts/lib/wic/engine.py:get_partitions() due to new stderr output captured
when trying to parse the output from /sbin/parted as a non-root user.
The parted command calls the dmidecode utility, which produces this error
as a non-root user:
/sys/firmware/dmi/tables/smbios_entry_point: Permission denied
/dev/mem: Permission denied
scripts/lib/wic/engine.py:get_partitions() calls misc.py:exec_cmd(),
a subprocess wrapper which returns a combined stderr and sdtdout.
These messages to stderr confuse the partition table parser in
get_partitions().
This patch has the partition table parser ignore lines before the expected
"BYT;" header string.
Running wic in Debian 9 does not have this issue.
(From OE-Core rev: d6936301d7598b7a783beaae95109555faf6cc17)
Signed-off-by: Geoff Parker <geoffhp@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: f24c3538a27388d282a94e2d8a70cd9108d0919c)
Signed-off-by: Michael Davis <michael.davis@essvote.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove usage of a specific amount of memory and let it be controlled by
users. This was the default behaviour before it was changed by commit
3b79d9a78 that switched the wks file to be used for qemux86.
Also fixes the bitbake parsing issues seen because of memory starvation
using build appliance images.
Fixes [YOCTO #12894]
(From OE-Core rev: 18d6b668c52dc881cff7b107420e0de527eecce4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When execute in multiple layers like meta-openembedded the execution is
aborted when some sublayer fails to get world signatures, so mark it as
an error and continue the execution in the remaining sublayers.
(From OE-Core rev: c8ab558b4fdc77ab54fbb130078c78d43740b4b8)
Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current handling of SIGTERM is incorrect as the process pid returned
by Popen call with shell setting to True is actualy the shell instead of
the qemu process. So use shlex to split cmd so that we can avoid using
shell=True. This ensures the child process is the actual qemu process.
Also, as we install a SIGTERM handler, we need handle the situation of
qemu terminated by SIGTERM, otherwise we will get ERROR message in such
case.
Besides, we have a problem that after running qemu, the terminal's behavior
is incorrect regarding long lines or long commands. Long commands or long
outputs should appear in multiple lines, but they appear in the same line,
overriding previous output. Use `tput smam' to fix this problem.
(From OE-Core rev: e8acef383767cfd1ef0c3d3c45d9d6eb1c83b3e7)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Note further tests needed after encountering issues.
(From OE-Core rev: ab7b7e222b88e40f2a5011fc16bbd784e6be55e5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Because the find | cpio processes execute in parallel connected via
the pipe, and the cpio outputs in the same dir find searches for
source files, the cpio will be included in itself partially, depending
on how fast the build machine creates the cpio file before cpio
gobbles it up.
This bloats the ISO image, though compression reduces the .iso file size,
once the kernel decompresses the cpio image and boots it live, it uses
up to double the RAM memory.
Fix this by creating the initrd.cpio file directly inside cr_workdir.
(From OE-Core rev: 7a7b29f5f1392f4f87af4f20cda99c66b4789fde)
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We can use this parameter to make the wic use the label to name a
partition in /etc/fstab.
(From OE-Core rev: 51638edaa00befaed58e2def255d46ae44d9234f)
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Postinstall script update_gtk_immodules_cache calls
${bindir}/gtk-query-immodules-${version}. When multilib is enabled, both
packages foo and lib32-foo call ${bindir}/gtk-query-immodules-${version}
and one of them will fail to run obviously.
Duplicate install files gtk-query-immodules-${version} to ${libexecdir}
with ${MLPREFIX}. And update update_gtk_immodules_cache calls proper
binary.
(From OE-Core rev: cad28bd74438d8edbdb02a2d56169e2a55260ca8)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Packages which inherit fontcache.bbclass call postinstall script
update_font_cache. And in update_font_cache, it calls ${bindir}/fc-cache
by qemuwrapper. When multilib is enabled, both packages foo and lib32-foo
will call ${bindir}/fc-cache and one of them will fail to run obviously.
Duplicate install file fc-cache to ${libexecdir} with ${MLPREFIX} and
call proper fc-cache in update_font_cache.
(From OE-Core rev: 53d8625732b0c8416e367d5eef43863ec2065433)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic allows the user to create disk image and reference each created
partitions via its partition UUID.
squashfs does not support filesystem UUID but it does offer support for
partition UUID.
$ lsblk -o NAME,FSTYPE,UUID,PARTUUID
NAME FSTYPE UUID PARTUUID
sda
|-sda1 vfat 6078-ACD0 95aa4ffb-741d-4d99-adf6-0358bc890046
|-sda2 squashfs 7d46da2d-29cc-4d5a-9e39-d0381c4abb0c
|-sda3 squashfs d4a3e24e-410a-4f2c-8ad5-8f8321de177b
|-sda4 ext4 d72ec529-78e4-4cd3-b39b-781b6b1cb47c f3edc990-f4f6-4536-9587-44dae4ceb99f
`-sda5 ext4 a0b265aa-e935-40b8-9c6b-e9e58ad3890f 6e72ebaa-29ed-41cd-844c-3f76976cf41d
Modifying this constrain allows a user to create squashfs-based rootfs and boot
from them with such kernel argument 'root=PARTUUID=7d46da2d-29cc-4d5a-9e39-d0381c4abb0c'
Fixes: 2fbdcf4e59c8 ("wic: kparser.py: Check for SquashFS and use-uuid")
(From OE-Core rev: a8787bbfdf088b0ef9feb8e6b4230b743bb4086f)
Signed-off-by: Emmanuel Roullit <emmanuel.roullit@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add -c (--clean) optiont to 'devtool build' command so that users
could easily clean things up when using devtool.
I encountered a problem about do_prepare_recipe_sysroot failure
when using `devtool build' command and I found myself in a situation
where I either have to use `bitbake' command to clean things up or
use `rm' to remove the directories under ${WORKDIR}.
So add a clean option as it would be helpful when users want to clean
things up to prepare an environment for a clean build.
(From OE-Core rev: 29d790cdeff19e520a35ec5902d6deaae8665492)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a couple of missing items to the TODO list that this script needs to handle.
(From OE-Core rev: c6bc6d874ae43eb2808508b935f837c670c1d15e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It is often useful to run lookup-recipe on a list of packages and get
notifications that there were failures, instead of a fatal error on the first
failure.
This makes it possible to pass long lists of packages to oe-pkgdata-util and
process the output.
(From OE-Core rev: 8439565a009bb72d63bb3be6230832811b04cf6e)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
initrd.cpio is created in initrd_dir, not in cr_workdir. Gzip will
let initrd.cpio uncompressed if the path is not found.
Also, grub_image variable doesn't exist, grub_src_image should
be used instead.
(From OE-Core rev: c88875b568a66297b1d3df380c590f20796c57f6)
Signed-off-by: Alexandru Vasiu <alexandru.vasiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Only bsdcpio works with numbers for option -R to specify user:group,
while GNU cpio doesn't. Debian use GNU cpio so without this change,
you cannot create ISO images without installing bsdcpio.
(From OE-Core rev: 7c6ba368006ca94ecc0daac7b1c5e0fbe4236daf)
Signed-off-by: Alexandru Vasiu <alexandru.vasiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a script which can be run on new autobuilder workers to check all needed configuration
is present. Designed to be run in a repo where bitbake/oe-core are already present.
This means when we add new autobuilder workers, we can quickly test whether all the needed
funcationality to support the standard yocto project autobuilder (ie. the standard
OE-Core tests) are present.
It uses images prebuilt in a previous release to cut build/testing time.
(From OE-Core rev: c9dd81fe9c88d8d9881686e60c17e6fab4b230f1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It helps to find/use native tools under ${STAGING_BINDIR_NATIVE}/*-native.
Solving below error:
$ oe-run-native python3-native python3
Running bitbake -e python3-native
Error: Unable to find 'python3' in .../tmp/work/x86_64-linux/python3-native/3.5.5-r1.0/recipe-sysroot-native/usr/bin:.../tmp/work/x86_64-linux/python3-native/3.5.5-r1.0/recipe-sysroot-native/bin:.../tmp/work/x86_64-linux/python3-native/3.5.5-r1.0/recipe-sysroot-native/usr/sbin:.../tmp/work/x86_64-linux/python3-native/3.5.5-r1.0/recipe-sysroot-native/sbin
Error: Have you run 'bitbake python3-native -caddto_recipe_sysroot'?
-- snip --
After this change we have native python3 to be found:
$ oe-run-native python3-native python3
Running bitbake -e python3-native
Python 3.5.5 (default, Aug 8 2018, 17:45:49)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
-- snip --
[YOCTO #12889]
(From OE-Core rev: a3e9b2224b31cfd836519d0b609f8064adb67cca)
Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Automatically select one kernel type image based on a predefined
precedence list if there are multi kernel images installed.
(From OE-Core rev: d1d80566681d4cdc00aa3d4b5e4bcf5edb7132b7)
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add support to specify a custom extlinux.conf via something like:
bootloader --configfile="extlinux.conf"
(From OE-Core rev: 33f85c8bf80d70f00eeccd9ab3dfa417c0fc7df1)
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
By leveraging the distro boot command feature in the u-boot, we can
compose the corresponding extlinux.conf when creating the wic image,
and let u-boot boot the kernel automatically. For more detail about
the u-boot distro boot command feature, please see doc/README.distro
in u-boot source files.
(From OE-Core rev: bdf8ae540af12ecc9ad60efd3651b0f71d12d3bd)
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We want to add some u-boot specific config file. Before doing this,
we need know what files will be installed into this partition. So
move the codes about parsing the IMAGE_BOOT_FILES into
do_configure_partition(). No function change.
(From OE-Core rev: 3203037471c761f635d1f1c512cb623ff6977a41)
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We choose to pass the source parameters to the source plugins' hooks
via a local variable srcparams_dict. So the Partition.sourceparams_dict
is not used by anyone and seems pretty confused. So drop it.
(From OE-Core rev: d7130a7d0e61021f71fec1d7ae7d37ebb27f0e03)
Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SafeConfigParser class has been renamed to ConfigParser in Python
3.2+ see
http://bugs.python.org/issue10627
This alias will be removed in future versions.So we can use
ConfigParser directly instead.
(From OE-Core rev: 3c05c8fff779bd190b31fa8aa16b7a1b24420a60)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building with `clang -target bpf` using the
multilib_header, a recursion was unavoidable because
bits/wordsize.h would #include itself, still lacking
a definition for __MHWORDSIZE or __WORDSIZE.
(From OE-Core rev: 70b41b3c335a80b4ac243f468f22331d261299db)
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Images that rely on dhcp being used won't have network setup properly
otherwise.
Fixes [YOCTO #12804]
(From OE-Core rev: fb4dd04f65ea78890c1102424765056d93e6ca65)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When trying to delete something from an ext partition using debugfs, we
don't show any error to the user when that operation fails.
Change this behavior to show the error generated by debugfs. Also,
fallback to use rmdir in case we are trying to delete a directory. However,
unlike mdeltree that is used for a FAT partition, there's no easy way to
delete a non empty directory. Show an error instead when that happens so
user can take appropriate action.
(From OE-Core rev: a405383e63c35d7b56108f192ca74755b122a639)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The warn method is deprecated. We should use the documented warning instead.
Quoting from the python's official doc:
"""
Note: There is an obsolete method warn which is functionally identical to warning.
As warn is deprecated, please do not use it - use warning instead.
"""
(From OE-Core rev: f467fd277eb77336097cfc0f5f329bdc8d0f70cb)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit 6671a4d980c8bef8f402780a308f6c43a25044aa.
This breaks uninative tarball since the call of relocate_sdk.py from uninative.bbclass
wasn't updated to account for this change. It isn't clear what value that code could
pass in and this isn't simple to fix so revert until a better fix can be found
that doesn't break uninative.
(From OE-Core rev: b247392b4ced57cfe694656032f6a6723740a9e8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This has been printing a deprecation warning for a while, now remove it
in favour of wic's efi functionality.
(From OE-Core rev: 1f279cf1ad2f0a20495780b210a987416650f40f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch removes hardcodes added to relocate_sdk.py
during SDK build, making it flexible and reusable.
Now default SDK path is passed to the script as
parameter rather then harcoded inside it.
This allows to reuse this script for multiple
relocations, and adds possibility to relocate
SDK multiple times
(From OE-Core rev: 6671a4d980c8bef8f402780a308f6c43a25044aa)
Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pseudo won't always be in the native sysroot for a recipe, so we
shouldn't be complaining if it isn't there.
(From OE-Core rev: 11efc94742088ec6fbf2a86000e98286b0b529ef)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you pass quoted arguments to oe-run-native, they need to be passed
as-is to the underlying tool. Putting quotes around $@ ensures each
argument is quoted individually.
(From OE-Core rev: a8758653500a2458cd91bf1aa5eb666ad2b45df4)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently we just divide up the free space by the number of partitions
that need to be re-sized. This leads to problems when a user has
explicitly specified a subset of partitions (but not all) that need
to re-sized along with the sizes. As an example, for an image with 3
partitions, if we use:
wic write image.wic /dev/sdb --expand 1:10G
This would lead to paritions 2 and 3 each being re-sized to one thirds
of the free space instead of half.
Change the behavior to use up all the free space.
(From OE-Core rev: a88f1b5d88dbc5fb28be24b9787d73b9e0cdf183)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The UEFI spec implies that GPT partitions should be assumed to be on a 2048
sector boundary (for a 512 byte sector) and the current logic just
divides the free sectors available by the number of partitions that need
re-sizing, which may or may not align and the final result might
overshoot the limits imposed after alignment.
Since we are expanding already aligned partitions, just divide up the
free space in multiples of 2048. Also use the exec_cmd wrapper instead
of the subprocess call directly.
Fixes [YOCTO #12840]
(From OE-Core rev: 5eef63f5afdfbab8e30748cb1bf42bf2e6524759)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
$ runqemu qemumips64 core-image-minimal nographic qemuparams="-m 512"
...
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffff801268c0>] clear_page+0x0/0x128
[ 0.000000] [<ffffffff80238158>] get_page_from_freelist+0xab8/0xc00
[ 0.000000] [<ffffffff80238964>] __alloc_pages_nodemask+0xdc/0xf68
[ 0.000000] [<ffffffff80239808>] __get_free_pages+0x18/0x70
[ 0.000000] [<ffffffff80122a4c>] setup_zero_pages+0x1c/0xb8
[ 0.000000] [<ffffffff80c7c998>] mem_init+0x54/0xa0
[ 0.000000] [<ffffffff80c74904>] start_kernel+0x204/0x4d8
[ 0.000000] [<ffffffff8091dfb0>] kernel_entry+0x0/0x40
[ 0.000000] Code: 02002025 1000f8d9 8e634d7c <34860f80> cc9e0000
cc9e0020 cc9e0040 cc9e0060 cc9e0080
[ 0.000000]
[ 0.000000] ---[ end trace 0000000000000000 ]---
[ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
[ 0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task!
...
OE uses qemumips to simulate a Malta board by default.
As upstream qemu introduced:
https://git.qemu.org/?p=qemu.git;a=commit;h=94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b
The Malta board can support up to 2GiB of RAM which should
be able to boot a Linux kernel built with CONFIG_HIGHMEM
enabled and passing "-m 2048" to QEMU and appending the
following kernel parameters:
...
mem=256M@0x0 mem=256M@0x90000000 mem=1536M@0x20000000
...
But the following commit in kernel broke above mem=X@Y setting
which added the memory as reserved memory area.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
...
commit 73fbc1eba7ffa3bf0ad12486232a8a1edb4e4411
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date: Wed Nov 23 14:43:49 2016 +0100
MIPS: fix mem=X@Y commandline processing
...
So remove `mem=*' to disable user-defined physical RAM map
which let kernel itself caculates memory ranges.
Author: Hongxu Jia <hongxu.jia@windriver.com>
[ Merge the two fixes for qemumips32 and qemumips64 into one patch,
and make it support all mips cases ]
(From OE-Core rev: 0220cb34a91658ecc3782ec1a4700dcb5ece37d8)
Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A name > 50 chars causes a 500 internal server error and should be warned
to the user but the code to do so currently doesn't work. Fix the logic.
(From OE-Core rev: 844f8d46f522a994dbff00245c4ffb07452577a8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently this code prints things like:
ERROR: OK
which is unhelpful at best. After this change it would print:
ERROR: HTTP Error 500
which at least gives us something to work on.
(From OE-Core rev: 06079240e4eb0a3e1f528f6c8d6f3ea20754afee)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This edits the recipe and any bbappends for the specified target.
(From OE-Core rev: 7aece42c6b4744c54a8eb05ff90bd3bf4fbb14a3)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's no reason to have that rootfs.img filesystem in the image:
it's not used for anything because both the EFI and legacy boot paths
use the /initrd which contains the same contents as the rootfs.img,
only compressed. It was probably forgotten in there :)
My iso went down from 224 to 94 mb.
Tested using UEFI/legacy boots on CD-roms, usb dongle and qemu VM's.
(From OE-Core rev: 4c784379524cb12807ef87a02ef1514ed45c1cc3)
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It's really good that OE supports multiple EFI_PROVIDERs and that
commit 9a1709278de87 ("wic: isoimage-isohybrid: use grub-efi from
deploy dir") makes re-use of the grub-efi built image, but we should
still respect the standard otherwise the ISO will not boot, so install
grub images as boot[x64|ia32].efi not ${PN}-boot[x64|ia32].efi.
(From OE-Core rev: 1608129692d92c239b5fb9244b649a32b9009254)
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than trying to construct a string by quoting the files in an
error-prone way, parse $EDITOR to pass a list to subprocess rather than
a string.
(From OE-Core rev: c9fdf3d046606a0becb2e6b566a481c483b9021a)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In runqemu-ifup, ip command is used to add TAP; in runqemu-ifdown,
we should do the reversed logic, using ip command to delete TAP, to
make sure TAP is cleaned up by ourselves.
I can see that in runqemu-ifdown script, 'tunctl -d' and 'iptables'
commands are used to deal with TAP, but these two commands cannot
make sure that the TAP is cleaned up.
runqemu-ifup uses 'ip' to set up TAP, we really need to do the opposite
in runqemu-ifdown.
(From OE-Core rev: 322e41de7f4fb21315bf75f1038314c31ac4754b)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add SIGTERM handler so that runqemu could clean things up correctly
when receving such signal.
This problem was originally observed when running testimage. On
some hosts, after running testimage task, the user has to manually
operate on the tap interface (e.g. `sudo ip link del tap0') in order
for the next runqemu command to launch successfully.
The problem is about runqemu, SIGTERM and network manager on the host.
In testimage task, the runqemu process will receive SIGTERM. In such
situation, its cleanup() function is not run, resulting in tap interface
not cleaned up. On some hosts, the network manager will bring down the
tap interface automatically, thus this problem. I saw this problem on
Fedora21.
I think we'd better just clean up the tap interface ourselves.
So this patch adds to runqemu a SIGTERM handler, in which the actual
qemu process is terminated and other things cleaned up.
(From OE-Core rev: 02709d4709c56f9b9095e3555da35b659b03a8a3)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously only one global variant of the script was created,
which caused numerous issues:
1) multilib was not properly supported due to multilib variants each
needing their own version of the qemu binary and library paths to be set
2) nativesdk was not properly supported for the same reason
This patch also moves setting LD_LIBRARY_PATH directly into the
recipe, as passing it down from other recipes did not work when
said recipes were allarch, and adjusts calls to qemuwrapper from
postinst-intercepts, so that its correct variant is selected.
Also, the various qemu fallbacks in qemuwrapper script are all removed,
as they are no longer necessary.
(From OE-Core rev: d10fd6ae3fe46290c6e3a5250878966d9f12ca3f)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This has the following benefits:
- consistent with how the other caches are created into target rootfs
- only runs once per package manager transaction, instead of once per every immodule package
- correctly postpones to first boot if qemu is not working; from postinst itself
this would've required special arrangements to avoid what is now a do_rootfs failure.
(From OE-Core rev: cca3c084b6c9bf600d7306e3fe12c4f236b78656)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Indentation using a mix of whitespaces and tabs has been unified in
favor of tabs.
(From OE-Core rev: 3827f1aa4a2bb433e445802c48e32f72932950e6)
Signed-off-by: Dennis Menschel <menschel-d@posteo.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As the format "tar.xz" is included in the IMAGE_TYPES bitbake variable
as defined in meta/classes/image_types.bbclass, it should also be
possible to extract a rootfs that has been built using that format.
(From OE-Core rev: f813ca7b085c7ddf76a34932e2b3f5bc3372b239)
Signed-off-by: Dennis Menschel <menschel-d@posteo.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
b'Your entry can be found here: http://<snip>'
Now looks like:
Your entry can be found here: http://<snip>
(From OE-Core rev: 4510973fe12a61c21e12b46b8315c56f91eff5b7)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Support for variables suffixed with package names, e.g., PKGV_foo, was
removed in commit 3d2c87c4, which broke support for recipes that set
other versions on their packages than what is in ${PV}.
(From OE-Core rev: 38f8284212370999e1e7b0f6559f7cd786e80d1a)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make sure that we're able to use the initrd value specified in the wks
file when using grub-efi bootloader with bootimg-efi wic plugin.
Fixes [YOCTO #12689]
(From OE-Core rev: f1d5bb1f21e11714357aff4ae7e52421e3756c5a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of showing that command 'None' was found, show the name of
actual command that wasn't found on the host machine or at the native
sysroot path provided by user.
(From OE-Core rev: 3157ebb131e01e74689b1f87a35278350f315e7d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Let this be dictated by the module parameter value being set by qemu
machine configuration.
(From OE-Core rev: c40b241e8d40c8bc1c9e6065b12e260662f5bba4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Usually, the debugfs' (-dbg.tar.*) work follow is:
1) Install regular rootfs to dir_foo
2) Install debugfs (-dbg.tar.*) to the same dir_foo
So we need to allow installing the debugfs on top of the rootfs.
(From OE-Core rev: c54147b286d72d7c4f8ca55a5a62f5d27bd5364a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a package name exists in runtime-rprovides, lookup-recipe and
package-info would finish after printing information about that
package even if more packages were specified.
(From OE-Core rev: 32c2a2ddb1614f978f511dfccb6cc3e9398df841)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We cleaned up the metadata so this can be enabled again.
(From OE-Core rev: 9611485bba03ef77ff31121e3b1da7cd57990c3e)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It's possible that downloading file from updateserver fails. In
this case, we should error out instead of continue.
We have users reporting unexpected behavior of 'devtool sdk-update'.
When an invalid url is supplied, e.g., `devtool sdk-update http://invalid',
the program reports 'Note: Already up-to-date'.
This is obviously not expected. We should error out in such case.
(From OE-Core rev: 449564783dfb162536a2f772b3a8704973221e0f)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the relative difference is greater than 2%, make the text bold to highlight
it.
(From OE-Core rev: 500e28311248713d4772480b81b10777390da909)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When packaging a node application, a `NameError` can be thrown in create_npm.py if an optional npm dependency does not
support Linux.
(From OE-Core rev: 8293201d98d368d6322eaa960fb3e7cee2ba9368)
Signed-off-by: Sarah Marsh <sarah.marsh@arm.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This changes the output of "wic create mkefidisk -e core-image-sato" from:
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /media/build1/poky/build/tmp.wic.ybraavmb/rootfs_copy
to:
The following build artifacts were used to create the image(s):
ROOTFS_DIR: /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs
which s much less confusing for the user.
[YOCTO #12564]
(From OE-Core rev: a4941af2d3624aecc5dcd7ff54b7ea8c9e9dee8b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* with RSS used in pyro this script isn't very useful anymore
* RSS makes sure that the dependencies are almost always deterministic
the only case known to me where dependencies are different based on
what was already built in TMPDIR are runtime dependencies resolved
by shlibs code in package.bbclass (which is using global pkgdata, not
specific to given recipe and its RSS) as described here:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=9217#c4
but for this case it's not worth running complete test-dependencies.sh
runs
(From OE-Core rev: ac582a8f856de8dde6a04d9c1da58618b80559b6)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that we see warnings if LAYERSERIES_COMPAT is unset, the auto generated
code from devtool/oeqa needs to set this to avoid warnings which break
various tests.
(From OE-Core rev: 27568410ebb0d40db3428550704f35199df0e034)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
New crosstap python implementation is total replacement for
crosstap shell script, that has superseding capabilities.
New script support cross compiling of SystemTap scripts
for user-land, by using supplied image rootfs. Whereas old
script could only deal with scripts against kernel. New script
has more complex logic and additional capabilities.
As invocation interface new script support old "legacy"
mode and provides alternative new regular options interface
to access additional functionality.
(From OE-Core rev: 1cbbcf26e0a9ca6e0b34a89512bf75dbae8bfaf0)
Signed-off-by: Victor Kamensky <kamensky@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A flaw was found when I run:
$ recipetool create "ssh://git@xxx.xxx:7999/xxx.git"
the url turned out to be: "git://git@xxx.xxx/7999/xxx.git;protocol=ssh"
after parsing, the port number was parsed as part of the path, this is
definitely wrong and lead to fetching failures.
This issue could be fixed in reformat_git_uri, by filtering out port
numbers when formatting ":".
(From OE-Core rev: 4290e04b69360b5e1da9f37166015e30f66cb335)
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After we switched to RSS, this script was not working for a long time.
'bitbake package-index' can do the same thing and works well. So remove
this script.
(From OE-Core rev: 94fea92f5e7f7c0765e89743a1586b22186a16cd)
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LayerError doesn't exist and will lead to an error when this failure
code path is hit.
(From OE-Core rev: 7780482772d005c77825dc3e99e63f00911156bf)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix a crash when generating a txt report and the two commits to be
compared were not consecutive (but there were some tested commits
between them).
(From OE-Core rev: f3afd2c47f4c740df52dfd80e208ce721d5ebf6e)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Building world means recipes that are excluded from world build for whatever
reason get skipped from the manifests, which isn't useful. Instead building
universe and pass -k so that the expected dependency failures are not fatal.
(From OE-Core rev: 2d798f9f56fbd7cd20de4b797a476ad24c214ff3)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is very useful for updating patch context so that any fuzz is eliminated.
Simply issue:
devtool modify <recipe>
devtool finish --force-patch-refresh <recipe> <layer_path>
Without this flag, devtool will not deem the commits in the workspace
different to patches in the layer, even if the commits have different,
up-to-date context line in them.
(From OE-Core rev: 7e1d1887be8faaaab9996fca9a3fd750aeb7b62f)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using --exclude-path and a wks.in file we can create an image that takes
the /boot/ directory for the boot partition, has an empty /boot/
directory in the rootfs partition. The boot partition gets mounted to
/boot/ after startup.
(From OE-Core rev: db904053e8ee80fb6930c5e7e22287927e0f25e2)
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Set a miniumum FAT16 volume size because images are
not valid to parted if this minimum value is not respected.
The value set is determined experimentally forr a logical
sector size of 512. This fixed my local problem but, there
may be better solutions.
(From OE-Core rev: f7dfb4d43247d3c13a4e0a3853007d63b9512b83)
Signed-off-by: Paulo Neves <ptsneves@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The partition plugin is used as the base for other plugins.
One of the methods the plugins use, is the prepare_rootfs
method.
The prepare_rootfs method wrongly assumes that the value
ROOTFS_SIZE from bitbake datastore is relevant to every
invocation of prepare_rootfs, which it clearly is not, for
example in the bootimg-partition case.
This commit adds an optional argument to prepare_rootfs
where a caller can tell prepare_rootfs if it is an actual
rootfs and whether related rootfs information retrieved from
bitbake is valid. The default behavior of this optional
argument is to assume that the invocation is an actual
rootfs, to maintain compatibility with previous
implementations.
(From OE-Core rev: 654d72d55194ec41bc1aacfcc6b2c8c9a305b042)
Signed-off-by: Paulo Neves <ptsneves@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do_post_partition hook is needed if some operations like security signing
the parition needs to be done. source plugins can make use of this to implement
post operatiosn in do_post_partition. do_post_partition is called after
do_prepare_partition if present.
(From OE-Core rev: 5055489b9ab3fda32a285d0d165d080d11a4d432)
Signed-off-by: Parthiban Nallathambi <pn@denx.de>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* We now match on more than just target recipes, so don't specify that
only target recipes are searched.
* We're printing the SUMMARY value in addition to the name, so mention
that so it's clear where that text is coming from.
* Remind users that they should use quotes around the keyword to avoid
shell expansion when using regular expressions.
(From OE-Core rev: cc68971557fe065e59ff47657f650051eb85db3c)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If pkgdata isn't present or is incomplete, then you get either a
traceback or you don't see the results you were hoping for. The recipe
cache that bitbake collects during startup contains some useful
information for each recipe that we could search through as well, and
we can access it easily using tinfoil's all_recipes() API function,
so add some code that does that. (We still show a warning if pkgdata
isn't present, as there are certain dynamic packages that are generated
at packaging time that won't show up in the cache).
One side-effect of this is that we will start showing non-target
recipes - that's actually a good thing, since seeing those is useful,
however we exclude nativesdk recipes when in the eSDK to avoid confusion
since nativesdk isn't directly applicable there.
Fixes [YOCTO #12356].
(From OE-Core rev: b8406383886d09a80a9a002150dcf364fa9902d7)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the user doesn't specify a port then we should avoid specifying one
on the ssh/scp command line in case the user has configured one for the
host they are connecting to, which was being overridden unnecessarily.
Fixes [YOCTO #12381].
(From OE-Core rev: f1020eef09fada7ef2231d5528576553f3f6bfe1)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After OE-Core rev 5e3fe00a0233d563781849a44f53885b4e924a9c we call
os.path.abspath() on the original layer path, but we later compare that
to the destination layer path. If that layer path isn't absolute but is
effectively the same path, it should be writing to the original recipe
but because we weren't making it absolute we were writing a bbappend
instead. Call os.path.abspath() on the destination path as well to avoid
that.
(From OE-Core rev: a85a78dcf226d160e9b504bfa67b306a9175ac29)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the .devtool_md5 file doesn't contain a reference to the bbappend
file (e.g. because devtool was interrupted before it could write that
out) then _check_preserve() won't delete it, so we need to delete it
separately because otherwise the recipe won't actually be reset.
(From OE-Core rev: 751d27600a3df18d96baaa48696acf33ee964bec)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix two aspects of handling BBCLASSEXTENDed targets (e.g.
openssl-native) that have been run through "devtool upgrade":
* Fix recipe name not showing up in "devtool status"
* Fix "devtool reset" not deleting empty directories under the recipe
directory within the workspace, which may lead to problems if you
subsequently run "devtool upgrade" on the same target again
(From OE-Core rev: 56e04260d64de9c5b83893d97cf41b7ea9a45878)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
atm, 'oe-init-build-env' expects 'bitbake' to be within the OE core git
repository. This complicates the project setup because you have to
manage the 'bitbake' directory or symlink manually (or specify the
bitbake location explicitly).
Looking for 'bitbake' outside the main git repository will ease project
management significantly. Now, you can put everything into git submodules,
clone the project with
| git clone --recursive ...
and continue immediately with
| ..../oe-init-build-env
E.g. when you had previously
| .
| |-- build/
| `-- sources/
| `-- org.openembedded.core/
| `-- bitbake -> ../bitbake
(where 'bitbake' must be created manually after cloning the project),
you can have now
| .
| |-- build/
| `-- sources/
| |-- bitbake/
| `-- org.openembedded.core/
which is completely managed by 'git'.
Patch adds $OEROOT/.. to the search path for 'bitbake'
(From OE-Core rev: 5b3afc9cfe38a9fb435fbe5fcabc59b9a60f4657)
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make sure that we're passing a bool value. Without this, buildhistory
shows all the output for all the keys/fields when it shouldn't be by
default.
(From OE-Core rev: b30153a15715a83c0f9a7d7d1883a15404992a19)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
singletask.lock is written out while certain tasks execute for recipes
that have externalsrc.bbclass enabled - this includes recipes in
devtool's workspace. It appears that there's a race where
singletask.lock will be there one minute and then when we try to get the
file checksum of it (since we want to know if anything in the source
tree has changed) it will be gone, and git chokes. To fix that, add
singletask.lock to .git/info/exclude in the repository, regardless of
whether we created the repository or not. In any case singletask.lock
should never be tracked by git, so this is a good thing to be doing for
that reason as well.
This fixes oe-selftest failures in test_devtool_modify that we've seen
on the Yocto Project autobuilder:
bb.data_smart.ExpansionError: Failure expanding variable
do_compile[file-checksums], expression was ${@srctree_hash_files(d)}
which triggered exception CalledProcessError: Command
'['git', 'add', '-A', '.']' returned non-zero exit status 128.
Note that this only fixes this issue for devtool; if you are using
externalsrc independently of devtool there's a chance this will still
be an issue unless you add singletask.lock to your .gitignore.
(From OE-Core rev: 334ba846c795fc0d8c73ce05a1b0882739c86650)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows postinsts scripts to explicitly request a deferral to first boot
(by calling 'postinst_intercept delay_to_first_boot') instead of 'exit 1' which
should be used only to indicate actual script failures.
(From OE-Core rev: 853ac4a061e47c70b61e255c3cf6109d2058d2cc)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
distrocompare.sh is added to compare the added list of recipes
between two releases. The output of the script will share the
information of the licenses required and other distributions
that are using the package.
If a single input is provided, it will compare the current
branch with the provided branch/commit-ish package list.
To run : distrocompare.sh <older hash> <newer hash>
E.g. distrocompare.sh morty 92aa0e7
E.g. distrocompare.sh morty pyro
E.g. distrocompare.sh morty
output : The script will produce a file ending with
new_recipe_list.txt preceeded by the branch name from input
(From OE-Core rev: 32b363c2ba91fde4f10e5fe2c898b2fc2702aa85)
Signed-off-by: Tan Shen Joon <shen.joon.tan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When searching for variables, include colon to ensure the script doesn't
find a variable that starts with the same name.
(From OE-Core rev: 3d2c87c4f4115b01534ab198c27682c7e4c5f31f)
Signed-off-by: Amanda Brindle <amanda.r.brindle@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In lookup_recipe, package_info, and list_pkg_files, check if the package
name exists in runtime-rprovides. If so, and the provider package has a
different name than the inputted package, print a note that says the
specified package is in another package's RPROVIDES. If the provider
package has the same name as the inputted package, continue as before.
Fixes [YOCTO 11943]
(From OE-Core rev: f78478f0d0379ea02727c81ad2455207c70d140b)
Signed-off-by: Amanda Brindle <amanda.r.brindle@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Refactor functions lookup_recipe and package_info to be consistent with
list_pkg_files. Print the appropriate information as soon as it's found,
rather than storing it in a mappings variable and wait to print after
searching all packages.
(From OE-Core rev: 64d3ce83d5c48d479709b4c1355e23b3768493fb)
Signed-off-by: Amanda Brindle <amanda.r.brindle@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
See previous commit (python2 version) for more info, since mostly
everything applies here as well.
Old manifest file had several issues:
- Its unorganized and hard to read and understand it for an average
human being.
- When a new package needs to be added, the user actually has to modify
the script that creates the manifest, then call the script to create
a new manifest, and then submit a patch for both the script and the
manifest, so its a little convoluted.
- Git complains every single time a patch is submitted to the manifest,
since it violates some of its guidelines.
- It changes or may change with every release of python, its impossible
to know if the required files for a certain package have changed
(it could have more or less dependencies), the only way of doing so
would be to install and test them all one by one on separate individual
images, and even then we wouldnt know if they require less dependencies,
we would just know if an extra dependency is required since it would
complain, lets face it, this isnt feasible.
- The same thing happens for new packages, if someone wants to add a new
package, its dependencies need to be checked manually one by one.
Features/Fixes:
- A new manifest format is used (JSON), easy to read and understand.
This file is parsed by the python recipe and python packages
read from here are passed directly to bitbake during parsing time.
- It provides an automatic manifest creation task (explained on previous
commit), which automagically checks for every package dependencies and
adds them to the new manifest, hence we will have on each package
exactly what that package needs to be run, providing finer granularity.
- Dependencies are also checked automagically for new packages
(explained on previous commit).
This patch has the same features as the python2 version but it differs
in the following ways:
- Python3 handles precompiled bytecode files (*.pyc) differently.
for this reason and since we are cross compiling, wildcards couldnt be
avoided on python3 (See PEP #3147 [1]).
Both the manifest and the manifest creation script handle this
differently, the manifest for python3 has an extra field for cached
files, which is how it lets the user install the cached files or not
via : INCLUDE_PYCS = "1" on their local.conf.
- Shared libraries nomenclature also changed on python3, so again, we
use wildcards to deal with this issue ( See PEP #3149 [2]):
- Fixes python3 manifest, python3-core should be base and everything
should depend on it, hence several packages were deleted:
python3-enum, re, gdbm, subprocess, signal, readline.
- When building python3-native it adds as symlink to it called
nativepython3, which is then isued by the create_manifest task.
- Fixes [YOCTO #11513] while were at it.
References:
[1] https://www.python.org/dev/peps/pep-3147/
[2] https://www.python.org/dev/peps/pep-3149/
(From OE-Core rev: 54ac820b8a639950ccb534dcd9d6eaf8b2b736e0)
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The reason we have a manifest file for python is that our goal is to
keep python-core as small as posible and add other python packages only
when the user needs them, hence why we split upstream python into several
packages.
Although our manifest file has several issues:
- Its unorganized and hard to read and understand it for an average
human being.
- When a new package needs to be added, the user actually has to modify
the script that creates the manifest, then call the script to create
a new manifest, and then submit a patch for both the script and the
manifest, so its a little convoluted.
- Git complains every single time a patch is submitted to the manifest,
since it violates some of its guidelines.
- It changes or may change with every release of python, its impossible
to know if the required files for a certain package have changed
(it could have more or less dependencies), the only way of doing so
would be to install and test them all one by one on separate individual
images, and even then we wouldnt know if they require less dependencies,
we would just know if an extra dependency is required since it would
complain, lets face it, this isnt feasible.
- The same thing happens for new packages, if someone wants to add a
new package, its dependencies need to be checked manually one by one.
This patch fixes those issues, while adding some additional features.
Features/Fixes:
- A new manifest format is used (JSON), easy to read and understand.
This file is parsed by the python recipe and python packages read
from here are passed directly to bitbake during parsing time.
- It provides an automatic manifest creation task (explained below),
which automagically checks for every package dependencies and adds
them to the new manifest, hence we will have on each package exactly
what that package needs to be run, providing finer granularity.
- Dependencies are also checked automagically for new packages (explained below).
- Fixes the manifest in the following ways:
* python-core should be base and all packages should depend on it,
fixes lang, string, codecs, etc.
* Fixes packages with repeated files (e.g. bssdb and db, or
netclient and mime, and many others).
- Sitecustomize was fixed since encoding was deprecated.
- The JSON manifest file invalidates bitbake's cache, so if it changes
the python package will be rebuilt.
- It creates a solution for users that want precompiled bytecode files
(*.pyc) INCLUDE_PYCS = "1" can be set by the user on their local.conf to
include such files, some argument they get faster boot time, even when the
files would be created on their first run?, but they also sometimes give a
magic number error and take up space, so we leave it to the user to
decide if they want them or not.
- Fixes python-core dependencies, e.g.
When python is run on an image, it TRIES to import everything it needs,
but it doesnt necessarily fails when it doesnt find something, so even if
we didnt know, we had errors like (trimmed on purpose):
# trying /usr/lib/python2.7/_locale.so
# trying /usr/lib/python2.7/lib-dynload/_locale.so
# trying /usr/lib/python2.7/_sysconfigdata.so
while it didnt complain about _locale it should have imported it,
after creating a new manifest with the automated script we get:
# trying /usr/lib/python2.7/lib-dynload/_locale.so
dlopen("/usr/lib/python2.7/lib-dynload/_locale.so", 2);
import _locale # dynamically loaded from /usr/lib/python2.7/lib-dynload/_locale.so
How to use (after a new release of python, or maybe before every OE
release):
- A new task called create_manifest was added to the python package,
which may be invoked via:
$ bitbake python -c create_manifest
This task runs a script on native python on our HOST system, and since
the python and python-native packages come from the same source, we can
use it to know the dependencies of each module as if we were doing it
on an image, this script is called create_manifest.py and in a very
simplistic way it does the following:
1. Reads the JSON manifest file and creates a dictionary data structure
with all of our python packages, their FILES, RDEPENDS and SUMMARY.
2. Loops through all of them and runs every module listed on them
asynchronously, determining every dependency that they have.
3. These module dependencies are then handled, to be able to know which
packages contain those files and which should RDEPEND on one another.
4. The data structure that comes out of this, is then used to create a
new manifest file which is automatically copied onto the user's python
directory replacing the old one.
Create_manifest script features:
- Handles modules which dont exist anymore (new release for example).
- Handles modules that are builtin.
- Deals with modules which were not compiled (e.g. bsddb or ossaudiodev)
- Deals with packages which include folders.
- Deals with packages which include FILES with a wildcard.
- The manifest can be constructed on a multilib environment as well.
- This method works for both python modules and shared libraries used
by python.
How to add a new package:
- If a user wants to add a new package all that has to be done is
modify the python2-manifest.json file, and add the required file(s)
to the FILES list, the script should handle all the rest.
Real example:
We want to add a web browser package, including the file webbrowser.py
which at the moment is on python-misc.
"webbrowser": {
"files": ["${libdir}/python2.7/lib-dynload/webbrowser.py"],
"rdepends": [],
"summary": "Python Web Browser support"}
Run bitbake python -c create_manifest and the resulting manifest
should be completed after a few seconds, showing something like:
"webbrowser": {
"files": ["${libdir}/python2.7/webbrowser.py"],
"rdepends": ["core","fcntl","io","pickle","shell","subprocess"],
"summary": "Python Web Browser support"}
Known errors/issues:
- Some special packages are handled differently: core, misc,
modules,dev, staticdev.
All these should be handled manually, because they either include
binaries, static libraries, include files, etc. (something that we
cant import).
Specifically static libraries are not not supported by this method
and have to be handled by the user.
- The change should be transparent to the user, other than the fact
that now we CANT build python-foo (it was pretty dumb anyway, since
what building python-foo actually did was building the whole python
package anyway), but doing IMAGE_INSTALL_append = " python-foo"
would create an image with the requested package with no issues.
[YOCTO #11510] [YOCTO #11694] [YOCTO #11695]
(From OE-Core rev: 6959e2e4dba5bbfa6ffd49c44e738cc1c38bc280)
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add it to handle recipe-depends.dot and task-depends.dot. E.g.:
* Print why rpm is built
$ oe-depends-dot -k rpm --why/-w recipe-depends.dot
Because: core-image-sato libdnf libsolv dnf
* Print bzip2-native's depends
$ oe-depends-dot -k bzip2-native --depends/-d recipe-depends.dot
Depends: automake-native gnu-config-native libtool-native quilt-native autoconf-native
* Remove duplicated dependencies to reduce the size of the dot files.
For example, A->B, B->C, A->C, then A->C can be removed. The dot files are too
big, we nearly couldn't use 'dot -T' to generate pictcures for target recipes,
remove the duplicated dependencies makes is it possible.
$ bitbake core-image-sato -g
$ oe-depends-dot -r recipe-depends.dot
Saving reduced dot file to recipe-depends-reduced.dot
$ du -sh recipe-depends*.dot
608K recipe-depends.dot
32K recipe-depends-reduced.dot
It has been recuded from 608K to 32K, now we can generate a picture,
otherwise, it is too big:
$ dot -Tpng recipe-depends-reduced.dot -O
It also can handle task-depends.dot.
(From OE-Core rev: 7dc7860691304d63e7ad728d2180474906fe0a5c)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This script was unused since yocto-bsp tool had been removed.
(From meta-yocto rev: 594ced59dc80c11d573ae4a16e1aff910a8d9300)
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Colour value removes in red and additions in green, making it easier to scan the
output for relevant changes.
This adds a --colour option to specify whether colouring should be on, off, or
detected. The default is detected, and depends on whether stdout is a TTY (same
behaviour as git).
(From OE-Core rev: 4208f1546c92f069e432d1865269ce539db8cea7)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Under some conditions, ioctl FIGETBSZ can't return real value.
We can try to use fallback via os.stat() to get block size.
Source of patch:
17365f4fe9
(From OE-Core rev: d8f7cf2d38934c248be91101236f7537d0d31ea7)
Signed-off-by: Dogukan Ergun <dogukan.ergun@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When we run wic within eSDK:
$ wic create mkefidisk -e core-image-minimal
ERROR: BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)
In order to figure out variable values, one must have sourced
the OE build environment setup script. However, when we are in
within the eSDK environment which isn't initialised like the
normal OE build environment, we can't use wic utility with eSDK.
Reference:
https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#wic-requirements
While wic ought to be fixed to be able to run without bitbake
& native tools [YOCTO #11281], but this is a workaround to set
BUILDDIR in the environment so that bitbake environment is setup
for wic to build its required native tools.
(From OE-Core rev: 03fa13a269d2887cc5d13fd474fb39a2be037f2c)
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic modules in scripts/lib/ are needed for wic to work, but path to
the python module is not exported in eSDK environment and we were
using an absolutized path of wic script within the sysroots.
We now changed to use real script path instead, where the wic modules
are located. This will also resolved the tracebacks found when running
wic from within the eSDK environment.
Traceback (most recent call last):
File "/tmp/deploy/sdk/poky_sdk/sysroots/x86_64-pokysdk-linux/usr/bin/wic", line 58, in <module>
from wic import WicError
ImportError: No module named 'wic'
(From OE-Core rev: dcea30b885797ece3439cf1201795a975628d664)
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic needs a set of tools to be available from sysroots.
wic will find bitbake executable within the environment,
and wic was unable to locate bitbake executable within eSDK
because it wasn't setup with the OE build environment script.
Hence, we need to add bitbake file path into the environment
PATH for wic to be able to discover it and import bb modules.
(From OE-Core rev: 89df0d31c9dd22ceba4c95a2a56ca78e58d871a8)
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use the scriptpath module in order to standardize the adding of
bitbake and meta/lib path to sys.path.
(From OE-Core rev: 8aba1fd023ce3c6767bf42b9faf9ec14fd7c4d02)
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On pre 4.15 host kernels, an APIC window emulation bug can cause qemu
to hang. On 64 bit we can use the x2apic, for 32 bit, we just have to
disable the other timer sources and rely on kvm-clock.
[YOCTO #12301]
(From OE-Core rev: 82e67b82ea8e12aa0b7b9db1d84fec0436dec71b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In case of 'new_rootfs' the psuedo directory is not copied. Thus
PSEUDO_LOCALSTATEDIR should still point to the dsa
'native_sysroot'/../pseudo. Otherwise PSEUDO_LOCALSTATEDIR points to a not
existing director ('new_rootfs'/../pseudo) and UID and GUID attributes are not
applied to files of the image.
(From OE-Core rev: 19642e2d6e015072e4a413f4f57aee65df757cb9)
Signed-off-by: Adrian Fiergolski <adrian.fiergolski@cern.ch>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
First, allow for wic to be given a filesystem UUID to be used when
creating a filesystem. When not provided, wic will generate the UUID to
be used. Next, when --use-uuid is passed, we update the fstab to mount
things via UUID (and if not found, then use PARTUUID) as UUID is more
portable.
(From OE-Core rev: 9256b8799495634ee8aee5d16ff71bd6e6e25ed4)
Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
First, we support squashfs as root, so mention that. Second, the btrfs
rootfs creation function had a copy/paste of the previous function
comment, remove the irrelevant line.
(From OE-Core rev: 7cdd4034b3e6ff4e13d491dfba24906afe495e2d)
Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SquashFS filesystem does not support UUIDs so make this combination
be an error.
(From OE-Core rev: 2fbdcf4e59c835af0f4041bc34243decb42321ef)
Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Specifically, 'devtool upgrade' will now do these things:
1) determine if any of the license checksums need updating; if so,
write the new checksums into the LIC_FILES_CHKSUM value in the recipe
that is written to the workspace;
2) print a notice to the standard output:
NOTE: New recipe is /home/ak/development/poky/build/workspace/recipes/puzzles/puzzles_git.bb
NOTE: License checksums have been updated in the new recipe; please refer to it for the difference between the old and the new license texts.
3) and the cool part: devtool will create a diff of the old and new licenses,
and write the diff into the workspace recipe as a comment, like this:
======
FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'.
The following is the difference between the old and the new license text.
Please update the LICENSE value if needed, and summarize the changes in
the commit message via 'License-checksum-change:' tag.
(example: 'License-checksum-change: copyright years updated.')
The changes:
--- LICENCE
+++ LICENCE
@@ -1,8 +1,9 @@
This software is copyright (c) 2004-2014 Simon Tatham.
Portions copyright Richard Boulton, James Harvey, Mike Pinna, Jonas
-Klker, Dariusz Olszewski, Michael Schierl, Lambros Lambrou, Bernd
-Schmidt, Steffen Bauer, Lennard Sprong and Rogier Goossens.
+Kölker, Dariusz Olszewski, Michael Schierl, Lambros Lambrou, Bernd
+Schmidt, Steffen Bauer, Lennard Sprong, Rogier Goossens and Michael
+Quevillon.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
======
(From OE-Core rev: ccb37f9e81eb78ed0eb2a238d7c3e196db9b2f72)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Specifically, 'devtool upgrade' will use the latest upstream release if available
or latest commit if upstream never makes releases.
(From OE-Core rev: 45b4242b105ad36e94ae15a96d588a58b917b8e8)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This command queries the upstream server for what the latest release is and prints
the output; it is a much neater way to find out these things than fumbling with distrodata,
'bitbake -c checkpkg' and awkward to read csv output in a file.
Examples:
python3 (tarballs):
NOTE: Current version: 3.5.3
NOTE: Latest version: 3.6.3
rpm (git):
NOTE: Current version: 4.13.90
NOTE: Latest version: 4.14.0
NOTE: Latest version's commit: da3720f62e57648fb1dc2a632744d38866139971
puzzles (git without version tags):
NOTE: Latest commit: ee8ea9b9785964694cb2b3ad77c3fb2460f49510
(From OE-Core rev: e8f5b5cc25ce7a9882f21473cefc47edcebf77d4)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you specify 'tag=' for a git URL and passed to recipetool create, you
will get into Bitbake expansion error shown below:
----- snip -----
$ devtool add --version 2.4.2 mbedtls "git://github.com/ARMmbed/mbedtls;tag=mbedtls-2.4.2"
...
bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Conflicting revisions (abeccb9dbd7e19ae91ac50e1edd3803111c5f9b6 from SRCREV and mbedtls-2.4.2 from the url) found, please specify one valid value
----- snip -----
Assuming the tag is valid, we should get the tag commit hash and
drop the usage of 'tag=' from SRC_URI. By using a commit hash
corresponding to the tag will prevent bitbake from accessing
remote repository in order to expand SRCPV.
(From OE-Core rev: 53f8effa3eb07dc7035ff9933e7918318f242579)
Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The generators create python-*-manifest.inc files with
lines over 2500 characters long which breaks sending
patches via git send-email (because of smtp limitation).
This patchset formats all the long lines into multiple lines.
(From OE-Core rev: 3a1900a5691466a04b24907067f43117b318ca7e)
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>