Yi Zhao [Fri, 17 Apr 2020 10:15:27 +0000 (18:15 +0800)]
alsa-state: ignore 'No soundcards found' error in pkg_postinst
If there is no soundcards on the target (e.g. qemu), the pkp_postinst
function will report an error:
alsactl: load_state:1735: No soundcards found...
pkg_run_script: package "alsa-state" postinst script returned status 19.
opkg_configure: alsa-state.postinst returned 19.
Pass '-g' option to alsactl to ignore this error.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Tim Orling [Sat, 11 Apr 2020 01:27:02 +0000 (18:27 -0700)]
python3-manifest.json: add pathlib to core
The pathlib module is for Object-oriented filesystem paths
It also provides a lot of handy utilities for checking on
paths. This seems to justify adding it to the core package
along side os, sys, and the other *path libraries.
[YOCTO #13670]
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Wang Mingyu [Wed, 8 Apr 2020 09:00:14 +0000 (02:00 -0700)]
gnutls: upgrade 3.6.12 -> 3.6.13
Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Documentation says that if you exit 0 in a pkg_postinst it will marked as
installed.
If you exit 0, before running postinst-intercepts defer_to_first_boot, the
pkg_postinst_ontarget script will not be present on target.
The "exit 0" in tzdata makes it difficult to have a bbappend with a
pkg_postinst_target step when you have `INSTALL_TIMEZONE_FILE = 0`
Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Jeremy Puhlman [Wed, 15 Apr 2020 02:32:05 +0000 (19:32 -0700)]
buildtools-extended-tarball: Add libstc++.a
Builds like native-openjdk, really wants a to link
some tools against the static version. Since when
using the extended tarball, its the only place to
get it, add the library.
Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Jeremy Puhlman [Wed, 15 Apr 2020 02:32:04 +0000 (19:32 -0700)]
nativesdk-gcc-runtime: enable building libstdc++.a
Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Jeremy Puhlman [Wed, 8 Apr 2020 04:40:56 +0000 (21:40 -0700)]
qemu-system-native: Fix commented out PACKAGECONFIG
Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Paul Barker [Wed, 8 Apr 2020 15:14:55 +0000 (16:14 +0100)]
kernel-yocto.bbclass: Fix deps when externalsrc is used
do_kernel_configme was recently removed from SRCTREECOVEREDTASKS so this
task still runs when externalsrc is used. This task normally runs after
do_patch but when externalsrc is used, do_patch is removed and this ordering
restriction does nothing. This allows bitbake to execute do_kernel_configme
too early, causing races with do_unpack.
This is fixed by adding in a dependency on do_unpack when externalsrc is
used.
Signed-off-by: Paul Barker <pbarker@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
u-boot.inc: install u-boot-initial-env as ${PN}-initial-env in $D and $DEPLOYDIR
The common u-boot.inc can be used by multiple recipes in the same build for
different cores and/or multiple stages of the bootloader. Naming initial-env
with ${PN} prefix avoids clashes in deploy and rootfs between those recipes.
This adds the missing feature 'negative offsets' which was present
in the orginal U-Boot based tools.
git change log:
* f4b9cde Allow negative offsets
* 45bf92a Detect sector size if not found in config
* 9f59db6 uboot_env: remove unused variables
* 65d243e README: libubootenv is now in oe-core
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Revert "dhclient: not always skip the nfsroot interface"
This reverts commit[27aec88 dhclient: not always skip
the nfsroot interface] which used to address the IP
address renew issue when boot a system in a nfsroot fs
and altogether boot with ip=dhcp.
But reported by some tester, the above commit introduces
below issue when run ltp test on a nfsroot system which
boot with ip=dhcp:
nfs: server 192.168.100.1 not responding, still trying
nfs: server 192.168.100.1 not responding, still trying
[snip]
So revert the above commit now to avoid blocking test.
Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jan Luebbe [Mon, 6 Apr 2020 13:23:57 +0000 (15:23 +0200)]
apt-native: don't let dpkg overwrite files by default
With --force-overwrite (implied by --force-all), dpkg will not abort
when a package overwrites files from different packages. As this can
also lead to "The following package disappeared from your system as
all files have been overwritten by other packages: <package>" and
subsequently broken dependencies, this makes the simple case of
conflicting files hard to debug.
Instead of finding all possibly required force options, only disable
overwrite for now.
Signed-off-by: Jan Luebbe <jlu@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
systemd: Package systemd-hwdb-update.service into udev
Currently, this unit is packaged into udev-hwdb which then adds it as rdep
instead of rrecommends to systemd itself, this meant that even if we
added udev-hwdb to BAD_RECOMMENDATIONS, it would not be respected since
its a rdep, therefore move the service unit file into udev package
instead, this decouples the hard runtime dependency and restores the bad
recommendations expectations
Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Alex Kiernan <alex.kiernan@gmail.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
pseudo: During DB fix, remove files that do not exist
If a file does not exist, either because it has been removed outside
bitbake, or because only some of the files have been moved to a
different location, delete it from the pseudo-db is the user decides to
fix the database.
Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This option adds the content of a rootfs on a specific location on the
rootfs.
It is very useful for making a partition that contains the rootfs for a
host and a target Eg:
/ -> Roofs for the host
/export/ -> Rootfs for the target (which will netboot)
Although today we support making a partition for "/export" this might
not be compatible with some upgrade systems, or we might be limited by
the number of partitions.
With this patch we can use something like:
part / --source rootfs --embed-rootfs target-image /export --embed-rootfs target-image2 /export2
on the .wks file.
Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
wic: Fix permissions when using exclude or include path
When parameters include_path or exclude_path are passed to the rootfs
plugin, it will copy the partition content into a folder and make all
the modifications there.
This is done using copyhardlinktree(), which does not take into
consideration the content of the pseudo folder, which contains the
information about the right permissions and ownership of the folders.
This results in a rootfs owned by the user that is running the wic
command (usually UID 1000), which makes some rootfs unbootable.
To fix this we copy the content of the pseudo folders to the new folder
and modify the pseudo database using the "pseudo -B" command.
Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 3 Apr 2020 12:55:12 +0000 (13:55 +0100)]
pseudo: Force seccomp to return success when in fact doing nothing
Pseudo changes the syscall access patterns which makes it incompatible with
seccomp. Therefore intercept the seccomp syscall and alter it, pretending that
seccomp was setup when in fact we do nothing. If we error as unsupported,
utilities like file will exit with errors so we can't just disable it.
This works around issues on platforms where seccomp is enabled in file
(e.g. archlinux).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Windows: Enable Windows builds under WSLv2 and warn accordingly
Due to the architectural changes between Windows Subsystem for Linux v2,
and WSL v1 it should now be possible to run bitbake on the several distros
offered through the Microsoft Store.
WSLv2 is available on Windows 10 build number > 18917
The current build number may be checked by opening a cmd prompt on Windows
and running:
C:\Users\myuser>ver
Microsoft Windows [Version 10.0.19041.113]
If a distro has already been installed via the Microsoft Store, then we can
check which WSL version its using by opening a Windows Powershell (notice this
is a powershell and not a cmd prompt):
C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 1
In this case it shows two distros installed, Ubuntu running WSLv2 and
Debian running WSLv1
To change the version of WSL being used by a certain distro run:
C:\WINDOWS\system32> wsl --set-version <Distro> 2
e.g
C:\WINDOWS\system32> wsl --set-version Debian 2
For more information on installing WSLv2 please look at:
There are some caveats related to the way storage is handled by WSLv2 though,
and at this point these have to be managed by the user manually, the storage
space used by WSL is not reflected immediately and since bitbake heavily uses
storage, after several builds this can prove to be a bit of an issue.
WSLv2 uses a VHDX file for storage, this issue can be easily avoided by
optimizing this file every now and then, this can be done via the following:
1.- Find the location of your VHDX file:
- Get the distro app package directory.
- Open Windows Powershell as Administrator and run:
Get-AppxPackage -Name "*<DISTRO>*" | Select PackageFamilyName
ls C:\Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\
Mode LastWriteTime Length Name
-a---- 3/14/2020 9:52 PM 57418973184 ext4.vhdx
The VHDX file path is:
C:\Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx
2.- Optimize your VHDX file (Also on Powershell):
- Make sure WSL is shutdown
wsl --shutdown
- Optimize it
optimize-vhd -Path C:\Users\<user>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full
A progress bar should be shown while optimizing the VHDX file.
As an example, after building core-image-sato, removing the TMPDIR did not reflect
any changes on Windows Explorer for storage space being used, after optimizing the
VHDX file, 14 extra GB were shown as free.
So, as long as the the user optimizes its storage, the builds should run smoothly.
This patch warns the user that is running bitbake under WSLv2, that they should
optimize the VHDX file eventually to avoid storage issues.
The same check previoulsy used for WSLv1 works for WSLv2, checking for the kernel
version:
WSLv1:
Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com)
WSLv2:
Linux version 4.19.84-microsoft-standard (oe-user@oe-host)
Builds have been tested under Ubuntu and Debian distros offered and installed through
the Microsoft Store, and other distros should be able to run builds just as fine.
Performance wise, using the same hardware, and same configuration a comparison between
builds using native Linux vs WSLv2 for the following targets has been performed:
- core-image-minimal
- core-image-sato
- core-image-sato-sdk
- meta-toolchain
No real evidence of any performance changes could be found, with WSLv2 builds running even
faster in some cases.
Running a recently built image can be done just as smoothly, if using "nographic" as
argument for runqemu, or if its a graphical image, installing an X server and running
runqemu runs just as fine.
Yi Zhao [Sat, 4 Apr 2020 09:11:08 +0000 (17:11 +0800)]
busybox: sysctl: ignore EIO of stable_secret below /proc/sys/net/ipv6/conf
Avoid confusing messages caused by EIO on reading
/proc/sys/net/ipv6/conf/*/stable_secret if those are not set yet.
Make it behave the same as procps(>=3.3.13).
Recent versions of ICU (64+) provides a tool for configuring ICU
locale data file with finer granularity [1]
Default generated size for libicudata.so.66.1 is ~27M, which is quite
large for embedded systems and all of them may not even need all locale
data.
This patch calls the icudata buildtool during configure on the icudata
and utilizes a filter called 'filter.json` ( empty by default) to
create the data, default behavior should remain same but someone can
add a filter.json in own layer to configure this data, e.g.
would only generate the locale data for english/german/italian
This would reduce the size of libicudata.so.66.1 to 12M
Ensure that icudata is generated using host-tools so it can deal with
endianness correctly, when host and target systems have different
endianness
install the icudtata file back into in/ folder so that main build
can now pickup this data file instead of regenerating it and wiping
out the filter changes that are expected to take effect
Use native compiler tools
Update the big-endian support patch to apply to latest Makefile.in
from icudata source and mark it as backport
defer applying 0001-Fix-big-endian-build.patch after moving new data/ in
binutils: Use configure options to disable gdb and dependencies
Deleting sources is a rough way of dealing with disabling components,
using configure option is elegant way and we also keep the sources
unchanged, this should not cause any funcitonal changes otherwise
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Fri, 3 Apr 2020 23:11:38 +0000 (16:11 -0700)]
scripts/install-buildtools: refactor for Python 3.4
Our least common denominator supported distro is debian-8
which has python 3.4. The whole point of the install-buildtools
script is to make it easier on the user to install buildtools
tarball. So it needs to run on Python 3.4.
The way we checked if the install was successful in the prior
version of the script was not workable in python 3.4. Since
the environment-setup-... script is currently just exporting
environment variables, use os.environ to do the equivalent from
values gleaned via regex from the environment-setup-... file.
Corrected a couple minor whitespace errors
NOTE: License changed to GPL-2.0-only due to inclusion of code
copied directly from bitbake/lib/bb/utils.py. This avoids the
need to depend on bitbake, which is now Python 3.5+ only.
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Gortmaker [Fri, 3 Apr 2020 16:21:58 +0000 (12:21 -0400)]
sanity.bbclass: echo current SDK_VENDOR if it is invalid
It can be frustrating if this sanity check triggers, but you
don't know why; you haven't explicitly set any SDK vars, or
similar.
At least echo out the offending value, so the end user has
a bit more information to go on.
Before:
SDK_VENDOR should be of the form '-foosdk' with a single dash
After:
SDK_VENDOR should be of the form '-foosdk' with a single dash; found '-overc-sdk'
Cc: Ross Burton <ross.burton@intel.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jeremy Puhlman [Fri, 3 Apr 2020 21:25:55 +0000 (14:25 -0700)]
nativesdk-binutils: correct path to ld.so.conf
The alternative ld.so patch is set up so the linker will search
the nativesdk sysroot before searching the host filesystem.
However the patch concatenates <sysroot>/etc and /etc/ld.so.conf
leading to a path that does not exist:
3061991 openat(AT_FDCWD, "/buildtools/sysroots/x86_64-pokysdk-linux/etc/etc/ld.so.conf",
O_RDONLY) = -1 ENOENT (No such file or directory)
In native-nspr, the build uses -lpthread, which triggers a search for librt, but because
of the above it drags in the system librt leading to errors as follows:
/buildtools/sysroots/x86_64-pokysdk-linux/usr/lib/gcc/x86_64-pokysdk-linux/
9.3.0/../../../../x86_64-pokysdk-linux/bin/ld: /lib64/librt.so.1:
undefined reference to `__clock_getcpuclockid@GLIBC_PRIVATE'
update concatenation to correctly construct the path to the nativesdk ld.so.conf
[YOCTO #13853]
Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Thread 2 "multihandlesink" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff6bb9700 (LWP 18045)]
0x00007ffff7d65992 in g_source_unref_internal (source=0x7ffff00047d0, context=0x55555561c800, have_lock=1) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c:2146
2146 ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7d65992 in g_source_unref_internal (source=0x7ffff00047d0, context=0x55555561c800, have_lock=1) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c:2146
#1 0x00007ffff7d65bb6 in g_source_iter_next (iter=iter@entry=0x7ffff6bb8db0, source=source@entry=0x7ffff6bb8da8) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c:980
#2 0x00007ffff7d67ef3 in g_main_context_prepare (context=context@entry=0x55555561c800, priority=priority@entry=0x7ffff6bb8e30) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c:944
#3 0x00007ffff7d6896b in g_main_context_iterate (context=context@entry=0x55555561c800, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c:3900
#4 0x00007ffff7d68b4c in g_main_context_iteration (context=0x55555561c800, may_block=may_block@entry=1) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gmain.c:3981
#5 0x00007ffff6be4482 in gst_multi_socket_sink_thread (mhsink=0x555555679ab0 [GstMultiSocketSink]) at ../../../gst-plugins-base-1.14.4/gst/tcp/gstmultisocketsink.c:1164
#6 0x00007ffff7d8fb35 in g_thread_proxy (data=0x55555565c770) at ../../../../../../../repo/workspace/sources/glib-2.0/glib/gthread.c:784
#7 0x00007ffff7841ebd in start_thread (arg=<optimized out>) at pthread_create.c:486
#8 0x00007ffff7aa12bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
#8 0x00007ffff7aa12bf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Signed-off-by: Daniel Gomez <daniel@qtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jeremy Puhlman [Thu, 2 Apr 2020 22:58:20 +0000 (15:58 -0700)]
busybox: on upgrade save busybox if it is the last shell
During a busybox upgrade on a ipk based system, it is possible
that busybox is the only shell in the system. During the uninstall
the alternative for /bin/sh is removed and everything after that
goes down hill.
* Add a check to verify if busybox is the shell, and save it to
the busyboxrm directory created in tmp. Then add an alternative
for /bin/sh that points to that busybox at the lowest priority.
* Add PATH to the busyboxrm directory using shell(as during an upgrade
busybox and its links are missing).
* When install over remove extra busybox if present.
deb and rpm are uneffected by the bug because they both drag in bash,
however neither upgrade seemed to have issue with the changes.
[YOCTO 13850]
Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Kelly [Thu, 2 Apr 2020 20:56:32 +0000 (13:56 -0700)]
cmake: fix Python executable with cmake
Currently, CMake has two ways of finding Python executables:
FindPythonInterp and FindPython/FindPython3. FindPythonInterp is
deprecated and may be removed at some point. Currently, python3native
sets PYTHON_EXECUTABLE, which FindPythonInterp uses. This is a problem
for a few reasons:
- Setting PYTHON_EXECUTABLE as an environment variable doesn't work, as
CMake needs it to be set as an explicit CMake option via -D.
- Projects using the newer FindPython/FindPython3 don't pickup the right
Python, as the newer routines use Python_EXECUTABLE and
Python3_EXECUTABLE.
Fix this by setting PYTHON_EXECUTABLE, Python_EXECUTABLE, and
Python3_EXECUTABLE using -D options to EXTRA_OECMAKE.
The CMake routines are documented below:
https://cmake.org/cmake/help/latest/module/FindPythonInterp.html
https://cmake.org/cmake/help/latest/module/FindPython.html
https://cmake.org/cmake/help/latest/module/FindPython3.html
Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Thu, 2 Apr 2020 17:05:14 +0000 (19:05 +0200)]
prservice.py: fix do_package with newer Python in Ubuntu 20.04
* with Ubuntu 20.04 which is using python 3.8 I'm seeing a lot of errors like:
ERROR: libxml2-2.9.10-r0 do_package: Can NOT get PRAUTO, exception No module named '_sysconfigdata'
not sure what caused this from python 3.8, but this seems to work
* PRserv is enabled with:
PRSERV_HOST = "localhost:0"
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 2 Apr 2020 15:45:26 +0000 (16:45 +0100)]
sanity: Require gcc 5.0 minimum version
After polling various develoeprs, its clear that many layers are struggling
with gcc 4.8 and its better for the project to adopt 5.0 as a minimum
version at this point in time. We should have technology like
buildtools-extended-tarball available to ensure things still work on Centos 7
and Debian 8.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add iproute2 RDEPENDS for dhcp-client as
/sbin/dhclient-systemd-wrapper which called
by dhclient.service depends on ip command which
provided by iproute2 package when systemd enabled
in DISTRO_FEATURES.
Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Otavio Salvador [Thu, 2 Apr 2020 00:14:31 +0000 (21:14 -0300)]
u-boot: Restore valid default environment for running system
One significant change from previous OE-Core releases was the move from
u-boot-fw-utils to libubootenv which offers a generic and not machine
specific alternative. However, it is not fully functional as currently
we don't provide the default environment nor the required configuration
file to be used by it.
This change address this and include on the default u-boot.inc the
needed code to generate, install and deploy the default environment.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
during rebuilding, when kernel version changed, some
source files also maybe changed. It could happened
that the source under ${S} messed up with some already
dropped files and also new files. Fix by clean the ${S}
before copy source files.
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
inetutils: Use alternatives to avoid manpage conflict
Fix the following manpage conflicts:
* check_data_file_clashes: Package inetutils-doc wants to install file /usr/share/man/man1/tftp.1
But that file is already provided by package * tftp-hpa-doc
* check_data_file_clashes: Package inetutils-doc wants to install file /usr/share/man/man8/tftpd.8
But that file is already provided by package * tftp-hpa-doc
* check_data_file_clashes: Package netkit-telnet-doc wants to install file /usr/share/man/man8/telnetd.8
But that file is already provided by package * inetutils-doc
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Lee Chee Yang [Wed, 1 Apr 2020 06:39:56 +0000 (14:39 +0800)]
wic: align layer plugin path
wic look for external layer source plugin under scripts/lib/
while other tools look for lib/.
allow wic to check for source plugin at both scripts/lib/ and
lib/ to align with other tools while avoid breaking any existing
source plugin in external layer.
[YOCTO #13056]
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jan Luebbe [Wed, 1 Apr 2020 14:58:04 +0000 (16:58 +0200)]
lib/oe/package_manager: avoid installing provided packages via apt
If there already is a package providing (and conflicting against)
packages what should be installed, apt will try remove the conflicting
package (target-sdk-provides-dummy) and any that depend on it (like apt
and dpkg). This usually fails because of the protection of essential
packages. In that case, no -dev/-dbg packages are installed to the SDK.
Avoid this problem by checking which packages are already provided and
removing them from the list to be installed. Also sort the list to make
it easier to read when debugging.
Signed-off-by: Jan Luebbe <jlu@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jan Luebbe [Wed, 1 Apr 2020 14:58:02 +0000 (16:58 +0200)]
lib/oe/package_manager: fix handling of last package
In commit 7d214b34e11dc57316ed5c1c7747c4601286f6d2, only the code in the
for loop was modified to store the pkgarch value. The code used if there
was no empty line at the end was not modified.
Instead of fixing the duplicated code, remove it and just make sure that
a final empty line is processed.
Signed-off-by: Jan Luebbe <jlu@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jan Luebbe [Wed, 1 Apr 2020 14:58:01 +0000 (16:58 +0200)]
lib/oe/package_manager: make sure to not remove packages in apt install
apt install can decide to remove already installed packages if there are
conflicts. Avoid this by explicitly specifying --no-remove. This will
then cause a "E: Packages need to be removed but remove is disabled."
message.
Signed-off-by: Jan Luebbe <jlu@pengutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Tue, 31 Mar 2020 20:03:06 +0000 (13:03 -0700)]
install-buildtools: bump default to yocto-3.1_M3, fixes
Add ability to check md5sum (yocto-3.1_M2 and before) or sha256
(yocto-3.1_M3 and beyond).
Make regex for path in checksum file optional, since
for yocto-3.1_M3 the format is <checksum> <filename>,
but prior releases was <checksum> <path><filename>
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adding this code means we can increase the minimum version easily
in the future too (which will soon be needed).
RP: Change minimum version from 5.0 to 4.8 for initial patch Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Tue, 31 Mar 2020 20:03:04 +0000 (13:03 -0700)]
lib/oe/utils.py: add get_host_compiler_version()
Add helper function to get the host compiler and version.
Do not assume compiler is gcc.
NOTE: cannot set env to d.getVar("PATH") as that does not contain
the session PATH which was set by environment-setup-... which
breaks the install-buildtools use-case
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Tue, 31 Mar 2020 20:03:01 +0000 (13:03 -0700)]
scripts/install-buildtools: improvements
* Install directory defaults to scripts/../buildtools
e.g. --directory is set by default
This avoids the user having to type in their sudo password
to install in /opt/poky/<installer-version>
* Use "." rather than "source" for sourcing the environment script
as not all distros (e.g. Debian) have "source" by default.
* Add buildtools/ to .gitignore
* Fix typos in example usage (--install-version -> --installer-version)
[YOCTO #13832]
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Lee Chee Yang [Tue, 31 Mar 2020 07:26:03 +0000 (15:26 +0800)]
cve-check: CPE version '-' as all version
CPE version could be '-' to mean no version info.
Current cve_check treat it as not valid and does not report these
CVE but some of these could be a valid vulnerabilities.
Since non-valid CVE can be whitelisted, so treat '-' as all version
and report all these CVE to capture possible vulnerabilities.
Non-valid CVE to be whitelisted separately.
[YOCTO #13617]
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 30 Mar 2020 15:31:52 +0000 (16:31 +0100)]
pseudo: Ensure we use our own libsqlite
pseudo-native is special in that bitbake ends up executing it from the
sysroot-components directory before we have any workdirs for the bitbake
fakeroot worker. Since we switched to dynamically linking sqlite, it
means sqlite from the host system may be found, we really want the version
in sysroot-components. Trying to run tasks to create some special environment
for pseudo is hard and error prone. The simplest fix is to add an RPATH to
the binary so that it can correctly find the sqlite we want.
Unfortunately passing $ORIGIN into make doesn't work so well with shell
quoting so we have to fix that during do_install.
[YOCTO #13814]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
python3: fixing bpo-36852 patch for builds on i686 architecture
The original patch "bpo-36852: proper detection of mips architecture
for soft float" uses AC_CANONICAL_TARGET to determine the platform
triplet. While AC_CANONICAL_TARGET exports i686 as target_cpu, gcc
is using i386 instead. We fall back here to i386, as it is conform
to the previous behavior.
The patch did not take into consideration of read-only rootfs, causing
the following regression.
ERROR "The following packages could not be configured offline and rootfs is read-only: ['100-ifupdown']"
The original patch was added to resolve problem running `ifup eth1' on
a systemd based rootfs. However, when using systemd, we do not use ifup
to manage our network interfaces.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:12 +0000 (17:25 +0000)]
systemd: Add sch-fq-codel to RRECOMMENDS
systemd sets net.core.default_qdisc = fq_codel, include
kernel-module-sch-fq-codel in RRECOMMENDS to satify this
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:11 +0000 (17:25 +0000)]
systemd: Reinstate systemd-hwdb-update.service
systemd supports a distribution hwdb.bin in /usr/lib/udev/hwdb.bin,
which is used if /etc/udev/hwdb.bin is not present. When generating the
install time hwdb, for systemd, ensure that we put it in /usr/lib/udev,
which then ensures that at boot time we do not regenerate it, unless the
system is marked for update.
This allows fragments dropped into /etc/udev/hwdb.d to be processed
correctly, but without requiring a first boot time build:
root@qemumips:~# systemctl status systemd-hwdb-update.service
* systemd-hwdb-update.service - Rebuild Hardware Database
Loaded: loaded (/usr/lib/systemd/system/systemd-hwdb-update.service; static; vendor preset: disabled)
Active: inactive (dead)
Condition: start condition failed at Wed 2020-03-04 15:18:11 UTC; 44s ago
|- ConditionPathExists=|!/usr/lib/udev/hwdb.bin was not met
|- ConditionPathExists=|/etc/udev/hwdb.bin was not met
`- ConditionDirectoryNotEmpty=|/etc/udev/hwdb.d was not met
Docs: man:hwdb(7)
man:systemd-hwdb(8)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:09 +0000 (17:25 +0000)]
systemd: Package udev rules explicitly
udev is packaged before systemd so any wildcard inclusions in FILES will
override later specifics. List all udev rules explicitly so that the
systemd specific rules, packaged alongside systemd, appear in the
correct package.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:08 +0000 (17:25 +0000)]
systemd: Use PACKAGE_BEFORE_PN, not =+
By using PACKAGE_BEFORE_PN rather than =+ it's clearer how we expect the
package ordering to work. It also avoids the possibilty that dev/dbg/etc.
artefacts attempt to package as part of these packages.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Thu, 26 Mar 2020 02:15:58 +0000 (21:15 -0500)]
mesa-gl: Allow mesa-gl to build without X11 enabled.
Trying to build mesa-gl without X11 enabled, results in numerous errors
about being incorrectly configured, such as:
ERROR: Problem encountered: building dri drivers require at least one windowing system or classic osmesa
A rendering engine must be available, so per the error we enable osmesa
if X11 is not available. Once 'osmesa' is enabled we also need to make
sure that swrast for DRI is also available.
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Wed, 25 Mar 2020 23:16:37 +0000 (16:16 -0700)]
binutils: Pregenerate autoconf files
libtool patch will result in configure file regeneration, instead of
doing that at build time, do it in patch itself, this avoids running
autoconf before configure step.
Since binutils needs specific version of autoconf ( which is 2.69 )
this will break on systems using newer or older verisons of autoconf
in current state.
Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:17 +0000 (17:25 +0000)]
systemd: Enable acl based on DISTRO_FEATURES
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:16 +0000 (17:25 +0000)]
systemd: Enable audit based on DISTRO_FEATURES
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:15 +0000 (17:25 +0000)]
systemd: Enable smack based on DISTRO_FEATURES
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Alex Kiernan [Fri, 27 Mar 2020 17:25:14 +0000 (17:25 +0000)]
systemd: Remove X11 related files when disabled
When X11 isn't in DISTRO_FEATURES, remove X11 related files.
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since commit 5a0d5de68957ed11407694cf1acee1ab1cb4be79 ("build: Require at least version 0.29 when building with external ELL") in iwd [1]
ell version 0.29 is required.
Also, this is a bug fix release, see after:
ver 0.30:
Fix issue with missing export of RTNL helper functions.
ver 0.29:
Fix issue with time overflow on 32-bit systems.
Add support for RTNL helper functionality.
Matthew [Fri, 27 Mar 2020 16:43:18 +0000 (12:43 -0400)]
avahi: add LICENSE for individual packages
Fixes [YOCTO #13609]
avahi_0.7.bb defines 9 PACKAGES. However, avahi.inc generically sets
LICENSE to "GPLv2+ & LGPLv2.1+". The library specific
packages should be LGPLv2.1+ only.
Signed-off-by: Matthew Zeng <matthew.zeng@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ovidiu Panait [Fri, 27 Mar 2020 08:31:56 +0000 (10:31 +0200)]
libpam: Add userdb packageconfig
Add userdb packageconfig to control the building of the pam_userdb.so module.
This depends on dbm support being compiled in for the berkley db package.
Also, remove "--with-db-uniquename=_pam" from EXTRA_OECONF. It makes the checks
for libdb fail because it searches for the wrong symbols in libdb (and libdb
was not configured with --with-uniquename=_pam option).
db.do_configure:
checking if --with-uniquename=NAME option specified... no
libpam.do_configure:
checking for db_create_pam... no
checking for db_create... no
checking for dbm_store_pam... no
checking for dbm_store... no
checking for dbm_store in -lndbm... no
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
He Zhe [Fri, 27 Mar 2020 07:33:11 +0000 (15:33 +0800)]
runqemu: Change nfs to mount via TCP
Since kernel commit b24ee6c64ca7 ("NFS: allow deprecation of NFS UDP protocol"),
NFS UDP has been disabled by default due to the potential data corruption caused
by fragmentation during high loads. So now we cannot boot up with nfs mode and
default kernel.
We'd better turn to use TCP accordingly.
Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Lee Chee Yang [Fri, 27 Mar 2020 03:57:43 +0000 (11:57 +0800)]
cve-update-db-native: clean DB if temporary file exist
when do_populate_cve_db forced stop at certain point, the
DB execution are stoped however the temporary database
file (DB-JOURNAL) are not removed. This db-journal file
indicates that DB is incomplete and set DB in readonly
mode. So when db-journal exist, remove both DB and the
db-journal and build the DB again from scratch.
[YOCTO #13682]
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jeremy Puhlman [Fri, 27 Mar 2020 22:23:16 +0000 (15:23 -0700)]
nativesdk-git: point to system gitconfig
On a system with selinux turned on, trying to access a directory
that is in a tree that doesn't exist returns the error permission
denined rather then no such file or directory, which causes git
to die.
git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
fatal: unable to access '/opt/poky/3.0+snapshot/sysroots/x86_64-pokysdk-linux/etc/gitconfig': Permission denied
Switch to using the system gitconfig of the host.
Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Catalin Enache [Thu, 26 Mar 2020 15:26:29 +0000 (17:26 +0200)]
pulseaudio: fix for ARM thumb + frame pointers compilation error
When compiling for Thumb or Thumb2, frame pointers _must_ be disabled
since the Thumb frame pointer in r7 clashes with pulseaudio's use of inline
asm to make syscalls (where r7 is used for the syscall NR).
In most cases, frame pointers will be disabled automatically due to
the optimisation level, but appending an explicit -fomit-frame-pointer
to CFLAGS handles cases where optimisation is set to -O0 or frame
pointers have been enabled by -fno-omit-frame-pointer earlier in
CFLAGS, etc.
gdk-pixbuf: remove a test that sporadically fails without reproducibility
The test is randomly modifying file data and some of these random
modifications cause OOM failures. There is no way to preserve and repeat
what was modified, so the test needs to re-engineered to do
proper fuzzing.
See here for details:
https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/146
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>