summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/kmod
AgeCommit message (Collapse)Author
2024-01-12kmod: fix configure with autopoint calling gtkdocizeRoss Burton
GTKDOC_DOCDIR is obsolete now, so fix the build by passing the documentation directory in the GTK_DOC_CHECK call. (From OE-Core rev: c2f0e8ccd57c18fee36fc0adbbaf63e2302b8268) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-13kmod: Fix build with latest muslKhem Raj
implement glibc compatible basename() funciton for portability (From OE-Core rev: 3a49ef1155d210fc9adeaed2d35df48fc29ba7f3) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-19kmod: upgrade 30 -> 31Wang Mingyu
Changelog: =========== - Improvements - Allow passing a path to modprobe so the module is loaded from anywhere from the filesystem, but still handling the module dependencies recorded in the indexes. - Use in-kernel decompression if available. - Make modprobe fallback to syslog when stderr is not available, as was documented in the man page, but not implemented - Better explaing `modprobe -r` and how it differentiates from rmmod - depmod learned a `-o <dir>` option to allow using a separate output directory. - Add compat with glibc >= 2.32.9000 that dropped __xstat - Improve testsuite to stop skipping tests when sysconfdir is something other than /etc - Build system improvements and updates - Change a few return codes from -ENOENT to -ENODATA to avoid confusing output in depmod when the module itself lacks a particular ELF section due to e.g. CONFIG_MODVERSIONS=n in the kernel. - Bug Fixes - Fix testsuite using uninitialized memory when testing module removal with --wait - Fix testsuite not correctly overriding the stat syscall on 32-bit platforms. For most architectures this was harmless, but for MIPS it was causing some tests to fail. - Fix handling unknown signature algorithm - Fix linking with a static liblzma, libzstd or zlib - Fix memory leak when removing module holders - Fix out-of-bounds access when using very long paths as argument to rmmod - Fix warnings reported by UBSan (From OE-Core rev: 15baf1183c1551ec7204abc679bd973ffb39770f) Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-25kmod: remove unused ptest.patchMartin Jansa
* it was removed from SRC_URI in 2015: https://git.openembedded.org/openembedded-core/commit/?id=f80d136bdd578468035a88125fa1b84973fd912b (From OE-Core rev: cfc4586b4bf080a3a4aa419dffc76c5da2a95b74) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-05recipes: Default to https git protocol where possibleRichard Purdie
The recommendation from server maintainers is that the https protocol is both faster and more reliable than the dedicated git protocol at this point. Switch to it where possible. (From OE-Core rev: 139102a73d4151f4748b4a861bd4ab28dda7dab7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-25kmod: enable openssl support by defaultMikko Rapeli
linux-yocto kernel adds openssl-native dependency by default even when module signing is still optional. kmod should enable openssl support too. This helps see details of signed kernel modules and debug issues with module signing. For small systems this can still be disabled. modinfo output shows bad signing info when kernel signing is enabled but openssl support is missing from kmod: root@qemux86-64:~# dmesg|grep 509 [ 0.750905] ACPI: PCI: Interrupt link LNKG configured for IRQ 11 [ 0.950039] Asymmetric key parser 'x509' registered [ 1.241727] Loading compiled-in X.509 certificates [ 1.267863] Loaded X.509 cert 'Build time autogenerated kernel key: 48bcd79439f61aaf8fc19ec0882439d64db73820' root@qemux86-64:~# lsmod Module Size Used by sch_fq_codel 20480 1 root@qemux86-64:~# modinfo sch_fq_codel filename: /lib/modules/5.19.9-yocto-standard/kernel/net/sched/sch_fq_codel.ko description: Fair Queue CoDel discipline license: GPL author: Eric Dumazet depends: retpoline: Y intree: Y name: sch_fq_codel vermagic: 5.19.9-yocto-standard SMP preempt mod_unload sig_id: PKCS#7 signer: sig_key: sig_hashalgo: unknown signature: modinfo with openssl enabled in kmod: root@qemux86-64:~# modinfo sch_fq_codel filename: /lib/modules/5.19.9-yocto-standard/kernel/net/sched/sch_fq_codel.ko description: Fair Queue CoDel discipline license: GPL author: Eric Dumazet depends: retpoline: Y intree: Y name: sch_fq_codel vermagic: 5.19.9-yocto-standard SMP preempt mod_unload sig_id: PKCS#7 signer: Build time autogenerated kernel key sig_key: 07:9A:C4:36:96:98:6E:5B:73:CF:C8:40:A6:57:D9:03:5E:27:8D:25 sig_hashalgo: sha512 signature: 21:4D:F0:E2:E0:7C:8E:31:A0:96:12:68:06:0D:FA:0D:E2:17:45:64: 51:94:7E:B0:97:DD:EB:59:89:CA:1A:C3:10:E7:7C:4D:5D:F0:5D:B6: 2A:61:D3:BF:89:7A:0D:CD:A2:39:57:1B:C6:B5:7D:C1:DB:6F:D9:36: 29:7A:07:18:F5:22:9F:9A:33:4D:38:BC:79:C8:51:8B:82:0F:B4:09: 08:37:52:11:98:50:7E:19:28:0F:13:2E:03:A5:E8:F8:D9:E7:DF:61: 18:AC:22:FE:96:BD:D0:55:96:9E:C9:1C:15:C9:0B:9A:5A:FD:D0:C0: 8F:41:12:5B:EA:4B:E5:5D:4D:EA:D5:2E:E5:80:D4:51:CC:63:97:F3: 4B:39:CC:B6:A1:83:F5:EF:2F:A1:22:CD:CA:BC:DB:82:C0:E4:AB:13: 5D:C5:F3:BC:B7:3E:B4:16:BF:87:1D:AC:69:43:1F:78:2A:5F:E2:63: 52:A2:DA:FC:F9:C0:BA:D8:1A:FE:58:4E:6A:D8:DE:BE:F8:F6:C2:59: CE:F5:0A:A0:15:A3:01:BC:B6:70:36:4E:5F:D6:9B:B0:DE:93:15:3E: 35:37:38:D9:01:2B:72:2F:D3:74:A4:AD:F4:5F:52:74:44:E1:C9:D3: A9:87:BC:93:58:8A:82:DB:14:6F:E0:4D:AF:8E:B5:3D:92:20:8B:4A: 04:54:6C:21:F1:76:DF:08:A9:0A:A5:D5:D0:17:CA:98:B5:F4:9F:F6: 9C:8F:DA:09:C2:37:FB:36:23:D1:25:27:4C:DB:9B:43:19:EB:55:1C: DA:32:04:A5:B1:97:F7:A3:3B:82:55:FD:BD:6D:90:BB:61:E6:D3:93: 42:CB:FD:4A:1B:3E:03:43:7D:E3:85:32:91:45:C9:B4:CD:DC:B7:07: 37:58:8A:4A:49:5F:F7:26:41:E1:BB:A1:64:B5:86:00:17:9D:D7:81: 31:BA:DC:BF:04:CC:11:55:B1:C6:24:83:43:33:34:2D:BF:00:74:26: 6A:EC:56:90:C7:1B:C2:78:5C:7F:25:2D:78:BD:C5:D9:7D:69:6A:32: 5D:EF:48:6C:21:64:47:2A:FE:34:3C:58:8D:9E:D7:42:76:BE:89:84: 8D:62:9D:62:DE:7C:88:C4:5F:AA:13:20:6B:90:53:16:4E:06:EE:8A: DE:F7:EA:F8:92:03:7D:84:B7:0C:9F:A0:52:B7:5E:21:BF:37:6A:C9: 34:6D:69:1E:4A:CC:48:F2:0A:6C:B8:AD:83:C0:8F:76:CC:43:0E:29: 17:A9:22:F3:0B:59:A9:87:24:AD:84:CD:EE:E2:C3:93:F7:A8:11:ED: 9A:CC:DA:7F:9D:73:06:5C:A7:1A:6A:54 (From OE-Core rev: d6a62eb68641239985a1f8cf9cf4528a07fd0b99) Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-13depmodwrapper-cross: Take into consideration kernel package nameAndrei Gherzan
depmodwrapper assumes that the kernel package name is "kernel". Since this is configurable via KERNEL_PACKAGE_NAME variable, the wrapper can easily look in the wrong place. This change adds an optional positional argument that can be used to provide the kernel package name - when not provided, it defaults to "kernel" (current behaviour). (From OE-Core rev: 0c2cc62b009467b05bf6e1897989d8ede0412d73) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-08kmod: upgrade 29 -> 30Alexander Kanavin
(From OE-Core rev: 3f2084c3b6f2e9b251f87339e0fd60f9b1005f8c) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-29kmod: Enable xz support by defaultKhem Raj
RPi kernel has started building compressed kernel modules by default starting 5.15, currenrly therefore meta-raspberrypi kernels are unable to load kernel modules since kmod and kmod-native do not entertain xz compressed modules. There is a fix proposed in meta-raspberrypi [1] but the fix is needed for native and nativesdk recipes as well, perhaps its best to enable it here for best out of box experience with meta-raspberrypi [1] https://github.com/agherzan/meta-raspberrypi/pull/1056 (From OE-Core rev: 20e9917b8d40f576b3661bc29e13602a24e86b7b) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-05depmodwrapper-cross: Fix missing $Saul Wold
(From OE-Core rev: 8c95be7dd3940d7c513f3d8a9071ac173a6528d5) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-05kmod: Update exclude patch to AcceptedSaul Wold
Upstream made a few tweaks and accepted the patch. (From OE-Core rev: 28b79449ed6d0a9920c252f75d0b40da5faa0fd7) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-03depmodwrapper: Use nonarch_base_libdir for depmod.dSaul Wold
This ensure that when depmod-native runs we can find the correct exclude.conf information, in this case adding .debug to ignore the .debug kernell modules. The kmod utilities like depmod can use either /etc/depmod.d or /lib/depmod.d. The kmod recipe is installing the existing search.conf to /lib/depmod.d (nonarch_base_lib) When the busybox modutils are used, /lib/depmod.d is not used, so it's safe add the exclude.conf file to /lib/depmod.d. (From OE-Core rev: af3a8c11a0561c9f0a8055d4b1c7703ce56205af) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-03kmod: Add an exclude directive to depmodSaul Wold
This adds a new configuration directive to depmod that causes depmod to exclude a give path entry like .debug. kernel-dbg provides the modules .debug/<module>.ko files and when installed either directly or when dbg-pkgs are selected this can cause depmod to fail. (From OE-Core rev: 5e7d09142da82c37aeab22c34d5314187c90bd84) Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-25depmodwrapper-cross: add config directory optionOleksandr Suvorov
Native depmod by default try to find config files from the following directories: ``` ${STAGING_ETCDIR_NATIVE}/depmod.d /run/depmod.d /usr/local/lib/depmod.d /lib/depmod.d ``` but none of them is correct, change to load config files from ${sysconfdir}/depmod.d of basedir. (From OE-Core rev: aa03d77f009af2b03246554566de2a1eea3f5e2f) Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-20meta/meta-selftest/meta-skeleton: Update LICENSE variable to use SPDX ↵Richard Purdie
license identifiers An automated conversion using scripts/contrib/convert-spdx-licenses.py to convert to use the standard SPDX license identifiers. Two recipes in meta-selftest were not converted as they're that way specifically for testing. A change in linux-firmware was also skipped and may need a more manual tweak. (From OE-Core rev: ceda3238cdbf1beb216ae9ddb242470d5dfc25e0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-21kmod: expand compression PACKAGECONFIGsRoss Burton
Turn the explicitly enabled zlib support into an enabled by default PACKAGECONFIG, and add Zstd support (disabled by default). (From OE-Core rev: 6dd6184f01d79ebd26347a6006f92a5b5906ee3e) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-21kmod: merge target/native recipesRoss Burton
There's no good reason to keep separate target and native recipes for kmod, so merge them into a single kmod_29.bb which uses class extension. The symlinks are not created differently for target vs native builds, as the native sbindir is in PATH. (From OE-Core rev: 9abbf481438fba10a7512fb1ad1bff5d48e6fbdc) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-21kmod: remove obsolete ac_pwd manipulationRoss Burton
Remove the change of ac_pwd from config.status as the build is successful without it (it was added with no explanation in 152c973 when ptest was enabled). (From OE-Core rev: af0f4c6f7769e9be64adddc29a3bc3fdb8cce389) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-10meta: use ln -rs instead of lnrRoss Burton
lnr is a script in oe-core that creates relative symlinks, with the same behaviour as `ln --relative --symlink`. It was added back in 2014[1] as not all of the supported host distributions at the time shipped coreutils 8.16, the first release with --relative. However the oldest coreutils release in the supported distributions is now 8.22 in CentOS 7, so lnr can be deprecated and users switched to ln. [1] 6ae3b85eaffd1b0b6914422e8de7c1230723157d (From OE-Core rev: 1ca455a98de4c713f58df0a537d4c982d256cd68) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-30meta: Add explict branch to git SRC_URIsRichard Purdie
There is uncertainty about the default branch name in git going forward. To try and cover the different possible outcomes, add branch names to all git:// and gitsm:// SRC_URI entries. This update was made with the script added to contrib in this patch which aims to help others convert other layers. (From OE-Core rev: b51c405faf6f8c0365f7533bfaf470d79152a463) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-12kmod: use nonarch_base_libdir for depmod.d and modprobe.dAnton Blanchard
These should always be in /lib, regardless of the configuration. (From OE-Core rev: 63877226c09a674d3794fdc171adf12fe604a3c9) Signed-off-by: Anton Blanchard <anton@ozlabs.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-02Convert to new override syntaxRichard Purdie
This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-31kmod: upgrade 28 -> 29Richard Purdie
(From OE-Core rev: 21f421c5caa3ddecda20e7d8718ba6db4d6acdbd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18kmod: do not symlink config.guess/config.sub during autoreconfGavin Li
I was encountering the following race condition on poky: - automake-native does do_install. - automake-native does do_populate_sysroot. This hardlinks config.guess and config.sub into ${D}. - kmod-native does do_configure. This runs `autoreconf`, which runs `automake --add-missing` (symlinks config.guess/config.sub from recipe-sysroot-native to build dir), then runs `gnu-configize` (copies _its own_ config.guess/config.sub _on top_ of the already existing ones). Since the destinations already had symlinks, the copy would overwrite config.guess/config.sub in recipe-sysroot-native, which would in turn overwrite the same in ${D} due to being hardlinked. - automake-native does do_package. The outhash is thus calculated on the clobbered config.guess/config.sub files. With hash equivalency enabled, the different outhash produced a different unihash, which kept me from reusing sstate between my laptop and my build server. This race condition would happen only on the build server (BB_NUMBER_THREADS = 32) but never on my laptop (BB_NUMBER_THREADS = 6). I didn't see the --install and --symlink flags being used by any other recipe, so I removed them, and that fixed the issue. (From OE-Core rev: 89d675efd633b495daa4a3a57420b9c309497035) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-16kmod: update 27 -> 28Scott Branden
Upgrade kmod from 27 to 28. (From OE-Core rev: 7447ac45edaf7f71d0e4cc60506e1cca546427df) Signed-off-by: Scott Branden <scott.branden@broadcom.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-30meta: fix some unresponsive homepages and bugtracker linksMaxime Roussin-Bélanger
remove some extra whitespaces (From OE-Core rev: 32ce3716761165b9df12306249418645724122cc) Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-10-17License-Update: kmod: Add a missing file to LIC_FILES_CHKSUM.Akira Shibakawa
Although components under tools/ are licensed under GPLv2+ and a binary from them are packaged by default, LIC_FILES_CHKSUM does not include GPLv2 license file, tools/COPYING. (From OE-Core rev: f5f1507a4ec7d7bac14dd152215b3695f8d50c1e) Signed-off-by: Akira Shibakawa <arabishi900@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19kmod: add packageconfig for xz and sslJens Rehsack
Add the opportunity for kmod (and depmod etc.) to deal with Xz-compressed kernel modules and handle PKCS7 signatures, if desired. (From OE-Core rev: 37a62924755761a4df410cbf7c177292249ecdc2) Signed-off-by: Jens Rehsack <sno@netbsd.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-16kmod: add nativesdk supporthongxu
Support to invoke depmod in sdk (From OE-Core rev: 7fbd49259c99d6a096a0b6a17aa3a5663fbf6e78) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-04kmod: upgrade 26 -> 27Alexander Kanavin
(From OE-Core rev: fc0b3496c9b1de0ef58003fa1c1fc2e152a3b27b) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-21kmod: Replace dolt hacks with backport of upstream dolt removalAdrian Bunk
(From OE-Core rev: 66492f40c23778a5644bc4e7f4acf7e4ef16bf36) Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-03-07kmod: Remove compatibility for ancient hostsAdrian Bunk
Lack of be32toh() is handled upstream since 2014. Linux 2.6.23 was released 2007, distributions with kernels older than that are far outside the host distributions still supported today. (From OE-Core rev: c4d77ddd13ad43b52f22a32dc7a3d34cc2692dce) Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-20kmod: Fix PVRichard Purdie
Meant to fix this pre merge, the git revision is the PV so no need to add SRCPV. (From OE-Core rev: 3233096f0dbada97d9d71c98044150a641bfb0a5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-02-20kmod: upgrade to 26Chen Qi
Refresh patches to avoid warning. (From OE-Core rev: 5dc170d74e932e1dbfc58d23b204bf1d9ebc6e42) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-10-18kmod: bump alternative priorityDan McGregor
toybox by default has a priority of 60, and busybox of 50. Bump kmod's priority so that it beats both toybox and busybox. (From OE-Core rev: b17ae3e13dea4b12f1720170237142e04d5ab578) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-29kmod: do not reset $bindir/sbindir, use EXTRA_OECONF insteadAlexander Kanavin
This was causing issues with classes that use $bindir to find already installed binaries in rootfs (manpages class in particular). $bindir needs to be the same for all recipes. (From OE-Core rev: 3d92bce5a8e021c03e509e8ee6ead064e97bfcec) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-05-11depmodwrapper-cross: Add kmod-native to DEPENDSHaris Okanovic
Add `DEPENDS += "kmod-native"` to ensure depmod utility is added to recipe-sysroot-native during image build. Without this dependency, image builds where BUILD_IMAGES_FROM_FEEDS=1 have depmodwrapper in recipe-sysroot-native but are missing depmod. Kernel postinst scripts rely on depmod (via depmodwrapper) to index newly installed modules. (From OE-Core rev: d693457f9de92e4e8b61881638787e831f0ca197) Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-15kmod: don't call gtkdocize twiceRoss Burton
The gtk-doc class already calls gtkdocize, so we don't need to do it again (From OE-Core rev: 14c6e4fd793e037d801a81c6581e0642ef61ab0c) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-03-09kmod: refresh patchesRoss Burton
The patch tool will apply patches by default with "fuzz", which is where if the hunk context isn't present but what is there is close enough, it will force the patch in. Whilst this is useful when there's just whitespace changes, when applied to source it is possible for a patch applied with fuzz to produce broken code which still compiles (see #10450). This is obviously bad. We'd like to eventually have do_patch() rejecting any fuzz on these grounds. For that to be realistic the existing patches with fuzz need to be rebased and reviewed. (From OE-Core rev: c94152fee766297b355fec7f6d3d4d8ba7ae5f86) Signed-off-by: Ross Burton <ross.burton@intel.com> 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>
2018-01-29kmod: 24 -> 25Huang Qiyu
Upgrade kmod from 24 to 25. (From OE-Core rev: df525efab1cefa3e05e50544b1fbc790cc4cf850) Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-02kernel: Add support for multiple kernel packagesHaris Okanovic
Some distros may want to provide alternate kernel "flavors" via feeds or within bootable images. For example, readily available builds which provide certain diagnostic features can enable developers and testers to more quickly resolve issues by avoiding lengthy kernel builds. This change allows for building multiple flavors of the kernel and module packages by templatizing kernel package names via a new KERNEL_PACKAGE_NAME variable in kernel.bbclass. It defaults to the old name of "kernel", but can be overridden by certain recipes providing alternate kernel flavors. To maintain compatibility, recipes providing alternate kernel flavors cannot be the "preferred provider" for virtual/kernel. This is because OE puts the preferred provider's build and source at "tmp-glibc/work-shared/$MACHINE/kernel-build-artifacts/" and "tmp-glibc/work-shared/$MACHINE/kernel-source/" instead of "tmp-glibc/work/*/$PN/" like other recipes. Therefore, recipes using the default KERNEL_PACKAGE_NAME="kernel" follows the old semantics -- build in the old location and may be preferred provider -- while recipes using all other KERNEL_PACKAGE_NAME's build from the normal WORKDIR and don't provide "virtual/kernel". Testing: 1. Add `KERNEL_PACKAGE_NAME_pn-linux-yocto-tiny = "tiny-linux"` to local.conf so that linux-yocto-tiny may build alongside the main kernel (linux-yocto). 2. `bitbake linux-yocto linux-yocto-tiny` to build both kernel flavors. 3. Verified image and modules IPKs exist for both: tmp-glibc/deploy/ipk/qemux86/kernel-* for linux-yocto tmp-glibc/deploy/ipk/qemux86/tiny-linux* for linux-yocto-tiny 4. Verified linux-yocto is the "preferred provider", and was built in shared directory: tmp-glibc/work-shared/qemux86/kernel-* 5. Add `CORE_IMAGE_BASE_INSTALL_append_pn-core-image-base = "tiny-linux"` to local.conf to install both kernel flavors in core-image-base. 6. `bitbake core-image-base` to build an image. 7. Verified image contains two bzImage's under /boot/, with "yocto-standard" (linux-yocto recipe) selected to boot via symlink. Discussion threads: http://lists.openembedded.org/pipermail/openembedded-core/2015-December/thread.html#114122 http://lists.openembedded.org/pipermail/openembedded-core/2017-July/thread.html#139130 [YOCTO #11363] (From OE-Core rev: 6c8c899849d101fd1b86aad0b8eed05c7c785924) Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Gratian Crisan <gratian.crisan@ni.com> Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Coauthored-by: Gratian Crisan <gratian.crisan@ni.com> Coauthored-by: Haris Okanovic <haris.okanovic@ni.com> Coauthored-by: Josh Hernstrom <josh.hernstrom@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-12-21depmodwrapper-cross: Set PACKAGES=''Richard Purdie
This recipe inherits nopackages but has a non-empty PACKAGES which confuses the archiver class when: INHERIT += "archiver" ARCHIVER_MODE[srpm] = "1" Ensuring PACKAGES is empty removes the errors that occur in this configuration. [YOCTO #11121] (From OE-Core rev: b8a603d3f1d3adac41d042e42a2283b7fdf2ae7c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-09kmod: upgrade to 24Chen Qi
Drop kcmdline_quotes.patch as it has been integrated. (From OE-Core rev: 68880e7dc48df4707e2c67f7434603e516c335c6) 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>
2017-05-01sstate.bbclass, staging.bbclass: Handle HOSTTOOLS_DIR when restoring statePeter Kjellerstedt
Paths to host tools that have been copied to ${HOSTTOOLS_DIR} may end up in the sstate cache. They thus need to be corrected when restoring from the sstate cache. (From OE-Core rev: f8671aecf05a286dd2b34b07bb5fbbe0c31e26d0) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-04-10kmod: set ac_cv_path_DOLT_BASH to /usr/bin/env bashRobert Yang
The shebang's length is usually 128 as defined in /usr/include/linux/binfmts.h: #define BINPRM_BUF_SIZE 128 So there would be errors when /path/to/hosttools/bash is longer than 128: /bin/sh: ./doltcompile: [snip]: bad interpreter: No such file or directory Set ac_cv_path_DOLT_BASH to "/usr/bin/env bash" to fix the problem. (From OE-Core rev: fd2758ed26e8ed6d76c66af0275c4aafbec758ac) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-23depmodwrapper-cross/qemuwrapper-cross: Drop unneeded binutils dependencyRichard Purdie
By default these pull in binutils-cross since they're a cross tool and pull in any native tool requirements. In reality they don't need such tools at build time or runtime since they're scripts. Therefore clear the dependency and save on some processing time. (From OE-Core rev: 63796765122e2eee2b78930797d571acb5c244d1) (From OE-Core rev: 50feffd0917b0ab408b34ded9c2f741a9c4e5b74) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31kmod: Fix handling of quotes in kernel command lineJames Minor
If a module parameter on the command line contains quotes, any spaces inside those quotes should be included as part of the parameter. Upstream-Status: Accepted (From OE-Core rev: a54be23887cdc24a9b128be0913029fc8e63973d) Signed-off-by: James Minor <james.minor@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23Switch to Recipe Specific SysrootsRichard Purdie
This patch is comparatively large and invasive. It does only do one thing, switching the system to build using recipe specific sysroots and where changes could be isolated from it, that has been done. With the current single sysroot approach, its possible for software to find things which aren't in their dependencies. This leads to a determinism problem and is a growing issue in several of the market segments where OE makes sense. The way to solve this problem for OE is to have seperate sysroots for each recipe and these will only contain the dependencies for that recipe. Its worth noting that this is not task specific sysroots and that OE's dependencies do vary enormously by task. This did result in some implementation challenges. There is nothing stopping the implementation of task specific sysroots at some later point based on this work but that as deemed a bridge too far right now. Implementation details: * Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in TMPDIR/sysroot-components/PACKAGE_ARCH/PN. * WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and RECIPE_SYSROOT_NATIVE. * This construction is primarily done by a new do_prepare_recipe_sysroot task which runs before do_configure and consists of a call to the extend_recipe_sysroot function. * Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot dependencies. * We have to do a search/replace 'fixme' operation on the files installed into the sysroot to change hardcoded paths into the correct ones. We create a fixmepath file in the component directory which lists the files which need this operation. * Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each time a new loader is added. These are handled by adding files in bindir with the name prefixed by "postinst-" and are run in each sysroot as its created if they're present. This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them. * Since a recipe can have multiple tasks and these tasks can run against each other at the same time we have to have a lock when we perform write operations against the sysroot. We also have to maintain manifests of what we install against a task checksum of the dependency. If the checksum changes, we remove its files and then add the new ones. * The autotools logic for filtering the view of m4 files is no longer needed (and was the model for the way extend_recipe_sysroot works). * For autotools, we used to build a combined m4 macros directory which had both the native and target m4 files. We can no longer do this so we use the target sysroot as the default and add the native sysroot as an extra backup include path. If we don't do this, we'd have to build target pkg-config before we could built anything using pkg-config for example (ditto gettext). Such dependencies would be painful so we haven't required that. * PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy for each machine. The paths therefore changed, the behaviour did not. * The ccache class had to be reworked to function with rss. * The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal recipe name therefore remains a bad idea. * The logic in insane needed tweaks to deal with the new path layout, as did the debug source file extraction code in package.bbclass. * The logic in sstate.bbclass had to be rewritten since it previously only performed search and replace on extracted sstate and we now need this to happen even if the compiled path was "correct". This in theory could cause a mild performance issue but since the sysroot data was the main data that needed this and we'd have to do it there regardless with rss, I've opted just to change the way the class for everything. The built output used to build the sstate output is now retained and installed rather than deleted. * The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold up against testing. This has been rewritten too. There are some assumptions made about paths, we save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is here works but is a little hardcoded and an area for future improvement. * In order to work with eSDK we need a way to build something that looks like the old style sysroot. "bitbake build-sysroots" will construct such a sysroot based on everything in the components directory that matches the current MACHINE. It will allow transition of external tools and can built target or native variants or both. It also supports a clean task. I'd suggest not relying on this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have to have built that in a previous bitbake invocation. * pseudo is run out of its components directory. This is fine as its statically linked. * The hacks for wayland to see allarch dependencies in the multilib case are no longer needed and can be dropped. * wic needed more extensive changes to work with rss and the fixes are in a separate commit series * Various oe-selftest tweaks were needed since tests did assume the location to binaries and the combined sysroot in several cases. * Most missing dependencies this work found have been sent out as separate patches as they were found but a few tweaks are still included here. * A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my hand. That implementation can probably be neater but this is on the list of things to cleanup later at this point. In summary, the impact people will likely see after this change: * Recipes may fail with missing dependencies, particularly native tools like gettext-native, glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors * Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst * There was a separate patch series dealing with roots postinst native dependency issues. Any postinst which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS. There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean we've found all the issues. Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the task logfiles, not the console so I've intentionally left this like that for now. We can turn it down easily enough in due course. (From OE-Core rev: 809746f56df4b91af014bf6a3f28997d6698ac78) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-28Remove LIC_FILES_CHKSUM from recipes without SRC_URIOlaf Mandel
LICENSE and LIC_FILES_CHKSUM apply to the sources specified by SRC_URI, not to the recipe itself. As such a license declaration for a source-less recipe makes little sense. The LICENSE declaration is mandatory, but LIC_FILES_CHKSUM can be removed in such cases. Remove the LIC_FILES_CHKSUM declarations from all recipes that do not need it. CC: Paul Eggleton <paul.eggleton@linux.intel.com> (From OE-Core rev: b18fa5f2f2f46afc6fdc58f4d29679dea9c36c43) Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-28kmod: enable optional building of manpagesAlexander Kanavin
(From OE-Core rev: e7150ee8adabaa4c68d3b4016f3fff2253d77dd7) 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>