Compare commits

..

281 Commits

Author SHA1 Message Date
Richard Purdie
e0ab08bb6a build-appliance-image: Update to honister head revision
(From OE-Core rev: 418a9c4c31615a9e3e011fc2b21fb7154bc6c93a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:27 +00:00
Anuj Mittal
3c5842ebfe poky.conf: bump version for 3.4.2 release
(From meta-yocto rev: 3cd3d34f312afa1c4b081274664d5ec357e9259e)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Carlos Rafael Giani
3873a51c58 libxml2: Backport python3-lxml workaround patch
This is a workaround for the following issue that affects python3-lxml:

https://gitlab.gnome.org/GNOME/libxml2/-/issues/255

(From OE-Core rev: 3e40efa0a05bbe9f9c3a5a2553319ce6a5f1b123)

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2f52be7c42ea37243f9aea1898ef7052904f9290)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Ross Burton
d721604732 core-image-sato-sdk: allocate more memory when in qemu
Compiling code is memory-intensive, especially kernel modules like the
SystemTap probes, so give the VM 768MB of RAM.  Using 1GB appears to
cause PCI error, interestingly.

Hopefully this solves the intermittent failures caused by OOMs during
the SystemTap test.

[ YOCTO #14673 ]

(From OE-Core rev: 593a10c37f7928ce4714dd16bd26dc0cb56446e9)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 50ff1f018a670c963e1979dee76ebd696153b4c1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Ross Burton
1e15c20045 vim: upgrade to patch 4269
Upgrade to the latest patch release to fix the following CVEs:

- CVE-2022-0261
- CVE-2022-0318
- CVE-2022-0319

(From OE-Core rev: 61dcaeda02fe1136610f1cf4d4ec271f16dacfcf)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 96442e681c3acd82b09e3becd78e902709945f1f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Ross Burton
908ba92d45 expat: upgrade to 2.4.4
Fixes CVE-2022-23852 and CVE-2022-23990.

(From OE-Core rev: 4857274b27712981e175c0bbc00fa650f5d3bcf2)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4ed96683893e7433804ccf7a4000a2dd18318ef5)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Alexander Kanavin
1c3f17f8d4 libusb1: correct SRC_URI
(From OE-Core rev: 0fccab0724769a862e31e635ffa1db3ba2f37312)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d4c37ca1f1e97d53045521e9894dc9ed5b1c22a1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Ross Burton
7d52358534 yocto-check-layer: add debug output for the layers that were found
When debugging weird yocto-check-layer output it is useful to know
what the tool found when looking for layers.

(From OE-Core rev: 6ff05fe05a23d4355c3a33a03350dea025133689)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 711e2d4d7baf36f8497741c14268d7f72d0db016)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Rudolf J Streif
62a3149fef linux-firmware: Add CLM blob to linux-firmware-bcm4373 package
The Country Local Matrix (CLM) blob brcmfmac4373-sdio.clm_blob was not
included with the files for the linux-firmware-bcm4373 package
but instead packaged with linux-firmware.

(From OE-Core rev: 289a849f8f639cd2546153827fc265a9409f5538)

Signed-off-by: Rudolf J Streif <rudolf.streif@ibeeto.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 18ba64d4a12e7275381cf34fe72b757accbb1544)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Bruce Ashfield
30b0bbe211 linux-yocto/5.10: update to v5.10.93
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    fd187a492557 Linux 5.10.93
    bed97c903621 mtd: fixup CFI on ixp4xx
    f50803b519c3 powerpc/pseries: Get entry and uaccess flush required bits from H_GET_CPU_CHARACTERISTICS
    68c1aa82be00 ALSA: hda/realtek: Re-order quirk entries for Lenovo
    4d15a17d065d ALSA: hda/realtek: Add quirk for Legion Y9000X 2020
    d7b41464f1b7 ALSA: hda: ALC287: Add Lenovo IdeaPad Slim 9i 14ITL5 speaker quirk
    87246ae94b73 ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows
    9c27e513fb33 ALSA: hda/realtek: Add speaker fixup for some Yoga 15ITL5 devices
    4c7fb4d519e5 KVM: x86: remove PMU FIXED_CTR3 from msrs_to_save_all
    6b8c3a185377 firmware: qemu_fw_cfg: fix kobject leak in probe error path
    889c73305b48 firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries
    ff9588cf1592 firmware: qemu_fw_cfg: fix sysfs information leak
    358a4b054abe rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with interrupts enabled
    93c4506f9f8b media: uvcvideo: fix division by zero at stream start
    4c3f70be6f3a video: vga16fb: Only probe for EGA and VGA 16 color graphic cards
    161e43ab8cc1 9p: only copy valid iattrs in 9P2000.L setattr implementation
    0e6c0f3f4055 KVM: s390: Clarify SIGP orders versus STOP/RESTART
    413b427f5fff KVM: x86: Register Processor Trace interrupt hook iff PT enabled in guest
    723acd75a062 perf: Protect perf_guest_cbs with RCU
    eadde287a62e vfs: fs_context: fix up param length parsing in legacy_parse_param
    c5f38277163e remoteproc: qcom: pil_info: Don't memcpy_toio more than is provided
    5d88e24b23af orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc()
    0084fefe2960 devtmpfs regression fix: reconfigure on each mount
    ee40594c95ae kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test

(From OE-Core rev: 773b15f45639fbcae2f0476c4c2b615217f3f8bd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4f3dd05c163efe6da87a58ab9e1df61b83ed4444)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Bruce Ashfield
e354c57161 linux-yocto/5.10: update to v5.10.92
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    c982c1a83932 Linux 5.10.92
    c0091233f3d8 staging: greybus: fix stack size warning with UBSAN
    66d21c005d9b drm/i915: Avoid bitwise vs logical OR warning in snb_wm_latency_quirk()
    2d4fda471dc3 staging: wlan-ng: Avoid bitwise vs logical OR warning in hfa384x_usb_throttlefn()
    3609fed7ac8b media: Revert "media: uvcvideo: Set unique vdev name based in type"
    9b3c761e78d5 random: fix crash on multiple early calls to add_bootloader_randomness()
    61cca7d191c7 random: fix data race on crng init time
    3de9478230c3 random: fix data race on crng_node_pool
    43c494294f30 can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
    45221a57b609 can: isotp: convert struct tpcon::{idx,len} to unsigned int
    bd61ae808b15 can: gs_usb: fix use of uninitialized variable, detach device on reception of invalid USB data
    f68e60001735 mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe()
    5f76445a31b7 veth: Do not record rx queue hint in veth_xmit
    ddfa53825f3d mmc: sdhci-pci: Add PCI ID for Intel ADL
    2e691f9894cc ath11k: Fix buffer overflow when scanning with extraie
    a87cecf94375 USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status
    15982330b61d USB: core: Fix bug in resuming hub's handling of wakeup requests
    413108ce3b56 ARM: dts: exynos: Fix BCM4330 Bluetooth reset polarity in I9100
    b6dd07023699 Bluetooth: bfusb: fix division by zero in send path
    869e1677a058 Bluetooth: btusb: Add support for Foxconn QCA 0xe0d0
    c20021ce945f Bluetooth: btusb: Add support for Foxconn MT7922A
    83493918380f Bluetooth: btusb: Add two more Bluetooth parts for WCN6855
    294c0dd80d8a Bluetooth: btusb: fix memory leak in btusb_mtk_submit_wmt_recv_urb()
    35ab8c9085b0 bpf: Fix out of bounds access from invalid *_or_null type verification
    c84fbba8a945 workqueue: Fix unbind_workers() VS wq_worker_running() race
    c39d68ab3836 md: revert io stats accounting

(From OE-Core rev: dff0f30789b89f354730ab1f13537f9dc5be91aa)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 35dfcd31518e66fc4dc1f2283bd3320f994c868b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Ross Burton
96b1023aae tiff: backport fix for CVE-2022-22844
(From OE-Core rev: 2948fdb7df4eb5824a06c1d73c6c70b3bcbb9448)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit daf2880b7431aa641e02ebba8cbca40d81389088)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Kory Maincent
2e790af6fb icu: fix make_icudata dependencies
The make_icudata task is set before the configure task then the
dependencies for this task are not populate yet.

Fixed it by adding do_prepare_recipe_sysroot task dependency to the
make_icudata task.

(From OE-Core rev: 18a43fe970b691250fbf48f39ed5f4f7ad121b75)

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c134f62062a6359d2d5831ba4cb9694035e4f25a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Pgowda
4c0f19f624 glibc : Fix CVE-2021-3999
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=8c8a71c85f2ed5cc90d08d82ce645513fc907cb6]
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=472e799a5f2102bc0c3206dbd5a801765fceb39c]

(From OE-Core rev: 62de1f71d54a3474c687db95b6a36119f53feda8)

Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e9532134b86211801206ff540c4c284f43006f7b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Pgowda
a3f343f3f6 glibc : Fix CVE-2021-3998
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=062ff490c1467059f6cd64bb9c3d85f6cc6cf97a]
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=f7a79879c0b2bef0dadd6caaaeeb0d26423e04e5]

(From OE-Core rev: 184125f7213fc2fc024c4055d269a3a812504f60)

Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 20cc83dd8d323d7ea86b3625f4e8da94c160def9)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Richard Purdie
023d0efb97 sstate: Improve failure to obtain archive message/handling
The bb.fatal() case where sstate failed to find/use an archive in setcene tasks
is suboptimal. Bitbakes handling of setscene tasks will be to warn but the fatal
will turn this into an error, despite the real task being rerun.

In these failure cases other messages would usually have been printed so turn
this into a warning and raise a handled exception status so that bitbake knows
to fail the task but not print more messages.

(From OE-Core rev: 25a7e8dae10dde6073dcdd80f1e2448b59dc9d1a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7875baeca7a3ed216b2442fb8771e51efbfa5a4f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Peter Kjellerstedt
eac9612ccd insane.bbclass: Correct package_qa_check_empty_dirs()
The oe.qa.add_message() method is not available in Honister, use
package_qa_add_message() instead.

(From OE-Core rev: 3f183a7f5b4704b32bd094d5ebbe8584ce26ae34)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Peter Kjellerstedt
64a0161bdf sstate: A third fix for for touching files inside pseudo
This continues where commit676757f "sstate: fix touching files inside
pseudo" and commit 29fc8599 "sstate: another fix for touching files
inside pseudo" left off.

The previous changes switched from trying to check if the sstate file is
writable before touching it, to always touching the sstate file and
ignoring any errors. However, if the sstate file is actually a symbolic
link that links to nothing, this would actually result in an empty
sstate file being created. And this in turn leads to that future
setscene tasks will fail when they try to unpack the empty file.

Change the code so that if an sstate file linking to nothing already
exists, it is overwritten with the new sstate file. Also change it so
that the temporary file that is used is always removed, even if ln
fails to link the sstate file to it.

(From OE-Core rev: b2a5d9bc61e0b2b7e0f187a262a514952ed30563)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Bruce Ashfield
6560edf43c kernel: introduce python3-dtschema-wrapper
The 5.16 kernel introduced mandatory schema checking on any dtb file
built through the kernel.

That funcionality is provided via python3-dt-schema.

The dependencies to enable that functionality is not small, and may
not always be desired (in particular on architectures that do not
support dtbs, or in development cycles). It may also be useful for
allowing a non-conformant dts to be compiled.

This commit introduces a set of wrapper scripts that when added
as a depenency to the kernel, can pass both the validation testing
and validation steps of a dts.

(From OE-Core rev: cc9d4a69e6c6aa99ff58232b37a607ee3ac48a67)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Backported from oe-core commit 2566563ad4.
Signed-off-by: Paul Barker <paul.barker@sancloud.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 23:15:15 +00:00
Sundeep KOKKONDA
4d7162798e glibc : Fix CVE-2022-23219
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=226b46770c82899b555986583294b049c6ec9b40]
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=ef972a4c50014a16132b5c75571cfb6b30bef136]

(From OE-Core rev: 2d3c5b078feb34cb729902292d2805c9288ebc4c)

Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6ad7240c732dd63e74ac32588b92241030c194ae)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Sundeep KOKKONDA
cdcd59474c glibc : Fix CVE-2022-23218
Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=e368b12f6c16b6888dda99ba641e999b9c9643c8]
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=f545ad4928fa1f27a3075265182b38a4f939a5f7]

(From OE-Core rev: d2812267e8546a1152b2a60bf8ce90d458ec7d11)

Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 83fa93b5fdb10a589bad2a9fc83552df8f1dbf28)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Ross Burton
9067e502b6 lighttpd: backport a fix for CVE-2022-22707
Backport the fix for CVE-2022-22707, a buffer overflow in mod_extforward.

(From OE-Core rev: 6e90764934722e527c3a326faa62054e68e4d2f6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7758596613cc442f647fd4625b36532f30e6129f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Ross Burton
b262b5cdf8 vim: update to include latest CVE fixes
Update the version to 4.2.4118, which incorporates the following CVE
fixes:

- CVE-2021-4187
- CVE-2022-0128
- CVE-2022-0156
- CVE-2022-0158

Also remove the explicit whitelisting of CVE-2021-3968 as this is now
handled with an accurate CPE specifying the fixed version.

(From OE-Core rev: 10e6043aa5a11675127760097580b78a8cac4515)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 764519ad0da6b881918667ca272fcc273b56168a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Ross Burton
94483d6607 vim: upgrade to 8.2 patch 3752
There's a fairly constant flow of CVEs being fixed in Vim, which are
getting increasing non-trivial to backport.

Instead of trying to backport (and potentially introduce more bugs), or
just ignoring them entirely, upgrade vim to the latest patch in the hope
that vim 8.3 will be released before we release Kirkstone.

(From OE-Core rev: c987c75ca06c67b6055c50a9fb29e4fd24aceffc)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 78a4796de27d710f97c336d288d797557a58694e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Richard Purdie
acac13b4b8 expat: Upgrade 2.4.2 -> 2.4.3
Primarily a security fix release which includes:

    CVE-2021-45960
    CVE-2021-46143
    CVE-2022-22822
    CVE-2022-22823
    CVE-2022-22824
    CVE-2022-22825
    CVE-2022-22826
    CVE-2022-22827

(From OE-Core rev: 226d8ae449366379c3f9704b0c9f284d9c3baf2d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9dbd9540f3e19d92ef38c8537792bd028ed174ad)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
wangmy
bf437d6a81 expat: upgrade 2.4.1 -> 2.4.2
Changelog:
=========
  #509 #510  Link againgst libm for function "isnan"
  #513 #514  Include expat_config.h as early as possible
       #498  Autotools: Include files with release archives:
               - buildconf.sh
               - fuzz/*.c
  #507 #519  Autotools: Sync CMake templates
  #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
               - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
               - multi-config CMake generators (e.g. Ninja Multi-Config)
  #502 #503  docs: Document that function XML_GetBuffer may return NULL
               when asking for a buffer of 0 (zero) bytes size
  #522 #523  docs: Fix return value docs for both
               XML_SetBillionLaughsAttackProtection* functions
  #525 #526  Version info bumped from 9:1:8 to 9:2:8;
               see https://verbump.de/ for what these numbers do

(From OE-Core rev: 2a5e1b617678c148d96f767493cb08e9cb2fc9e7)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 98a87bcfa50fc46ea86a085d330f5cbc41ddaaa5)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Kai Kang
5d0e1c73b7 speex: fix CVE-2020-23903
Backport patch to fix CVE-2020-23903.

CVE: CVE-2020-23903

(From OE-Core rev: 1818c3c24fcd42103468a3de01b35c6c9a8228bd)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b8f56e5e9eef32c1e01742f913e205d93548de1f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Marek Vasut
ea26055874 bootchart2: Add missing python3-math dependency
Without this dependency, generating the bootchart may fail with:
"
ModuleNotFoundError: No module named 'random'
"

(From OE-Core rev: 2dff7f8630e4db75fb6c57e165376e43eca7ba28)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Mingli Yu <mingli.yu@windriver.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 487e9f16a00f895159b79f1865fe8b626b47ddc2)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Bruce Ashfield
430388334f linux-yocto/5.10: update to v5.10.91
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    df395c763ba0 Linux 5.10.91
    674071c9eb26 Input: zinitix - make sure the IRQ is allocated before it gets enabled
    ef81f7d406c2 ARM: dts: gpio-ranges property is now required
    f63fa1a0d4df ipv6: raw: check passed optlen before reading
    cf07884e6bec drm/amd/display: Added power down for DCN10
    10b9ccd0674d mISDN: change function names to avoid conflicts
    dd8a09cfbb99 atlantic: Fix buff_ring OOB in aq_ring_rx_clean
    c2f4bb251eb4 net: udp: fix alignment problem in udp4_seq_show()
    f82b48d1d86b ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate
    8c87a83ef891 scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown()
    b798b677f94d usb: mtu3: fix interval value for intr and isoc
    498d77fc5e38 ipv6: Do cleanup if attribute validation fails in multipath route
    72b0d14a0a88 ipv6: Continue processing multipath route even if gateway attribute is invalid
    5a7d650bb181 power: bq25890: Enable continuous conversion for ADC at charging
    4f260ea5537d phonet: refcount leak in pep_sock_accep
    61952934608c rndis_host: support Hytera digital radios
    62cbde77d9c1 power: reset: ltc2952: Fix use of floating point literals
    998d157e3b2a power: supply: core: Break capacity loop
    16d8568378f9 xfs: map unwritten blocks in XFS_IOC_{ALLOC,FREE}SP just like fallocate
    aa606b82cdfb net: ena: Fix error handling when calculating max IO queues number
    e7f5480978fd net: ena: Fix undefined state when tx request id is out of bounds
    2de3d961f8e7 sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc
    4c34d5fd8c96 batman-adv: mcast: don't send link-local multicast to mcast routers
    f403b5f96e9a lwtunnel: Validate RTA_ENCAP_TYPE attribute length
    48d5adb08d60 ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route
    173bfa2782fa ipv6: Check attribute length for RTA_GATEWAY in multipath route
    914420a2a6c5 ipv4: Check attribute length for RTA_FLOW in multipath route
    a8fe915be6c2 ipv4: Check attribute length for RTA_GATEWAY in multipath route
    786a335fef18 ftrace/samples: Add missing prototypes direct functions
    c859c4de0bd7 i40e: Fix incorrect netdev's real number of RX/TX queues
    d0ad64438fb5 i40e: Fix for displaying message regarding NVM version
    32845aa60203 i40e: fix use-after-free in i40e_sync_filters_subtask()
    f7edb6b9438b sfc: The RX page_ring is optional
    2b3f34da0d79 mac80211: initialize variable have_higher_than_11mbit
    16e5cad6eca1 RDMA/uverbs: Check for null return of kmalloc_array
    a7c2cae997db netrom: fix copying in user data in nr_setsockopt
    beeb0fdedae8 RDMA/core: Don't infoleak GRH fields
    3ca132e6b065 iavf: Fix limit of total number of queues to active queues of VF
    396e3016905d i40e: Fix to not show opcode msg on unsuccessful VF MAC change
    7f13d14e563c ieee802154: atusb: fix uninit value in atusb_set_extended_addr
    7db1e245cb71 tracing: Tag trace_percpu_buffer as a percpu pointer
    760c6a625506 tracing: Fix check for trace_percpu_buffer validity in get_trace_buf()
    c1e2da4b3f72 selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv()
    384111e12367 f2fs: quota: fix potential deadlock

(From OE-Core rev: 029a3624f8a2f19bdde5fab6a9df10d422a010df)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 13b53d922df1a53913fbe7a0dfbf2adaedfe5dfd)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Bruce Ashfield
1f56141337 linux-yocto/5.10: amdgpu: updates for CVE-2021-42327
Integrating the following commit(s) to linux-yocto/5.10:

    fd84b99a8ccb drm/amd/display: Don't allow partial copy_from_user
    024f4ff63d55 drm/amdgpu: Fix even more out of bound writes from debugfs

(From OE-Core rev: 8e8c21e25c831f2279a2dbdc0bcc90cd7661d174)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f5488466ea1b332a0bfc0d27dcc5378edd842d16)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Mingli Yu
f33d89e0c2 socat: update SRC_URI
The orginal one is unaccessible now.

(From OE-Core rev: 0014b0d5d1fe503387ecbcc078916830a8e6c307)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Changqing Li
be73d9cb25 pigz: fix one failure of command "unpigz -l"
Refer [1], "unpigz -l" failed with error:
$ ./unpigz -l test.txt.gz
compressed original reduced name
228799 209715200 99.9% test.txt
unpigz: can't destroy locked resource (pigz.c:2622:mutex_destroy)
unpigz: abort: internal threads error

or

$ ./unpigz -l test.txt.gz
unpigz: skipping: test.txt.gz unrecognized format
unpigz: can't destroy locked resource (pigz.c:2622:mutex_destroy)
unpigz: abort: internal threads error

[1] https://github.com/madler/pigz/issues/96

(From OE-Core rev: b8e0bcecce31af29d04d4b694ebddb33b1e5710a)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-31 21:55:57 +00:00
Teoh Jay Shen
883341e9ca linux-yocto/5.14: update genericx86* machines to v5.14.21
(From meta-yocto rev: 937ecc5586d3d9067835223d32a0673b19698ed4)

(From meta-yocto rev: 50bf6f003226b5a2320b163c49e1ee93db23f176)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4bcf4ef32c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Teoh Jay Shen
bfd8a6ee41 linux-yocto/5.10: update genericx86* machines to v5.10.87
(From meta-yocto rev: 5f448324755c98306cce24305f25921454476ed0)

(From meta-yocto rev: 4d10a7ca0cb6fc866b5793892d7a25d09ee993ef)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0cb7772e9e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Sakib Sajal
20d421b802 go: upgrade 1.16.10 -> 1.16.13
Release 1.16.13 includes fixes for CVE-2021-44716 and CVE-2021-44717.

(From OE-Core rev: 5a904f0fd02613664aa8c03d6d4935a68c01bf35)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Changqing Li
f31a661847 libsndfile1: fix CVE-2021-4156
(From OE-Core rev: 6566b64a55079aab8fa9b252e919a158bc595615)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Bruce Ashfield
f1f159e1e5 linux-yocto/5.10: update to v5.10.90
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

d3e491a20d15 Linux 5.10.90
8c15bfb36a44 bpf: Add kconfig knob for disabling unpriv bpf by default
d8a5b1377bf6 perf script: Fix CPU filtering of a script's switch events
2386e81a1d27 net: fix use-after-free in tw_timer_handler
34087cf96046 Input: spaceball - fix parsing of movement data packets
9f329d0d6c91 Input: appletouch - initialize work before device registration
2a4f551dec1a scsi: vmw_pvscsi: Set residual data length conditionally
1cb8444f3114 binder: fix async_free_space accounting for empty parcels
a6e26251dd3a usb: mtu3: set interval of FS intr and isoc endpoint
3b6efe0b7ba0 usb: mtu3: fix list_head check warning
f10b01c48f85 usb: mtu3: add memory barrier before set GPD's HWO
1c4ace3e6b85 usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear.
1933fe8ce712 xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
b8553330a077 drm/amdgpu: add support for IP discovery gc_info table v2
28863ffe21ff drm/amdgpu: When the VCN(1.0) block is suspended, powergating is explicitly enabled
a0f3ac399ef5 uapi: fix linux/nfc.h userspace compilation errors
818c9e0a04df nfc: uapi: use kernel size_t to fix user-space builds
8d31cbab4c29 i2c: validate user data in compat ioctl
51c94d8fbd09 fsl/fman: Fix missing put_device() call in fman_port_probe
920932b20e0c net/ncsi: check for error return from call to nla_put_u32
610af55f9fbe selftests/net: udpgso_bench_tx: fix dst ip argument
78503589b1e0 net/mlx5e: Fix wrong features assignment in case of error
61146008087a ionic: Initialize the 'lif->dbid_inuse' bitmap
b7c9a1427b32 igc: Fix TX timestamp support for non-MSI-X platforms
e8a5988a85c7 net/smc: fix kernel panic caused by race of smc_sock
97c87c1db9ff net/smc: don't send CDC/LLC message if link not ready
99f19566b1c4 net/smc: improved fix wait on already cleared link
e553265ea564 NFC: st21nfca: Fix memory leak in device probe and remove
8d70dc0eecf0 net: lantiq_xrx200: fix statistics of received bytes
7ef89bd1e8f1 net: ag71xx: Fix a potential double free in error handling paths
40d36186913b net: usb: pegasus: Do not drop long Ethernet frames
a67becdaa8ad net/smc: fix using of uninitialized completions
769d14abd35e sctp: use call_rcu to free endpoint
13c1bf43b674 selftests: Calculate udpgso segment count without header adjustment
abe74fb43378 udp: using datalen to cap ipv6 udp max gso segments
5e6ad649e927 net/mlx5e: Fix ICOSQ recovery flow for XSK
73665165b64a net/mlx5e: Wrap the tx reporter dump callback to extract the sq
4cd1da02f0c3 net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources
fcb32eb3d04d scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write()
4833ad4908a1 selinux: initialize proto variable in selinux_ip_postroute_compat()
ec941a2277a1 recordmcount.pl: fix typo in s390 mcount regex
a0e82d5ef992 memblock: fix memblock_phys_alloc() section mismatch error
7da855e93964 platform/x86: apple-gmux: use resource_size() with res
d01e9ce1af61 parisc: Clear stale IIR value on instruction access rights trap
0643d9175dc6 tomoyo: use hwight16() in tomoyo_domain_quota_is_ok()
e2048a1f9186 tomoyo: Check exceeded quota early in tomoyo_domain_quota_is_ok().
210c7c6908f3 Input: i8042 - enable deferred probe quirk for ASUS UM325UA
bb672eff7447 Input: i8042 - add deferred probe support

(From OE-Core rev: a729a56973fcfa8b016cd4768b75b2e9ee16a771)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ada52c924b8033939a448d8cedfc4e587bfdbc46)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Bruce Ashfield
8376d6768f linux-yocto/5.10/cfg: add kcov feature fragment
Integrating the following commit(s) to linux-yocto:

41721be8a03 cfg/debug: add kcov kernel configs

(From OE-Core rev: 08e7077614ef010b74577fc0e183ce6f553ea5ad)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6a11ed0910a9ed231bc3c4a9ee532358014ce535)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Bruce Ashfield
c5f192e02f linux-yocto/5.14: fix arm 32bit -rt warnings
Integrating the following commit(s):

f9e349e1745 preempt-rt.scc: arm should come after ftrace
25f5db372ac drivers-zynq.cfg: update CONFIG_NET_CADENCE option

(From OE-Core rev: 182332fd5c2080942dd53862e76459677194347b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 704720e28f67e880998d4dab85b366cb7f1a4ce3)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Bruce Ashfield
8c111bb27c linux-yocto/5.10: update to v5.10.89
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

eb967e323f7f Linux 5.10.89
52ad5da8e316 phonet/pep: refuse to enable an unbound pipe
7dd52af1eb57 hamradio: improve the incomplete fix to avoid NPD
450121075a6a hamradio: defer ax25 kfree after unregister_netdev
8e34d07dd4d9 ax25: NPD bug when detaching AX25 device
50f78486f90b hwmon: (lm90) Do not report 'busy' status bit as alarm
ec1d222d37ea hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681
441d3873664d pinctrl: mediatek: fix global-out-of-bounds issue
9c75a9657bdc ASoC: rt5682: fix the wrong jack type detected
94caab5af19a ASoC: tas2770: Fix setting of high sample rates
c7282790c782 Input: goodix - add id->model mapping for the "9111" model
3bb3bf50d69f Input: elants_i2c - do not check Remark ID on eKTH3900/eKTH5312
ee6f34215c5d mm: mempolicy: fix THP allocations escaping mempolicy restrictions
8008fc1d0be1 KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state
d91ed251fd70 usb: gadget: u_ether: fix race in setting MAC address in setup phase
6697f29bf56b ceph: fix up non-directory creation in SGID directories
fffb6581a23a f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr()
ad338d825e3f tee: optee: Fix incorrect page free bug
1f2070767401 mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page()
ac61b9c6c054 mac80211: fix locking in ieee80211_start_ap error path
89876d10830d ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling
c3253d3a38bc mmc: mmci: stm32: clear DLYB_CR after sending tuning command
0d66b395210c mmc: core: Disable card detect during shutdown
c8e366a01c20 mmc: meson-mx-sdhc: Set MANUAL_STOP for multi-block SDIO commands
4af79153617b mmc: sdhci-tegra: Fix switch to HS400ES mode
9a7ec7979785 gpio: dln2: Fix interrupts when replugging the device
f5b02912e2dd pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines
28626e76baf5 KVM: VMX: Wake vCPU when delivering posted IRQ even if vCPU == this vCPU
7a37f2e37069 platform/x86: intel_pmc_core: fix memleak on registration failure
b57afd124046 x86/pkey: Fix undefined behaviour with PKRU_WD_BIT
c05d8f66ec34 tee: handle lookup of shm with reference count 0
0ffb9f83e4f6 parisc: Fix mask used to select futex spinlock
5deeb9ad598b parisc: Correct completer in lws start
8b745616ba8f ipmi: fix initialization when workqueue allocation fails
1f6ab847461c ipmi: ssif: initialize ssif_info->client early
a5192f31160c ipmi: bail out if init_srcu_struct fails
bc674f1b2119 Input: atmel_mxt_ts - fix double free in mxt_read_info_block
30140e252fdb ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s
2b4c020b70cc ALSA: hda/realtek: Fix quirk for Clevo NJ51CU
7470780f3b0c ALSA: hda/realtek: Add new alc285-hp-amp-init model
4cb7dc2e3074 ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6
69e492161c7b ALSA: drivers: opl3: Fix incorrect use of vp->state
a96c08e0b41e ALSA: jack: Check the return value of kstrdup()
51c7b2a7b86a hwmon: (lm90) Drop critical attribute support for MAX6654
2464738d0ee4 hwmon: (lm90) Introduce flag indicating extended temperature support
196df56c3dc8 hwmon: (lm90) Add basic support for TI TMP461
fa2e149260bf hwmon: (lm90) Fix usage of CONFIG2 register in detect function
ba696b470839 pinctrl: bcm2835: Change init order for gpio hogs
676c572439e5 Input: elantech - fix stack out of bound access in elantech_change_report_id()
2792fde84cce sfc: falcon: Check null pointer of rx_queue->page_ring
d70b4001ef74 sfc: Check null pointer of rx_queue->page_ring
75c962f02a4f net: ks8851: Check for error irq
9db0f8d395fd drivers: net: smc911x: Check for error irq
ca2a15053b07 fjes: Check for error irq
c6d2754006c1 bonding: fix ad_actor_system option setting to default
6809da518514 ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module
61e6b82e7b6c igb: fix deadlock caused by taking RTNL in RPM resume path
e00eace2325c net: skip virtio_net_hdr_set_proto if protocol already set
ed05e4dcfba6 net: accept UFOv6 packages in virtio_net_hdr_to_skb
56b0bbba782b qlcnic: potential dereference null pointer of rx_queue->page_ring
78e49d77e517 net: marvell: prestera: fix incorrect return of port_find
861b4413e41d ARM: dts: imx6qdl-wandboard: Fix Ethernet support
d79f5e0d458b netfilter: fix regression in looped (broad|multi)cast's MAC handling
579cefef7c42 RDMA/hns: Replace kfree() with kvfree()
7cf6466e00a7 IB/qib: Fix memory leak in qib_user_sdma_queue_pkts()
cd9c90682b2f ASoC: meson: aiu: fifo: Add missing dma_coerce_mask_and_coherent()
580ecf86e772 spi: change clk_disable_unprepare to clk_unprepare
93a957bbf46c arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode
ef2dce43257d HID: potential dereference of null pointer
3110bc5862d2 HID: holtek: fix mouse probing
0875873b2a97 ext4: check for inconsistent extents between index and leaf block
76366c024f56 ext4: check for out-of-order index extents in ext4_valid_extent_entries()
1d4b1c4e8bbd ext4: prevent partial update of the extent blocks
f69a47fcbb9c net: usb: lan78xx: add Allied Telesis AT29M2-AF
8c0059a25cb1 arm64: vdso32: require CROSS_COMPILE_COMPAT for gcc+bfd
b16b124a42e0 arm64: vdso32: drop -no-integrated-as flag
856f88f27bbc Linux 5.10.88
88f20cccbeec xen/netback: don't queue unlimited number of packages
525875c410df xen/netback: fix rx queue stall detection
8fa3a370cc2a xen/console: harden hvc_xen against event channel storms
d31b3379179d xen/netfront: harden netfront against event channel storms
8ac3b6ee7c9f xen/blkfront: harden blkfront against event channel storms
76ec7fe2d866 Revert "xsk: Do not sleep in poll() when need_wakeup set"
e24fc8983025 bus: ti-sysc: Fix variable set but not used warning for reinit_modules
70692b06208c rcu: Mark accesses to rcu_state.n_force_qs
a9078e791426 scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select()
bdb854f134b9 scsi: scsi_debug: Fix type in min_t to avoid stack OOB
aa1f912712a1 scsi: scsi_debug: Don't call kcalloc() if size arg is zero
6859985a2fbd ovl: fix warning in ovl_create_real()
5fd7d62daa24 fuse: annotate lock in fuse_reverse_inval_entry()
b99bdf127af9 media: mxl111sf: change mutex_init() location
0413f7a1a533 xsk: Do not sleep in poll() when need_wakeup set
6b8d8ecdd980 ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name
8affa1b68db6 Input: touchscreen - avoid bitwise vs logical OR warning
aec5897b277b drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE
c1d519263ded libata: if T_LENGTH is zero, dma direction should be DMA_NONE
a9f2c6af5a60 timekeeping: Really make sure wall_to_monotonic isn't positive
6471ebcd6f15 serial: 8250_fintek: Fix garbled text for console
a7c80674538f iocost: Fix divide-by-zero on donation from low hweight cgroup
bcebb8eb1948 zonefs: add MODULE_ALIAS_FS
1c414ff63b2d btrfs: fix double free of anon_dev after failure to create subvolume
005d9292b5b2 btrfs: fix memory leak in __add_inode_ref()
cd98cb5216a0 USB: serial: option: add Telit FN990 compositions
5c93584d9a2f USB: serial: cp210x: fix CP2105 GPIO registration
8f207f12630b usb: xhci: Extend support for runtime power management for AMD's Yellow carp.
e5949933f313 PCI/MSI: Mask MSI-X vectors only on success
f8aa09186c30 PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error
d17c5a389768 usb: dwc2: fix STM ID/VBUS detection startup delay in dwc2_driver_probe
2b2edc8fc5a8 USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04)
fd623e16b2ff tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous
9439fabfc349 KVM: x86: Drop guest CPUID check for host initiated writes to MSR_IA32_PERF_CAPABILITIES
5fe305c6d485 Revert "usb: early: convert to readl_poll_timeout_atomic()"
2b54f485f2c1 USB: gadget: bRequestType is a bitfield, not a enum
151ffac3ac27 powerpc/85xx: Fix oops when CONFIG_FSL_PMC=n
fcf9194d366c bpf, selftests: Fix racing issue in btf_skc_cls_ingress test
6f46c59e60b6 sit: do not call ipip6_dev_free() from sit_init_net()
6e1011cd183f net: systemport: Add global locking for descriptor lifecycle
d1765f984c99 net/smc: Prevent smc_release() from long blocking
337bb7bf7c31 net: Fix double 0x prefix print in SKB dump
734a3f310605 sfc_ef100: potential dereference of null pointer
7da349f07e45 net/packet: rx_owner_map depends on pg_vec
1a34fb9e2bf3 netdevsim: Zero-initialize memory for new map's value in function nsim_bpf_map_alloc
d3e1f54508f1 ixgbe: set X550 MDIO speed before talking to PHY
48e01e388182 ixgbe: Document how to enable NBASE-T support
776ed8b36697 igc: Fix typo in i225 LTR functions
74a16e062b23 igbvf: fix double free in `igbvf_probe`
ddac50d04f34 igb: Fix removal of unicast MAC filters of VFs
12c1938870dc soc/tegra: fuse: Fix bitwise vs. logical OR warning
451f1eded7f5 mptcp: clear 'kern' flag from fallback sockets
222cebd995cd drm/amd/pm: fix a potential gpu_metrics_table memory leak
74dc97dfb276 rds: memory leak in __rds_conn_create()
67f4362ae286 flow_offload: return EOPNOTSUPP for the unsupported mpls action type
03fd6ca05601 mac80211: fix lookup when adding AddBA extension element
bef59d6a83d3 mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock
96bc86cac0a9 drm/ast: potential dereference of null pointer
cac0fd4b9bd3 selftest/net/forwarding: declare NETIFS p9 p10
81fbdd45652d net/sched: sch_ets: don't remove idle classes from the round-robin list
be32c8a78887 dmaengine: st_fdma: fix MODULE_ALIAS
dfff1d5e85ff selftests: Fix IPv6 address bind tests
08896ecfffc3 selftests: Fix raw socket bind tests with VRF
5ba4dfb8b8a1 selftests: Add duplicate config only for MD5 VRF tests
12512bc8f25b net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg
3a4f6dba1eb9 inet_diag: fix kernel-infoleak for UDP sockets
20ad1ef02f9a sch_cake: do not call cake_destroy() from cake_init()
1208b445a497 s390/kexec_file: fix error handling when applying relocations
c058c544e73a selftests: net: Correct ping6 expected rc from 2 to 1
9983425c203b virtio/vsock: fix the transport to work with VMADDR_CID_ANY
94a01e6fb2d8 soc: imx: Register SoC device only on i.MX boards
cc426a91d384 clk: Don't parent clks until the parent is fully registered
429bb01e4dda ARM: socfpga: dts: fix qspi node compatible
7b4cc168d9ca ceph: initialize pathlen variable in reconnect_caps_cb
e0f06c32afb2 ceph: fix duplicate increment of opened_inodes metric
640e28d618e8 tee: amdtee: fix an IS_ERR() vs NULL bug
eed897a22230 mac80211: track only QoS data frames for admission control
24983f750881 arm64: dts: rockchip: fix audio-supply for Rock Pi 4
49bd597719bf arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply
9fcdbbf3964d arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply
ba866840b240 arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-edge
3516bc149223 arm64: dts: imx8mp-evk: Improve the Ethernet PHY description
06294e7e341a arm64: dts: imx8m: correct assigned clocks for FEC
4cc6badff97f audit: improve robustness of the audit queue handling
0e21e6cd5eeb dm btree remove: fix use after free in rebalance_children()
f5187a9d52ae recordmcount.pl: look for jgnop instruction as well as bcrl on s390
51f6302f81d2 vdpa: check that offsets are within bounds
e3a1ab5aea4c virtio_ring: Fix querying of maximum DMA mapping size for virtio device
0612679e48d0 bpf, selftests: Add test case trying to taint map value pointer
279e0bf80d95 bpf: Make 32->64 bounds propagation slightly more robust
e2aad0b5f2cb bpf: Fix signed bounds propagation after mov32
f0f484714f35 firmware: arm_scpi: Fix string overflow in SCPI genpd driver
7fd214fc7f2e mac80211: validate extended element ID is present
0bb50470f1e0 mac80211: send ADDBA requests using the tid/queue of the aggregation session
29bb131dbbb5 mac80211: mark TX-during-stop for TX in in_reconfig
15640e40e3bb mac80211: fix regression in SSN handling of addba tx
49b7e496928e KVM: downgrade two BUG_ONs to WARN_ON_ONCE
8d0f56c2ed71 KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE

(From OE-Core rev: 249b07715eccfb9f28fbc752c948cf4f19b8bb09)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8710dca273bada79536e84ad3c206bd1b40aab97)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Richard Purdie
04399541c4 oeqa/sstate: Fix allarch samesigs test
The allarch sstate sigs test is supposed to compare the allarch sigs but
does not. Fix this.

Also rename the common function to make it clear it isn't just used by
the allarch test.

(From OE-Core rev: 93a2c497368b56c912d6c9b06f18551cc8c6ddc8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 549597d422c7bcb467f34139ff25d2bee96bf851)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Peter Kjellerstedt
48f3094c24 rootfs-postcommands.bbclass: Make two comments use the new variable syntax
(From OE-Core rev: 5293916ac660c4cfd6304826fb10de1454a40bf5)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cb17cccaf2f51558bd1d320559bd792d5869688e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Ross Burton
f4ccd33a7b xserver-xorg: whitelist two CVEs
CVE-2011-4613 is specific to Debian/Ubuntu.

CVE-2020-25697 is a non-trivial attack that may not actually be feasible
considering the default behaviour for clients is to exit if the
connection is lost.

(From OE-Core rev: cd14ceef48aff3186abd0c32165827f99be26622)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit afa2e6c31a79f75ff4113d53f618bbb349cd6c17)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:58 +00:00
Konrad Weihmann
79a6976be6 cve-check: add lockfile to task
this should prevent running into the very rare error
sqlite3.OperationalError: attempt to write a readonly database

As highlighted by https://www.sqlite.org/faq.html#q5
it is likely that the adapter won't allow use multiple exec calls
at the same time.

So it's best to prevent multiple accesses at a time, by reusing
the already in place CVE_CHECK_DB_FILE_LOCK

YOCTO #14110

(From OE-Core rev: 53dc9b10eb5f064c68120337126f1542c1e0c832)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 677f5741bd265be49d4a5bb933b3e8d8c4eec653)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:57 +00:00
Alexander Kanavin
c5d4475bb3 lib/oe/reproducible: correctly set .git location when recursively looking for git repos
(From OE-Core rev: 1b41f1a38d43c1f0ef351bd6959a77821886a8b6)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ffdaa1a0527691d66dd28e86bd015bfad7a020f6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:57 +00:00
Khairul Rohaizzat Jamaluddin
aab915c69a epiphany: Update 40.3 -> 40.6
40.4 Changelogs:
Fix crash when clearing all passwords (#1570)
Fix security indicator disappearing after entering reader mode (#1580)
Fix crash opening PDFs not loaded via HTTP (#1611)
Fix CVE-2021-45085, CVE-2021-45086, CVE-2021-45087, CVE-2021-45088 (#1612)
Fix web applications with non-Latin characters (#1626, #1627)
Disable captive portal helper in Pantheon desktop (!1006, Cassidy James Blaede)
Somewhat improve password manager robustness (!1014)

40.5 Changelogs:
Fix reader mode (!1047)

40.6 Changelogs:
Fix Reload buttons on error pages (!1050)
Fix delete button in about:applications (!1050)

CVE: CVE-2021-45085 CVE-2021-45086 CVE-2021-45087 CVE-2021-45088

(From OE-Core rev: 25b1c078dfa15fd7760c6bd2f5908d9373cca5dc)

Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-19 11:11:57 +00:00
Tim Orling
2fbc7f5af1 scripts/buildhistory-diff: drop use of distutils
The use of distutils.version.LooseVersion to check for GitPython > 0.3.1
is not really needed anymore since any supported distribution has at least
1.0.0 (centos-7 via epel7, debian-9, ubuntu-16.04)

If we want to reinstate this check, alternatives would be to require
python3-packaging on all hosts and use packaging.version.Version or
use an imported LooseVersion in bb.version.

[YOCTO #14610]

(From OE-Core rev: 298222353584776afc1dfe17abc5916b4ada40de)

Signed-off-by: Tim Orling <timothy.t.orling@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bc90dcae9f53ddc246942f4d9b8ae8943e3b9754)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Richard Purdie
849234d3dd scripts: Update to use exec_module() instead of load_module()
This is deprecated in python 3.12 and Fedora 35 is throwing warnings so
move to the new functions.

(From OE-Core rev: 6b9c12fab3b1319b6b0e59ed596d4a586a678ef2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 655cd3f614d736416eab0d708b7c49674bf5c977)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Markus Volk
d6423d8842 vulkan-loader: inherit pkgconfig
this is needed to get the vulkan.pc file created

(From OE-Core rev: 697e63590636204a7f8348a9cd165351be4688ba)

Signed-off-by: MarkusVolk <f_l_k@t-online.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1eaf810efca0dd8be5d561bab46c1998b96061c1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Richard Purdie
d0c17bff67 webkitgtk: Add reproducibility fix
When the date rolled from one year to another this highlighted a reproducibility
issue. This could be better fixed by using SOURCE_DATE_EPOCH from the environment
but I'm not sure how you do that in ruby. Help from someone with that knowledge
to submit that upstream very welcome.

(From OE-Core rev: 99f8751a9b8a8dbc669594d57cf855130980f179)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4d561c98f4d2e68d595aae4b03df1420cb01c3f7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Richard Purdie
3731372bd1 openssl: Add reproducibility fix
When the date rolled from one year to another, it highlighted a reproducibility
issue in openssl. Patch a workaround for this to avoid autobuilder failures. Help
submitting upstream welcome.

(From OE-Core rev: 8666c89f44e5cebbba66019f3a85edc9176b922a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f8281e290737dba16a46d7ae937c66b3266e0fe8)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Samuli Piippo
edc072b889 rpm: remove tmp folder created during install
nativesdk-rpm build is also affected by the stray /var/tmp
created during the rpm install. Remove it to fix QA Issue:
nativesdk-rpm installs files in /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/var/volatile, but it is expected to be empty [empty-dirs]

(From OE-Core rev: 7d05ad298b0fc98c8ac9aef29d71ec2f948b5591)

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 28dd1e1a0965646c5736e3de91aad830311a797b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Yongxin Liu
a8736744df grub2: fix CVE-2021-3981
(From OE-Core rev: 4bdd5ca6e9f9561d80044eaececcfad71cd9262b)

Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bb554d14142f93c39fd1516a31757006531c348f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Oleksiy Obitotskyy
fde023fd62 package_manager: ipk: Fix host manifest generation
Since honister host manifest stopped to generate, i.e.
manifest file is empty but all ipks/files into sdk is
ok.

(From OE-Core rev: 011b7d4fa114141e9c18b827e2e86980236d3e7e)

Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 79a2392f5d2a4cb6509a83afb40bca01bac59914)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Anuj Mittal
b5224d5c53 xserver-xorg: update CVE_PRODUCT
Some of the CVEs have x_server as the product name.

(From OE-Core rev: 963459f2f1868e727f8a6a7d0288a8e709d385d9)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4d5d63cf8605515bb659b6b732683d7fe6540728)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 22:03:31 +00:00
Richard Purdie
6f86ba22e8 bitbake: utils: Update to use exec_module() instead of load_module()
This is deprecated in python 3.12 and Fedora 35 is throwing warnings so
move to the new functions.

(Bitbake rev: c039182c79e2ccc54fff5d7f4f266340014ca6e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 68a18fbcb5959e334cf307d7fa8dc63832edb942)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-11 21:34:11 +00:00
Ross Burton
ea55ecc610 linux-yocto: add libmpc-native to DEPENDS
5.10.85 changed how the GCC plugins are built, which means they now
depend on both GMP and MPC to be built. We already depend on gmp-native,
so add libmpc-native aswell.

(From OE-Core rev: 626e138ebf0b7d733f0099cc5a0d9534c1ae64c3)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-10 11:57:49 +00:00
Max Krummenacher
a55e7effcb ref-manual: fix patch documentation
The do_patch implementation does not apply patches from an entry in
SRC_URI pointing to a directory.
Remove the claim that this is implemented.

(From yocto-docs rev: 3061d3d62054a5c3b9e16bfce4bcd186fa7a23d2)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-07 11:12:42 +00:00
Richard Purdie
b41d8d65d5 bitbake: tests/fetch: Drop gnu urls from wget connectivity test
These urls are no longer adding much to the test coverage but the intermittent
network issues connecting to them are painful. Drop the urls.

(Bitbake rev: 92a16b425fee5f0c46122eb126ecd8b381cf1ec5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bdf5739c5d831dc97a7d81568f94a0953c71017f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-05 17:36:26 +00:00
Stefan Herbrechtsmeier
0fb31e3238 bitbake: fetch: npm: Use temporary file for empty user config
Always use a temporary file for the user config 'NPM_CONFIG_USERCONFIG'
because npm otherwise failed if configs and npmrc aren't set:

double-loading config "/dev/null" as "global", previously loaded as "user"

(Bitbake rev: 56f6e7b5f86f1dc630c50a67e9027c1798a56a34)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9f272ad7f76c1559e745e9af686d0a529f917659)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-05 17:36:26 +00:00
Stefan Herbrechtsmeier
9676f72521 bitbake: fetch: npm: Quote destdir in run chmod command
Quote destdir in run chmod command to support special characters in
package name and to avoid syntax error for packages like
'@(._.)/execute'.

(Bitbake rev: e5b8983bec98b33dab2706575b9e7763c102f720)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a701dfce3f0e74b4d7c687eeda83fe9c8e7240b1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-05 17:36:26 +00:00
Anton Mikanovich
dc53448274 bitbake: process: Do not mix stderr with stdout
We should not redirect stderr to stdout if we need to get separated
stdout and stderr contents from Popen.communicate() later.

(Bitbake rev: eef2355331e7e03b2c7615695694c5ba9877fb36)

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1ecc1d9424877df89fcda2f23c306998998a65ff)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-05 17:36:26 +00:00
Anuj Mittal
abd2189b32 xserver-xorg: upgrade 1.20.13 -> 1.20.14
Changelog:

Mario Kleiner (2):
      Fix RandR leasing for more than 1 simultaneously active lease.
      modesetting: Allow Present flips with mismatched stride on atomic drivers.

Povilas Kanapickas (4):
      record: Fix out of bounds access in SwapCreateRegister()
      xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier()
      Xext: Fix out of bounds access in SProcScreenSaverSuspend()
      render: Fix out of bounds access in SProcRenderCompositeGlyphs()

(From OE-Core rev: 4e732ef0d3c90952f14804f5fc41ea16304810af)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Chaitanya Vadrevu
298a434af8 python3-pyelftools: Depend on debugger, pprint
python3-pyelftools uses python3-debugger, python3-pprint.
So add dependencies on these packages.

(From OE-Core rev: 505f5d895da825453739126fedc9976644d77c7b)

Signed-off-by: Chaitanya Vadrevu <chaitanya.vadrevu@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 22e84cdd05870f1a19c6389b66c4dfd5e9b418f7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
pgowda
cedde50ff8 binutils: CVE-2021-42574
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=b3aa80b45c4f46029efeb204bb9f2d2c4278a0e5]

[RP: Merge uint -> unsigned int change]
(From OE-Core rev: 6870388244cd80aeb53df089f47d12503e3b8231)

Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fa242a41f3436f1d73eabee335573c1801bf7888)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
wangmy
bf46aeb5a7 linux-firmware: upgrade 20211027 -> 20211216
License-Update: version of license file updated.

(From OE-Core rev: 5170d6e0be3775376d08bd5129686ec53661786e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 07dc668ddc50de14821aff1b6850d8b4999702bd)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Bruce Ashfield
520c9d1817 linux-yocto/5.10: update to v5.10.87
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

272aedd4a305 Linux 5.10.87
8dd559d53b3b arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM
65c578935bcc arm: extend pfn_valid to take into account freed memory map alignment
6e634c0e7155 memblock: ensure there is no overflow in memblock_overlaps_region()
74551f13c62f memblock: align freed memory map on pageblock boundaries with SPARSEMEM
b4b54c7ba149 memblock: free_unused_memmap: use pageblock units instead of MAX_ORDER
b6a1cbd187fc perf intel-pt: Fix error timestamp setting on the decoder error path
0612aa02c2c8 perf intel-pt: Fix missing 'instruction' events with 'q' option
71c795028b31 perf intel-pt: Fix next 'err' value, walking trace
02681dd1780a perf intel-pt: Fix state setting when receiving overflow (OVF) packet
cbed09b44ce0 perf intel-pt: Fix intel_pt_fup_event() assumptions about setting state type
3bb7fd4be8c4 perf intel-pt: Fix sync state when a PSB (synchronization) packet is found
731ff7884138 perf intel-pt: Fix some PGE (packet generation enable/control flow packets) usage
b23f9252a41d perf inject: Fix itrace space allowed for new attributes
7c26da3be1e9 ethtool: do not perform operations on net devices being unregistered
6992d8c215c8 hwmon: (dell-smm) Fix warning on /proc/i8k creation error
c31470a30c0d fuse: make sure reclaim doesn't write the inode
613725436e69 bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc
9099f3512678 staging: most: dim2: use device release method
ac76adc87a78 KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req
6f0d9d3e74dc tracing: Fix a kmemleak false positive in tracing_map
f35f7f04aa80 drm/amd/display: add connector type check for CRC source set
dd3cea342522 drm/amd/display: Fix for the no Audio bug with Tiled Displays
dadce61247c6 net: netlink: af_netlink: Prevent empty skb by adding a check on len.
bca6af4325d6 i2c: rk3x: Handle a spurious start completion interrupt flag
d6edec8a7b55 parisc/agp: Annotate parisc agp init functions with __init
cf520ccffd9a ALSA: hda/hdmi: fix HDA codec entry table order for ADL-P
701a07fd0274 ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
6d22a96d12d7 net/mlx4_en: Update reported link modes for 1/10G
999069d8b040 Revert "tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP"
27f4ce02b31a s390/test_unwind: use raw opcode instead of invalid instruction
9eab949e2b90 KVM: arm64: Save PSTATE early on exit
990fd815ec88 drm/msm/dsi: set default num_data_lanes
c602863ad28e nfc: fix segfault in nfc_genl_dump_devices_done
37050f17f2d2 Linux 5.10.86
32414491834c netfilter: selftest: conntrack_vrf.sh: fix file permission

(From OE-Core rev: b185cba0e223f6308dc820950522bb01094ad258)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 41e6433af247105b9430d5fe2ef3e32624d6ed76)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Bruce Ashfield
5f6014d4b7 linux-yocto/5.10: update to v5.10.85
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

e4f2aee6612e Linux 5.10.85
47301c06f602 Documentation/Kbuild: Remove references to gcc-plugin.sh
af5ba49cf705 MAINTAINERS: adjust GCC PLUGINS after gcc-plugin.sh removal
ad13421fd2cd doc: gcc-plugins: update gcc-plugins.rst
9fc17c3af56c kbuild: simplify GCC_PLUGINS enablement in dummy-tools/gcc
d428e5477493 bpf: Add selftests to cover packet access corner cases
0ec0eda3f3c3 misc: fastrpc: fix improper packet size calculation
261d45a4c254 irqchip: nvic: Fix offset for Interrupt Priority Offsets
cd946f0ebe78 irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL
e1c6611f822e irqchip/armada-370-xp: Fix support for Multi-MSI interrupts
8f3ed9deaaac irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc()
d530e9943d64 irqchip/aspeed-scu: Replace update_bits with write_bits.
014c2fa5dc49 csky: fix typo of fpu config macro
ee86d0bad80b iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove
c10c53419d8d iio: ad7768-1: Call iio_trigger_notify_done() on error
0f86c9e818e7 iio: adc: axp20x_adc: fix charging current reporting on AXP22x
af7fbb8c0b54 iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda
fff92f3712d7 iio: at91-sama5d2: Fix incorrect sign extension
a2545b147d23 iio: dln2: Check return value of devm_iio_trigger_register()
69ae78c1abe7 iio: dln2-adc: Fix lockdep complaint
416383999c66 iio: itg3200: Call iio_trigger_notify_done() on error
bc4d8367ed0d iio: kxsd9: Don't return error code in trigger handler
28ea539a311e iio: ltr501: Don't return error code in trigger handler
db12d9508536 iio: mma8452: Fix trigger reference couting
4e7852911084 iio: stk3310: Don't return error code in interrupt handler
5c4a0f307f2b iio: trigger: stm32-timer: fix MODULE_ALIAS
5de9c5b13062 iio: trigger: Fix reference counting
cbc04c0c9a67 iio: gyro: adxrs290: fix data signedness
fee8be5bde56 xhci: avoid race between disable slot command and host runtime suspend
1b43c9b65f6b usb: core: config: using bit mask instead of individual bits
74b6a6a239aa xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime suspending
ef284f086dd0 usb: core: config: fix validation of wMaxPacketValue entries
e4de8ca013f0 USB: gadget: zero allocate endpoint 0 buffers
7193ad3e50e5 USB: gadget: detect too-big endpoint 0 requests
63fc70bffa16 selftests/fib_tests: Rework fib_rp_filter_test()
126d1897cbff net/qla3xxx: fix an error code in ql_adapter_up()
5e663bcd9a37 net, neigh: clear whole pneigh_entry at alloc time
ae673832086e net: fec: only clear interrupt of handling queue in fec_enet_rx_queue()
83b16b9c441b net: altera: set a couple error code in probe()
385ffd31ebdb net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero
47322fddb41e tools build: Remove needless libpython-version feature check that breaks test-all fast path
42bea3a1b7f2 dt-bindings: net: Reintroduce PHY no lane swap binding
3f57215f748b Documentation/locking/locktypes: Update migrate_disable() bits.
77d255d28b34 perf tools: Fix SMT detection fast read path
391ca20ea16e Revert "PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge"
e5b7fb2198ab i40e: Fix NULL pointer dereference in i40e_dbg_dump_desc
347cc9b4d966 mtd: rawnand: fsmc: Fix timing computation
0b2e1fccdf48 mtd: rawnand: fsmc: Take instruction delay into account
57f290572f45 i40e: Fix pre-set max number of queues for VF
eb87117c27e7 i40e: Fix failed opcode appearing if handling messages from VF
82ed3829c937 clk: imx: use module_platform_driver
4d12546cf9e7 RDMA/hns: Do not destroy QP resources in the hw resetting phase
33f320c35d69 RDMA/hns: Do not halt commands during reset until later
4458938b297e ASoC: codecs: wcd934x: return correct value from mixer put
1089dac26c6b ASoC: codecs: wcd934x: handle channel mappping list correctly
83dae68fc00a ASoC: codecs: wsa881x: fix return values from kcontrol put
62e4dc5e130e ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer
2f4764fe3692 ASoC: rt5682: Fix crash due to out of scope stack vars
bdd8129c6605 PM: runtime: Fix pm_runtime_active() kerneldoc comment
661c4412c563 qede: validate non LSO skb length
c4d2d7c935a4 scsi: scsi_debug: Fix buffer size of REPORT ZONES command
1e434d2687e8 scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc()
5dfe61147442 block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2)
5f1f94c26b0d tracefs: Set all files to the same group ownership as the mount option
2ba0738f7117 net: mvpp2: fix XDP rx queues registering
47ffefd88abf aio: fix use-after-free due to missing POLLFREE handling
e4d19740bcca aio: keep poll requests on waitqueue until completed
fc2f636ffc44 signalfd: use wake_up_pollfree()
9f3acee7eac8 binder: use wake_up_pollfree()
8e04c8397bf9 wait: add wake_up_pollfree()
2f8eb4c4c8f6 libata: add horkage for ASMedia 1092
f76580d82c62 can: m_can: Disable and ignore ELO interrupt
703dde112021 can: pch_can: pch_can_rx_normal: fix use after free
2737d0bc21b6 drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence.
17edb38e76d6 clk: qcom: regmap-mux: fix parent clock lookup
172a98224418 mmc: renesas_sdhi: initialize variable properly when tuning
33204825cc2b tracefs: Have new files inherit the ownership of their parent
c520943a00ad nfsd: Fix nsfd startup race (again)
eeb0711801f5 nfsd: fix use-after-free due to delegation race
8b4264c27b82 md: fix update super 1.0 on rdev size change
caf9b352dc58 btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling
41b3cc57d626 btrfs: clear extent buffer uptodate when we fail to write it
75490bcbd076 scsi: qla2xxx: Format log strings only if needed
07977a3f3d55 ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*()
ad45babf7886 ALSA: pcm: oss: Limit the period size to 16MB
02b2b691b77c ALSA: pcm: oss: Fix negative period/buffer sizes
6760e6ddeb48 ALSA: hda/realtek: Fix quirk for TongFang PHxTxX1
7fe903d35492 ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform
3063ee5164e4 ALSA: ctl: Fix copy of updated id with element read/write
c581090228e3 mm: bdi: initialize bdi_min_ratio when bdi is unregistered
06368922f38f KVM: x86: Wait for IPIs to be delivered when handling Hyper-V TLB flush hypercall
2a51edaf5cc5 net/sched: fq_pie: prevent dismantle issue
4b7e90672af8 devlink: fix netns refcount leak in devlink_nl_cmd_reload()
9d683d14f600 IB/hfi1: Correct guard on eager buffer deallocation
2e2edebb5dd6 iavf: Fix reporting when setting descriptor count
aada0b3f3392 iavf: restore MSI state on reset
32a329b731a3 netfilter: conntrack: annotate data-races around ct->timeout
5e39de85b76e udp: using datalen to cap max gso segments
666521b3852d seg6: fix the iif in the IPv6 socket control block
484069b5de9d nfp: Fix memory leak in nfp_cpp_area_cache_add()
b1830ede16f8 bonding: make tx_rebalance_counter an atomic
a59df4ea7155 ice: ignore dropped packets during init
349e83c0cf67 bpf: Fix the off-by-two error in range markings
f26951db84a4 bpf, x86: Fix "no previous prototype" warning
74685aaecef0 vrf: don't run conntrack on vrf with !dflt qdisc
d5cf399a6dc3 selftests: netfilter: add a vrf+conntrack testcase
83ea620a1be8 nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done
f3d9114ac99f drm/amdkfd: fix boot failure when iommu is disabled in Picasso.
7508a9aa65b9 drm/amdgpu: init iommu after amdkfd device init
ac9db04ee32f drm/amdgpu: move iommu_resume before ip init/resume
fe9dca7dda61 drm/amdgpu: add amdgpu_amdkfd_resume_iommu
5d191b0976b7 drm/amdkfd: separate kfd_iommu_resume from kfd_resume
46dcf66d6e7a drm/amd/amdkfd: adjust dummy functions' placement
dded8d76a7dc x86/sme: Explicitly map new EFI memmap table as encrypted
923f4dc5df67 can: sja1000: fix use after free in ems_pcmcia_add_card()
819251da7178 can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct stats->{rx,tx}_errors counter
854a2bede1f0 can: kvaser_usb: get CAN clock frequency from device
2c08271f4ed0 IB/hfi1: Fix leak of rcvhdrtail_dummy_kvaddr
d87c10607b5b IB/hfi1: Fix early init panic
d60dd3685dc9 IB/hfi1: Insure use of smp_processor_id() is preempt disabled
05eb0e4a12b2 nft_set_pipapo: Fix bucket load in AVX2 lookup routine for six 8-bit groups
89f3edc98ffe HID: check for valid USB device for many HID drivers
889c39113f7e HID: wacom: fix problems when device is not a valid USB device
6272b17001e6 HID: bigbenff: prevent null pointer dereference
d877651afd60 HID: add USB_HID dependancy on some USB HID drivers
a7e9c5ddf562 HID: add USB_HID dependancy to hid-chicony
28989ed4d79e HID: add USB_HID dependancy to hid-prodikeys
61144329606c HID: add hid_is_usb() function to make it simpler for USB detection
2298d5edd837 HID: google: add eel USB id
12362cd3a409 HID: quirks: Add quirk for the Microsoft Surface 3 type-cover
cc97d7321595 gcc-plugins: fix gcc 11 indigestion with plugins...
1eee36a5520b gcc-plugins: simplify GCC plugin-dev capability test
518c3f98e57a usb: gadget: uvc: fix multiple opens

(From OE-Core rev: c62818d61b1c11e69c82f341f362550d12fd0d20)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c6503f8a57197826c4a939ca9212f075c156f14f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Bruce Ashfield
506f02545f linux-yocto/5.10: update to v5.10.84
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

a0582e24d371 Linux 5.10.84
e6edaf267793 ipmi: msghandler: Make symbol 'remove_work_wq' static
a8d18fb4d11b net/tls: Fix authentication failure in CCM mode
dbe73dace94c parisc: Mark cr16 CPU clocksource unstable on all SMP machines
01300d21505d iwlwifi: mvm: retry init flow if failed
a5d0a72b805e serial: 8250: Fix RTS modem control while in rs485 mode
f9802d7049f5 serial: 8250_pci: rewrite pericom_do_set_divisor()
50b06889c86f serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array
e1722acf4f0d serial: core: fix transmit-buffer reset and memleak
bda142bbeb31 serial: tegra: Change lower tolerance baud rate limit for tegra20 and tegra30
901f7e0aa4a6 serial: pl011: Add ACPI SBSA UART match id
946ded2287a0 tty: serial: msm_serial: Deactivate RX DMA for polling support
67d08450a08d x86/64/mm: Map all kernel memory into trampoline_pgd
b3a519b5a580 x86/tsc: Disable clocksource watchdog for TSC on qualified platorms
1ed4a8fd363c x86/tsc: Add a timer to make sure TSC_adjust is always checked
a92f044a9fcb usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect
6d8c191bf464 USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub
90c915051c3d xhci: Fix commad ring abort, write all 64 bits to CRCR register.
1235485c633e vgacon: Propagate console boot parameters before calling `vc_resize'
92b9113c6df0 parisc: Fix "make install" on newer debian releases
c27a548d3f29 parisc: Fix KBUILD_IMAGE for self-extracting kernel
92f309c838fc x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry()
4bbbc9c4f313 x86/pv: Switch SWAPGS to ALTERNATIVE
4d42b7bcf09d sched/uclamp: Fix rq->uclamp_max not set on first enqueue
2015ffa3a4c2 x86/xen: Add xenpv_restore_regs_and_return_to_usermode()
8b9279cad291 x86/entry: Use the correct fence macro after swapgs in kernel CR3
c8e341191849 x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword
64ca109bf875 KVM: VMX: Set failure code in prepare_vmcs02()
60ce9a754060 KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register
cfebd5a277ad atlantic: Remove warn trace message.
95f6fae9a0db atlantic: Fix statistics logic for production hardware
695d9c6bc671 Remove Half duplex mode speed capabilities.
0c67e7b98fab atlantic: Add missing DIDs and fix 115c.
ca350298bccb atlantic: Fix to display FW bundle version instead of FW mac version.
93a4f3f4fdb5 atlatnic: enable Nbase-t speeds with base-t
44812111a3b1 atlantic: Increase delay for fw transactions
13f290d5aa4a drm/msm: Do hw_init() before capturing GPU state
d646856a600e drm/msm/a6xx: Allocate enough space for GMU registers
a792b3d56438 net/smc: Keep smc_close_final rc during active close
e226180acc49 net/rds: correct socket tunable error in rds_tcp_tune()
77731fede297 net/smc: fix wrong list_del in smc_lgr_cleanup_early
9a40a1e0eb50 ipv4: convert fib_num_tclassid_users to atomic_t
fa973bf5fd0f net: annotate data-races on txq->xmit_lock_owner
e26dab79e16b dpaa2-eth: destroy workqueue at the end of remove function
dde240695d97 net: marvell: mvpp2: Fix the computation of shared CPUs
3260b8d12057 net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ is available
acef1c2b1596 ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
60f0b9c42cb8 rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer()
35b40f724c4e rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle()
4afb32090a15 ASoC: tegra: Fix kcontrol put callback in AHUB
fe4eb5297ac3 ASoC: tegra: Fix kcontrol put callback in DSPK
256aa15aac6d ASoC: tegra: Fix kcontrol put callback in DMIC
1cf1f9a1f3ed ASoC: tegra: Fix kcontrol put callback in I2S
0ee53a1d8889 ASoC: tegra: Fix kcontrol put callback in ADMAIF
e6fb4c3fd35b ASoC: tegra: Fix wrong value type in DSPK
0265ef0dff5e ASoC: tegra: Fix wrong value type in DMIC
e66e75fb2278 ASoC: tegra: Fix wrong value type in I2S
6b54c0d845e5 ASoC: tegra: Fix wrong value type in ADMAIF
932b338f4e5c mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode
a0335cda6d92 selftests: net: Correct case name
f1d43efa59f1 net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources()
59d2dc771006 arm64: ftrace: add missing BTIs
ef55f0f8af2b siphash: use _unaligned version by default
fd52e1f8c093 net: mpls: Fix notifications when deleting a device
15fa12c119f8 net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings()
c6f340a331fb tcp: fix page frag corruption on page fault
aa6c393a3c3f natsemi: xtensa: fix section mismatch warnings
289ee320b5ed i2c: cbus-gpio: set atomic transfer callback
58d5c53f2589 i2c: stm32f7: stop dma transfer in case of NACK
c22124491752 i2c: stm32f7: recover the bus on access timeout
8de6ea757c88 i2c: stm32f7: flush TX FIFO upon transfer errors
1c75779dd90c wireguard: ratelimiter: use kvcalloc() instead of kvzalloc()
cb2d7c1992cb wireguard: receive: drop handshakes if queue lock is contended
8a29a50dbdb1 wireguard: receive: use ring buffer for incoming handshakes
e3be118327a1 wireguard: device: reset peer src endpoint when netns exits
f7b6672fab70 wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST
0584bf51c315 wireguard: selftests: actually test for routing loops
3d1dc3c67773 wireguard: allowedips: add missing __rcu annotation to satisfy sparse
4caf965f6cbe wireguard: selftests: increase default dmesg log size
3d73021f8d74 tracing/histograms: String compares should not care about signed values
d4af6d974951 KVM: X86: Use vcpu->arch.walk_mmu for kvm_mmu_invlpg()
c71b5f37b5ff KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1
5f33887a3682 KVM: x86: Use a stable condition around all VT-d PI paths
7722e8850522 KVM: nVMX: Flush current VPID (L1 vs. L2) for KVM_REQ_TLB_FLUSH_GUEST
6a44f200f1f1 KVM: Disallow user memslot with size that exceeds "unsigned long"
775191dd4c1b drm/amd/display: Allow DSC on supported MST branch devices
209d35ee34e2 ipv6: fix memory leak in fib6_rule_suppress
16c242b09106 sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl
4a46b2f5dce0 sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl
4baba6ba56eb fget: check that the fd still exists after getting a ref to it
80bfed369be9 s390/pci: move pseudo-MMIO to prevent MIO overlap
92283c2728a9 cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink()
f717f29e8468 ipmi: Move remove_work to dedicated workqueue
de4f5eb02cfe rt2x00: do not mark device gone on EPROTO errors during start
c200721f8eda kprobes: Limit max data_size of the kretprobe instances
2a74c13dfe83 vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit
136cabf15779 ACPI: Add stubs for wakeup handler functions
cc443ac5bb31 net/smc: Avoid warning of possible recursive locking
ff061b5bda73 perf report: Fix memory leaks around perf_tip()
a4c17ebdd624 perf hist: Fix memory leak of a perf_hpp_fmt
d9b72274f32a perf inject: Fix ARM SPE handling
2c15d2a6ba27 net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock()
f059fa40f0fc net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound
4d5968ea06fb ipv6: check return value of ipv6_skip_exthdr
22519eff7df2 ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port()
9a32d3c08d8e ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile
c746945fb6bc drm/amd/amdgpu: fix potential memleak
74aafe99efb6 drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again
f0c9f49b0caf scsi: iscsi: Unblock session then wake up error handler
bc8c423a286a thermal: core: Reset previous low and high trip during thermal zone init
8e4d2ac4348a btrfs: check-integrity: fix a warning on write caching disabled disk
039572290531 s390/setup: avoid using memblock_enforce_memory_limit
fd1e70ef65ee platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
226b21ad01ae platform/x86: thinkpad_acpi: Add support for dual fan control
3fc88660ede6 net: return correct error code
2c514d25003a atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait
ff6eeb627898 net/smc: Transfer remaining wait queue entries during fallback
e1a165599aad mac80211: do not access the IV when it was stripped
c386d7aa59f5 drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY
57e36973fadb powerpc/pseries/ddw: Revert "Extend upper limit for huge DMA window for persistent memory"
7b2b7e03e8ea gfs2: Fix length of holes reported at end-of-file
664cceab6f70 gfs2: release iopen glock early in evict
bcce010f9230 ovl: fix deadlock in splice write
dca4f9a58196 ovl: simplify file splice
7774dd934a65 can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM
60ae63ef194a NFSv42: Fix pagecache invalidation after COPY/CLONE
a324ad794566 Linux 5.10.83
45b42cd05391 drm/amdgpu/gfx9: switch to golden tsc registers for renoir+
98b02755d544 net: stmmac: platform: fix build warning when with !CONFIG_PM_SLEEP
a15261d2a121 shm: extend forced shm destroy to support objects from several IPC nses
aa20e966d8a1 s390/mm: validate VMA in PGSTE manipulation functions
a94e4a7b77ed tty: hvc: replace BUG_ON() with negative return value
1c5f722a8fdf xen/netfront: don't trust the backend response data blindly
334b0f278761 xen/netfront: disentangle tx_skb_freelist
e17ee047eea7 xen/netfront: don't read data from request on the ring page
f5e493709800 xen/netfront: read response from backend only once
1ffb20f0527d xen/blkfront: don't trust the backend response data blindly
8e147855fcf2 xen/blkfront: don't take local copy of a request from the ring page
273f04d5d135 xen/blkfront: read response from backend only once
b98284aa3fc5 xen: sync include/xen/interface/io/ring.h with Xen's newest version
406f2d5fe368 tracing: Check pid filtering when creating events
4fd0ad08ee33 vhost/vsock: fix incorrect used length reported to the guest
fbc0514e1a34 iommu/amd: Clarify AMD IOMMUv2 initialization messages
5655b8bccb8a smb3: do not error on fsync when readonly
c380062d0850 ceph: properly handle statfs on multifs setups
22423c966e02 f2fs: set SBI_NEED_FSCK flag when inconsistent node block found
e6ee7abd6bfe sched/scs: Reset task stack state in bringup_cpu()
71e38a0c7cf8 tcp: correctly handle increased zerocopy args struct size
72f2117e450b net: mscc: ocelot: correctly report the timestamping RX filters in ethtool
73115a2b38dd net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP
62343dadbb96 net: hns3: fix VF RSS failed problem after PF enable multi-TCs
215167df4512 net/smc: Don't call clcsock shutdown twice when smc shutdown
6e800ee43218 net: vlan: fix underflow for the real_dev refcnt
ae2659d2c670 net/sched: sch_ets: don't peek at classes beyond 'nbands'
e3509feb46fa tls: fix replacing proto_ops
22156242b104 tls: splice_read: fix record type check
3b6c71c097da MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48
a6a5d853f1e6 MIPS: loongson64: fix FTLB configuration
5e823dbee23c igb: fix netpoll exit with traffic
f2a58ff3e3ad nvmet: use IOCB_NOWAIT only if the filesystem supports it
12ceb52f2cc4 net/smc: Fix loop in smc_listen
c94cbd262b6a net/smc: Fix NULL pointer dereferencing in smc_vlan_by_tcpsk()
3d4937c6a328 net: phylink: Force retrigger in case of latched link-fail indicator
50162ff3c80f net: phylink: Force link down and retrigger resolve on interface change
95ba8f0d57ce lan743x: fix deadlock in lan743x_phy_link_status_change()
c5e4316d9c02 tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows
318762309609 drm/amd/display: Set plane update flags for all planes in reset
f634c755a0ee PM: hibernate: use correct mode for swsusp_close()
440bd9faad29 net/ncsi : Add payload to be 32-bit aligned to fix dropped packets
ac88cb3c44b6 nvmet-tcp: fix incomplete data digest send
8889ff80fde3 net: marvell: mvpp2: increase MTU limit when XDP enabled
90d0736876c5 mlxsw: spectrum: Protect driver from buggy firmware
33d89128a960 mlxsw: Verify the accessed index doesn't exceed the array length
29e1b5734795 net/smc: Ensure the active closing peer first closes clcsock
77d9c2efa870 erofs: fix deadlock when shrink erofs slab
9f540c7ffb1e scsi: scsi_debug: Zero clear zones at reset write pointer
725ba1289508 scsi: core: sysfs: Fix setting device state to SDEV_RUNNING
e65a8707b4cd ice: avoid bpf_prog refcount underflow
1eb5395add78 ice: fix vsi->txq_map sizing
26ed13d06422 net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group
3c40584595f8 net: ipv6: add fib6_nh_release_dsts stub
dc2f7e9d8d20 net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls
79068e6b1cfb net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume
cc301ad31207 nfp: checking parameter process for rx-usecs/tx-usecs is invalid
9b44cb67d387 ipv6: fix typos in __ip6_finish_output()
6d9e8dabd46f firmware: smccc: Fix check for ARCH_SOC_ID not implemented
bbd1683e795c mptcp: fix delack timer
061542815af1 ALSA: intel-dsp-config: add quirk for JSL devices based on ES8336 codec
f5af2def7e05 iavf: Prevent changing static ITR values if adaptive moderation is on
5dca8eff4627 net: marvell: prestera: fix double free issue on err path
b33c5c828144 drm/vc4: fix error code in vc4_create_object()
2bf9c5a5039c scsi: mpt3sas: Fix kernel panic during drive powercycle test
29ecb4c0f0d7 drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks
0effb7f51b65 ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE
86c5adc78083 NFSv42: Don't fail clone() unless the OP_CLONE operation failed
c9ba7864d3a2 firmware: arm_scmi: pm: Propagate return value to caller
8730a679c3cb net: ieee802154: handle iftypes as u32
2925aadd1f32 ASoC: codecs: wcd934x: return error code correctly from hw_params
3a25def06de8 ASoC: topology: Add missing rwsem around snd_ctl_remove() calls
4a4f900e0415 ASoC: qdsp6: q6asm: fix q6asm_dai_prepare error handling
9196a6858150 ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer
2be17eca48ae ARM: dts: bcm2711: Fix PCIe interrupts
9db1d4a3c270 ARM: dts: BCM5301X: Add interrupt properties to GPIO node
b2cd6fdcbe0a ARM: dts: BCM5301X: Fix I2C controller interrupt
b7ef25e8c271 netfilter: flowtable: fix IPv6 tunnel addr match
d689176e0e18 netfilter: ipvs: Fix reuse connection if RS weight is 0
994065f6efdc netfilter: ctnetlink: do not erase error code with EINVAL
a3d829e5f375 netfilter: ctnetlink: fix filtering with CTA_TUPLE_REPLY
a8a917058faf proc/vmcore: fix clearing user buffer by properly using clear_user()
1f520a0d78fc PCI: aardvark: Fix link training
aec0751f61f5 PCI: aardvark: Simplify initialization of rootcap on virtual bridge
df5748098878 PCI: aardvark: Implement re-issuing config requests on CRS response
e7f2e2c758ea PCI: aardvark: Update comment about disabling link training
2b7bc1c4b2c8 PCI: aardvark: Deduplicate code in advk_pcie_rd_conf()
dfe906da9a1a powerpc/32: Fix hardlockup on vmap stack overflow
bf00edd9e6c9 mdio: aspeed: Fix "Link is Down" issue
14c3ce30ddbd mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB
63195705b334 mmc: sdhci-esdhc-imx: disable CMDQ support
092a58f0d9ef tracing: Fix pid filtering when triggers are attached
68fa6bf7f179 tracing/uprobe: Fix uprobe_perf_open probes iteration
b777c866aafc KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB
bfed9c2f2f2e xen: detect uninitialized xenbus in xenbus_init
e1d492c27519 xen: don't continue xenstore initialization in case of errors
8f4d0719f323 fuse: release pipe buf after last use
8d0163cec7de staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect()
0bfed81b2ccd staging: greybus: Add missing rwsem around snd_ctl_remove() calls
146283f16b7e staging/fbtft: Fix backlight
8fc5e3c7cacc HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts
6ca32e2e776e Revert "parisc: Fix backtrace to always include init funtion names"
3a4aeb37a7a6 media: cec: copy sequence field for the reply
3798218a1af4 ALSA: hda/realtek: Fix LED on HP ProBook 435 G7
60274e248e3d ALSA: hda/realtek: Add quirk for ASRock NUC Box 1100
172167bc8dac ALSA: ctxfi: Fix out-of-range access
4402cf040252 binder: fix test regression due to sender_euid change
aea184ae6408 usb: hub: Fix locking issues with address0_mutex
5bf3a0c7789e usb: hub: Fix usb enumeration issue due to address0 race
00f1038c72f8 usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts
56fbab4937e0 usb: chipidea: ci_hdrc_imx: fix potential error pointer dereference in probe
b70ff391deee net: nexthop: fix null pointer dereference when IPv6 is not enabled
0755f3f32277 usb: dwc3: gadget: Fix null pointer exception
140e2df472ba usb: dwc3: gadget: Check for L1/L2/U3 for Start Transfer
3abf746e800b usb: dwc3: gadget: Ignore NoStream after End Transfer
2b7ab82f5173 usb: dwc2: hcd_queue: Fix use of floating point literal
4b18ccad9671 usb: dwc2: gadget: Fix ISOC flow for elapsed frames
16f1cac8f702 USB: serial: option: add Fibocom FM101-GL variants
ff721286369e USB: serial: option: add Telit LE910S1 0x9200 composition
854c14b2a15c ACPI: Get acpi_device's parent from the parent field
33fe044f6a9e bpf: Fix toctou on read-only map's constant scalar tracking

(From OE-Core rev: 75575a34b591990af1619e7f1d0d32c16b2af4b2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e8adc08ef64a894a638ed07454bcbe5ead881149)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Richard Purdie
ee5c54b757 oeqa/selftest/bbtests: Use YP sources mirror instead of GNU
The gnu sources server has been known to disappear. Use the YP sources
mirror instead. If that breaks, the autobuilder is broken anyway. This
should reduce test failures from upstream network issues.

(From OE-Core rev: fb18fcbd2529555ab98297671e3e6f68a8fd6556)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a5459e42f1a6be9c08f303653cc1f73514eca9ef)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
pgowda
5d833a3d6a gcc: Fix CVE-2021-42574
Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=bd5e882cf6e0def3dd1bc106075d59a303fe0d1e]
Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=51c500269bf53749b107807d84271385fad35628]
Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=1a7f2c0774129750fdf73e9f1b78f0ce983c9ab3]
Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=bef32d4a28595e933f24fef378cf052a30b674a7]

(From OE-Core rev: 65b7690964d781a531a141586ce50e20562570e4)

Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1276fa8b501aee1561b77538219d3cad2c796a21)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Pgowda
f0fbf8beaa gcc: Fix CVE-2021-35465
source : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102035

Upstream-Status: Backport[https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=3929bca9ca95de9d35e82ae8828b188029e3eb70]
Upstream-Status: Backport[https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=574e7950bd6b34e9e2cacce18c802b45505d1d0a]
Upstream-Status: Backport[https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=30461cf8dba3d3adb15a125e4da48800eb2b9b8f]
Upstream-Status: Backport[https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=809330ab8450261e05919b472783bf15e4b000f7]

(From OE-Core rev: e82ffd7dc34609a8174c48a34efffbf833967ed1)

Signed-off-by: Pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c8a1726feaf705683e80d85811ae482c6ebc3172)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Florian Amstutz
cdc63882a9 systemd: Fix systemd-journal-gateway user/groups
The systemd-journal-gateway user and group are never added to an image
since the package name added to USERADD_PACKES is wrong.

(From OE-Core rev: 10db2106122b02c7d1cfca065c3bd9c8ff7d19f8)

Signed-off-by: Florian Amstutz <florian.amstutz@scs.ch>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 495dc879b1eff4f70da6f783341b9a3085180a22)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-04 15:29:19 +00:00
Ross Burton
4ce984316d license.bbclass: implement ast.NodeVisitor.visit_Constant
Since Python 3.8 visit_Num(), visit_Str() and so on are all deprecated
and replaced with visit_Constant.  We can't yet remove the deprecated
functions until we require 3.8, but we can implement visit_Constant to
silence the deprecation warnings.

(From OE-Core rev: 067fbe5e12a81225cf3ff436837af6a6d23040a6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:40 +00:00
Ross Burton
869c4597bb oe/license: implement ast.NodeVisitor.visit_Constant
Since Python 3.8 visit_Num(), visit_Str() and so on are all deprecated
and replaced with visit_Constant.  We can't yet remove the deprecated
functions until we require 3.8, but we can implement visit_Constant to
silence the deprecation warnings.

(From OE-Core rev: c96241ac8e18f4ae87ec05b722a0bbfb017df578)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Mingli Yu
4cfb6247a2 packagedata.py: silence a DeprecationWarning
Use regex strings (r’’) to silence below deprecation warning [1]:
 $ cat tmp/work/intel_x86_64-wrs-linux/linux-yocto/5.10.x+gitAUTOINC+917c420111_373c02c3ca-r0/temp/log.do_deploy
 [snip]
 /build/layers/oe-core/meta/lib/oe/packagedata.py:22: DeprecationWarning: invalid escape sequence \s
 r = re.compile("(^.+?):\s+(.*)")
 [snip]

[1] https://docs.python.org/3/library/re.html

(From OE-Core rev: 82f62387210757f66404f5d9c3f47461664124f5)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Thomas Perrot
607bd6410f uboot-sign: fix the concatenation when multiple U-BOOT configurations are specified
Some BSPs, especially those of meta-freescale and meta-ti allow to build U-Boot
binaries using different configuration for a given target, for example:
- UBOOT_CONFIG ??= "tfa-secure-boot tfa"
- UBOOT_CONFIG ??= "nand sdcard spi nor"

When this is the case the public key wasn't concatenated to all U-Boot binaries
built.

(From OE-Core rev: e9f8162e619af05077eb5a30089cdbdcf309c161)

Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit dfd71ae3d102f3010c6117d774e9739a322930f6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Steve Sakoman
4696bc5930 cve-extra-exclusions: add db CVEs to exclusion list
Since Oracle relicensed bdb, the open source community is slowly but surely replacing bdb with
supported and open source friendly alternatives. As a result these CVEs are unlikely to ever be fixed.

(From OE-Core rev: 05abb98d8efc13e53f44908a405d2f318466cb04)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 679fc70f907fb221f4541ebf30c1610e937209b7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Ross Burton
b498dc5a97 runqemu: check the qemu PID has been set before kill()ing it
If runqemu is killed, check that we have a valid PID for the qemu before
sending a kill() to it.

[ YOCTO #14651 ]

(From OE-Core rev: 48bd07808672fe84a452a5b0f4f4b6ff7daa32ae)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0f3afbd3a6a6bef668612f818517df7543c0a683)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Stefan Herbrechtsmeier
f996b0f318 selftest/devtool: Check branch in git fetch
The commit 'meta/scripts: Manual git url branch additions (dc53fe75cc)'
forget the url branch= parameter in the devtool git fetch test.

(From OE-Core rev: a2bbdb02bdf50e4d7dc1a2439b562a50584b63b9)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1419168a58a5caf99e24ada08c9ab639344a78b4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Stefan Herbrechtsmeier
309ab8e133 recipetool: Set master branch only as fallback
The commit 'meta/scripts: Manual git url branch additions (dc53fe75cc)'
sets the branch= parameter too early to master and thereby breaks the
-B/--srcbranch option.

ERROR: branch= parameter and -B/--srcbranch option cannot both be specified - use one or the other

(From OE-Core rev: 48cbe51ca30d35b1355c8c0247eaa21520ab7f24)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 34ece8030e7a6a100b5e3e7b94e6c786c0e199a6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Bruce Ashfield
992127a4dc kern-tools: bug fixes and kgit-gconfig
Bumping yocto-kernel-tools to version v0.3, which comprises the following commits:

    90598a5 tools: Makefile: add missing install file
    330f9fa kgit-config: fix file mode
    22b55cd kgit-config: cleanup error message
    1e2a233 kgit-config: fix the "not found" message
    e7fcb9a kgit-config: trim trailing whitespace
    3cd14ce kgit-config: BSP template and auto meta-data creation
    e56620c tools: introduce kgit-config
    969b888 buckets: update to v5.14+
    d220b06 Kconfiglib: add support for bare 'modules' keyword

(From OE-Core rev: ee1d3b4cd0c7a615cbd5ddf46433c470dc43c669)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 88439875530bf36e301dbba12de5cf0dc664ba51)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Richard Purdie
d1b54cfb2d gcc: Add CVE-2021-37322 to the list of CVEs to ignore
The CVE applies to binutils 2.26 and not to gcc so ignore there.

(From OE-Core rev: c85a595b23df19c0e51977dae65266888e2706c4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fea2726663a3db03170c49fceaffc632c509aeea)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Bruce Ashfield
5a70a63af2 linux-yocto-rt/5.10: update to -rt56
Integrating the following commit(s) to linux-yocto-rt/5.10:

23f3ad608bc7 rcutorture: fixup merge from standard/base -stable
8612be3f3e2b Revert "rcutorture: Avoid problematic critical section nesting on RT"
9a6fb5667ac8 Linux 5.10.78-rt56
78c80dca8b1f irq_work: Also rcuwait for !IRQ_WORK_HARD_IRQ on PREEMPT_RT
e91d3b98e3b3 irq_work: Handle some irq_work in a per-CPU thread on PREEMPT_RT
bded6a156d4e irq_work: Allow irq_work_sync() to sleep if irq_work() no IRQ support.
747c881d3348 drm/i915/gt: Queue and wait for the irq_work item.
fa4ef0011e58 locking: Drop might_resched() from might_sleep_no_state_check()
f44d86bc5923 fscache: Use only one fscache_object_cong_wait.
2da5bc42a911 fscache: Use only one fscache_object_cong_wait.
53ecacfc9c68 mm: Disable NUMA_BALANCING_DEFAULT_ENABLED and TRANSPARENT_HUGEPAGE on PREEMPT_RT
03bdef3c5563 preempt: Move preempt_enable_no_resched() to the RT block
0def39751031 sched: Switch wait_task_inactive to HRTIMER_MODE_REL_HARD
60df07c6bd86 sched: Fix get_push_task() vs migrate_disable()
27f8594efeac mm, zsmalloc: Convert zsmalloc_handle.lock to spinlock_t
3fcbcd86a8eb Linux 5.10.78-rt55

(From OE-Core rev: 31125411003d5790398ad776885bf87df6def3ee)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 29f8c47f1d61eb702bd9af72e81708ca66ca9c09)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Bruce Ashfield
d726dc5e28 linux-yocto/5.10: update to v5.10.82
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

d5259a9ba699 Linux 5.10.82
d35250ec5a23 Revert "perf: Rework perf_event_exit_event()"
6718f79c40fd ALSA: hda: hdac_stream: fix potential locking issue in snd_hdac_stream_assign()
f751fb54f2bc ALSA: hda: hdac_ext_stream: fix potential locking issues
b3ef5051a758 x86/Kconfig: Fix an unused variable error in dell-smm-hwmon
2ec78af152e9 btrfs: update device path inode time instead of bd_inode
9febc9d8d2b4 fs: export an inode_update_time helper
cade5d7a2803 ice: Delete always true check of PF pointer
fe65cecd2758 usb: max-3421: Use driver data instead of maintaining a list of bound devices
6186c7b9bdfc ASoC: DAPM: Cover regression by kctl change notification fix
b17dd53cac76 selinux: fix NULL-pointer dereference when hashtab allocation fails
1ae0d59c4f5e RDMA/netlink: Add __maybe_unused to static inline in C file
40bc831ab5f6 hugetlbfs: flush TLBs correctly after huge_pmd_unshare
86ab0f8ff008 scsi: ufs: core: Fix task management completion timeout race
ddd4e46cff40 scsi: ufs: core: Fix task management completion
04c586a601dc drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga and dvi connectors
47901b77bf7d drm/i915/dp: Ensure sink rate values are always valid
82de15ca6b55 drm/nouveau: clean up all clients on device removal
c81c90fbf577 drm/nouveau: use drm_dev_unplug() during device removal
9221aff33edb drm/nouveau: Add a dedicated mutex for the clients list
65517975cb19 drm/udl: fix control-message timeout
3d68d6ee8314 drm/amd/display: Update swizzle mode enums
7b97b5776daa cfg80211: call cfg80211_stop_ap when switch from P2P_GO type
1ab297809de8 parisc/sticon: fix reverse colors
6adbc07ebcaf btrfs: fix memory ordering between normal and ordered work functions
6289b494b38e net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 platform
5875f87e2fc9 udf: Fix crash after seekdir
6b43cf113a38 KVM: nVMX: don't use vcpu->arch.efer when checking host state on nested state load
cc73242889b5 block: Check ADMIN before NICE for IOPRIO_CLASS_RT
63e2f34abc22 s390/kexec: fix memory leak of ipl report buffer
b1cf0d2fc4e4 scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id()
08fd6df8eaaf powerpc/8xx: Fix pinned TLBs with CONFIG_STRICT_KERNEL_RWX
9c177eee116c x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails
b2e2fb64071a mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
99032adf7d4b ipc: WARN if trying to remove ipc object which is absent
a7d91625863d tipc: check for null after calling kmemdup
f5995fcb75eb hexagon: clean up timer-regs.h
0854c9ff2151 hexagon: export raw I/O routines for modules
528971af64fc tun: fix bonding active backup with arp monitoring
af1d3c437eb5 arm64: vdso32: suppress error message for 'make mrproper'
97653ba562b9 net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices
4cebe23c032b s390/kexec: fix return code handling
d4fb80ae9830 perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server
175135a5eacf perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server
84f64c7c52d6 pinctrl: qcom: sdm845: Enable dual edge errata
a8230fb74b54 KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr()
4e6cce20fbc0 e100: fix device suspend/resume
34e54703fb0f NFC: add NCI_UNREG flag to eliminate the race
b2a60b4a0195 net: nfc: nci: Change the NCI close sequence
73a0d12114b4 NFC: reorder the logic in nfc_{un,}register_device
cb14b196d991 NFC: reorganize the functions in nci_request
41dc8dcb49d5 i40e: Fix display error code in dmesg
028ea7b090ec i40e: Fix creation of first queue by omitting it if is not power of two
69868d7a8853 i40e: Fix warning message and call stack during rmmod i40e driver
20645482d159 i40e: Fix ping is lost after configuring ADq on VF
6d64743045ca i40e: Fix changing previously set num_queue_pairs for PFs
f866513ead43 i40e: Fix NULL ptr dereference on VSI filter sync
071948856587 i40e: Fix correct max_pkt_size on VF RX queue
8e6bae950da9 net: virtio_net_hdr_to_skb: count transport header in UFO
1c4099dc0d6a net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove
381a30f7e31c net: sched: act_mirred: drop dst for the direction from egress to ingress
a792e0128d23 scsi: core: sysfs: Fix hang when device state is set via sysfs
4b4302a02b7f net/mlx5: E-Switch, return error if encap isn't supported
68748ea4d122 net/mlx5: E-Switch, Change mode lock from mutex to rw semaphore
6190e1a2d41a net/mlx5: Lag, update tracker when state change event received
471c49289055 net/mlx5e: nullify cq->dbg pointer in mlx5_debug_cq_remove()
d1f8f1e04a61 platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()'
da16f907cb30 mips: lantiq: add support for clk_get_parent()
17dfbe1b2f4e mips: bcm63xx: add support for clk_get_parent()
34284b3a2f86 MIPS: generic/yamon-dt: fix uninitialized variable error
a61f90b2162d iavf: Fix for setting queues to 0
a8a1e601c2ea iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset
77f5ae5441f0 iavf: validate pointers
ddcc185baa2b iavf: prevent accidental free of filter structure
a420b2612825 iavf: Fix failure to exit out from last all-multicast mode
78638b471322 iavf: free q_vectors before queues in iavf_disable_vf
84a13bfe2714 iavf: check for null in iavf_fix_features
1555d83ddbb7 iavf: Fix return of set the new channel count
09decd0a102a net/smc: Make sure the link_id is unique
437e21e2c9ae sock: fix /proc/net/sockstat underflow in sk_clone_lock()
4da14ddad19f net: reduce indentation level in sk_clone_lock()
9c3c2ef6ca26 tipc: only accept encrypted MSG_CRYPTO msgs
3d5941664786 bnxt_en: reject indirect blk offload when hw-tc-offload is off
4fc060abaa26 net: bnx2x: fix variable dereferenced before check
3ae75cc38a84 net: ipa: disable HOLB drop when updating timer
3984876f91a3 tracing: Add length protection to histogram string copies
900ea2f6287f tcp: Fix uninitialized access in skb frags array for Rx 0cp.
d1a6150ca616 net-zerocopy: Refactor skb frag fast-forward op.
5f7aadf03f98 net-zerocopy: Copy straggler unaligned data for TCP Rx. zerocopy.
8da80ec6d4f7 drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame
aa31e3fda68f perf tests: Remove bash construct from record+zstd_comp_decomp.sh
2ada5c0877f4 perf bench futex: Fix memory leak of perf_cpu_map__new()
11589d3144bc perf bpf: Avoid memory leak from perf_env__insert_btf()
5b2f2cbbc925 tracing/histogram: Do not copy the fixed-size char array field over the field size
1d6125532755 blkcg: Remove extra blkcg_bio_issue_init
dadcc935f440 perf/x86/vlbr: Add c->flags to vlbr event constraints
68fcb52b610c sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain()
91191d47af55 mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set
fbe27d0e1dcf clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk
9b3d3b72be84 clk/ast2600: Fix soc revision for AHB
03bc8ea0ae95 clk: ingenic: Fix bugs with divided dividers
7a5439474e69 f2fs: fix incorrect return value in f2fs_sanity_check_ckpt()
0a17fff6f045 f2fs: compress: disallow disabling compress on non-empty compressed file
4ce685cc9a0b sh: define __BIG_ENDIAN for math-emu
73383f670d8f sh: math-emu: drop unused functions
f44defd5694b sh: fix kconfig unmet dependency warning for FRAME_POINTER
3d7c5d08a483 f2fs: fix to use WHINT_MODE
e8bd5e33057c f2fs: fix up f2fs_lookup tracepoints
5d5bf899e57a maple: fix wrong return value of maple_bus_init().
8748f08a2fc0 sh: check return code of request_irq
29b742690a09 powerpc/8xx: Fix Oops with STRICT_KERNEL_RWX without DEBUG_RODATA_TEST
bc4bc07fb44c powerpc/dcr: Use cmplwi instead of 3-argument cmpli
1ac6cd87d8dd ALSA: gus: fix null pointer dereference on pointer block
850416beadef ARM: dts: qcom: fix memory and mdio nodes naming for RB3011
8c4d9764e74d powerpc/5200: dts: fix memory node unit name
833ad2792733 iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr()
e0fef1c8cd61 scsi: target: Fix alua_tg_pt_gps_count tracking
8176441373dd scsi: target: Fix ordered tag handling
8440377e1a56 scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs()
3e20cb072679 scsi: scsi_debug: Fix out-of-bound read in resp_readcap16()
9635581aa999 MIPS: sni: Fix the build
77e9fed33056 tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc
da82a207c4dc ALSA: ISA: not for M68K
c788ac47502e ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash
cbba09f86976 ARM: dts: ls1021a: move thermal-zones node out of soc/
2474eb7fc3bf usb: host: ohci-tmio: check return value after calling platform_get_resource()
02d9ebe0ccfa ARM: dts: omap: fix gpmc,mux-add-data type
c6c9bbe7facb firmware_loader: fix pre-allocated buf built-in firmware use
02a22911ed87 ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 codec
055eced3edf5 scsi: advansys: Fix kernel pointer leak
97f3cbb57b16 ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
ae2207a078cf clk: imx: imx6ul: Move csi_sel mux to correct base register
0c6daf479961 ASoC: SOF: Intel: hda-dai: fix potential locking issue
19d193c5761a arm64: dts: freescale: fix arm,sp805 compatible string
36446a094a45 arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property
e52fecdd0c14 arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency
568d94c5c9f0 ARM: BCM53016: Specify switch ports for Meraki MR32
3a53d9ad9bc3 staging: rtl8723bs: remove possible deadlock when disconnect (v2)
3544c338794b ARM: dts: ux500: Skomer regulator fixes
eff8b7628410 usb: typec: tipd: Remove WARN_ON in tps6598x_block_read
679eee466d0f usb: musb: tusb6010: check return value after calling platform_get_resource()
2492de6f5edb bus: ti-sysc: Use context lost quirk for otg
5eca1c8412f4 bus: ti-sysc: Add quirk handling for reinit on context lost
dcd6eefceeb0 RDMA/bnxt_re: Check if the vlan is valid before reporting
4e5bc9fb23a7 arm64: dts: hisilicon: fix arm,sp805 compatible string
109a63bb07f0 arm64: dts: rockchip: Disable CDN DP on Pinebook Pro
c097bd5a5916 scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq()
db90c507832a ARM: dts: NSP: Fix mpcore, mmc node names
5010df76ab1f staging: wfx: ensure IRQ is ready before enabling it
2651d06e461f arm64: dts: allwinner: a100: Fix thermal zone node name
fa98ac472e88 arm64: dts: allwinner: h5: Fix GPU thermal zone node name
aed195558f94 ARM: dts: sunxi: Fix OPPs node name
e2e105631265 arm64: zynqmp: Fix serial compatible string
48f154e8b94a arm64: zynqmp: Do not duplicate flash partition label property
99957dcea4e9 Linux 5.10.81
0685efd9840f selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage
6a315471cb6a thermal: Fix NULL pointer dereferences in of_thermal_ functions
bd40513d0bee perf/core: Avoid put_page() when GUP fails
df58fb431aa3 scripts/lld-version.sh: Rewrite based on upstream ld-version.sh
be3f6035831a erofs: fix unsafe pagevec reuse of hooked pclusters
6c1ad56b2d78 erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
5bf5f464831c PCI: Add MSI masking quirk for Nvidia ION AHCI
f28c620e1ac1 PCI/MSI: Deal with devices lying about their MSI mask capability
9b61500ee536 PCI/MSI: Destroy sysfs before freeing entries
c49bfdfe535c parisc/entry: fix trace test in syscall exit path
b31bac061918 x86/iopl: Fake iopl(3) CLI/STI usage
a0958a5354f7 net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings
80407c6ad9da net: stmmac: fix issue where clk is being unprepared twice
ac4bb9951c2c net: stmmac: fix system hang if change mac address after interface ifdown
bcf37522432d net: stmmac: fix missing unlock on error in stmmac_suspend()
483ed89522b0 net: stmmac: platform: fix build error with !CONFIG_PM_SLEEP
3afe11be6435 net: stmmac: add clocks management for gmac driver
f27060e28efc bootconfig: init: Fix memblock leak in xbc_make_cmdline()
04e46514fef6 loop: Use blk_validate_block_size() to validate block size
79ff56c613c1 block: Add a helper to validate the block size
eaafc590053b fortify: Explicitly disable Clang support
f884bb85b8d8 Linux 5.10.80
1e49a79bc312 soc/tegra: pmc: Fix imbalanced clock disabling in error code path
45490bfa1ebb x86/sev: Make the #VC exception stacks part of the default stacks storage
fc25889a6617 x86/sev: Add an x86 version of cc_platform_has()
74ba917cfddd arch/cc: Introduce a function to check for confidential computing features
5be42b203f2c selftests/bpf: Fix also no-alu32 strobemeta selftest
1e7340950dc2 mmc: moxart: Fix null pointer dereference on pointer host
188bf40391a5 ath10k: fix invalid dma_addr_t token assignment
d41f4d4dd7c8 SUNRPC: Partial revert of commit 6f9f17287e78
c7a440cd3079 PCI: aardvark: Fix PCIe Max Payload Size setting
f967d120a5b5 PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
f3396f6d8345 drm/sun4i: Fix macros in sun8i_csc.h
1023355234ca powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n
77d543e68795 powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
9dcdadd6cc73 mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines
51e34fcf72a3 mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines
e1de04df8eb1 mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines
b4e2e9fbd194 mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines
963db3ccc15b mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines
13566bc111ee mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines
9b366f5221d8 mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines
cbc55cf4a358 mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines
1f420818dfca s390/cio: make ccw_device_dma_* more robust
c9ca9669dec3 s390/ap: Fix hanging ioctl caused by orphaned replies
57de1fbecff0 s390/tape: fix timer initialization in tape_std_assign()
1174298a5b31 s390/cio: check the subchannel validity for dev_busid
7d0341b37d97 video: backlight: Drop maximum brightness override for brightness zero
332306b1e731 mfd: dln2: Add cell for initializing DLN2 ADC
1d457987366f mm, oom: do not trigger out_of_memory from the #PF
ac7f6befc3d1 mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
1ada86999dc8 powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
7fcf86565bb6 powerpc/security: Add a helper to query stf_barrier type
951fb7bf387f powerpc/bpf: Validate branch ranges
51cf71d5cb03 powerpc/lib: Add helper to check if offset is within conditional branch range
74293225f503 memcg: prohibit unconditional exceeding the limit of dying tasks
32246cefb992 9p/net: fix missing error check in p9_check_errors
a8cdf34ff8b7 net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
0bf5c6a1e43f f2fs: should use GFP_NOFS for directory inodes
7930892cbd40 irqchip/sifive-plic: Fixup EOI failed when masked
f67f6eb717ae posix-cpu-timers: Clear task::posix_cputimers_work in copy_process()
1372eb187108 x86/mce: Add errata workaround for Skylake SKX37
1ee5bc2ba83f MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
fc42bbb7827b parisc: Fix backtrace to always include init funtion names
241c74cc6555 ARM: 9156/1: drop cc-option fallbacks for architecture selection
03f2578153eb ARM: 9155/1: fix early early_iounmap()
ee79560cb768 selftests/net: udpgso_bench_rx: fix port argument
8b215edb7a38 cxgb4: fix eeprom len when diagnostics not implemented
93bc3ef60758 net/smc: fix sk_refcnt underflow on linkdown and fallback
7e03b797bee0 vsock: prevent unnecessary refcnt inc for nonblocking connect
ad3d219e843d net: stmmac: allow a tc-taprio base-time of zero
b30459c0ca0d net: hns3: allow configure ETS bandwidth of all TCs
ee11f16fee95 net: hns3: fix kernel crash when unload VF while it is being reset
79aa8706b45c net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
b5703462a428 seq_file: fix passing wrong private data
4af0cd17e724 gve: Fix off by one in gve_tx_timeout()
c842a4c4ae7f bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
8b5c98a67c1b bpf, sockmap: Remove unhash handler for BPF sockmap usage
0fe81d7a202d arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
727c812433b6 nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
9f0e683e1bd4 llc: fix out-of-bound array index in llc_sk_dev_hash()
b833274ae6d9 perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
7091fcc75ff6 zram: off by one in read_block_state()
64bde0c2db50 mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
a3c205c017f8 can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable()
300d87474816 mfd: core: Add missing of_node_put for loop iteration
6439b91fef2c bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
acb01e962af7 net: phy: fix duplex out of sync problem while changing settings
090e17075f67 drm/nouveau/svm: Fix refcount leak bug and missing check against null bug
ee8a3ae48a94 ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
d83832d4a838 ice: Fix not stopping Tx queues for VFs
354ae5ca6ce1 ice: Fix replacing VF hardware MAC to existing MAC filter
e04a7a84bb77 net: vlan: fix a UAF in vlan_dev_real_dev()
3fe164e7197b openrisc: fix SMP tlb flush NULL pointer dereference
628773a759d5 ethtool: fix ethtool msg len calculation for pause stats
e78c267eb74e net: davinci_emac: Fix interrupt pacing disable
111f77594ddf xen-pciback: Fix return in pm_ctrl_init()
de9721ee8ad3 i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
8c3e204fb6bc NFSv4: Fix a regression in nfs_set_open_stateid_locked()
0afb3bc53435 scsi: qla2xxx: Turn off target reset during issue_lip
09595fd2cef5 scsi: qla2xxx: Fix gnl list corruption
cbe31149e5a7 scsi: qla2xxx: Relogin during fabric disturbance
bc3f207ed99a scsi: qla2xxx: Changes to support FCP2 Target
ba5eb0e44346 ar7: fix kernel builds for compiler test
ef9f7ab9ba20 watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
aaa64ee14ac9 m68k: set a default value for MEMORY_RESERVE
a4cbf00e5ab8 signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
b04c17acf42a dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
bba31f3b1f43 netfilter: nfnetlink_queue: fix OOB when mac header was cleared
41968262bb24 soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
6caab6c96b67 auxdisplay: ht16k33: Fix frame buffer device blanking
178522aa755f auxdisplay: ht16k33: Connect backlight to fbdev
a1d6a60ee00c auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
0e1709b2a07a Fix user namespace leak
90e7415221e1 NFS: Fix an Oops in pnfs_mark_request_commit()
10f210871736 NFS: Fix up commit deadlocks
91e43a8500f4 dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
038dfd67d375 rtc: rv3032: fix error handling in rv3032_clkout_set_rate()
5061e102346e remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()'
36104e1f71dd mtd: core: don't remove debugfs directory if device is in use
0b73c025bfcf PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation
d2ff7a8b079d mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
c4eb6849909a fs: orangefs: fix error return code of orangefs_revalidate_lookup()
3e7b08ebf40f NFS: Fix deadlocks in nfs_scan_commit_list()
14943891857d opp: Fix return in _opp_add_static_v2()
bea3213f191a PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
ec6dba3ffe3f PCI: aardvark: Don't spam about PIO Response Status
2e548581fe5b drm/plane-helper: fix uninitialized variable reference
e94c59b64e6c pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
8ac076ce7193 NFS: Fix dentry verifier races
9d438dbf7342 i2c: mediatek: fixing the incorrect register offset
f3492c4a9264 nfsd: don't alloc under spinlock in rpc_parse_scope_id
602ab1fd40e2 rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
851b622e7b4f apparmor: fix error check
9c9c33ea4cab power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
dbdf0f220759 mips: cm: Convert to bitfield API to fix out-of-bounds access
c8447cb14a12 virtio_ring: check desc == NULL when using indirect with packed
80e6643393b7 ASoC: cs42l42: Correct configuring of switch inversion from ts-inv
cb0fdd9aae01 ASoC: cs42l42: Use device_property API instead of of_property
ef9d007a91f5 ASoC: cs42l42: Disable regulators if probe fails
c0faad6e9d56 powerpc/44x/fsp2: add missing of_node_put
4310970d0b4d HID: u2fzero: properly handle timeouts in usb_submit_urb
e2f0bff411f5 HID: u2fzero: clarify error check and length calculations
26be378079fc clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL
f2886010a8d1 serial: xilinx_uartps: Fix race condition causing stuck TX
515778f9d841 phy: qcom-snps: Correct the FSEL_MASK
fd056574a7e8 phy: ti: gmii-sel: check of_get_address() for failure
0a46740a0af0 phy: qcom-qusb2: Fix a memory leak on probe
ec40a28495a8 pinctrl: equilibrium: Fix function addition in multiple groups
a0467ca4d25f soc: qcom: apr: Add of_node_put() before return
b41c528b14fe firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available()
31e7a836e2a2 usb: dwc2: drd: reset current session before setting the new one
fc86da757db7 usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled
6774a429327d usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init
068dfa570d8c serial: imx: fix detach/attach of serial console
d293bd40fbad scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer
75df59394126 scsi: ufs: Refactor ufshcd_setup_clocks() to remove skip_ref_clk
948d8f2f2fd5 iio: adis: do not disabe IRQs in 'adis_init()'
c8e5edca68a3 usb: typec: STUSB160X should select REGMAP_I2C
503d6e5fb878 soc: qcom: rpmhpd: Make power_on actually enable the domain
81e37cf40dbb soc: qcom: rpmhpd: Provide some missing struct member descriptions
b288b841c1d8 ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
1812deb08f86 ASoC: cs42l42: Correct some register default values
d34982c08714 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
602fefd4561e ARM: dts: stm32: fix SAI sub nodes register range
3fb75227bdce ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz
78238479b93b pinctrl: renesas: checker: Fix off-by-one bug in drive register check
51bcffb3951c staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
0bb8359f9c0d staging: most: dim2: do not double-register the same device
8e1feecc04fc usb: musb: select GENERIC_PHY instead of depending on it
0058f7fbea13 RDMA/mlx4: Return missed an error if device doesn't support steering
bce61de56480 scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
12c46732042c power: supply: max17040: fix null-ptr-deref in max17040_probe()
c553d673018d power: supply: rt5033_battery: Change voltage values to µV
d8da6328ecae usb: gadget: hid: fix error code in do_config()
92a80e1ca20e serial: 8250_dw: Drop wrong use of ACPI_PTR()
cfbf58ac8ec2 powerpc: fix unbalanced node refcount in check_kvm_guest()
54965d92a464 powerpc: Fix is_kvm_guest() / kvm_para_available()
e01a4d7560b6 powerpc: Reintroduce is_kvm_guest() as a fast-path check
113207234aac powerpc: Rename is_kvm_guest() to check_kvm_guest()
61c5d9fa5671 powerpc: Refactor is_kvm_guest() declaration to new header
67074c63cd67 video: fbdev: chipsfb: use memset_io() instead of memset()
fb24243e6d7f clk: at91: check pmc node status before registering syscore ops
20cc0fa1d030 memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
d3833d3c569a soc/tegra: Fix an error handling path in tegra_powergate_power_up()
9a2244200908 ASoC: SOF: topology: do not power down primary core during topology removal
8b6124d9245c arm: dts: omap3-gta04a4: accelerometer irq fix
e1959450b77a driver core: Fix possible memory leak in device_link_add()
ddb13ddacc60 scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp()
4438a7457063 soundwire: debugfs: use controller id and link_id for debugfs
3fe8d239e35b ALSA: hda: Use position buffer for SKL+ again
c550c7c9ae91 ALSA: hda: Fix hang during shutdown due to link reset
23e8f775d962 ALSA: hda: Release controller display power during shutdown/reboot
5972e974ebbb ALSA: hda: Reduce udelay() at SKL+ position reporting
1db71de28bfc arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000
d833ddddec5b arm64: dts: renesas: beacon: Fix Ethernet PHY mode
d70247b752f7 arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock
980c7bdd20fc JFS: fix memleak in jfs_mount
c4edd206d52e MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
24149c954f32 scsi: dc395: Fix error case unwinding
6348983be709 ARM: dts: at91: tse850: the emac<->phy interface is rmii
b6493c2b7ddb bus: ti-sysc: Fix timekeeping_suspended warning on resume
85085c343705 arm64: dts: meson-g12b: Fix the pwm regulator supply properties
4ccb7e4a972c arm64: dts: meson-g12a: Fix the pwm regulator supply properties
20baf0163805 arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe
7a1617a9919b arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes
64a43b771258 RDMA/bnxt_re: Fix query SRQ failure
fe3c11fc627b ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
2887df89e7f6 arm64: dts: rockchip: Fix GPU register width for RK3328
3f33f09d9f6a ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
cdd3dd905cea clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
2fde76df1885 ARM: dts: BCM5301X: Fix memory nodes names
5282385ee655 RDMA/rxe: Fix wrong port_cap_flags
a2c17c93b771 iio: st_sensors: disable regulators after device unregistration
bfedc817769d iio: st_sensors: Call st_sensors_power_enable() from bus drivers
f84c7a03d1ea of: unittest: fix EXPECT text for gpio hog errors
4a50bc008476 bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.
84dde8c8c933 bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.
9308f9c9c7a5 cgroup: Fix rootcg cpu.stat guest double counting
a3fdcd16b138 ibmvnic: Process crqs after enabling interrupts
5b3f7204197a ibmvnic: don't stop queue in xmit
366235d4bebc udp6: allow SO_MARK ctrl msg to affect routing
8f3d88139df8 selftests/bpf: Fix fclose/pclose mismatch in test_progs
71ec65c70004 crypto: pcrypt - Delay write to padata->info
fb41b8f5e855 net: phylink: avoid mvneta warning when setting pause parameters
08449a5c0e56 net: amd-xgbe: Toggle PLL settings during rate change
b17f424f88ba selftests/bpf: Fix fd cleanup in sk_lookup test
2989a396b891 selftests: bpf: Convert sk_lookup ctx access tests to PROG_TEST_RUN
ae1f588ca1b0 drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
a586453da90c wcn36xx: Fix discarded frames due to wrong sequence number
3965cc2e9fdd wcn36xx: add proper DMA memory barriers in rx path
62d12650b845 libertas: Fix possible memory leak in probe and disconnect
975c15a19bbc libertas_tf: Fix possible memory leak in probe and disconnect
3aa98ef8f7ad KVM: s390: Fix handle_sske page fault handling
5109802499fb samples/kretprobes: Fix return value if register_kretprobe() failed
c3ac751944ab spi: spi-rpc-if: Check return value of rpcif_sw_init()
5b7b4afead62 tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
3925134eff29 libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED()
227efdda51b4 tpm_tis_spi: Add missing SPI ID
ff1a0f71cc77 tpm: fix Atmel TPM crash caused by too frequent queries
43b4860b58f3 irq: mips: avoid nested irq_enter()
29a1cc3b5011 KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
759f27cfa344 KVM: s390: pv: avoid double free of sida page
a729eb55b3c7 s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
50fcaa715521 libbpf: Fix BTF header parsing checks
12872fd7e40b libbpf: Fix overflow in BTF sanity checks
255eb8f8affd libbpf: Allow loading empty BTFs
4d4d6aa2ef80 libbpf: Fix BTF data layout checks and allow empty BTF
0b95aaa493c6 bpftool: Avoid leaking the JSON writer prepared for program metadata
7cd4af996cd2 KVM: selftests: Fix nested SVM tests when built with clang
293fa72d62e4 KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c
d33753718156 smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
807f01f60cd0 drm/msm: Fix potential NULL dereference in DPU SSPP
6d1f3157aa9b x86/sev: Fix stack type check in vc_switch_off_ist()
8e2f97df6a0b clocksource/drivers/timer-ti-dm: Select TIMER_OF
b9f142d748b6 PM: hibernate: fix sparse warnings
e8c0b748456a nvme-rdma: fix error code in nvme_rdma_setup_ctrl
7668cbe0cb77 phy: micrel: ksz8041nl: do not use power down mode
d405eb1150ce net: enetc: unmap DMA in enetc_send_cmd()
14e12b7a763e mwifiex: Send DELBA requests according to spec
4ed5bb3df6c7 rsi: stop thread firstly in rsi_91x_init() error handling
e27022647529 mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req()
1a270dada035 mt76: mt7915: fix sta_rec_wtbl tag len
116652a3d5dd mt76: mt7915: fix possible infinite loop release semaphore
7a8e4effbbbc mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
4d5c7f07c725 mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi
4187bf331010 platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
25c032c585a2 mmc: mxs-mmc: disable regulator on error and in the remove function
7c1c7ac9d13a media: ir_toy: assignment to be16 should be of correct type
daf15fa1fd99 net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
14d241577227 drm/msm: uninitialized variable in msm_gem_import()
3424931fa39e drm/msm: potential error pointer dereference in init()
a342cb4772f4 tcp: switch orphan_count to bare per-cpu counters
c85c6fadbef0 kernel/sched: Fix sched_fork() access an invalid sched_task_group
e1ee11473a88 ath10k: fix max antenna gain unit
786976b25ae0 hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
fbc80c83f118 hwmon: Fix possible memleak in __hwmon_device_register()
e29352f162db net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
41fe79cf1156 memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
4756d7fbaf8c memstick: avoid out-of-range warning
72de92d33f83 mmc: sdhci-omap: Fix context restore
2fd26ec36ef0 mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
a9fbeb5bbc46 gve: Recover from queue stall due to missed IRQ
9e4f708df65e b43: fix a lower bounds test
508faf8721ae b43legacy: fix a lower bounds test
6a1610014181 hwrng: mtk - Force runtime pm ops for sleep ops
8d98683fa6df crypto: qat - disregard spurious PFVF interrupts
d99fdd13a75a crypto: qat - detect PFVF collision after ACK
1fe4b2441982 media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
740a794e01c5 netfilter: nft_dynset: relax superfluous check on set updates
af756be29c82 rcu: Always inline rcu_dynticks_task*_{enter,exit}()
68803253822c EDAC/amd64: Handle three rank interleaving mode
1b2d422a261b PM: EM: Fix inefficient states detection
d01e847d84bf ath9k: Fix potential interrupt storm on queue reset
52e3545eefb6 media: em28xx: Don't use ops->suspend if it is NULL
f03e0624e927 cpuidle: Fix kobject memory leaks in error paths
66f7de13d156 crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
848f1f00c637 kprobes: Do not use local variable when creating debugfs file
c34bfe4204cd media: cx23885: Fix snd_card_free call on null card pointer
388cebfa7342 media: tm6000: Avoid card name truncation
86626be4b629 media: si470x: Avoid card name truncation
88315edafe39 media: radio-wl1273: Avoid card name truncation
4280b30ea9b5 media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
e43b301cb1ba media: TDA1997x: handle short reads of hdmi info frame.
c85e591b77ca media: v4l2-ioctl: S_CTRL output the right value
e2f3608a0b50 media: dvb-usb: fix ununit-value in az6027_rc_query
0a85325fc565 media: cxd2880-spi: Fix a null pointer dereference on error handling path
4303b39b5075 media: em28xx: add missing em28xx_close_extension
375150b3aaf8 drm/amdgpu: fix warning for overflow check
8980f9d14481 arm64: mm: update max_pfn after memory hotplug
cbbf816cb7f9 drm/ttm: stop calling tt_swapin in vm_access
c39154d3d623 ath10k: sdio: Add missing BH locking around napi_schdule()
ffed64553817 ath10k: Fix missing frame timestamp for beacon/probe-resp
08fb0008d90b ath11k: Fix memory leak in ath11k_qmi_driver_event_work
4519fb910555 ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status
b6a46ec871ea ath11k: Avoid race during regd updates
ac49af173c64 ath11k: fix some sleeping in atomic bugs
9833cb32066a net: dsa: rtl8366rb: Fix off-by-one bug
78fb8c999242 rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
03725f7125db crypto: caam - disable pkc for non-E SoCs
f0b40bf3e48a Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
310f581f54cb wilc1000: fix possible memory leak in cfg_scan_result()
3a95dbc8b7f2 wcn36xx: Fix Antenna Diversity Switching
ba8ba7688594 cgroup: Make rebind_subsystems() disable v2 controllers all at once
a585e04e3472 net: net_namespace: Fix undefined member in key_remove_domain()
fb4a58f5194e lockdep: Let lock_is_held_type() detect recursive read as read
38098444b787 virtio-gpu: fix possible memory allocation failure
582de9e38584 drm/v3d: fix wait for TMU write combiner flush
f0bc12b84826 objtool: Fix static_call list generation
b36ab509e181 x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
abf37e855e53 objtool: Add xen_start_kernel() to noreturn list
6b72caabc470 MIPS: lantiq: dma: fix burst length for DEU
226d68fb6c0a rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
c20d8c197454 Bluetooth: fix init and cleanup of sco_conn.timeout_work
19337ed10e7e selftests/bpf: Fix strobemeta selftest regression
bc9199271c32 netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
0c5e94679480 parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
a1ec31a0befa parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
ee75174f6ab9 erofs: don't trigger WARN() when decompression fails
50a2d1229b51 task_stack: Fix end_of_stack() for architectures with upwards-growing stack
44d4c43babb0 parisc: fix warning in flush_tlb_all
d8166a27c648 selftests/core: fix conflicting types compile error for close_range()
6f038b1a941e drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled
ddfcae905238 x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
c4cfdf5fa8fc wcn36xx: Correct band/freq reporting on RX
a27095cda17d spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
b917f9b94633 btrfs: do not take the uuid_mutex in btrfs_rm_device
428bb3d71e35 btrfs: reflink: initialize return value to 0 in btrfs_extent_same()
eeb96ebdc686 ACPI: AC: Quirk GK45 to skip reading _PSR
42d8c280dd65 net: annotate data-race in neigh_output()
c2e5f43db0c1 vrf: run conntrack only in context of lower/physdev for locally generated packets
b3ae170b8e3f ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
b870d8a76c04 gfs2: Fix glock_hash_walk bugs
16a7981188a3 gfs2: Cancel remote delete work asynchronously
9ceac307b58e gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
25a45d399996 ARM: clang: Do not rely on lr register for stacktrace
c11aecbe0542 smackfs: use __GFP_NOFAIL for smk_cipso_doi()
32a9a8fdbab7 iwlwifi: mvm: disable RX-diversity in powersave
e658d59f0ee4 selftests/bpf: Fix perf_buffer test on system with offline cpus
d6dca066fc4f selftests: kvm: fix mismatched fclose() after popen()
9f4bd00a6ec6 PM: hibernate: Get block device exclusively in swsusp_check()
7a0b68eecb5b nvme: drop scan_lock and always kick requeue list when removing namespaces
82327823f34e nvmet-tcp: fix use-after-free when a port is removed
2659d8213d88 nvmet-rdma: fix use-after-free when a port is removed
e73574f7bc9b nvmet: fix use-after-free when a port is removed
1a10bf4c9dd3 media: allegro: ignore interrupt if mailbox is not initialized
49cc377654d9 block: remove inaccurate requeue check
451cef276fe4 mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
16c2dd0ab5c2 mt76: mt7915: fix an off-by-one bound check
ea7f8803a314 tracing/cfi: Fix cmp_entries_* functions signature mismatch
5736f1dead84 workqueue: make sysfs of unbound kworker cpumask more clever
ab5c46f258c9 lib/xz: Validate the value before assigning it to an enum variable
aa5d35e350f6 lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
cad55afe37c9 memstick: r592: Fix a UAF bug when removing the driver
2338c3501726 md: update superblock after changing rdev flags in state_store
b34ea3c91eac block: bump max plugged deferred size from 16 to 32
517feec952ae drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture()
e1d7f0202a9f leaking_addresses: Always print a trailing newline
9101e2574b81 net: phy: micrel: make *-skew-ps check more lenient
832fad367cac drm/amdkfd: fix resume error when iommu disabled in Picasso
65c84e09e8d4 ACPI: battery: Accept charges over the design capacity as full
b60086601832 iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
219df0f6bad4 mmc: moxart: Fix reference count leaks in moxart_probe
38608d32adf0 ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
3c2434d9a6c6 tracefs: Have tracefs directories not set OTH permission bits by default
8524501a0e7a net-sysfs: try not to restart the syscall if it will fail eventually
b94e5bd540f4 media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
e3bc3e114135 media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
b499d4057160 media: ipu3-imgu: imgu_fmt: Handle properly try
272e54604cf7 ACPICA: Avoid evaluating methods too early during system resume
f09e1a2d2c74 fs/proc/uptime.c: Fix idle time reporting in /proc/uptime
6e242c557ad5 ipmi: Disable some operations during a panic
1f38e5e803df media: rcar-csi2: Add checking to rcsi2_start_receiver()
3d5575b3f536 brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
7d54f52d8fdb rtw88: fix RX clock gate setting while fifo dump
d506a3d60df9 ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
2709971f9f60 media: mceusb: return without resubmitting URB in case of -EPROTO error.
40b8e7dee544 media: imx: set a media_device bus_info string
a62edd8390ec media: s5p-mfc: Add checking to s5p_mfc_probe().
b570e36a779c media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
f4037b9b1062 media: uvcvideo: Set unique vdev name based in type
d9349416402d media: uvcvideo: Return -EIO for control errors
2052c4cebce9 media: uvcvideo: Set capability in s_param
0c91bb4fbde4 media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
309ea2248d0a media: atomisp: Fix error handling in probe
f4c652bd3506 media: netup_unidvb: handle interrupt properly according to the firmware
09ee09359af9 media: mt9p031: Fix corrupted frame after restarting stream
aded39ff1f7a ath10k: high latency fixes for beacon buffer
461a71a1a62a ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets
43ab64578836 ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED
97890f36333d ath11k: Avoid reg rules update during firmware recovery
2114f80889d8 drm/amdgpu: Fix MMIO access page fault
68ac723fb17e fscrypt: allow 256-bit master keys with AES-256-XTS
f526d948c38d mwifiex: Properly initialize private structure on interface type changes
bab15174ec2f mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
7ca1711d59f1 x86: Increase exception stack sizes
1c04dabbd1aa ath11k: Align bss_chan_info structure with firmware
3fac6feca95f smackfs: Fix use-after-free in netlbl_catmap_walk()
02ddf26d849d rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
8d433ab5c8c2 net: sched: update default qdisc visibility after Tx queue cnt changes
28118dcc871e locking/lockdep: Avoid RCU-induced noinstr fail
b92a5df2c7ad MIPS: lantiq: dma: reset correct number of channel
5af57ce8a615 MIPS: lantiq: dma: add small delay after reset
396e302cc835 platform/x86: wmi: do not fail if disabling fails
7f43cda650d5 rcutorture: Avoid problematic critical section nesting on PREEMPT_RT
7987f31e54a2 drm/panel-orientation-quirks: add Valve Steam Deck
c10465f6d620 Bluetooth: fix use-after-free error in lock_sock_nested()
4dfba42604f0 Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
509ae4a4f074 drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
62b90d7eeb6d drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
780fff2c75f0 drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
6758d6651627 dma-buf: WARN on dmabuf release with pending attachments
890e4edcecfa power: supply: max17042_battery: Clear status bits in interrupt handler
898622adb7e9 USB: chipidea: fix interrupt deadlock
6edf4cffe1b4 USB: iowarrior: fix control-message timeouts
0e71591e916b most: fix control-message timeouts
edc546625456 serial: 8250: fix racy uartclk update
5f31af4e78b4 USB: serial: keyspan: fix memleak on probe errors
ab4755ea9114 iio: ad5770r: make devicetree property reading consistent
638462060859 iio: dac: ad5446: Fix ad5622_write() return value
a4e7a8c4321f coresight: cti: Correct the parameter for pm_runtime_put
46709163a54a pinctrl: core: fix possible memory leak in pinctrl_enable()
6bc8317b8cd5 quota: correct error number in free_dqentry()
ceeb0a8a8716 quota: check block number when reading the block in quota file
bc1274df3ff4 PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge
e2e8961fbc3a PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
bd5d982822cf PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
2b99c6fb65b4 PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge
4bb5399c1c73 PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
2ad10bbf8477 PCI: aardvark: Fix return value of MSI domain .alloc() method
6a0da19be5eb PCI: aardvark: Fix configuring Reference clock
5fb031fcd423 PCI: aardvark: Fix reporting Data Link Layer Link Active
2b861523d7ce PCI: aardvark: Do not unmask unused interrupts
1085ee5236ef PCI: aardvark: Fix checking for link up via LTSSM state
3bcbace714bb PCI: aardvark: Do not clear status bits of masked interrupts
c1a8fb237470 PCI: cadence: Add cdns_plat_pcie_probe() missing return
adcfc317d3f5 PCI: pci-bridge-emul: Fix emulation of W1C bits
4fd9f0509a14 ovl: fix use after free in struct ovl_aio_req
af7d25d7853c xen/balloon: add late_initcall_sync() for initial ballooning done
96e7880a432a ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
694c0c84a6ec ALSA: mixer: oss: Fix racy access to slots
cd0b29a89bc2 ifb: fix building without CONFIG_NET_CLS_ACT
47462c5e600f serial: core: Fix initializing and restoring termios speed
c1e6e42740cb ring-buffer: Protect ring_buffer_reset() from reentrancy
93fccb1f8939 powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
875609ad8020 can: j1939: j1939_can_recv(): ignore messages with invalid source address
c3cb7b5c9d14 can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
9f9d6d391ff5 KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
bd37419f4fde KVM: arm64: Extract ESR_ELx.EC only
924955df37f2 power: supply: max17042_battery: use VFSOC for capacity when no rsns
f2feac81edcd power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
5720436bc7ba mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines
7e867f8bb3fe soc: fsl: dpio: use the combined functions to protect critical zone
55c97165adf6 soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id
62bd9eac5fa2 signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
5e63b85a489d memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode
4fbecebb31c7 signal: Remove the bogus sigkill_pending in ptrace_stop
5c6fedce4a6a RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
30cdf5035769 perf/x86/intel/uncore: Fix Intel ICX IIO event constraints
aef1a67fbf49 perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server
da8b3b95c57f rsi: Fix module dev_oper_mode parameter description
d69ffec3aa22 rsi: fix rate mask set leading to P2P failure
41d97e0360e9 rsi: fix key enabled check causing unwanted encryption for vap_id > 0
46752a7aed91 rsi: fix occasional initialisation failure with BT coex
a194e9c721d9 wcn36xx: handle connection loss indication
701cf28e019d libata: fix checking of DMA state
890e416c026e mwifiex: Try waking the firmware until we get an interrupt
d59d2f7af7e0 mwifiex: Read a PCI register after writing the TX ring write pointer
daccf40320d4 PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions
1c422d63010a wcn36xx: Fix (QoS) null data frame bitrate/modulation
c1b8ad661ff1 wcn36xx: Fix tx_status mechanism
3d62e1c9bc55 wcn36xx: Fix HT40 capability for 2Ghz band
c044f34ca22f ifb: Depend on netfilter alternatively to tc
c7400e2ec8de evm: mark evm_fixmode as __ro_after_init
eab090dfcb1d rtl8187: fix control-message timeouts
73b79ada4c1c PCI: Mark Atheros QCA6174 to avoid bus reset
30182b8c1388 ath10k: fix division by zero in send path
ce560076091a ath10k: fix control-message timeout
1336b2af8adc ath6kl: fix control-message timeout
f34487c7f223 ath6kl: fix division by zero in send path
fd1e4d8c61ef mwifiex: fix division by zero in fw download path
a5d8d76710e8 EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
31f5c925464a regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
02ecf56faa56 regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
5b7e3bb16310 hwmon: (pmbus/lm25066) Add offset coefficients
db04fb4111e6 selinux: fix race condition when computing ocontext SIDs
a09a5f4c075d ia64: kprobes: Fix to pass correct trampoline address to the handler
2f65b76c4445 KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup
b4a4c9dc4407 btrfs: call btrfs_check_rw_degradable only if there is a missing device
b406439afe73 btrfs: fix lost error handling when replaying directory deletes
8992aab294cb btrfs: clear MISSING device status bit in btrfs_close_one_device
a99da5b68080 rds: stop using dmapool
0bfb1c1a16ff net/smc: Correct spelling mistake to TCPF_SYN_RECV
9b86eb2f34d1 net/smc: Fix smc_link->llc_testlink_time overflow
2167a9a12cc9 nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
c9a7d5fe1552 vmxnet3: do not stop tx queues after netif_device_detach()
9813218e96db r8169: Add device 10ec:8162 to driver r8169
ad6a2a1e566f nvmet-tcp: fix header digest verification
c8270435cfb4 block: schedule queue restart after BLK_STS_ZONE_RESOURCE
7d1fb5c12cc0 drm: panel-orientation-quirks: Add quirk for GPD Win3
4d41059b9e23 watchdog: Fix OMAP watchdog early handling
b8cb3f4ffa3a net: multicast: calculate csum of looped-back and forwarded packets
07f7a1864929 spi: spl022: fix Microwire full duplex mode
db1d9d102ee4 nvmet-tcp: fix a memory leak when releasing a queue
0e86b727a94f xen/netfront: stop tx queues during live migration
69b14e23dfc3 gpio: mlxbf2.c: Add check for bgpio_init failure
b92ac0a9ca8f bpf: Prevent increasing bpf_jit_limit above max
a3564fb7b0bf bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
0ad7f317b933 fcnal-test: kill hanging ping/nettest binaries on cleanup
bc3e73ebb79b drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
4002f3944d41 mmc: winbond: don't build on M68K
a1ea41f91dcb reset: socfpga: add empty driver allowing consumers to probe
a90398438517 ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
f03e04bb9d11 hyperv/vmbus: include linux/bitops.h
6491ccdde2c5 sfc: Don't use netif_info before net_device setup
e519acba2fae sfc: Export fibre-specific supported link modes
7986fdbbe009 cavium: Fix return values of the probe function
ad01685177ce mISDN: Fix return values of the probe function
a6cb5e09e16a scsi: qla2xxx: Fix unmap of already freed sgl
77fee241e6eb scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
940783d08d15 cavium: Return negative value when pci_alloc_irq_vectors() fails
75710d583cc4 ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers
92556e3c2b2e ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked()
73199aadcd5c x86/irq: Ensure PI wakeup handler is unregistered before module unload
df8a74fc15ea x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
115810a26527 x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
b05eea1bcb36 fuse: fix page stealing
d81e341fb13a ext4: refresh the ext4_ext_path struct after dropping i_data_sem.
4089432dc030 ext4: ensure enough credits in ext4_ext_shift_path_extents
aa21b7e3d320 ext4: fix lazy initialization next schedule time computation in more granular unit
782025948bc6 ALSA: timer: Unconditionally unlink slave instances, too
b980ce4ebb8b ALSA: timer: Fix use-after-free problem
7c6fd525044c ALSA: synth: missing check for possible NULL after the call to kstrdup
ecd536c57ab7 ALSA: hda: Free card instance properly at probe errors
f503a25a3de3 ALSA: usb-audio: Add registration quirk for JBL Quantum 400
9259518fab5b ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk
3c7a3f2d79f7 ALSA: line6: fix control and interrupt message timeouts
21f9c02a4ded ALSA: 6fire: fix control and bulk message timeouts
0e4c288a74a3 ALSA: ua101: fix division by zero at probe
4f9e9c389e10 ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
62b189f9f3c5 ALSA: hda/realtek: Add quirk for ASUS UX550VE
a770cb746bdd ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
88bcfcc50d0e ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
0288f838a2e3 ALSA: hda/realtek: Add quirk for Clevo PC70HS
3d0e5d2eaff1 ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED
f0750e98010a ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14
a2b3dbc9fd24 media: v4l2-ioctl: Fix check_ext_ctrls
151eff588043 media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
71a137376b64 media: rkvdec: Support dynamic resolution changes
b2b5126a777b media: ite-cir: IR receiver stop working after receive overflow
39275d2ec6ff media: rkvdec: Do not override sizeimage for output format
949c5b6daa75 crypto: s5p-sss - Add error handling in s5p_aes_probe()
9ac25cd2f4ec firmware/psci: fix application of sizeof to pointer
dd189feebaf8 tpm: Check for integer overflow in tpm2_map_response_body()
32498b8889c8 parisc: Fix ptrace check on syscall return
15b4142aea0a parisc: Fix set_fixmap() on PA1.x CPUs
284ad310542f exfat: fix incorrect loading of i_blocks for large files
823b487cfbfc mmc: dw_mmc: Dont wait for DRTO on Write RSP error
7b24b669d3f9 mmc: mtk-sd: Add wait dma stop done flow
c1d31266de3d scsi: qla2xxx: Fix use after free in eh_abort path
37b15db1d87c scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
06cc8187dbb6 scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
9d623bf1736b ocfs2: fix data corruption on truncate
39264eaa6d44 libata: fix read log timeout value
ab0a06769e69 Input: i8042 - Add quirk for Fujitsu Lifebook T725
8c341d11c8bd Input: elantench - fix misreporting trackpoint coordinates
d1eb42de7cf9 Input: iforce - fix control-message timeout
afbec52fbce0 binder: use cred instead of task for getsecid
0d9f4ae7cd6f binder: use cred instead of task for selinux checks
bd9cea41ac6e binder: use euid from cred instead of using task
7f1d5a1a7d80 usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
ff32302687fd xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay

(From OE-Core rev: 43478c509c5c58c09cb67989a3d22bce9761f6ba)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b0c843e4f1e7d255b5be1e4a0b2516a38256e25e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Bruce Ashfield
60164ff894 linux-yocto/5.14: update to v5.14.21
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

545728d9e085 Linux 5.14.21
999805aaf925 Revert "ACPI: scan: Release PM resources blocked by unused objects"
0750f769b958 thermal: Fix NULL pointer dereferences in of_thermal_ functions
50812034d105 perf/core: Avoid put_page() when GUP fails
ae2afdf82a00 PCI: Add MSI masking quirk for Nvidia ION AHCI
18c55aed17b2 PCI/MSI: Deal with devices lying about their MSI mask capability
f64af1735731 PCI/MSI: Destroy sysfs before freeing entries
f41389affe96 parisc/entry: fix trace test in syscall exit path
56249b445477 Bluetooth: btusb: Add support for TP-Link UB500 Adapter
dbaa485bc5a1 bootconfig: init: Fix memblock leak in xbc_make_cmdline()
6bb162d35d74 loop: Use blk_validate_block_size() to validate block size
e2d865b3109c block: Add a helper to validate the block size
5b9f31a3be76 fortify: Explicitly disable Clang support
87304542f264 KVM: Fix steal time asm constraints
02eafa8f1558 Revert "drm: fb_helper: fix CONFIG_FB dependency"
bd462930f7e5 Revert "drm: fb_helper: improve CONFIG_FB dependency"
ff7124b91f52 Linux 5.14.20
1b86960dc451 Revert "x86: Fix get_wchan() to support the ORC unwinder"
961913f45ff6 Revert "sched: Add wrapper for get_wchan() to keep task blocked"
b51c1a592faa Revert "x86: Fix __get_wchan() for !STACKTRACE"
0e62c60b3e7e Linux 5.14.19
c6d58e3e55f5 media: videobuf2-dma-sg: Fix buf->vb NULL pointer dereference
283fd7d9fdea media: videobuf2: always set buffer vb2 pointer
6a1968a2f2f6 x86/sev: Make the #VC exception stacks part of the default stacks storage
8c57c9ff7e88 x86/sev: Add an x86 version of cc_platform_has()
0e1cd02ff0d8 arch/cc: Introduce a function to check for confidential computing features
45a47382941d IMA: reject unknown hash algorithms in ima_get_hash_algo
a3c6e358fbe4 selftests/bpf: Fix also no-alu32 strobemeta selftest
49ed44184d0c selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage
35207858385e mmc: moxart: Fix null pointer dereference on pointer host
c254f7893bc1 ath10k: fix invalid dma_addr_t token assignment
733aac9beea8 cifs: fix memory leak of smb3_fs_context_dup::server_hostname
4f2bf4fe6c0d media: vidtv: move kfree(dvb) to vidtv_bridge_dev_release()
af09862cb566 drm/amd/display: Look at firmware version to determine using dmub on dcn21
697103ad736a pinctrl: amd: Handle wake-up interrupt
03e1b25d4079 pinctrl: amd: Add irq field data
f80264b897b2 SUNRPC: Partial revert of commit 6f9f17287e78
7a914508ca2f PCI: aardvark: Fix PCIe Max Payload Size setting
f12fbf40bf63 PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
7005ee54fc09 drm/sun4i: Fix macros in sun8i_csc.h
a595cc219051 powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n
0a6412029f7e powerpc/pseries/mobility: ignore ibm, platform-facilities updates
baf19ea102c3 powerpc/64s/interrupt: Fix check_return_regs_valid() false positive
251959e47018 powerpc/security: Use a mutex for interrupt exit code patching
0795f5e71d1d powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
36859829b783 powerpc/32e: Ignore ESR in instruction storage interrupt handler
db56efa61734 powerpc/bpf: Fix write protecting JIT code
b3e0a9cb6a67 powerpc/vas: Fix potential NULL pointer dereference
0bc921b6db55 mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines
f5a84162f174 mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines
426c3bda4995 mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines
26b77361800a mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines
8d37b0ee8875 mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines
0c82481e3064 mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines
6ad70604565c mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines
e4435dec6149 mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines
ab5fdf2c5a41 mtd: rawnand: fsmc: Fix use of SM ORDER
6e7363893639 remoteproc: imx_rproc: Fix rsc-table name
0f27656d5e26 remoteproc: imx_rproc: Fix ignoring mapping vdev regions
fce6586cd1d7 remoteproc: Fix the wrong default value of is_iomem
69dbe49b7eac remoteproc: elf_loader: Fix loading segment when is_iomem true
7d1ece44014b s390/cio: make ccw_device_dma_* more robust
60b9aef7f2eb s390/ap: Fix hanging ioctl caused by orphaned replies
9525ecf82f04 s390/tape: fix timer initialization in tape_std_assign()
efa70f3da72a s390/cio: check the subchannel validity for dev_busid
2ea358c095ad s390/cpumf: cpum_cf PMU displays invalid value after hotplug remove
e554c13dbe3c PM: sleep: Avoid calling put_device() under dpm_list_mtx
f36ada9c43db video: backlight: Drop maximum brightness override for brightness zero
c928e634b492 mfd: dln2: Add cell for initializing DLN2 ADC
8d55a5f82210 mm, oom: do not trigger out_of_memory from the #PF
dc6b83b8fef9 mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
5741bd42f7c5 io-wq: serialize hash clear with wakeup
9f9d088a4b7d io-wq: fix queue stalling race
92b69466102b io-wq: ensure that hash wait lock is IRQ disabling
31132a895eaa memcg: prohibit unconditional exceeding the limit of dying tasks
d3a14035e51b mm/filemap.c: remove bogus VM_BUG_ON
4546a8cb993c 9p/net: fix missing error check in p9_check_errors
2febd1914ddc bpf, cgroup: Assign cgroup in cgroup_sk_alloc when called from interrupt
72c0c32d9dde bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode
06cf324a465a net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
515cfde2a028 dmaengine: bestcomm: fix system boot lockups
3f5e4b70cd7a dmaengine: ti: k3-udma: Set r/tchan or rflow to NULL if request fail
3a127ccaf9a0 dmaengine: ti: k3-udma: Set bchan to NULL if a channel request fail
2f9e6bcab0a1 erofs: fix unsafe pagevec reuse of hooked pclusters
5b67adb7425e f2fs: fix UAF in f2fs_available_free_memory
616c1311b0f3 f2fs: include non-compressed blocks in compr_written_block
25b7077e30ee f2fs: should use GFP_NOFS for directory inodes
29868ae1478f irqchip/sifive-plic: Fixup EOI failed when masked
1bf2fc90b15b posix-cpu-timers: Clear task::posix_cputimers_work in copy_process()
f7ece74d0ab2 KVM: x86: move guest_pv_has out of user_access section
4c09233d17ce x86/mce: Add errata workaround for Skylake SKX37
e95e07bab005 MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
70eeeb5aa01a MIPS: fix duplicated slashes for Platform file path
1eed13f0aba9 parisc: Flush kernel data mapping in set_pte_at() when installing pte for user page
1a396e845df7 parisc: Fix backtrace to always include init funtion names
b30255c8e2dd ARM: 9156/1: drop cc-option fallbacks for architecture selection
a39c9f2ff126 ARM: 9155/1: fix early early_iounmap()
a6e210f38fd9 smb3: do not error on fsync when readonly
05f320417823 selftests/net: udpgso_bench_rx: fix port argument
36810c9fc743 cxgb4: fix eeprom len when diagnostics not implemented
f9a2f543823f net/smc: fix sk_refcnt underflow on linkdown and fallback
eedcf3fb5e61 vsock: prevent unnecessary refcnt inc for nonblocking connect
ed5ac8bf1dbd net: marvell: mvpp2: Fix wrong SerDes reconfiguration order
e2abbf7dea22 net: ethernet: ti: cpsw_ale: Fix access to un-initialized memory
d2d62615396f net: stmmac: allow a tc-taprio base-time of zero
f116f0dad316 net: hns3: allow configure ETS bandwidth of all TCs
c7f7dc737f0d net: hns3: fix kernel crash when unload VF while it is being reset
214dbb2b4042 net: hns3: fix pfc packet number incorrect after querying pfc parameters
6fc15f27d462 net: hns3: fix ROCE base interrupt vector initialization bug
1959c3614227 net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
45dea1317981 net: dsa: mv88e6xxx: Don't support >1G speeds on 6191X on ports other than 10
5862afa33cb1 seq_file: fix passing wrong private data
17f7aec830f5 drm/i915/fb: Fix rounding error in subsampled plane size calculation
e8cf4c96f11e gve: Fix off by one in gve_tx_timeout()
cf427bf68f29 dmaengine: stm32-dma: avoid 64-bit division in stm32_dma_get_max_width
b3ce1fc8100a dmaengine: stm32-dma: fix burst in case of unaligned memory address
af400d2469ae bpf, sockmap: sk_skb data_end access incorrect when src_reg = dst_reg
6b0db2a36f9a bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
0580e47c8895 bpf, sockmap: Fix race in ingress receive verdict with redirect to self
778aec90440f bpf, sockmap: Remove unhash handler for BPF sockmap usage
1ad5169dbb1c arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
cdc29bc2748f arm64: arm64_ftr_reg->name may not be a human-readable string
8fbaf7b79caa nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
5dedc3a392e3 llc: fix out-of-bound array index in llc_sk_dev_hash()
78455257102e perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
700f183edb05 zram: off by one in read_block_state()
ec82306f4509 mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
8f04fdb42298 can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable()
4f389e1276a5 can: etas_es58x: es58x_rx_err_msg(): fix memory leak in error path
7a3210be9964 Revert "drm/imx: Annotate dma-fence critical section in commit path"
cd5d00738d62 drm: fb_helper: improve CONFIG_FB dependency
748dc40f1552 selftests/bpf/xdp_redirect_multi: Limit the tests in netns
67ebdf08154e selftests/bpf/xdp_redirect_multi: Give tcpdump a chance to terminate cleanly
63d52d3f722b selftests/bpf/xdp_redirect_multi: Use arping to accurate the arp number
52058c2e5516 selftests/bpf/xdp_redirect_multi: Put the logs to tmp folder
5ad1157af560 libbpf: Fix lookup_and_delete_elem_flags error reporting
006b5af213cd ACPI: PM: Fix device wakeup power reference counting error
c6d718f67eff mfd: altera-sysmgr: Fix a mistake caused by resource_size conversion
051b35b83508 mfd: sprd: Add SPI device ID table
fa6a7b427e3e mfd: cpcap: Add SPI device ID table
b862c9d1aa0d mfd: core: Add missing of_node_put for loop iteration
c85582ef7d42 ALSA: memalloc: Catch call with NULL snd_dma_buffer pointer
61ef4e2f3fbf bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
51f230381aee drm/ttm: remove ttm_bo_vm_insert_huge()
1e520022ebb7 net: phy: fix duplex out of sync problem while changing settings
a3a5d0e13066 cpufreq: intel_pstate: Clear HWP desired on suspend/shutdown and offline
d79404b45c10 PCI: Do not enable AtomicOps on VFs
267a022590e3 ataflop: remove ataflop_probe_lock mutex
4972bb9f9266 block/ataflop: provide a helper for cleanup up an atari disk
4f6264ed34b6 block/ataflop: add registration bool before calling del_gendisk()
ff8f1a821132 block/ataflop: use the blk_cleanup_disk() helper
5921ada07f55 drm/nouveau/svm: Fix refcount leak bug and missing check against null bug
86b53a83c55b nvdimm/btt: do not call del_gendisk() if not needed
02dea719283f PCI: j721e: Fix j721e_pcie_probe() error path
01b47659d9d1 ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
bbe42d65433a ice: Fix not stopping Tx queues for VFs
b15d8035cdb7 ice: Fix replacing VF hardware MAC to existing MAC filter
ff5b62b0decb net: dsa: felix: fix broken VLAN-tagged PTP under VLAN-aware bridge
1554b63d8751 net: dsa: tag_ocelot: break circular dependency with ocelot switch lib driver
fca96b3f852a net: vlan: fix a UAF in vlan_dev_real_dev()
7f639a03e4ab openrisc: fix SMP tlb flush NULL pointer dereference
e75b136530ce ethtool: fix ethtool msg len calculation for pause stats
f776103499bf kselftests/net: add missed icmp.sh test to Makefile
d2afb868adc9 net: davinci_emac: Fix interrupt pacing disable
5ed0d8c6af53 nbd: fix possible overflow for 'first_minor' in nbd_dev_add()
69f35664ee1f nbd: fix max value for 'first_minor'
40804b6959fa xen-pciback: Fix return in pm_ctrl_init()
3612fdf488d5 gpio: realtek-otto: fix GPIO line IRQ offset
c64b55c85fb2 i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
60e8a9733d82 NFSv4: Fix a regression in nfs_set_open_stateid_locked()
288be49e2e2e scsi: qla2xxx: Turn off target reset during issue_lip
66adfc54bd79 scsi: qla2xxx: Fix gnl list corruption
7c32b407ef0a scsi: target: core: Remove from tmr_list during LUN unlink
bac37c7433c5 ar7: fix kernel builds for compiler test
85b7c9ef119b watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
bae8c19f3063 m68k: set a default value for MEMORY_RESERVE
9c30504d85d2 signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
ab91e1ea48db dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
ea52aeeb0da1 netfilter: nfnetlink_queue: fix OOB when mac header was cleared
fa46546d0871 soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
a4a5ee9741ea auxdisplay: ht16k33: Fix frame buffer device blanking
32d349f3e4ee auxdisplay: ht16k33: Connect backlight to fbdev
be51f4ed87ed auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
cee0757bca0d Fix user namespace leak
2892327b226c NFS: Fix an Oops in pnfs_mark_request_commit()
f97d474f1b78 NFS: Fix up commit deadlocks
0adbe4155e0b dmaengine: stm32-dma: fix stm32_dma_get_max_width
ca3b5c976540 dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
e8886cff93f0 dmaengine: at_xdmac: call at_xdmac_axi_config() on resume path
d08efac1f61e rtc: rv3032: fix error handling in rv3032_clkout_set_rate()
32fe246e33c6 remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()'
c0bd86c72dc0 mtd: core: don't remove debugfs directory if device is in use
f3ecfa903c2f mtd: rawnand: arasan: Prevent an unsupported configuration
e5744356f335 PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation
9254b2c16ba3 mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
3189e1420b29 Input: st1232 - increase "wait ready" timeout
bef23befe1cd fs: orangefs: fix error return code of orangefs_revalidate_lookup()
f2deeaf169b8 NFS: Fix deadlocks in nfs_scan_commit_list()
0776aa4efe05 opp: Fix return in _opp_add_static_v2()
d192572a43b6 PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
b262b5fb60b4 PCI: aardvark: Don't spam about PIO Response Status
8d76b46f5810 drm/plane-helper: fix uninitialized variable reference
0bb7a9c31e4e drm/bridge/lontium-lt9611uxc: fix provided connector suport
9c8d416d7a52 pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
be46326d9c65 NFS: Fix dentry verifier races
527b6ec3e979 NFS: Ignore the directory size when marking for revalidation
255fc6efacf2 NFS: Don't set NFS_INO_DATA_INVAL_DEFER and NFS_INO_INVALID_DATA
cbe0ef0063e5 NFS: Default change_attr_type to NFS4_CHANGE_TYPE_IS_UNDEFINED
6033546caa09 i2c: mediatek: fixing the incorrect register offset
a58fb2098608 Input: ariel-pwrbutton - add SPI device ID table
135c6ab095b0 rtc: mcp795: Add SPI ID table
f6136953df6e remoteproc: imx_rproc: Fix TCM io memory type
511a35aa4400 rtc: pcf2123: Add SPI ID table
e0fc7ea848f4 rtc: ds1390: Add SPI ID table
5c83c670e113 rtc: ds1302: Add SPI ID table
aeb40af85292 nfsd: don't alloc under spinlock in rpc_parse_scope_id
b33831877a0e mtd: rawnand: intel: Fix potential buffer overflow in probe
2c3a8b1701dc rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
1f6483f7c0d4 apparmor: fix error check
12af444fb18b RDMA/core: Require the driver to set the IOVA correctly during rereg_mr
db35ff6ff095 power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
17d0a494465f mips: cm: Convert to bitfield API to fix out-of-bounds access
e941eb7523e6 virtio_ring: check desc == NULL when using indirect with packed
8a1bf46732bf serial: cpm_uart: Protect udbg definitions by CONFIG_SERIAL_CPM_CONSOLE
cceb856eb7f3 ASoC: rsnd: Fix an error handling path in 'rsnd_node_count()'
5e0210787cfa RDMA/hns: Modify the value of MAX_LP_MSG_LEN to meet hardware compatibility
45107b861a80 RDMA/hns: Fix initial arm_st of CQ
f3de2499242c ASoC: cs42l42: Correct configuring of switch inversion from ts-inv
03e45fb778c5 powerpc: Don't provide __kernel_map_pages() without ARCH_SUPPORTS_DEBUG_PAGEALLOC
14b05b63bfbb ALSA: oxfw: fix functional regression for Mackie Onyx 1640i in v5.14 or later
8af7e2b8d96f powerpc/xmon: fix task state output
8557ce3ddb0e powerpc/44x/fsp2: add missing of_node_put
694756f543b0 powerpc/book3e: Fix set_memory_x() and set_memory_nx()
f0a8154f6c66 powerpc/nohash: Fix __ptep_set_access_flags() and ptep_set_wrprotect()
15ccc53df3a4 HID: u2fzero: properly handle timeouts in usb_submit_urb
cc68082a3f76 HID: u2fzero: clarify error check and length calculations
463e138a67cb clk: at91: clk-master: fix prescaler logic
a4978a6cfd9e clk: at91: clk-master: check if div or pres is zero
b42bf5de6bef clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL
e40f88ca6e5b serial: xilinx_uartps: Fix race condition causing stuck TX
b135a66c3410 phy: Sparx5 Eth SerDes: Fix return value check in sparx5_serdes_probe()
16db43fc0568 phy: qcom-snps: Correct the FSEL_MASK
f639952d70c6 phy: ti: gmii-sel: check of_get_address() for failure
02058ab1dcec phy: qcom-qusb2: Fix a memory leak on probe
05d2c884bbb0 ASoC: topology: Fix stub for snd_soc_tplg_component_remove()
20cef4273de0 pinctrl: equilibrium: Fix function addition in multiple groups
fbf843c5fde5 arm64: dts: qcom: sdm845: Fix Qualcomm crypto engine bus clock
24231d918e46 arm64: dts: qcom: sdm845: Use RPMH_CE_CLK macro directly
cd068f71c245 arm64: dts: qcom: pmi8994: Fix "eternal"->"external" typo in WLED node
0f2768e7aaa4 soc: qcom: apr: Add of_node_put() before return
5e313f56a004 soc: qcom: rpmhpd: fix sm8350_mxc's peer domain
fae72275217d firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available()
61bb3fac7a56 powerpc/booke: Disable STRICT_KERNEL_RWX, DEBUG_PAGEALLOC and KFENCE
d58dbd7c9765 usb: dwc2: drd: reset current session before setting the new one
c6a6138fd3d0 usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled
8d4801295664 usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init
97714002eb5c serial: imx: fix detach/attach of serial console
f265551f304a scsi: lpfc: Wait for successful restart of SLI3 adapter during host sg_reset
9c9321f3af65 scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer
8104d165fe8c soundwire: bus: stop dereferencing invalid slave pointer
4e599aa437f8 iio: adis: do not disabe IRQs in 'adis_init()'
1cc004bb7e1d usb: typec: STUSB160X should select REGMAP_I2C
2c05b78785ae iio: buffer: Fix double-free in iio_buffers_alloc_sysfs_and_mask()
ddcdf294b31b soc: qcom: socinfo: add two missing PMIC IDs
4be134c2caf0 soc: qcom: rpmhpd: Make power_on actually enable the domain
c4607253ded6 ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
24d49d9f0dc6 ASoC: cs42l42: Correct some register default values
066f6d94e87b ASoC: cs42l42: Always configure both ASP TX channels
a9e0fed5c311 ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15
de4c998f9634 ARM: dts: stm32: fix SAI sub nodes register range
d39348632e9e ARM: dts: stm32: fix STUSB1600 Type-C irq level on stm32mp15xx-dkx
74447d38de5e ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz
d34d4f395674 pinctrl: renesas: checker: Fix off-by-one bug in drive register check
03f7759f9003 powerpc/perf: Fix cycles/instructions as PM_CYC/PM_INST_CMPL in power10
ae59bf224965 dyndbg: make dyndbg a known cli param
4d3bee930ce9 staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
d9d577801350 staging: most: dim2: do not double-register the same device
65f101a4bb56 usb: musb: select GENERIC_PHY instead of depending on it
04ec60e77ef2 RDMA/mlx4: Return missed an error if device doesn't support steering
96e9a4068a2a scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
f0d4f0cd9442 power: supply: max17040: fix null-ptr-deref in max17040_probe()
71ad44224a78 power: supply: rt5033_battery: Change voltage values to µV
4848d094da0e usb: gadget: hid: fix error code in do_config()
ff22ff487e5a serial: 8250_dw: Drop wrong use of ACPI_PTR()
1e405bd00949 powerpc/paravirt: correct preempt debug splat in vcpu_is_preempted()
e093b8b68af7 powerpc: fix unbalanced node refcount in check_kvm_guest()
87557023bcf0 video: fbdev: chipsfb: use memset_io() instead of memset()
327788eb627c powerpc/mem: Fix arch/powerpc/mm/mem.c:53:12: error: no previous prototype for 'create_section_mapping'
5ec603fc4c1f clk: at91: check pmc node status before registering syscore ops
b885c49c7733 memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
677ee2d1634a soc/tegra: Fix an error handling path in tegra_powergate_power_up()
3a39364557c3 iio: st_pressure_spi: Add missing entries SPI to device ID table
c23d6902073e ASoC: SOF: topology: do not power down primary core during topology removal
b810bd3db9ef arm: dts: omap3-gta04a4: accelerometer irq fix
c8542e40a779 driver core: Fix possible memory leak in device_link_add()
13f731ac9b17 scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp()
945070ab3d91 scsi: megaraid_sas: Fix concurrent access to ISR between IRQ polling and real interrupt
e850922067ec power: reset: at91-reset: check properly the return value of devm_of_iomap
60b15e314825 soundwire: debugfs: use controller id and link_id for debugfs
ee6e999f3f3d ALSA: hda: Use position buffer for SKL+ again
51ebfe87c0a8 ALSA: hda: Reduce udelay() at SKL+ position reporting
9c738280085a iommu/dma: Fix arch_sync_dma for map
09339ff9e671 arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000
20997b9aca4c iommu/mediatek: Fix out-of-range warning with clang
c1b5c72d4d59 arm64: dts: renesas: beacon: Fix Ethernet PHY mode
44bd0cd11f10 arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock
75988ebce563 ASoC: wcd9335: Use correct version to initialize Class H
fd4bc9383153 JFS: fix memleak in jfs_mount
08276a9bb6db MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
e0d09ee78793 scsi: dc395: Fix error case unwinding
231b0e5b20cd soc: qcom: llcc: Disable MMUHWT retention
1ba41a69c079 arm64: dts: qcom: sc7180: Base dynamic CPU power coefficients in reality
39413a92656f ARM: dts: at91: tse850: the emac<->phy interface is rmii
87b20cedac64 bus: ti-sysc: Fix timekeeping_suspended warning on resume
b8f089162080 arm64: dts: meson-sm1: Fix the pwm regulator supply properties
ec2a1df6cb10 arm64: dts: meson-g12b: Fix the pwm regulator supply properties
fe4b9c0806c1 arm64: dts: meson-g12a: Fix the pwm regulator supply properties
b6a3e5310a23 arm64: dts: ti: j7200-main: Fix "bus-range" upto 256 bus number for PCIe
82b4981ce328 arm64: dts: ti: j7200-main: Fix "vendor-id"/"device-id" properties of pcie node
4cfacb5443c7 arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe
01d704aa590e arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes
0bc01ceba816 RDMA/bnxt_re: Fix query SRQ failure
9c177b1c70eb ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
9e2601ac84b4 arm64: dts: rockchip: Fix GPU register width for RK3328
1d292cf27d89 arm64: dts: rockchip: fix rk3568 mbi-alias
18d83fc611a8 ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
295bdd05ba50 scsi: pm80xx: Fix lockup in outbound queue management
b74b57b738ba clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
465c4e9b718d arm64: dts: broadcom: bcm4908: Fix UART clock name
042ee2a50f89 ARM: dts: BCM5301X: Fix memory nodes names
ce412216fbfc RDMA/rxe: Fix wrong port_cap_flags
2427a4c9e4e7 iio: st_sensors: disable regulators after device unregistration
a61cb0ecc913 arm64: dts: meson: sm1: add Ethernet PHY reset line for ODROID-C4/HC4
3260de8b35af of: unittest: fix EXPECT text for gpio hog errors
8426a23213dc bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit.
32df0ac1c97b bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off.
4c4491e856a0 cgroup: Fix rootcg cpu.stat guest double counting
2e510c262523 skmsg: Lose offset info in sk_psock_skb_ingress
8777d613b23f ibmvnic: delay complete()
93d1d1bd0d58 ibmvnic: Process crqs after enabling interrupts
611e75876907 ibmvnic: don't stop queue in xmit
b7bf97fc5621 udp6: allow SO_MARK ctrl msg to affect routing
e39668a15aa2 selftests/bpf: Fix fclose/pclose mismatch in test_progs
8cf265bafd33 crypto: pcrypt - Delay write to padata->info
1d0709398213 selftests: net: bridge: update IGMP/MLD membership interval value
fe5bffbf6214 net: bridge: fix uninitialized variables when BRIDGE_CFM is disabled
d4fe67943ae4 net: phylink: avoid mvneta warning when setting pause parameters
148557b62d51 ipmi: kcs_bmc: Fix a memory leak in the error handling path of 'kcs_bmc_serio_add_device()'
5139ace7231d net: amd-xgbe: Toggle PLL settings during rate change
c329460af68e sctp: return true only for pathmtu update in sctp_transport_pl_toobig
8880eccbc789 sctp: subtract sctphdr len in sctp_transport_pl_hlen
777591117cd9 sctp: reset probe_timer in sctp_transport_pl_update
269b14dd6e10 sctp: allow IP fragmentation when PLPMTUD enters Error state
af1d4c7c44a9 selftests/bpf: Fix memory leak in test_ima
a75f4f978bab selftests/bpf: Fix fd cleanup in sk_lookup test
317a0c71ba61 drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
7f71a6a3bc4a drm/amdgpu: fix a potential memory leak in amdgpu_device_fini_sw()
a05760ad9460 wcn36xx: Channel list update before hardware scan
00da55838d50 bpf: Fixes possible race in update_prog_stats() for 32bit arches
81fe843efb4c wcn36xx: Fix discarded frames due to wrong sequence number
ff3948bc3d2a wcn36xx: add proper DMA memory barriers in rx path
65980896b216 libertas: Fix possible memory leak in probe and disconnect
e44f7a7cba46 libertas_tf: Fix possible memory leak in probe and disconnect
dd49c41472de KVM: s390: Fix handle_sske page fault handling
239e87d9f646 samples/kretprobes: Fix return value if register_kretprobe() failed
e1ff40b6194f x86: Fix __get_wchan() for !STACKTRACE
e9ede14c116f sched: Add wrapper for get_wchan() to keep task blocked
38bdcbf9828f spi: spi-rpc-if: Check return value of rpcif_sw_init()
e0eb459df7b2 cpufreq: intel_pstate: Fix cpu->pstate.turbo_freq initialization
ea3c5c9eabc2 tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
e6b885849667 libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED()
a003933e5579 tpm_tis_spi: Add missing SPI ID
8d43e218d53e tpm: fix Atmel TPM crash caused by too frequent queries
71e3f2ea7765 blk-cgroup: synchronize blkg creation against policy deactivation
71711bee74a4 block: ataflop: more blk-mq refactoring fixes
8b19699ff671 ath10k: fix module load regression with iram-recovery feature
1ac33d3510a6 ARM: 9142/1: kasan: work around LPAE build warning
5b01c24de282 net: dsa: avoid refcount warnings when ->port_{fdb,mdb}_del returns error
3fb2e953a38b irq: mips: avoid nested irq_enter()
0238de13d5ef KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm
848686bc72d6 KVM: s390: pv: avoid double free of sida page
679a612a0d6a s390/uv: fully validate the VMA before calling follow_page()
dcc9648cd192 s390/mm: fix VMA and page table handling code in storage key handling functions
783d5c1c009e s390/mm: validate VMA in PGSTE manipulation functions
591aa785c1a9 s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
4fe9c6d097da s390/gmap: validate VMA in __gmap_zap()
d3601801b028 mt76: mt7615: mt7622: fix ibss and meshpoint
7462b70c2cb9 libbpf: Fix BTF header parsing checks
6eefcdb58847 libbpf: Fix overflow in BTF sanity checks
a526d92e239c bpftool: Avoid leaking the JSON writer prepared for program metadata
f1890b3e95ae libbpf: Fix memory leak in btf__dedup()
f0c966094386 KVM: selftests: Fix nested SVM tests when built with clang
3c26214f5114 smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
951f277ddeff crypto: tcrypt - fix skcipher multi-buffer tests for 1420B blocks
161b7ee0ab62 drm/msm: Fix potential NULL dereference in DPU SSPP
958d4b4dce1f x86/sev: Fix stack type check in vc_switch_off_ist()
eb82db5a1cb8 clocksource/drivers/timer-ti-dm: Select TIMER_OF
d2a0b63348ee PM: hibernate: fix sparse warnings
78a3123bafca nvme-rdma: fix error code in nvme_rdma_setup_ctrl
846394ea4227 nbd: Fix use-after-free in pid_show
3218ca577dc0 phy: micrel: ksz8041nl: do not use power down mode
6565d4b25229 net: enetc: unmap DMA in enetc_send_cmd()
f3b6b7f2124b iwlwifi: pnvm: read EFI data only if long enough
c0ee10049f0f iwlwifi: pnvm: don't kmemdup() more than we have
4925a9dc91ca iwlwifi: mvm: reset PM state on unsuccessful resume
150eeb5ecbb8 mwifiex: Send DELBA requests according to spec
b1aa768ec157 rsi: stop thread firstly in rsi_91x_init() error handling
3ccaadc5bd57 mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req()
3a94ccdd929c mt76: mt7915: fix sta_rec_wtbl tag len
97d6c316e1aa mt76: connac: fix possible NULL pointer dereference in mt76_connac_get_phy_mode_v2
e1b1873523e4 mt76: mt7615: fix monitor mode tear down crash
754ce9d4062f mt76: mt7921: fix retrying release semaphore without end
5c6abb953396 mt76: mt7915: fix possible infinite loop release semaphore
3ff001be2c29 mt76: mt7615: fix hwmon temp sensor mem use-after-free
dd879ab927a3 mt76: mt7915: fix hwmon temp sensor mem use-after-free
3fe59d13aba0 mt76: mt7921: always wake device if necessary in debugfs
98967931f70f mt76: mt7921: fix kernel warning from cfg80211_calculate_bitrate
3ca3a4255e4e mt76: mt7921: fix firmware usage of RA info using legacy rates
a71eba425307 mt76: mt7921: report HE MU radiotap
f75989a2a4dd mt76: overwrite default reg_ops if necessary
1b2e3a89897f mt76: connac: fix GTK rekey offload failure on WPA mixed mode
c29855c0c1ed mt76: mt7921: fix dma hang in rmmod
d2697e6d8129 mt76: mt7915: fix bit fields for HT rate idx
b7282c7d0dc8 mt76: mt7915: fix potential overflow of eeprom page index
a95ec17c67a4 mt76: mt7921: Fix out of order process by invalid event pkt
37af03f35908 mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
02c06f2be95b mt76: mt7921: fix survey-dump reporting
d0e327a1646e mt76: fix build error implicit enumeration conversion
3a41d47d19ee mt76: connac: fix mt76_connac_gtk_rekey_tlv usage
93b3fa91782c mt76: mt7915: fix info leak in mt7915_mcu_set_pre_cal()
31a67f6c7c93 mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi
b442c8a72323 mt76: mt7921: fix endianness warning in mt7921_update_txs
07b8ee848c28 mt76: mt7915: fix endianness warning in mt7915_mac_add_txs_skb
5d1a084a476c mt76: mt7921: fix endianness in mt7921_mcu_tx_done_event
07b20f34a965 drm/amdkfd: Fix an inappropriate error handling in allloc memory of gpu
2c57dbc453d3 ACPI: PM: Fix sharing of wakeup power resources
f04fab5d90fa ACPI: PM: Turn off unused wakeup power resources
bc568fe55a17 platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
77de203d9a4f block: ataflop: fix breakage introduced at blk-mq refactoring
d43d31346658 mmc: mxs-mmc: disable regulator on error and in the remove function
8901914cdbd4 media: ir_toy: assignment to be16 should be of correct type
146e4bf44d61 media: ivtv: fix build for UML
471ed2202bd3 mailbox: Remove WARN_ON for async_cb.cb in cmdq_exec_done
4437f3ead9e8 net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
eed8766a9941 drm/msm: uninitialized variable in msm_gem_import()
fe7dcde39db7 drm/msm: fix potential NULL dereference in cleanup
5c13d4be499c drm/msm: potential error pointer dereference in init()
723d2914d817 drm/msm: Fix potential Oops in a6xx_gmu_rpmh_init()
bc4555ffd158 thermal/core: fix a UAF bug in __thermal_cooling_device_register()
650d1a2865e4 crypto: octeontx2 - set assoclen in aead_do_fallback()
24dfa642985f tcp: switch orphan_count to bare per-cpu counters
f270511247a5 x86: Fix get_wchan() to support the ORC unwinder
5652137ef653 net: tulip: winbond-840: fix build for UML
638d1283bbfc net: fealnx: fix build for UML
25d40b828fb8 kernel/sched: Fix sched_fork() access an invalid sched_task_group
27d16d8ec1a8 ath10k: fix max antenna gain unit
a57627b2ea67 hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
4b898aa013d8 hwmon: Fix possible memleak in __hwmon_device_register()
b9e2477e4de4 net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
646dabb85ef7 memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
d288021988e0 memstick: avoid out-of-range warning
a5b536f042a4 mmc: sdhci-omap: Fix context restore
eab2681ca5bb mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
e1628b6b6b7d gve: Track RX buffer allocation failures
89dda8da289e gve: Recover from queue stall due to missed IRQ
b8ba47d732d1 b43: fix a lower bounds test
7d14ae503c24 b43legacy: fix a lower bounds test
84328828d834 IMA: block writes of the security.ima xattr with unsupported algorithms
db75642768d2 hwrng: mtk - Force runtime pm ops for sleep ops
64bf6a343144 crypto: qat - disregard spurious PFVF interrupts
db60c3b02f4c crypto: qat - detect PFVF collision after ACK
693fc7e84bed crypto: ccree - avoid out-of-range warnings from clang
a0de5d1b841c media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
d16af0011cef media: venus: fix vpp frequency calculation for decoder
da821525882f netfilter: nft_dynset: relax superfluous check on set updates
05f2a14a2e4f rcu: Always inline rcu_dynticks_task*_{enter,exit}()
8dd1a500b7d8 EDAC/amd64: Handle three rank interleaving mode
dea84d9cfac2 x86/insn: Use get_unaligned() instead of memcpy()
4a1a695bee9e PM: EM: Fix inefficient states detection
e6335aef8b0f ath9k: Fix potential interrupt storm on queue reset
fe0c577b43e3 ath10k: Don't always treat modem stop events as crashes
ee85728ec044 media: em28xx: Don't use ops->suspend if it is NULL
2b942c364b77 cpuidle: Fix kobject memory leaks in error paths
94b691048402 drm: fb_helper: fix CONFIG_FB dependency
f28f2b20d05f crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
056e9bf9b4df kprobes: Do not use local variable when creating debugfs file
0706df90bcbf scs: Release kasan vmalloc poison in scs_free process
e3e9d565039b media: atmel: fix the ispck initialization
b3aa49fa1883 media: cx23885: Fix snd_card_free call on null card pointer
c6ac15417184 media: tm6000: Avoid card name truncation
7d87109753dd media: si470x: Avoid card name truncation
861532494e53 media: radio-wl1273: Avoid card name truncation
9e6a5f20278a media: sun6i-csi: Allow the video device to be open multiple times
80ef29aee4fe media: i2c: ths8200 needs V4L2_ASYNC
36c371057306 media: imx-jpeg: Fix the error handling path of 'mxc_jpeg_probe()'
0dd8fc82fa04 media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
e3a8abdb8f34 media: TDA1997x: handle short reads of hdmi info frame.
0d25488ab9a8 media: mtk-vcodec: venc: fix return value when start_streaming fails
a1120f37dfc4 media: v4l2-ioctl: S_CTRL output the right value
7d4317208c32 media: imx258: Fix getting clock frequency
f7baee6e0dd9 media: dvb-usb: fix ununit-value in az6027_rc_query
1505c5758932 media: ttusb-dec: avoid release of non-acquired mutex
ae0abe0db3f6 media: cxd2880-spi: Fix a null pointer dereference on error handling path
195ba4c00fd0 media: meson-ge2d: Fix rotation parameter changes detection in 'ge2d_s_ctrl()'
d3accf5edd7c media: em28xx: add missing em28xx_close_extension
051b36e399db libbpf: Fix skel_internal.h to set errno on loader retval < 0
5019c6127eb1 drm/amdgpu: fix warning for overflow check
75bf90feb4a6 arm64: mm: update max_pfn after memory hotplug
59f0c96b3f7a drm/ttm: stop calling tt_swapin in vm_access
61104f1c0083 ath10k: sdio: Add missing BH locking around napi_schdule()
bdf3ddbf83f0 ath10k: Fix missing frame timestamp for beacon/probe-resp
5e1f85a23ae0 gve: DQO: avoid unused variable warnings
b35a9d47203b ath11k: Fix memory leak in ath11k_qmi_driver_event_work
9b404c64784d ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status
afc36b6469bb ath11k: Avoid race during regd updates
aad8db659de2 ath11k: fix some sleeping in atomic bugs
24615ed29c06 net: dsa: rtl8366: Fix a bug in deleting VLANs
356b67db7834 net: dsa: rtl8366rb: Fix off-by-one bug
d759e6c0c090 cfg80211: always free wiphy specific regdomain
76ef0d62e488 fortify: Fix dropped strcpy() compile-time write overflow check
b17b52fe984d rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
188e62c48a53 qed: Don't ignore devlink allocation failures
b402ea43f6d1 bnxt_en: Check devlink allocation and registration status
30f53d14efb1 crypto: caam - disable pkc for non-E SoCs
d2891d4b5a2e drm/amdgpu: move amdgpu_virt_release_full_gpu to fini_early stage
9777ecdce80d Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
5c4f876eb2c6 wilc1000: fix possible memory leak in cfg_scan_result()
aa5324ab2f01 wcn36xx: Fix Antenna Diversity Switching
fa6aafb2411d cgroup: Make rebind_subsystems() disable v2 controllers all at once
9a7121cc8189 spi: Fixed division by zero warning
a69330b102ba drm: bridge: it66121: Fix return value it66121_probe
83285fa94ee4 net: phylink: don't call netif_carrier_off() with NULL netdev
246ea42a7b4e net: net_namespace: Fix undefined member in key_remove_domain()
391cdce61e3d lockdep: Let lock_is_held_type() detect recursive read as read
4adc275eba8a virtio-gpu: fix possible memory allocation failure
376bd99969e5 drm/v3d: fix wait for TMU write combiner flush
35d945ef6ac8 objtool: Handle __sanitize_cov*() tail calls
a9f61b66edc8 x86/xen: Mark cpu_bringup_and_idle() as dead_end_function
8d5eda239810 MIPS: lantiq: dma: fix burst length for DEU
67761195ad83 rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
47a4b733e8ff libbpf: Don't crash on object files with no symbol tables
db63399389bc Bluetooth: fix init and cleanup of sco_conn.timeout_work
061fb293a9dc drm/bridge: it66121: Wait for next bridge to be probed
0bf7139300d0 drm/bridge: it66121: Initialize {device,vendor}_ids
18919d23f7aa drm/bridge: anx7625: Propagate errors from sp_tx_rst_aux()
f53dc812a258 fbdev/efifb: Release PCI device's runtime PM ref during FB destroy
f0d5bf1ecb13 selftests/bpf: Fix strobemeta selftest regression
d6a0aa933c86 netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
68af9d200661 parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
db209b320754 parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
2ce1c884ad0b erofs: don't trigger WARN() when decompression fails
a55c2f265b80 task_stack: Fix end_of_stack() for architectures with upwards-growing stack
3129c659e256 parisc: fix warning in flush_tlb_all
65fadad6022d perf/x86/intel: Fix ICL/SPR INST_RETIRED.PREC_DIST encodings
f206bd751daa selftests/core: fix conflicting types compile error for close_range()
9be249debf4d drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled
2acb2cdcfc83 x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
19f1aba96f85 ftrace: do CPU checking after preemption disabled
a48bd49ee871 Revert "wcn36xx: Enable firmware link monitoring"
944285a03956 wcn36xx: Fix packet drop on resume
478d239fea12 wcn36xx: Correct band/freq reporting on RX
3874ef316cfe spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
9124f94eeeb1 btrfs: do not take the uuid_mutex in btrfs_rm_device
55c9fca5f56d btrfs: reflink: initialize return value to 0 in btrfs_extent_same()
e9941a010249 ACPI: resources: Add one more Medion model in IRQ override quirk
efa7308f7821 ACPI: AC: Quirk GK45 to skip reading _PSR
6cbda510dc1b net: annotate data-race in neigh_output()
5b37f3fa42b4 vrf: run conntrack only in context of lower/physdev for locally generated packets
e43cb595915c tools/latency-collector: Use correct size when writing queue_full_warning
56d7461776e0 ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
7da4447dbbec gfs2: Fix glock_hash_walk bugs
9b6a3985dc13 gfs2: Cancel remote delete work asynchronously
b108a79345c3 can: bittiming: can_fixup_bittiming(): change type of tseg1 and alltseg to unsigned int
3d9d9a77cdbe gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
69bfb5d7122e ARM: clang: Do not rely on lr register for stacktrace
002f1d6c7758 smackfs: use __GFP_NOFAIL for smk_cipso_doi()
6dbc76b0a53d iwlwifi: mvm: disable RX-diversity in powersave
6cf3abbda574 selftests/bpf: Fix perf_buffer test on system with offline cpus
65b5763eef82 selftests: kvm: fix mismatched fclose() after popen()
2093b1cdbdbf PM: hibernate: Get block device exclusively in swsusp_check()
cff152d77d9b arm64: vdso32: suppress error message for 'make mrproper'
c6065239b7cb nvme: drop scan_lock and always kick requeue list when removing namespaces
1e757b23aabe nvmet-tcp: fix use-after-free when a port is removed
844bbc958d8e nvmet-rdma: fix use-after-free when a port is removed
f252a62a2507 nvmet: fix use-after-free when a port is removed
9adc2bcdc812 drm/amdgpu/pm: properly handle sclk for profiling modes on vangogh
163ecd64c816 media: allegro: ignore interrupt if mailbox is not initialized
f63b9287375c block: remove inaccurate requeue check
bd45e6f3c0e9 iwlwifi: change all JnP to NO-160 configuration
8393c0806cc4 mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
0ca511d52a28 mt76: mt7915: fix an off-by-one bound check
91dc3f6ea7c8 tracing/cfi: Fix cmp_entries_* functions signature mismatch
ab816ffa09d5 workqueue: make sysfs of unbound kworker cpumask more clever
75bbf9642bd1 lib/xz: Validate the value before assigning it to an enum variable
93cc20fa51e8 lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
419ebe663671 locking/rwsem: Disable preemption for spinning region
38d7055de41a memstick: r592: Fix a UAF bug when removing the driver
ac14b0b119a4 md: update superblock after changing rdev flags in state_store
ca9ae3fb3315 floppy: fix calling platform_device_unregister() on invalid drives
8a6e8aa37207 block: bump max plugged deferred size from 16 to 32
f5ec8022cf54 thermal/drivers/tsens: Add timeout to get_temp_tsens_valid
cdcfcd25f40b drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture()
6154aa2ab2e0 thermal/core: Fix null pointer dereference in thermal_release()
2fba88c1705d leaking_addresses: Always print a trailing newline
57cdc39776d3 net: phy: micrel: make *-skew-ps check more lenient
7e4804d1aa82 drm/amdkfd: fix resume error when iommu disabled in Picasso
082ed61dabbc drm/amd/display: fix null pointer deref when plugging in display
c40061dab6b1 ACPI: scan: Release PM resources blocked by unused objects
afdc107129b5 ACPI: battery: Accept charges over the design capacity as full
8fa361b1b3e3 iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
af2af71fd12b mmc: moxart: Fix reference count leaks in moxart_probe
07a47bb0fba3 ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
b40f43fcd011 tracing: Disable "other" permission bits in the tracefs files
3d2f0cd9dcb9 tracefs: Have tracefs directories not set OTH permission bits by default
2a3c1044fc0d drm/amdkfd: rm BO resv on validation to avoid deadlock
84aa6d0e0767 net-sysfs: try not to restart the syscall if it will fail eventually
8e538cacf9be media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
35f16d8e6153 media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
d43da0118953 media: ipu3-imgu: imgu_fmt: Handle properly try
986b39450c48 media: imx-jpeg: Fix possible null pointer dereference
86d9d52d6856 ice: Move devlink port to PF/VF struct
f6afa36d653f cpufreq: Make policy min/max hard requirements
86a6e4f9815a ACPICA: Avoid evaluating methods too early during system resume
72742ae5e049 kselftests/sched: cleanup the child processes
aa171d3e8556 fs/proc/uptime.c: Fix idle time reporting in /proc/uptime
09bdbbc622e3 ipmi: Disable some operations during a panic
d051a3867bea media: rcar-csi2: Add checking to rcsi2_start_receiver()
f31b7caedd50 brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
39e14b269e27 rtw88: fix RX clock gate setting while fifo dump
f431d9923a69 ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
1f7d5294d2a7 media: mceusb: return without resubmitting URB in case of -EPROTO error.
6e0202ddccfb media: rcar-vin: Use user provided buffers when starting
352c818df095 media: imx: set a media_device bus_info string
8636c37018c3 media: videobuf2: rework vb2_mem_ops API
ee347b739d51 media: s5p-mfc: Add checking to s5p_mfc_probe().
6980d237fd4c media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
eb7da28fd166 media: vidtv: Fix memory leak in remove
2529c6a15579 media: uvcvideo: Set unique vdev name based in type
c115bfec8193 media: uvcvideo: Return -EIO for control errors
c0890fb5f421 media: uvcvideo: Set capability in s_param
7426dad05aaa media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
8277ec5aa8c5 media: atomisp: Fix error handling in probe
2ba21729c208 media: netup_unidvb: handle interrupt properly according to the firmware
2a1061af333e media: mt9p031: Fix corrupted frame after restarting stream
d808c6ee0c60 octeontx2-pf: Enable promisc/allmulti match MCAM entries.
2a27405cfaa5 ath10k: high latency fixes for beacon buffer
fb34da024434 ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets
d08b51d94747 ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED
08de8bf704a5 ath11k: Avoid reg rules update during firmware recovery
b584bd228614 selftests: net: fib_nexthops: Wait before checking reported idle time
9ea7c08eb634 drm/amd/display: Fix null pointer dereference for encoders
adb3b9b2a550 drm/amdgpu: Fix MMIO access page fault
40cfb8e68aa0 fscrypt: allow 256-bit master keys with AES-256-XTS
53283ee464c3 spi: Check we have a spi_device_id for each DT compatible
6cd93f39dd2b mwifiex: Properly initialize private structure on interface type changes
7871a1156efd mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
41592079230a x86: Increase exception stack sizes
bb3cc292e1a2 x86/mm/64: Improve stack overflow warnings
35512e506690 crypto: aesni - check walk.nbytes instead of err
b1b32bcc221a ath11k: Align bss_chan_info structure with firmware
8ed576395f6a smackfs: Fix use-after-free in netlbl_catmap_walk()
3f55b610b488 rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
0fcd85c7f3a1 ACPI: resources: Add DMI-based legacy IRQ override quirk
8a6214e36ff2 net: sched: update default qdisc visibility after Tx queue cnt changes
4f0ca9344d9e locking/lockdep: Avoid RCU-induced noinstr fail
134cef7b6974 MIPS: lantiq: dma: reset correct number of channel
1415242fd96b MIPS: lantiq: dma: add small delay after reset
f3b5ecab2735 platform/x86: wmi: do not fail if disabling fails
d50100c17038 rcutorture: Avoid problematic critical section nesting on PREEMPT_RT
5aad1e68ff1e drm/panel-orientation-quirks: add Valve Steam Deck
b87da982da1b Bluetooth: fix use-after-free error in lock_sock_nested()
2c2b295af72e Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
9314415aaed7 drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
491defc1c9d6 drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
b7a63c785ae6 drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
e158f9b7feea dma-buf: WARN on dmabuf release with pending attachments
5493d7e67ec7 component: do not leave master devres group open after bind
10f54634341d power: supply: max17042_battery: Clear status bits in interrupt handler
ad80b75ab97f USB: chipidea: fix interrupt deadlock
b4b4c4b1499f USB: iowarrior: fix control-message timeouts
c852092e5692 most: fix control-message timeouts
2685d8b506da serial: 8250: fix racy uartclk update
bd7ac40cbfe8 USB: serial: keyspan: fix memleak on probe errors
93198e6da9eb Documentation:devicetree:bindings:iio:dac: Fix val
8bc3eac174aa iio: ad5770r: make devicetree property reading consistent
a664d4a75c07 iio: dac: ad5446: Fix ad5622_write() return value
e99fa2a9f9d7 drivers: iio: dac: ad5766: Fix dt property name
a9501b2bfc91 iio: buffer: Fix memory leak in iio_buffer_register_legacy_sysfs_groups()
46bb49301f46 iio: buffer: Fix memory leak in __iio_buffer_alloc_sysfs_and_mask()
3827d12e1a80 iio: buffer: Fix memory leak in iio_buffers_alloc_sysfs_and_mask()
364ee3057abd iio: buffer: check return value of kstrdup_const()
fdd9d3e268cf coresight: trbe: Defer the probe on offline CPUs
ddffd384d44c coresight: trbe: Fix incorrect access of the sink specific data
13de015c782d coresight: cti: Correct the parameter for pm_runtime_put
7a0a1d45b318 pinctrl: core: fix possible memory leak in pinctrl_enable()
217ece6c45a8 cifs: set a minimum of 120s for next dns resolution
49f933bb3016 cifs: To match file servers, make sure the server hostname matches
5d0714e7d979 quota: correct error number in free_dqentry()
b2d7d1845799 quota: check block number when reading the block in quota file
2830878daf16 PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge
a298da0df043 PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge
17099eb5978b PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge
137f450a17a0 PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge
dba8de2c8771 PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
937f91f8f621 PCI: aardvark: Fix return value of MSI domain .alloc() method
b775cd868cf3 PCI: aardvark: Fix configuring Reference clock
7083088eb99f PCI: aardvark: Fix reporting Data Link Layer Link Active
8b74250f05fb PCI: aardvark: Do not unmask unused interrupts
ca41077ee082 PCI: aardvark: Fix checking for link up via LTSSM state
b05c2e6638df PCI: aardvark: Do not clear status bits of masked interrupts
1110d1921cd3 cxl/pci: Fix NULL vs ERR_PTR confusion
f6c83346fbe5 PCI: cadence: Add cdns_plat_pcie_probe() missing return
a4935eef58d2 PCI: pci-bridge-emul: Fix emulation of W1C bits
500a1bac743c ovl: fix use after free in struct ovl_aio_req
88e9929b632e xen/balloon: add late_initcall_sync() for initial ballooning done
7373f03ae79c ifb: fix building without CONFIG_NET_CLS_ACT
0d546e9fc83b serial: core: Fix initializing and restoring termios speed
2348cadfddfd ring-buffer: Protect ring_buffer_reset() from reentrancy
6f67cf08fef0 powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
9028e051345b iio: adc: tsc2046: fix scan interval warning
299623b1b088 can: j1939: j1939_can_recv(): ignore messages with invalid source address
a6591eb3c58b can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
22237bb988c1 KVM: nVMX: Handle dynamic MSR intercept toggling
8a5180ecdcb6 KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
ab71116b1f07 KVM: x86: Add helper to consolidate core logic of SET_CPUID{2} flows
da10e2d30634 KVM: x86: Fix recording of guest steal time / preempted status
b83f9cdc8066 KVM: arm64: Extract ESR_ELx.EC only
b594bf02dc6f iio: core: check return value when calling dev_set_name()
76289ff637ec iio: core: fix double free in iio_device_unregister_sysfs()
7c0f37ace715 power: supply: max17042_battery: use VFSOC for capacity when no rsns
6edf86431107 power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
cb178acf8764 mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines
3c6ffb9bb1ea soc: fsl: dpio: use the combined functions to protect critical zone
54be06958eb4 soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id
38ae173cb7cf soc: samsung: exynos-pmu: Fix compilation when nothing selects CONFIG_MFD_CORE
d3586ddc9889 signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
9f3e024e6483 memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode
b70a29116278 signal: Remove the bogus sigkill_pending in ptrace_stop
0509d911b94e ASoC: tegra: Restore AC97 support
64c65655758b ASoC: tegra: Set default card name for Trimslice
0aef11438832 RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
7ed060a0ea38 perf/x86/intel/uncore: Fix Intel ICX IIO event constraints
2e11d51006ac perf/x86/intel/uncore: Fix invalid unit check
425e486c72d6 perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server
a3d5adaee5ac rsi: Fix module dev_oper_mode parameter description
c76421bd155f rsi: fix rate mask set leading to P2P failure
437ce21d2076 rsi: fix key enabled check causing unwanted encryption for vap_id > 0
3945a7308f0d rsi: fix occasional initialisation failure with BT coex
471e28ecee8c wcn36xx: handle connection loss indication
4c13483e1fa4 libata: fix checking of DMA state
1a0963d1d448 mwifiex: Try waking the firmware until we get an interrupt
e5fbcd97b4be mwifiex: Read a PCI register after writing the TX ring write pointer
ad34c5f90c2c PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions
0f2d037e8ae9 wcn36xx: Fix (QoS) null data frame bitrate/modulation
ec82bede563b wcn36xx: Fix tx_status mechanism
52da1f9c5e9c wcn36xx: Fix HT40 capability for 2Ghz band
91fa7ec38256 HID: surface-hid: Allow driver matching for target ID 1 devices
4d55b85a1598 HID: surface-hid: Use correct event registry for managing HID events
6979b6f294c0 mt76: mt7615: fix skb use-after-free on mac reset
7761ffec11da platform/surface: aggregator_registry: Add support for Surface Laptop Studio
dd6c06c4538c ifb: Depend on netfilter alternatively to tc
2cd65a22a478 evm: mark evm_fixmode as __ro_after_init
e426e7842ee3 rtl8187: fix control-message timeouts
bab67ca269f9 PCI: Mark Atheros QCA6174 to avoid bus reset
0d74280d5dd9 ath10k: fix division by zero in send path
b5b911da1b16 ath10k: fix control-message timeout
abd6b17ca36f ath6kl: fix control-message timeout
dbe62858b49f ath6kl: fix division by zero in send path
96d108642240 mwifiex: fix division by zero in fw download path
2bbb56b7c305 EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
8f3420977c98 regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
79814094ec44 regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
5f31bc9bc695 hwmon: (pmbus/lm25066) Add offset coefficients
b3ebc3edaf92 md/raid1: only allocate write behind bio for WriteMostly device
dde0b4bd579f ipmi:watchdog: Set panic count to proper value on a panic
035d39cd5d36 selinux: fix race condition when computing ocontext SIDs
a2973f00755f ia64: kprobes: Fix to pass correct trampoline address to the handler
9a32b765fba3 KVM: PPC: Tick accounting should defer vtime accounting 'til after IRQ handling
fe2a3d975e27 KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup
fe5827e78a1f btrfs: call btrfs_check_rw_degradable only if there is a missing device
12707e6406b5 btrfs: fix lost error handling when replaying directory deletes
a32bd15ddf38 btrfs: clear MISSING device status bit in btrfs_close_one_device
f73ba2e80142 tools/testing/selftests/vm/split_huge_page_test.c: fix application of sizeof to pointer
4bc152c6cd23 net/smc: Correct spelling mistake to TCPF_SYN_RECV
c5f3e2b44a3a net/smc: Fix smc_link->llc_testlink_time overflow
0019c6dc00d1 nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
f108635d6d2f vmxnet3: do not stop tx queues after netif_device_detach()
2c8c7971019e r8169: Add device 10ec:8162 to driver r8169
0fb585017f75 net: hns3: ignore reset event before initialization process is done
4294c96432c3 net: hns3: change hclge/hclgevf workqueue to WQ_UNBOUND mode
a61294791f26 nvmet-tcp: fix header digest verification
a09a649a7677 block: schedule queue restart after BLK_STS_ZONE_RESOURCE
36d8544a8824 drm: panel-orientation-quirks: Add quirk for GPD Win3
c0c99f6c2c2d watchdog: Fix OMAP watchdog early handling
9498f85e5cac net: multicast: calculate csum of looped-back and forwarded packets
492ee5c41ad0 spi: spl022: fix Microwire full duplex mode
4b133d1b1f48 nvmet-tcp: fix a memory leak when releasing a queue
c1a4e29fbd7a xen/netfront: stop tx queues during live migration
7b0e2228b45b gpio: mlxbf2.c: Add check for bgpio_init failure
045e201e846d bpf: Prevent increasing bpf_jit_limit above max
1f889b6bb36d bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
589d0c47b3b6 bpf: Define bpf_jit_alloc_exec_limit for riscv JIT
24864d828c73 fcnal-test: kill hanging ping/nettest binaries on cleanup
a4754c6f2c02 drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
dc93fe4bcffb spi: altera: Change to dynamic allocation of spi id
4916836b835e mmc: winbond: don't build on M68K
315f06005ed7 reset: socfpga: add empty driver allowing consumers to probe
6010e9d34c89 ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
9068b17616de hyperv/vmbus: include linux/bitops.h
b84379371620 sfc: Don't use netif_info before net_device setup
7c25ad465426 sfc: Export fibre-specific supported link modes
83cc3d21cbcd cavium: Fix return values of the probe function
ee25673d8fae mISDN: Fix return values of the probe function
77fe2d67962b scsi: qla2xxx: Fix unmap of already freed sgl
54aaf0fddfcd scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
7cc5b87e86a1 cavium: Return negative value when pci_alloc_irq_vectors() fails
7958b5d479b0 net: mscc: ocelot: Add of_node_put() before goto
3f7c0466d4dc net: sparx5: Add of_node_put() before goto
5586508b6c21 ptp: fix error print of ptp_kvm on X86_64 platform
b1d565357899 ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers
0529cf90b489 ASoC: cs42l42: Ensure 0dB full scale volume is used for headsets
a1cd1d08acb4 ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked()
093801ba8fe6 KVM: arm64: Report corrupted refcount at EL2
b466d8ef1233 x86/iopl: Fake iopl(3) CLI/STI usage
bfa448e241cd x86/irq: Ensure PI wakeup handler is unregistered before module unload
38ce12ffb27f x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
d61cc6067d08 x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
78f5cc4a3261 fuse: fix page stealing
521423148dfe ext4: refresh the ext4_ext_path struct after dropping i_data_sem.
54939d4ce87c ext4: ensure enough credits in ext4_ext_shift_path_extents
11768f7391ba ext4: fix lazy initialization next schedule time computation in more granular unit
3d96ccb1ef2a ALSA: timer: Unconditionally unlink slave instances, too
147405da05f5 ALSA: timer: Fix use-after-free problem
a493519fd98d ALSA: PCM: Fix NULL dereference at mmap checks
975cc9314162 ALSA: synth: missing check for possible NULL after the call to kstrdup
b6cb248aaa9a ALSA: hda: Free card instance properly at probe errors
e266789d8122 ALSA: usb-audio: Add registration quirk for JBL Quantum 400
3c71ff248ac6 ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk
4b2f167789cd ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
0b879c816c0d ALSA: mixer: oss: Fix racy access to slots
3ab56cd15d22 ALSA: line6: fix control and interrupt message timeouts
c725f34ab982 ALSA: 6fire: fix control and bulk message timeouts
9bdf3120931f ALSA: ua101: fix division by zero at probe
733de916ec6b ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
0a6fef615cd9 ALSA: hda/realtek: Add quirk for ASUS UX550VE
139ea889a60c ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
1b0ca1a942a7 ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ
09a84058016c ALSA: hda/realtek: Add quirk for Clevo PC70HS
d7d34eed508b ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED
f35d48489cb7 ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14
47331981d71d media: v4l2-ioctl: Fix check_ext_ctrls
9d496fff4dfc media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
7577c6c1321a media: rkvdec: Support dynamic resolution changes
1c83764a8385 media: ite-cir: IR receiver stop working after receive overflow
ac698bd66a5c media: rkvdec: Do not override sizeimage for output format
cfb1311f92e1 crypto: s5p-sss - Add error handling in s5p_aes_probe()
ea5654a13b2e firmware/psci: fix application of sizeof to pointer
e06c0c6b038b tpm: Check for integer overflow in tpm2_map_response_body()
d0775031766f parisc: Fix ptrace check on syscall return
1af62b51aa5e parisc: Fix set_fixmap() on PA1.x CPUs
d4c5e024d73f exfat: fix incorrect loading of i_blocks for large files
de6acc5e6a95 mmc: dw_mmc: Dont wait for DRTO on Write RSP error
088a27043b2b mmc: mtk-sd: Add wait dma stop done flow
7038cb714d12 char: xillybus: fix msg_ep UAF in xillyusb_probe()
e1d2af3c9164 ce/gf100: fix incorrect CE0 address calculation on some GPUs
69e269a766b4 scsi: qla2xxx: Fix use after free in eh_abort path
5282d10eeaf0 scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
5fc7e0e194ff scsi: lpfc: Fix FCP I/O flush functionality for TMF routines
2080931c7849 scsi: lpfc: Don't release final kref on Fport node while ABTS outstanding
9bfe4b77333d scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd()
0806efcadf8e scsi: core: Avoid leaving shost->last_reset with stale value if EH does not run
9020b4adf3a6 ocfs2: fix data corruption on truncate
762722cfd0a0 libata: fix read log timeout value
7f94e05338f5 Input: i8042 - Add quirk for Fujitsu Lifebook T725
94e0a6bc4130 Input: elantench - fix misreporting trackpoint coordinates
f9ccab9a050d Input: iforce - fix control-message timeout
d725957f4630 usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
8eb1d2c82122 xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay

(From OE-Core rev: 47779b9e07acb368d681286e3c8b9864386dd8ac)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0f135ce07863873b47a0284547e7cb5a0967c5ad)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Anuj Mittal
8ea2981d05 python3: upgrade 3.9.7 -> 3.9.9
(From OE-Core rev: 6eedc8a3456a70d858e9f515f384b3ba54d00a63)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Mingli Yu
12b0635ae0 bind: fix CVE-2021-25219
Backport patches to fix CVE-2021-25219.

(From OE-Core rev: 918660a2d4bc89a763a5934765ff6a1647709fcc)

(From OE-Core rev: 6dda02aa752c618f2adb0b1372e93b48a0a09a17)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 729693f0c2)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Changqing Li
0430d23260 openssh: fix CVE-2021-41617
(From OE-Core rev: 37edef7d39c829b8d01a0471e612d62d6388fb7e)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Mingli Yu
5a8d3e005a ncurses: fix CVE-2021-39537
Backport patch [1] to fix CVE-2021-39537 [2].

[1] 790a85dbd4
[2] http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/ncurses/patches/patch-ncurses_tinfo_captoinfo.c?rev=1.1&content-type=text/x-cvsweb-markup

(From OE-Core rev: c6422335f653c44efc651e8785821282d3d4f789)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
(cherry picked from commit 8fceb122a1c0240106342738de7d2484b48d9a6a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-17 10:02:39 +00:00
Robert Yang
86ae0ef3da bitbake: lib/pyinotify.py: Remove deprecated module asyncore
When build with nativesdk-python3 (3.10) from buildtools:
/path/to/bitbake/lib/pyinotify.py:55: DeprecationWarning: The asyncore module is deprecated. The recommended replacement is asyncio

The pyinotify.py's upstream didn't have any update in recent 7 years:
https://github.com/seb-m/pyinotify

And bitbake doesn't use the asyncore module, so remove the related code.

(Bitbake rev: 6bfb02f845001bf4f05d9b68695bb616b1642b2a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-14 22:59:56 +00:00
Michael Opdenacker
ff138c3ae9 updates for recent releases
(From yocto-docs rev: a6b10a8e2491e284e7faf439fa196605ddf40943)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:26:24 +00:00
wangmy
e9d4e26b44 libdrm: upgrade 2.4.108 -> 2.4.109
(From OE-Core rev: b8fa0c446ecb3f65d7c134426a07c6244959cdf7)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ba3bd5e6ae5c3893fa3dc61b768105d9203b96f3)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:50 +00:00
wangmy
823acda7cf libdrm: upgrade 2.4.107 -> 2.4.108
(From OE-Core rev: 760aa9e2c011c1c055548a63eb2430a7377bf8bb)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 11ad9b4fd2a8d53a472344c3b47487fccbc96f7e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Pavel Zhukov
3843d5ab80 patch.py: Initialize git repo before patching
If PATCHTOOL="git" has been specified but workdir is not git repo
bitbake fails to apply the patches with error message:
Command Error: 'git rev-parse --show-toplevel' exited with 0  Output:
fatal: not a git repository (or any of the parent directories): .git

Fix this by initializing the repo before patching.
This allows binary git patches to be applied.

(From OE-Core rev: 4b567a984fe805b779bc59ce32635d32618e7170)

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6184b56a7a0fc6f5d19fdfb81e7453667f7da940)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Khem Raj
6dc28db9d3 boost: Fix build on arches with no atomics
1.77 is broken on architectures which dont have lockfree atomics e.g.
armv5 [1], backport relevant fixes from upstream to unbreak the build

[1] https://github.com/boostorg/math/issues/673

(From OE-Core rev: aaaf763acfca236654e299d3be6a9484355e3be9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 57dc797712abcf83b63694b21d2b3a3f09b1c9bc)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Martin Jansa
cb8ecfa6d7 boost: allow searching for python310
(From OE-Core rev: 8d622afe96b67133f519fc888ff03222162f20f9)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a8add0bdec7c51c9a7f851b2c63017c79faaa273)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Ross Burton
6bbc9efbd3 recipetool: extend curl detection when creating recipes
If a configure.ac uses LIBCURL_CHECK_CONFIG it wants curl.

(From OE-Core rev: d647fa0136bde43544b142136f519b597ed749c1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 16e830ca1352cee61e4ae4b98b1203f849bf71f3)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Ross Burton
bff59a146b recipetool: handle GitLab URLs like we do GitHub
GitHub URLs are automatically transformed to git: fetches, so handle
GitLab URLs too.

(From OE-Core rev: a1284b80c48328845d67c2bbc9f45207b71264d3)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 651fb951819840fe122458ddbd852ee6c7ec0455)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Quentin Schulz
ca066430d4 README.OE-Core.md: update URLs
Update URLs to what they actually redirect to.

Cc: Quentin Schulz <foss+yocto@0leil.net>
(From OE-Core rev: 414e4bcbd50b8d514c2d4f6341e429006b583fef)

Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ec2131070cae6c3933e5b08986e8245fcd9deb99)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Ross Burton
cbf8e1c83a vim: fix CVE-2021-3968 and CVE-2021-3973
Backport a fix for -3972, and whitelist -3968: it isn't valid as it
fixes a bug which was introduced after 8.2.

(From OE-Core rev: 4d2cdd3971b4cd3e42c47ec10ec105adfbc78e6e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bec5caadfb53638748d8c41ce7230c2bf7808d27)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Ross Burton
848bedfbb2 vim: fix CVE-2021-3927 and CVE-2021-3928
(From OE-Core rev: d1df26484b7c72f0ccd7ad121456bb575ba93664)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2001631e7a6edb7adc40ee4357466cc54472db71)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Li Wang
c3666e4b6f libtool: change the default AR_FLAGS from "cru" to "cr"
Backport patch to fix warning:
`u' modifier ignored since `D' is the default (see `U')

(From OE-Core rev: 1e95bed5e6fae2f80a5b83bcd52bef9777cd48eb)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3d5092e7ee63fb8119a22b3d9de1f23e94791b56)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Richard Purdie
3480ae13ed libtool: Update patchset to match those submitted upstream
I went through and cleaned up the headers/descriptions on several of the
libtool patchset and submitted (or resubmitted in some cases) them
upstream. This patch updates/renames them to match what I did.

I did fix some whitespace issues in some of the patches and also merged
one case where we had a patch of already patched code.

This makes it clear what was submitted and makes resubmission easier if
ever needed too.

(From OE-Core rev: 3aeab68fe95d80cd627e3d218e36bb363a7802d0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9bb9a4e8bd408c7a42913aa3e1ec541919b59584)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Dhruva Gole
78fcbf9f6d scripts/checklayer/common.py: Fixed a minor grammatical error
(From OE-Core rev: e760a57cb326a5b645fdcf6f3247d8adec896d9a)

Signed-off-by: Dhruva Gole <goledhruva@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8ea17456ae5318ed7a3b4c8f75c8441456d8b979)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Pavel Zhukov
ac898a4b7b go: upgrade 1.16.8 -> 1.16.10
The release includes fixes for CVE-2021-41771 and CVE-2021-41772

(From OE-Core rev: e3dcea6b05a9ef64a4d28f250e53eadc6981dec9)

Signed-off-by: Pavel Zhukov <pavel.zhukov@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 69c68f470e8e12456a4d9abf2d1c33b857e4ea37)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Richard Purdie
c8f57744c5 oeqa/parselogs: Fix quoting
Fix deprecation warnings about invalid escape sequences.

(From OE-Core rev: 50f9105410b662062765b6ec9a68ae30805d3b40)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 43542614395150e8fa34133ba0fc7ee90f215bcb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Richard Purdie
91c056ef2b oeqa/utils/dump: Fix typo
(From OE-Core rev: 4091e70347ae48d3c21d9b30ec4581c466d9ac5d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3770d539d83b589b3f8bde21fcf896bb046611d4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Alexander Kanavin
c6ff5420f9 systemd: update 249.6 -> 249.7
(From OE-Core rev: 9cdcf59e3356a18ec576eacb5df667682741f374)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5671ef44cf85df00406b391f7786ffaefd05a701)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Alexander Kanavin
f4ceafde0b systemd: upgrade 249.5 -> 249.6
(From OE-Core rev: aa02291a9f19a6275f622ebdd16510936a6402f4)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4744336d854b56cdd81a19f60f6d1c659bae7147)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Alexander Kanavin
0946693d67 systemd: update 249.4 -> 249.5
(From OE-Core rev: 2b867ab1ad2793cfe7f406b97d4677259e01170e)

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>
(cherry picked from commit d5d3704acf4d2e70ee41eb5e6fe852a4c1bc3595)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Alexander Kanavin
c8646a2ffd systemd: update 249.3 -> 249.4
(From OE-Core rev: 25450886b48772ab88085b519bf06ea8a9bbfc3e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 14c6e5a4b72d0e4665279158a0740dd1dc21f72f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Bruce Ashfield
27c85b25ad linux-yocto/5.10: update to v5.10.79
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    bd816c278316 Linux 5.10.79
    62424fe4c2cf rsi: fix control-message timeout
    8971158af1e0 media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
    1cf43e928954 staging: rtl8192u: fix control-message timeouts
    9963ba5b9d49 staging: r8712u: fix control-message timeout
    844b02496eac comedi: vmk80xx: fix bulk and interrupt message timeouts
    b7fd7f3387f0 comedi: vmk80xx: fix bulk-buffer overflow
    33d7a470730d comedi: vmk80xx: fix transfer-buffer overflows
    ef143dc0c3de comedi: ni_usb6501: fix NULL-deref in command paths
    786f5b034504 comedi: dt9812: fix DMA buffers on stack
    86d4aedcbc69 isofs: Fix out of bound access for corrupted isofs image
    c430094541a8 staging: rtl8712: fix use-after-free in rtl8712_dl_fw
    ab4af56ae250 printk/console: Allow to disable console output by using console="" or console=null
    07d1db141e47 binder: don't detect sender/target during buffer cleanup
    42681b90c4db usb-storage: Add compatibility quirk flags for iODD 2531/2541
    1309753b7841 usb: musb: Balance list entry in musb_gadget_queue
    27409143122f usb: gadget: Mark USB_FSL_QE broken on 64-bit
    94e5305a3816 usb: ehci: handshake CMD_RUN instead of STS_HALT
    a8db6fd04d58 Revert "x86/kvm: fix vcpu-id indexed array sizes"
    ecf58653f1e4 KVM: x86: avoid warning with -Wbitwise-instead-of-logical

(From OE-Core rev: d0d42dbfc23c3eafcd0958d8687b4574f5e420e4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3356c5e7acc86be2e1584819a70e984d984b0d9c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Bruce Ashfield
846a29cb6e linux-yocto/5.14: update to v5.14.18
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    a0265dd8262d Linux 5.14.18
    1379769b0b46 rsi: fix control-message timeout
    eda57a310234 media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
    5013f2aaf959 staging: rtl8192u: fix control-message timeouts
    f3422d1fceba staging: r8712u: fix control-message timeout
    373ac8c59414 comedi: vmk80xx: fix bulk and interrupt message timeouts
    7b0e35618932 comedi: vmk80xx: fix bulk-buffer overflow
    278484ae9329 comedi: vmk80xx: fix transfer-buffer overflows
    4a9d43cb5d5f comedi: ni_usb6501: fix NULL-deref in command paths
    3ac273d154d6 comedi: dt9812: fix DMA buffers on stack
    b2fa1f52d22c isofs: Fix out of bound access for corrupted isofs image
    befd23bd3b17 staging: rtl8712: fix use-after-free in rtl8712_dl_fw
    bec32c40e438 binder: don't detect sender/target during buffer cleanup
    68abe9aefc40 binder: use cred instead of task for getsecid
    46088365bab7 binder: use cred instead of task for selinux checks
    fbb106e79524 binder: use euid from cred instead of using task
    f9b4ef2504bb Revert "proc/wchan: use printk format instead of lookup_symbol_name()"
    4674de4e2734 usb-storage: Add compatibility quirk flags for iODD 2531/2541
    6be11f54f5d4 usb: musb: Balance list entry in musb_gadget_queue
    d7f4ffba71d0 usb: gadget: Mark USB_FSL_QE broken on 64-bit
    d3c7daab289d usb: ehci: handshake CMD_RUN instead of STS_HALT
    a4cdb4c9c453 Revert "x86/kvm: fix vcpu-id indexed array sizes"
    2f63111ab86f KVM: x86: avoid warning with -Wbitwise-instead-of-logical
    f468cbedb2a7 ALSA: pci: cs46xx: Fix set up buffer type properly
    186155ac272e ALSA: pcm: Check mmap capability of runtime dma buffer at first

(From OE-Core rev: 0b55e3638297c57b216a6c0ff2dd9bcf7526cd48)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7f09947f9fc12f7b548f18573ffbc452837527bd)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Richard Purdie
5934fef665 glibc: Fix i586/c3 support
CET can't be enabled on i586 or c3 for x86, adjust the configuration accordingly
to fix those builds.

[YOCTO #14632]

(From OE-Core rev: 849626cf284a76a4b496ed9935d6a6365a5a13e3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 26e4fed594daefb6923c50171360f925c4822683)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Schmidt, Adriaan
06e52ebd07 wic: support rootdev identified by partition label
We already support specifying the rootfs by PARTUUID. This adds general
support for letting the kernel find the rootfs by PARTLABEL.

(From OE-Core rev: c3d91b1a2b2ad87c2715a7793f1f408e3b3ba8ef)

Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2fb247c5ecf057bb96649a3c0234794b4991c050)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Ross Burton
ea739bb987 gmp: fix CVE-2021-43618
(From OE-Core rev: a6ca184b3c8dbd5e92b1f81604cf1603d4a4ce94)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fb3b9a7f668a6ffd56a99e1e8b83cdbad2a4bc66)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Richard Purdie
ca4ecac8dd buildhistory: Fix srcrevs output
The code was assuming that the a recipe with only one srcrev wouldn't "name"
it. This isn't the case as the glibc or bzip2 recipes show, you can have
a single srcrev which is named.

We can pull the data from the fetcher and in fact we already have it, we just
need to handle the "default" case and make that code the default for all srcrev
regardless of length.

[YOCTO #14017]

(From OE-Core rev: 8b6e565afcfb73a33e3759486554365798e74d66)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 45ae567932ba52b758eb41754453e9828d9533a1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Joshua Watt
001c21e32e classes/crate-fetch: Ensure crate fetcher is available
Reworks the crate fetcher class to have it install the fetcher at recipe
finalization so that it is always available before SRC_URI is expanded.
In addition, override the value of SRCPV to also install the fetcher
when SRCPV is expanded so that AUTOREV works.

[YOCTO #10867]

(From OE-Core rev: 19577427d25739588fdf607b6e3905dddfe206ff)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bc66c5dd65fb654af5cd91b47f9b4f7a5f53436e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Vyacheslav Yurkov
e873b3ba27 rootfs-postcommands: update systemd_create_users
Process all systemd-sysusers configuration files in order to create
users/groups at build time. systemd-sysusers would try to create them at
run-time, but for read-only rootfs that's not possible and results in
warnings from different services:

systemd-udevd[166]: /lib/udev/rules.d/50-udev-default.rules:39 Unknown group 'render', ignoring
systemd-udevd[166]: /lib/udev/rules.d/50-udev-default.rules:40 Unknown group 'render', ignoring
systemd-udevd[166]: /lib/udev/rules.d/50-udev-default.rules:42 Unknown group 'sgx', ignoring

(From OE-Core rev: c25d9d2dae45805fa985f1c541cacfb0230f9522)

Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f86ffdb1b77c6ba32ec250545a40c1c54f983f21)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Joshua Watt
6c93529a7d classes/meson: Add optional rust definitions
Adds the rust tools to the cross and native files if present so that
projects that use both rust and meson can build

(From OE-Core rev: 11b9c077553f06c1c52a4e03c395b6e6d567b531)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0ec40fa3aff233bd0dde0461299150786da956ef)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Pgowda
f8de482830 rust-cross: Replace TARGET_ARCH with TUNE_PKGARCH
rust-cross-* imported from meta-rust has incorrect signatures,
depending on MACHINEOVERRIDES making it effectively MACHINE_ARCH
as shown by sstate-diff-machines.sh:

openembedded-core/scripts/sstate-diff-machines.sh --tmpdir=tmp-glibc \
--machines="qemuarm64 qemuarm64copy" --targets=rust-cross-aarch64-glibc \
--analyze

 === Comparing signatures for task do_configure.sigdata between
 qemuarm64 and qemuarm64copy ===
ERROR: gcc-runtime different signature for task do_configure.sigdata
between qemuarm64 and qemuarm64copy
NOTE: Starting bitbake server...
Hash for dependent task gcc/gcc-runtime_11.2.bb:do_prepare_recipe_sysroot
changed from
da4ebf1b272cb73153145a0a95e6438d2955ae2d36f84db10f6880b2781ec331 to
47a0ebb7a88c9f896fb9dbce269f575ab8a6faabb2b9e62d164be6e71c5e4e40
Unable to find matching sigdata for
openembedded-core/meta/recipes-devtools/gcc/gcc-runtime_11.2.bb:
do_prepare_recipe_sysroot with hashes
da4ebf1b272cb73153145a0a95e6438d2955ae2d36f84db10f6880b2781ec331 or
47a0ebb7a88c9f896fb9dbce269f575ab8a6faabb2b9e62d164be6e71c5e4e40

The following patch takes TUNE_PKGARCH into consideration instead
of TARGET_ARCH and results in signatures as expected.

[YOCTO #14613]

RP: Added maintainer.inc corresponding change
(From OE-Core rev: 154a1117be4e566359cd35b702ad57d9dd0e6dc1)

Signed-off-by: Pgowda <pgowda.cve@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bcf48766d1123cea41f80b0cb687584692c96158)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Alexandre Belloni
c267650c86 maintainers.inc: fix up rust-cross entry
(From OE-Core rev: 82a845adfe703d527a47b096fa9780f0c4b6a0c6)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5fedca5c3bcfc7643176e30e045434321ffbc21d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Pgowda
4017ee6392 rust-cross: Fix directory not deleted for race glibc vs. musl
Use different recipe names for the two different targets so that
when switching libcs overlapping files in the sysroot don't cause
issues.

(From OE-Core rev: 3c71fe1c487682950a115348cb8308e74c20e250)

Signed-off-by: Pgowda <pgowda.cve@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 33be44a02beb7c52f075f660ad8e0641e360011c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Mingli Yu
c7dba5edf1 wic: use shutil.which
Use shutil.which to find the executable instead to silence the below warning:
 $ cat tmp/work/intel_x86_64-poky-linux/core-image-base/1.0-r5/temp/log.do_image_wic
 [snip]
 DEBUG: Executing shell function do_image_wic
 /path/layers/oe-core/scripts/wic:27: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
  from distutils import spawn
 INFO: Creating image(s)...
 [snip]

[RP: Added conversion for missed function reference]
(From OE-Core rev: 33c5899ab2fcb48245ef12223bda6c52fa2e48fa)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3966cbf5c8a2dbc3a4f0f3eefdbeeb83f522bf87)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-13 23:02:49 +00:00
Robert Yang
f286eefb27 bitbake: data_smart.py: Skip old override syntax checking for anonymous functions
Fixed when oe-core's path contians append/prepend/remove, e.g.:

/path/to/append_test/oe-core/

Initial a build in any build dirs:
$ bitbake -p
ERROR: Variable __anon_32__buildarea2_xhou_builds_append_test_layers_oe_core_meta_classes_patch_bbclass
contains an operation using the old override syntax. Please convert this
layer/metadata before attempting to use with a newer bitbake.

The anonymous fuctions has no names, so skip checking for it to fix the issue.

(Bitbake rev: 5c46ce77aa55cb46abe224b6a31dad87b9249bcf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ebd00330c41c75797529ff38d6a0955b93f05d1b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-12 22:24:28 +00:00
Michael Opdenacker
525c317153 documentation: conf.py: fix version of bitbake objects.inv
Using the Bitbake 1.52 references instead of the master ones,
which may break if some variables or sections are removed.

(From yocto-docs rev: fcb24deb8b3abb8a77a12baa2cdd5ba5aa976f01)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reported-by: Quentin Schulz <foss@0leil.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-09 00:18:39 +00:00
Michael Opdenacker
09296dca79 updates for release 3.3.4
(From yocto-docs rev: b250eda5a0beba8acc9641c55a5b0e30594b5178)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-29 23:25:51 +00:00
Richard Purdie
b53230c08d build-appliance-image: Update to honister head revision
(From OE-Core rev: 70384dd958c57d1da924a66cffa35f80eb60d4b0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-25 22:00:52 +00:00
Anuj Mittal
3837e8bb9f poky.conf: bump version for 3.4.1 honister release
(From meta-yocto rev: ee721e0fa7624c29979d9b7b3f41e9a76eedd453)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-25 22:00:04 +00:00
Michael Opdenacker
e3d86eb738 manuals: releases.rst: move gatesgarth to outdated releases section
(From yocto-docs rev: 67a7465375fb845c1853c0b988baa675c7a5d0e3)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reported-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 21:14:09 +00:00
Andres Beltran
b4c64791a0 create-spdx: Fix key errors in do_create_runtime_spdx
Currently, the do_create_runtime_spdx task fails with a Key Error if a
dependency is not contained in the package providers dictionary. Add a
check before using "dep" as a key in "providers".

(From OE-Core rev: ac9b387c5e19386ce3c5cd88b42dad24d25b0f70)

Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 140ce5ef5e8f10251091660e3ef76f315f409076)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 21:12:50 +00:00
Saul Wold
5bcb2b1732 create-spdx: Protect against None from LICENSE_PATH
If LICENSE_PATH is not set, then the split() will fail on a NoneType.

(From OE-Core rev: 123ee0fc0d1470427cc563f512f621e0172cc232)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d6260decae6d2654f6e058f12ca02d582a8ef5a4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 21:12:50 +00:00
Saul Wold
07c12415c6 create_spdx: ensure is_work_shared() is unique
There is a function with the same name is_work_shared() in the archiver class
this causes a conflict when both classes are included. Use work-shared as the
check in WORKDIR to allow for other packages beyond the kernel and gcc that
use a common shared-work source directory.

(From OE-Core rev: 1d350fd2a0db57617fbc62eb1d65f3ffa2667551)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 18eab77ee65c73b17225e69c7ba446ab1c69fa92)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 21:12:50 +00:00
Richard Purdie
10a700c094 glibc: Backport fix for CVE-2021-43396
Backport the fix for CVE-2021-43396. It is disputed that this is a security issue
however the fix applies easily so we may as well.

(From OE-Core rev: 8d7a88bdee734df527a0ed954a25f27ac975071f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e8de9b01c6b305b2498c5f942397a49ae2af0cde)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 21:12:50 +00:00
Claus Stovgaard
fb09b37f2a cups: Fix missing installation of cups sysv init scripts
The packageconfig needs to be --disable-systemd as documented in
configure file for cups. With the current value "--without-systemd" the
SYSTEM_DIR variable ends up being set to "no"

It is caused by the --without-* section in configure file resulting in
eval with_$ac_useropt=no ;;

$ac_useropt is "systemd" causing the variable $with_systemd to be set
to "no", because of below test

if test ${with_systemd+y}
then :
  withval=$with_systemd; SYSTEMD_DIR="$withval"
else $as_nop
  SYSTEMD_DIR=""
fi

cups configure test for i if SYSTEMD_DIR is empty to decide if the init
scripts need to be installed. A value of "no" results in that no init
scripts is installed.

With --disable-systemd it works as expected - installing the init files.
Though cups should properly improve their configure script.

(From OE-Core rev: e2518c2eba8c6e486aee3273dc2cba9ab51ffb69)

Signed-off-by: Claus Stovgaard <clst@ambu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 967fdd2ba12f22d8e46600ff085833993a32cfeb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 21:12:50 +00:00
Richard Purdie
8178470ec6 bitbake: fetch2: Fix url remap issue and add testcase
Using "" as a target for .replace() is a really bad idea as it duplicates the replacement
for every character in the string. Add a testcase which triggered this and correct the
code to return the correct result.

(Bitbake rev: 44a83b373e1fc34c93cd4a6c6cf8b73b230c1520)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3af1ecf049d2eed56f6d319dc7df6eb4a3d4eebc)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 10:08:24 +00:00
Richard Purdie
c4f08fc43d bitbake: utils: Handle lockfile filenames that are too long for filesystems
The fetcher mirror code can go crazy creating lock filenames which exceed the
filesystem limits. When this happens, the code will loop/hang.

Handle the filename too long exception correctly but also truncate lockfile
lengths to under 256 since the worst case situation is lockfile overlap
and lack of parallelism.

(Bitbake rev: 64498ecb094b7911d10b07c098d5a966e79f95b3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 63baf3440b16e41ac6601de21ced94a94bdf1509)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 10:08:23 +00:00
Michael Opdenacker
243758b8f4 ref-manual: update system requirements
Assuming the same support status as on the development version.

(From yocto-docs rev: b608ee12e7ce5b379bffe2a6e0b84d289b84cffc)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-24 10:04:34 +00:00
Peter Kjellerstedt
b6b0af0889 insane.bbclass: Add a check for directories that are expected to be empty
The empty-dirs QA check verifies that all directories specified in
QA_EMPTY_DIRS are empty. It is possible to specify why a directory is
expected to be empty by defining QA_EMPTY_DIRS_RECOMMENDATION:<path>,
which will then be included in the error message if the directory is
not empty. If it is not specified for a directory, then "but it is
expected to be empty" will be used.

Compared to the corresponding patch for master, there are two
differences:

* "/var/volatile" is not added to QA_EMPTY_DIRS by default, and
* "empty-dirs" is not enabled in ERROR_QA (nor in WARN_QA).

(From OE-Core rev: 9f3fbfc02ae6fadffbcc1bda1fa75dfe140d05c5)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
9594c5893b mirrors: Add kernel.org sources mirror for downloads.yoctoproject.org
kernel.org now has a mirror of the downloads.yoctoproject.org sources
archive so include this in our mirrors list.

(From OE-Core rev: d7fe71c0fa0f368037b20d423c4c45d91c108a8c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f602b6c2046bbc52a95dcc68a754f1cbb2db6761)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
ca1d3dee3c uninative: Add version to uninative tarball name
uninative works via hashes and doesn't need the version in the tarball name but
it does make things easier to inspect in DL_DIR. There were reasons such as
ease of publication of the build tarballs but we can handle those differently
now and the signature issues from the early code aren't an issue now. From 3.4
onwards we can use a version'd name.

[YOCTO #12970]

(From OE-Core rev: aca617aada3a06a6b460bf477541639f44681b32)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dadba70d6a24d8ebb5576598efffa973151c7218)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Jon Mason
719728fe47 scripts/lib/wic/help.py: Update Fedora Kickstart URLs
The URLs describing Kickstart are no longer valid and do not redirect to
the correct location.  Update them with the correct location.

(From OE-Core rev: 4878c1180dc6df7012ae28afd9a84645cc094c0b)

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e5ac75f93c8128b0761af5fee99e8603ddd1657d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
2bfad06778 wpa-supplicant: Match package override to PACKAGES for pkg_postinst
In PACKAGES, ${PN} is used so it makes sense for the pkg_postinst variable
override to match that else it causes user confusion.

[YOCTO #14616]

(From OE-Core rev: 2e0bbd8edcdcc892e593848e618a9a00f6dac05f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ae9094d45bbfff377bd542939e12a8451a4959b6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
c04d6ccd4a scripts/oe-package-browser: Handle no packages being built
Give the user a proper error message if there aren't packages built,
rather than a less friendly traceback.

[YOCTO #14619]

(From OE-Core rev: 879a176f7159d1b3f5a9dc2116017b4a08172468)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b14c176b7dd74b7d63ca0f72e6e00fbf209f5a0b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
e8d40a2dab scripts/oe-package-browser: Fix after overrides change
After the overrides change, the format of pkgdata changed and this
usage of configparser no longer works. This change is a bandaid to make
things work but the pkgdata format isn't very similar to ini files
so this may need to be reimplmented in a better way in the long run.

[YOCTO #14619]

(From OE-Core rev: b27a11f4ddc0c10ff7e5fb447431bff1411a5417)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 25a8ec6e2891b71bc280aacaf5f62ecc4b0bd1d1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Kai Kang
7884e05de9 convert-srcuri.py: use regex to check space in SRC_URI
There may be none, one or more spaces including tab before backslash in
SRC_URI. Use regex to check and update. It helps to avoid malformed uri
such as recipe open-iscsi-user in meta-openstack:

SRC_URI = "git://github.com/open-iscsi/open-iscsi.git;protocol=https  ;branch=master \

And help to check more recipes such as concurrent-ruby in the same
layer:

SRC_URI = "git://github.com/ruby-concurrency/concurrent-ruby.git;protocol=https;tag=v1.1.6\

(From OE-Core rev: f87a3aba3086cd3fd89274337f25fc1717d6c981)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a69a53573b1987ee5834a6fc27763f9bbf5fe5a4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Bruce Ashfield
7752c9e87b linux-yocto/5.10: update to v5.10.78
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    5040520482a5 Linux 5.10.78
    4c7c0243275b ALSA: usb-audio: Add Audient iD14 to mixer map quirk table
    f3eb44f496ef ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table
    68765fc97762 Revert "wcn36xx: Disable bmps when encryption is disabled"
    f84b791d4c3b ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
    bbc920fb320f Revert "drm/ttm: fix memleak in ttm_transfered_destroy"
    6d67b2a73b8e mm: khugepaged: skip huge page collapse for special files
    5a7957491e31 Revert "usb: core: hcd: Add support for deferring roothub registration"
    50f46bd30949 Revert "xhci: Set HCD flag to defer primary roothub registration"
    d7fc85f61042 media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
    b93a70bf2b57 net: ethernet: microchip: lan743x: Fix skb allocation failure
    b9c85a71e1b4 vrf: Revert "Reset skb conntrack connection..."
    0382fdf9ae78 sfc: Fix reading non-legacy supported link modes
    748786564a35 Revert "io_uring: reinforce cancel on flush during exit"
    7b57c38d12ae scsi: core: Put LLD module refcnt after SCSI device is released

(From OE-Core rev: b57ee9fafb80034cf7cd2f870a741741c2a469cd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7a7d1eed8e3d550ac9bfa301b26095100eeba111)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Bruce Ashfield
40cefcce5d linux-yocto/5.14: update to v5.14.17
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    3dfa869cb79d Linux 5.14.17
    b1dbd891bfe5 ALSA: usb-audio: Add Audient iD14 to mixer map quirk table
    570b5004f827 ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table
    db6d7c4acca3 Revert "drm/i915/gt: Propagate change in error status to children on unhold"
    aac2f6861683 drm/amd/display: Revert "Directly retrain link from debugfs"
    77d029e1e218 drm/amdgpu: revert "Add autodump debugfs node for gpu reset v8"
    9f9e09a59c58 Revert "wcn36xx: Disable bmps when encryption is disabled"
    b9722a7369f8 ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
    e556fca311ce Revert "soc: imx: gpcv2: move reset assert after requesting domain power up"
    d6a60e6ada49 drm/i915: Remove memory frequency calculation
    7883e13c2494 drm/amdkfd: fix boot failure when iommu is disabled in Picasso.
    a82fa1213d12 Revert "usb: core: hcd: Add support for deferring roothub registration"
    0979b923ff3f Revert "xhci: Set HCD flag to defer primary roothub registration"
    02a476ca886d media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
    ec0c91e2ebb8 vrf: Revert "Reset skb conntrack connection..."
    6467b75cf9d1 sfc: Fix reading non-legacy supported link modes
    f30822c0b4c3 scsi: core: Put LLD module refcnt after SCSI device is released

(From OE-Core rev: 4ab85464b7c11099e1aa55a26816f250f564f383)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a9ac5a388d682bcf0aad59d1b8ae8334846dfcd9)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Bruce Ashfield
3e1a0f0d09 linux-yocto/5.10: update to v5.10.77
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    09df347cfd18 Linux 5.10.77
    fbb91dadb512 perf script: Check session->header.env.arch before using it
    6f416815c505 riscv: Fix asan-stack clang build
    7a4cf25d8329 riscv: fix misalgned trap vector base address
    acb8832f6a1c scsi: ufs: ufs-exynos: Correct timeout value setting registers
    8ecddaca7942 KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
    e11a7355fb98 KVM: s390: clear kicked_mask before sleeping again
    727e5deca802 lan743x: fix endianness when accessing descriptors
    a7112b8eeb14 sctp: add vtag check in sctp_sf_ootb
    c2442f721972 sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
    14c1e02b11c2 sctp: add vtag check in sctp_sf_violation
    dad2486414b5 sctp: fix the processing for COOKIE_ECHO chunk
    8c50693d25e4 sctp: fix the processing for INIT_ACK chunk
    ad111d4435d8 sctp: use init_tag from inithdr for ABORT chunk
    4509000a2515 phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings
    5b88bb9377ee phy: phy_start_aneg: Add an unlocked version
    81780b624d1c phy: phy_ethtool_ksettings_set: Move after phy_start_aneg
    258c5fea44cf phy: phy_ethtool_ksettings_get: Lock the phy for consistency
    58722323d4bc net/tls: Fix flipped sign in async_wait.err assignment
    44e8c93e1e49 net: nxp: lpc_eth.c: avoid hang when bringing interface down
    c2af2092c9bb net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent
    bfa6fbdb4e39 net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
    e81bed557fe7 mlxsw: pci: Recycle received packet upon allocation failure
    be98be1a17e9 nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
    aead02927af3 gpio: xgs-iproc: fix parsing of ngpios property
    863a423ee07b RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
    2b7c5eed19d3 net: Prevent infinite while loop in skb_tx_hash()
    04121b10cdf0 cfg80211: correct bridge/4addr mode check
    aed897e96b19 net-sysfs: initialize uid and gid before calling net_ns_get_ownership
    b0a2cd38553c net: batman-adv: fix error handling
    36e911a16b37 regmap: Fix possible double-free in regcache_rbtree_exit()
    e51371bd687e reset: brcmstb-rescal: fix incorrect polarity of status bit
    2cf7d935d6ba arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
    10e40fb2f508 RDMA/mlx5: Set user priority for DCT
    24fd8e2f027d octeontx2-af: Display all enabled PF VF rsrc_alloc entries.
    c63d7f2ca99a nvme-tcp: fix possible req->offset corruption
    32f3db20f126 nvme-tcp: fix data digest pointer calculation
    4286c72c5321 nvmet-tcp: fix data digest pointer calculation
    d98883f6c33e IB/hfi1: Fix abba locking issue with sc_disable()
    c3e17e58f571 IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
    ee4908f909b3 bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch()
    dd2260ec643d bpf: Fix potential race in tail call compatibility check
    15dec6d8f864 tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
    cac6b043cea3 riscv, bpf: Fix potential NULL dereference
    01599bf7cc2b cgroup: Fix memory leak caused by missing cgroup_bpf_offline
    eb3b6805e3e9 drm/amdgpu: fix out of bounds write
    c21b4002214c drm/ttm: fix memleak in ttm_transfered_destroy
    69a7fa5cb0de mm, thp: bail out early in collapse_file for writeback page
    8fb858b74ac5 net: lan78xx: fix division by zero in send path
    4c22227e39c7 cfg80211: fix management registrations locking
    fa29cec42c2d cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
    db1191a529e4 nvme-tcp: fix H2CData PDU send accounting (again)
    5043fbd294f5 ocfs2: fix race between searching chunks and release journal_head from buffer_head
    01169a43353d mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit
    ee3213b117ce mmc: sdhci: Map more voltage level to SDHCI_POWER_330
    a95a76fc01a0 mmc: dw_mmc: exynos: fix the finding clock sample value
    12a46f72f499 mmc: mediatek: Move cqhci init behind ungate clock
    44c2bc2a6bbe mmc: cqhci: clear HALT state after CQE enable
    efe934629fff mmc: vub300: fix control-message timeouts
    f3dec7e7ace3 net/tls: Fix flipped sign in tls_err_abort() calls
    c828115a14ea Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
    11c0406b4c33 nfc: port100: fix using -ERRNO as command type mask
    0b1b3e086b0a tipc: fix size validations for the MSG_CRYPTO type
    5aa5bab57957 ata: sata_mv: Fix the error handling of mv_chip_id()
    9a52798dce73 pinctrl: amd: disable and mask interrupts on probe
    01c2881bb0e0 Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
    017718dfbb6f usbnet: fix error return code in usbnet_probe()
    693ecbe8f799 usbnet: sanity check for maxpacket
    b663890d8544 ext4: fix possible UAF when remounting r/o a mmp-protected file system
    d4d9c065988c arm64: Avoid premature usercopy failure
    e184a21b5ccc powerpc/bpf: Fix BPF_MOD when imm == 1
    3f2c12ec8a3f io_uring: don't take uring_lock during iowq cancel
    5a768b4d3e1a ARM: 9141/1: only warn about XIP address when not compile testing
    15b278f94bbb ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
    c06d7d9bfcf6 ARM: 9138/1: fix link warning with XIP + frame-pointer
    8a6af97c31be ARM: 9134/1: remove duplicate memcpy() definition
    6ad8bbc9d301 ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
    3ceaa85c331d ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images

(From OE-Core rev: 9929f2d2a4b60dc989b4b5a3dd8fad48b572d393)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d57bc7281015d09e2ff7a8a028dbf31559ff7331)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Bruce Ashfield
fbb7df5adb linux-yocto/5.14: update to v5.14.16
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    f63179c1e68c Linux 5.14.16
    e874c870dfd8 KVM: x86: Take srcu lock in post_kvm_run_save()
    9ab39a3d0cec KVM: SEV-ES: fix another issue with string I/O VMGEXITs
    eb0461c572e9 KVM: x86: switch pvclock_gtod_sync_lock to a raw spinlock
    10242cc2ad79 KVM: x86/xen: Fix kvm_xen_has_interrupt() sleeping in kvm_vcpu_block()
    669a7e147ee6 perf script: Check session->header.env.arch before using it
    e914237feb46 riscv: Fix asan-stack clang build
    4606bbb6b19c riscv: Do not re-populate shadow memory with kasan_populate_early_shadow
    7567abe63797 riscv: fix misalgned trap vector base address
    20bd764387ac scsi: ibmvfc: Fix up duplicate response detection
    f6782c0ca808 perf script: Fix PERF_SAMPLE_WEIGHT_STRUCT support
    04ced3822a66 scsi: ufs: ufs-exynos: Correct timeout value setting registers
    d748da838b21 KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
    4faa35ce98c7 KVM: s390: clear kicked_mask before sleeping again
    ae566351ca18 octeontx2-af: Check whether ipolicers exists
    45d9cd363786 virtio-ring: fix DMA metadata flags
    52a936b037b5 net: hns3: expand buffer len for some debugfs command
    efccb66bc917 net: hns3: add more string spaces for dumping packets number of queue info in debugfs
    e5c6ad377c07 bpf: Move BPF_MAP_TYPE for INODE_STORAGE and TASK_STORAGE outside of CONFIG_NET
    b341612b659d watchdog: sbsa: only use 32-bit accessors
    de709ec74f8b bpf: Use kvmalloc for map values in syscall
    0717c71deae6 sctp: add vtag check in sctp_sf_ootb
    1c255b5f68f4 sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
    dd82b3a345ab sctp: add vtag check in sctp_sf_violation
    44ef3ecbc24a sctp: fix the processing for COOKIE_ECHO chunk
    7975f42f1038 sctp: fix the processing for INIT_ACK chunk
    6277d424ead2 sctp: fix the processing for INIT chunk
    332933f9ae0a sctp: use init_tag from inithdr for ABORT chunk
    44d44bf72591 RDMA/irdma: Do not hold qos mutex twice on QP resume
    6392f26fbe92 RDMA/irdma: Set VLAN in UD work completion correctly
    7762917173cc RDMA/irdma: Process extended CQ entries correctly
    7860484eeb90 phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings
    37a1b9befb73 phy: phy_start_aneg: Add an unlocked version
    1f9c99e0bb5b phy: phy_ethtool_ksettings_set: Move after phy_start_aneg
    2191b1e8eb3d phy: phy_ethtool_ksettings_get: Lock the phy for consistency
    e2b4dd261720 net/tls: Fix flipped sign in async_wait.err assignment
    373f94d73651 net: ethernet: microchip: lan743x: Fix skb allocation failure
    228862acb549 net: hns3: fix data endian problem of some functions of debugfs
    20d88211706b net: hns3: fix pause config problem after autoneg disabled
    7cc73feb57f6 net: nxp: lpc_eth.c: avoid hang when bringing interface down
    d8774769d198 net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent
    69d3c7785ec4 net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
    18bd5e285a78 mlxsw: pci: Recycle received packet upon allocation failure
    960f4a54b909 nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
    030f05812d81 gpio: xgs-iproc: fix parsing of ngpios property
    c653c522e521 RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
    5f6995295f65 RDMA/mlx5: Initialize the ODP xarray when creating an ODP MR
    ed894f5439ab net: Prevent infinite while loop in skb_tx_hash()
    f435287d719b cfg80211: correct bridge/4addr mode check
    da279dac227a net-sysfs: initialize uid and gid before calling net_ns_get_ownership
    a8f7359259dd net: batman-adv: fix error handling
    50cc1462a668 regmap: Fix possible double-free in regcache_rbtree_exit()
    c9e39214fddf reset: brcmstb-rescal: fix incorrect polarity of status bit
    86f9394073d8 arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
    63a97a9f95f2 ice: check whether PTP is initialized in ice_ptp_release()
    ebd0edad1cdf RDMA/mlx5: Set user priority for DCT
    e83b3cce4722 ice: Respond to a NETDEV_UNREGISTER event for LAG
    f1e3cd1cc802 octeontx2-af: Fix possible null pointer dereference.
    98db2a8c14be octeontx2-af: Display all enabled PF VF rsrc_alloc entries.
    c7752ec9ad39 nvme-tcp: fix possible req->offset corruption
    7258a6eef5be nvme-tcp: fix data digest pointer calculation
    daa12f0c1d1b nvmet-tcp: fix data digest pointer calculation
    5d33bd6b4d4d IB/hfi1: Fix abba locking issue with sc_disable()
    0d4395477741 IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
    6525bfbd546f bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch()
    adb17f828177 bpf: Fix potential race in tail call compatibility check
    6f226ffe4458 tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
    e1b80a5ebe54 riscv, bpf: Fix potential NULL dereference
    b529f88d9388 cgroup: Fix memory leak caused by missing cgroup_bpf_offline
    b7ca59297fa3 Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout"
    0a8b7eba95a0 drm/amd/display: Fix deadlock when falling back to v2 from v3
    a363d80566cc drm/amd/display: Fallback to clocks which meet requested voltage on DCN31
    aeadb0662478 drm/amd/display: Moved dccg init to after bios golden init
    5a5f1f070c3e drm/amd/display: Increase watermark latencies for DCN3.1
    85cf47160d0e drm/amd/display: increase Z9 latency to workaround underflow in Z9
    01f39421d590 drm/amd/display: Fix prefetch bandwidth calculation for DCN3.1
    b60efcaf5e8b drm/amd/display: Limit display scaling to up to true 4k for DCN 3.1
    c3ae5cf3e3ee drm/amdgpu: support B0&B1 external revision id for yellow carp
    d3ed72495a59 drm/amdgpu: fix out of bounds write
    9eb4bdd554fc drm/amdgpu: Fix even more out of bound writes from debugfs
    d87ac6054e3d drm/i915/dp: Skip the HW readout of DPCD on disabled encoders
    7650327e7174 drm/i915: Catch yet another unconditioal clflush
    0ed2dfb5f598 drm/i915: Convert unconditional clflush to drm_clflush_virt_range()
    132a3d998d67 drm/ttm: fix memleak in ttm_transfered_destroy
    15a4f2bdbdfd mac80211: mesh: fix HE operation element length check
    ce277959d77c arm64: dts: imx8mm-kontron: Make sure SOC and DRAM supply voltages are correct
    8c684aaceaf3 arm64: dts: imx8mm-kontron: Set lower limit of VDD_SNVS to 800 mV
    f5eaf91dd8af arm64: dts: imx8mm-kontron: Fix connection type for VSC8531 RGMII PHY
    da32086a0203 arm64: dts: imx8mm-kontron: Fix CAN SPI clock frequency
    d2bdcd23cba9 arm64: dts: imx8mm-kontron: Fix polarity of reg_rst_eth2
    5fcb6fce74ff mm: khugepaged: skip huge page collapse for special files
    5e669d8ab30a mm, thp: bail out early in collapse_file for writeback page
    6ac017254b59 mm: filemap: check if THP has hwpoisoned subpage for PMD page fault
    8821fedc7f83 mm: hwpoison: remove the unnecessary THP check
    67979d186c51 drm/amd/display: Require immediate flip support for DCN3.1 planes
    75b1b172ae5a net: lan78xx: fix division by zero in send path
    3c897f39b71f cfg80211: fix management registrations locking
    2a000d137589 cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
    e6d02b0da2df ftrace/nds32: Update the proto for ftrace_trace_function to match ftrace_stub
    ea081b13b00e nvme-tcp: fix H2CData PDU send accounting (again)
    2e382600e885 ocfs2: fix race between searching chunks and release journal_head from buffer_head
    7335acd51f6b block: Fix partition check for host-aware zoned block devices
    10bcaafc5753 mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit
    78873d5a2717 mmc: sdhci-pci: Read card detect from ACPI for Intel Merrifield
    b572d6c18511 mmc: sdhci: Map more voltage level to SDHCI_POWER_330
    ac6f66f208a1 mmc: dw_mmc: exynos: fix the finding clock sample value
    b1ad3ecffaac mmc: tmio: reenable card irqs after the reset callback
    e1b94f0e744f mmc: mediatek: Move cqhci init behind ungate clock
    9106d68c8082 mmc: cqhci: clear HALT state after CQE enable
    aa2f3e425e22 mmc: vub300: fix control-message timeouts
    e41473543f75 net/tls: Fix flipped sign in tls_err_abort() calls
    8ba94a7f7b9f Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
    836f40777d58 nfc: port100: fix using -ERRNO as command type mask
    e029c9828c5b tipc: fix size validations for the MSG_CRYPTO type
    43849df432c9 ata: sata_mv: Fix the error handling of mv_chip_id()
    66a1c8748068 pinctrl: amd: disable and mask interrupts on probe
    18f31a907c9f Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
    b5c410a4af7d usbnet: fix error return code in usbnet_probe()
    7e8b6a4f18ed usbnet: sanity check for maxpacket
    a350df591870 ARM: 9148/1: handle CONFIG_CPU_ENDIAN_BE32 in arch/arm/kernel/head.S
    351d0f587b4c ARM: 9141/1: only warn about XIP address when not compile testing
    a51d78193d21 ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
    4108f38c05bd ARM: 9138/1: fix link warning with XIP + frame-pointer
    6aa2d9cf81f9 ARM: 9134/1: remove duplicate memcpy() definition
    78a7a2694e69 ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
    e108afbd38a5 ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images

(From OE-Core rev: 01fe48bf2499c387cd5ed71489b33da7bc6a6ae0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ae32a59571abec59cc9f19bf9289ec9472b3923b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Ross Burton
8dbdb9e1e2 vim: add patch number to CVE-2021-3778 patch
(From OE-Core rev: 851a5d697918247c05f7d59782f84c430771fd48)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 222be29051a3543ac63a0eb07019e90d44429b16)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Ross Burton
e8bdd45fe8 vim: fix CVE-2021-3796, CVE-2021-3872, and CVE-2021-3875
Backport patches from upstream to fix these CVEs.

(From OE-Core rev: 2ed29a813fa07a2e6d2637f7fc63d5e0066b6304)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b493eb4f9a6bb75a2f01a53b6c70762845bf79f9)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Kai Kang
f8ad42fc49 squashfs-tools: follow-up fix for CVE-2021-41072
Squash a follow-up fix for CVE-2021-41072 from upstream:
https://github.com/plougher/squashfs-tools/commit/19fcc93

(From OE-Core rev: 722c8fbe68a6236f9391eb0ded4c11efd6962de5)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 70709ff0741ed9fb9c111ef4b7aa2ee7432453f4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
4b28378957 mirrors: Add uninative mirror on kernel.org
At the last nas outage, we realised that we don't have good mirrors of the
uninative tarball if our main system can't be accessed. kernel.org mirrors
some Yocto Project data so we've ensured uninative is there. Add the appropriate
mirror url to make use of that.

(From OE-Core rev: 20d7be2f3b481bc9a2f034f84eff1c48a4a13d92)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1833cb0c5841afafb468b963b74b63366b09a134)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Chen Qi
c43f22e42e avahi: update CVE id fixed by local-ping.patch
CVE-2021-36217 is treated as a duplicate of CVE-2021-3502.
Update the local-ping.patch to mark it resolve both.

(From OE-Core rev: efb82a8e56c9af7846b391a031511ab60d12ced4)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4d75d6c39f1faeb38191b55f1fa9311b63fcfb29)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:41:39 +00:00
Richard Purdie
79964afc90 bitbake: cooker: Fix task-depends.dot for multiconfig targets
The right hand side of dependencies in the task dependency file generated
by bitbake -g was missing multiconfig prefixes, corrupting the data. Fix
this.

[YOCTO #14621]

(Bitbake rev: c1938abf51b57938a21948bb414ad0467e4368d9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1d5ca721040c5e39aefa11219f62710de6587701)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:35:41 +00:00
Richard Purdie
6108762d02 bitbake: cooker: Handle parsing results queue race
The previous fix introduced a race where the queue might not be empty
but all the parser processes have exited. Handle this correctly to avoid
occasional errors.

(Bitbake rev: 8eaddb92a5fd14de6b5995aa92a6eed03b90a252)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8e7f2b6500e26610f52d128b48ca0a09bf6fb2cb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:35:41 +00:00
Richard Purdie
fe1583b445 bitbake: cooker: Remove debug code, oops :(
(Bitbake rev: ae1bfbf9523e8f6155bb43ee3adba17af3ec9630)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 19291665fa8b6cc331290f2542af3e8e653203f1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:35:41 +00:00
Richard Purdie
e180b85efb bitbake: cooker: Handle parse threads disappearing to avoid hangs
If one of the parse threads disappears during parsing for some reason, bitbake
currently hangs. Avoid this (and zombie threads hanging around) by joining()
threads which have exited.

(Bitbake rev: 920111a330be59e5be2068a8f1a9edcbc6c14402)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dc86a533d951d13643ce446533370da804782afc)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-21 11:35:41 +00:00
Anuj Mittal
da5d1b540e glibc-version.inc: remove branch= from GLIBC_GIT_URI
GLIBC_GIT_URI is used along with branch=${SRCBRANCH} so no need to add
it here.

(From OE-Core rev: d2cba06c27c87c64423636153c0f186c5f45b147)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4c9cfe326913d28f82e6a91d1eeae55a6651f0f7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
7acf465dd5 bitbake.conf: Fix corruption of GNOME mirror url
The url changes from the script accidentally corrupted this mirror
url, fix it.

(From OE-Core rev: 299023686865e0f1f9cc1f585ba64767ba63f638)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a16dd60fb058ec2257eb1c6c0baa86e11e78cb42)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
30fb5da7ee go-helloworld/glide: Fix urls
Handle github protocol changes not covered by the script due to variable indirection.

(From OE-Core rev: 88c7d6f8c0d603b4404ab73cd147aa0ba6d8afd1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3bb1cb476dbad1037522970af9afd69691a7033c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
543567bb8a recipes: Update github.com urls to use https
Github has announced there will be no more git:// fetching from their servers:

https://github.blog/2021-09-01-improving-git-protocol-security-github/#no-more-unauthenticated-git

and they're about to start having brownout periods to encourage people
to update. This runs the conversion script over OE-Core to update our
urls to use https instead of git.

(From OE-Core rev: 8b83eddda83327d25247bb9b61a049b0a8698a45)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b37b61e9a1e448a34957db9ae39285d21352552e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
9c87e0204b scripts/convert-srcuri: Update SRC_URI conversion script to handle github url changes
Github are dropping support for git:// protocol fetching. Update the script
to learn about corner cases found in the previous conversion and
support remapping the github urls as needed too.

(From OE-Core rev: fc9209fa892b31b2226008bdaf474750c3b61f38)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e59fe8279b209f67ff79b9d6dbb69389a64db236)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
7836a7c4d4 meta/scripts: Manual git url branch additions
Following the scripted conversion adding branches to git://
SRC_URI entries, add the remaining references, mainly in the selftests
and recipetool.

(From OE-Core rev: 467aa56b8773e8dd2e8e29936684606d5e291888)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5340c0d688036c1be6c938f05d8a8c1e3b49ec38)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
5258dd0cd0 meta: Add explict branch to git SRC_URIs
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: 37b4f66fa23979cbfe82679a74ce21b11fc61557)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b51c405faf6f8c0365f7533bfaf470d79152a463)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
aaa0c06d85 pseudo: Add fcntl64 wrapper
Add fcntl64 wrapper which hopefully fixes issues seen in findutils and the find
command in the libtool removal code when built with LFS compile flags on Gentoo.

(From OE-Core rev: f90e4b84d75d8dc4d5905784abe3298488127ff3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f26867fe4daec7299f59a82ae4a0d70cceb3e082)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Richard Purdie
b989276b40 linunistring: Add missing gperf-native dependency
(From OE-Core rev: 04d181a8cc90f73a36e2665087c030ec4c12b3b3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 73d3efbaeb2f412ab8d3491d2da3f3124fc009f3)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Tom Hochstein
59eed5965c bitbake.conf: Use wayland distro feature for native builds
The wayland-scanner is missing from SDKs with weston, but the weston build
requires wayland-scanner. Allow the distro feature in order to include
the wayland-scanner packages via nativesdk-packagegroup-sdk-host.bb.

(From OE-Core rev: 99ff8a3dbe5d3a68faf9241f4c334953cf9cc5b0)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 858cc6f257e22e39df83f4808ea27c6d12cd1b80)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Tom Hochstein
443816b4dd nativesdk-packagegroup-sdk-host.bb: Update host tools for wayland
The wayland-scanner host tool required to build weston is moved to the
wayland-tools package, so update the SDK host tools list accordingly.

Also, the weston build requires wayland-scanner.pc to find wayland-scanner,
so add wayland-dev.

(From OE-Core rev: adee9d40023b6197f121ec0cf1115ce229c2a26f)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 31ed91bdbb0ec05730fb98d7cc523bb46aca50e3)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Tom Hochstein
025b64f23e wayland: Fix wayland-tools packaging
There are some packaging problems due to the wayland-tools packaging
implementation. The wayland-tools package currently looks like this:

wayland-tools
└── usr
    ├── bin
    │   └── wayland-scanner
    └── share
        └── wayland
            ├── wayland.dtd
            ├── wayland-scanner.mk
            └── wayland.xml

The files wayland.dtd and wayland.xml belong in the main package,
while wayland-scanner.mk belongs in wayland-dev.

Fix the wayland.dtd and wayland.xml packaging by prepending the
wayland-tools package and dropping the main package FILES variable
override. The file wayland-scanner.mk is included in the main
package by default, and so must be explicitly added to wayland-dev.

(From OE-Core rev: 35d54049a94897626eafcd4922ca7ef25a76859c)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a31fbec45d24df5b74091940d0e0b2daf34d8492)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Peter Kjellerstedt
f57e4968b3 libx11-compose-data: Update LICENSE to better reflect reality
There are no traces of neither the BSD-2-Clause license nor the
BSD-4-Clause license being used in the code. There is one occurrence
of the BSD-1-Clause license. On the other hand, HPND and
HPND-sell-variant are all over the place.

(From OE-Core rev: b7fc3411dba82e87b626d110b3951a7dbf910f83)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b0f30792fd0ea41f1d1590dbe0452c956e018c82)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Peter Kjellerstedt
27d151c032 libx11: Update LICENSE to better reflect reality
There are no traces of neither the BSD-2-Clause license nor the
BSD-4-Clause license being used in the code. There is one occurrence
of the BSD-1-Clause license. On the other hand, HPND and
HPND-sell-variant are all over the place.

(From OE-Core rev: 3781b045366a280d33062e0dc9071dc194dd7bf5)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5cd90092e21ad245df40a60feed3598dd9c6b98b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Alexander Kanavin
dfca86c200 libpcre/libpcre2: correct SRC_URI
http://ftp.pcre.org is down, take sources according to links on
http://www.pcre.org

(From OE-Core rev: 1be81f77e3c479a1c11d1d5ea06653b596cbd00b)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 81ba0ba3e8d9c08b8dc69c24fb1d91446739229b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Khem Raj
5045ce3c04 kernel-devsrc: Add vdso.lds and other build files for riscv64 as well
These additional bits are needed on riscv64 as well
Fixes
make[1]: *** No rule to make target 'arch/riscv/kernel/vdso/vdso.lds', needed by 'arch/riscv/kernel/vdso/vdso.so.dbg'.  Stop.
make: *** [arch/riscv/Makefile:114: vdso_prepare] Error 2

(From OE-Core rev: b1e4b39d09a090bfb2bf656ce0eb053e579bf6a1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 446972600ed51ca75a2a4e579cdc3e6dd2e05195)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:17 +00:00
Ross Burton
ed66d58ed6 meson: set objcopy in the cross and native toolchain files
(From OE-Core rev: 028d40076b704669cf7bf423385a4f11e0dd6f03)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0a589998e717ae3865f0db5abe6005ab4eee86d9)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Andres Beltran
ce68ec010f create-spdx: Set the Organization field via a variable
Currently, the "Organization" field for SBOMs is hard-coded in
create-spdx. Create a new variable SPDX_ORG to make this field more
generic.

(From OE-Core rev: e370039febe601127347da977ff9b7e5c7470315)

Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f239814f3f5d9bd54de54b0f2a5081067336e32b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Jose Quaresma
be28d98b3a sstate: another fix for touching files inside pseudo
This patch is a fixup for 676757f "sstate: fix touching files inside pseudo"

running the 'id' command inside the sstate_unpack_package
function shows that this funcion run inside the pseudo:

 uid=0(root) gid=0(root) groups=0(root)

The check for [ -w ${SSTATE_PKG} ] and [ -O ${SSTATE_PKG}.siginfo ]
will always return true and the touch can fail when the real user
don't have permission or in readonly filesystem.

As the documentation refers:
- the file test operator "-w" check if the file has write permission
(for the user running the test).
- the file test operator "-O" check if you are owner of file

We can avoid this test running the touch and mask any return errors
that we have.

(From OE-Core rev: 29fc85997ade490ae46ffca37ef8e1a56957c876)

(From OE-Core rev: 10e300e6b4c3935d3fd177478f07c429c9b8c735)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5b9210d66c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Bruce Ashfield
d6768d9d52 strace: fix build against 5.15 kernel/kernel-headers
kernel 5.15 removed ipx.h from the uapi, but strace hasn't adjusted
its tests to the removal.

There is a WIP patch on the esyr/5.15 branch that solves the problem,
so we grab it here, adjust for context and fix our build problem.

When strace updates to 5.15, and we can bump our version and drop
this patch.

Upstream-Status: Backport [commit cca828197c0e16c2599129114]

(From OE-Core rev: 1b47465688474cdba603578c1cbb768cfe699579)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a8c4ba727251e53494a4aec483fcc51982e6fb75)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Bruce Ashfield
4aa48aeab8 linux-yocto-rt/5.10: update to -rt54
Integrating the following commit(s) to linux-yocto-rt/5.10:

    f01089784fd6 Linux 5.10.73-rt54
    f34df8f3c666 Linux 5.10.65-rt53
    271c5e6e4064 Linux 5.10.59-rt52
    1a4bba4bc32c locking/rwsem-rt: Remove might_sleep() in __up_read()
    ff591a2bdcfb Linux 5.10.59-rt51
    8d185ac23c11 Linux 5.10.58-rt50
    2c0fd44153f5 Linux 5.10.56-rt49
    8b083d3c993c printk: Enhance the condition check of msleep in pr_flush()
    448cd29e3bc9 Linux 5.10.56-rt48

(From OE-Core rev: fd5980829646a1b0e3865d3ebf64feacc4bc1ee6)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7c7dc8f38cf1e874a7722389c95d895e10855d9a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Bruce Ashfield
77e8fa92c2 linux-yocto/5.10: update to v5.10.76
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    378e85d1aeb5 Linux 5.10.76
    cfa79faf7e1f pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
    c56c801391c3 ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
    d088db8637bb selftests: bpf: fix backported ASSERT_FALSE
    3a845fa00fd7 e1000e: Separate TGP board type from SPT
    021b6d11e590 tracing: Have all levels of checks prevent recursion
    3a0dc2e35a5d net: mdiobus: Fix memory leak in __mdiobus_register
    cfe9266213c4 bpf, test, cgroup: Use sk_{alloc,free} for test cases
    188907c25218 s390/pci: fix zpci_zdev_put() on reserve
    f18b90e9366f can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg()
    2304dfb548a4 scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
    c58654f344dd net: hns3: fix for miscalculation of rx unused desc
    96fe5061291d sched/scs: Reset the shadow stack when idle_task_exit
    96f0aebf29be scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
    90c8e8c0829b scsi: iscsi: Fix set_param() handling
    0eb254479685 Input: snvs_pwrkey - add clk handling
    ea9c1f5d8a3a perf/x86/msr: Add Sapphire Rapids CPU support
    7a5a1f09c8b4 libperf tests: Fix test_stat_cpu
    e56a3e7ae353 ALSA: hda: avoid write to STATESTS if controller is in reset
    85c8d8c1609d platform/x86: intel_scu_ipc: Update timeout value in comment
    9f591cbdbed3 isdn: mISDN: Fix sleeping function called from invalid context
    ab4f542b515b ARM: dts: spear3xx: Fix gmac node
    15d3ad79885b net: stmmac: add support for dwmac 3.40a
    f9d16a428489 btrfs: deal with errors when checking if a dir entry exists during log replay
    369db2a91d5c ALSA: hda: intel: Allow repeatedly probing on codec configuration errors
    81d8e70cdce4 gcc-plugins/structleak: add makefile var for disabling structleak
    69078a94365a net: hns3: fix the max tx size according to user manual
    f40c2281d2c0 drm: mxsfb: Fix NULL pointer dereference crash on unload
    96835b68d7b3 net: bridge: mcast: use multicast_membership_interval for IGMPv3
    0e033cb40761 selftests: netfilter: remove stray bash debug line
    f8a6541345c2 netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
    7f221ccbee4e isdn: cpai: check ctr->cnr to avoid array index out of bound
    77c0ef979e32 nfc: nci: fix the UAF of rf_conn_info object
    8f042315fcc4 KVM: nVMX: promptly process interrupts delivered while in guest mode
    b41fd8f5d2ad mm, slub: fix incorrect memcg slab count for bulk free
    568f906340b4 mm, slub: fix potential memoryleak in kmem_cache_open()
    48843dd23c7b mm, slub: fix mismatch between reconstructed freelist depth and cnt
    c5c2a80368e9 powerpc/idle: Don't corrupt back chain when going idle
    197ec50b2df1 KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest
    fbd724c49bea KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
    9258f58432c5 powerpc64/idle: Fix SP offsets when saving GPRs
    3e16d9d525a7 net: dsa: mt7530: correct ds->num_ports
    16802fa4c33e audit: fix possible null-pointer dereference in audit_filter_rules
    0d867a359979 ASoC: DAPM: Fix missing kctl change notifications
    a2606acf418e ALSA: hda/realtek: Add quirk for Clevo PC50HS
    6411397b6d7a ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
    b721500c979b vfs: check fd has read access in kernel_read_file_from_fd()
    895ceeff31b1 elfcore: correct reference to CONFIG_UML
    3cda4bfffd4f userfaultfd: fix a race between writeprotect and exit_mmap()
    93be0eeea14c ocfs2: mount fails with buffer overflow in strlen
    f1b98569e81c ocfs2: fix data corruption after conversion from inline format
    1727e8688d2e ceph: fix handling of "meta" errors
    603d4bcc0fcd ceph: skip existing superblocks that are blocklisted or shut down when mounting
    d48db508f911 can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
    5abc9b9d3ca5 can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length
    864e77771a24 can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
    ecfccb1c58c9 can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
    053bc12df0d6 can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible()
    0917fb04069a can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path
    28f28e4bc3a5 can: peak_pci: peak_pci_remove(): fix UAF
    9697ad6395f9 can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
    4758e92e75ca can: rcar_can: fix suspend/resume
    4a0928c3ebca net: enetc: fix ethtool counter name for PM0_TERR
    00ad7a015409 drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel
    eccd00728b1a ice: Add missing E810 device ids
    6418508a3ac2 e1000e: Fix packet loss on Tiger Lake and later
    29f1bdcaa3dd net: stmmac: Fix E2E delay mechanism
    d36b15e3e7b5 net: hns3: disable sriov before unload hclge layer
    6a72e1d78a2f net: hns3: fix vf reset workqueue cannot exit
    32b860d364d2 net: hns3: schedule the polling again when allocation fails
    96c013f40c9b net: hns3: add limit ets dwrr bandwidth cannot be 0
    21f61d10435c net: hns3: reset DWRR of unused tc to zero
    53770a411559 powerpc/smp: do not decrement idle task preempt count in CPU offline
    81dbd898fb7b NIOS2: irqflags: rename a redefined register name
    6edf99b000d6 net: dsa: lantiq_gswip: fix register definition
    ef97219d5fec ipv6: When forwarding count rx stats on the orig netdev
    38d984e5e845 tcp: md5: Fix overlap between vrf and non-vrf keys
    c28bea6b876f lan78xx: select CRC32
    9c8943812dac netfilter: ipvs: make global sysctl readonly in non-init netns
    911e01990c70 netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6
    69ea08c1b539 ice: fix getting UDP tunnel entry
    842fce43190c ASoC: wm8960: Fix clock configuration on slave mode
    39afed394cc6 dma-debug: fix sg checks in debug_dma_map_sg()
    2a670c323055 netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value
    0f4308a164a9 NFSD: Keep existing listeners on portlist error
    546c04c85791 xtensa: xtfpga: Try software restart before simulating CPU reset
    bfef5d826276 xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
    d8284c981c1c drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI
    101e1bcb1147 xen/x86: prevent PVH type from getting clobbered
    a6285b1b2212 block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output
    85c1827eeee7 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
    5489c1bed5b8 arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address
    f59da9f7efa7 io_uring: fix splice_fd_in checks backport typo
    b6f32897af19 xhci: add quirk for host controllers that don't update endpoint DCS
    b3b7f831a49b parisc: math-emu: Fix fall-through warnings

(From OE-Core rev: 512e0c418ff1a185289fd23ee21afa8eac75f992)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 61f8f7d18417334e3b13e4447f318107372dcfe0)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Bruce Ashfield
a9ed4b6357 linux-yocto/5.14: update to v5.14.15
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    b46092c7497e Linux 5.14.15
    96e4ea34f6d7 pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
    4850e9e3c6a3 ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
    80344938e468 e1000e: Separate TGP board type from SPT
    0c4e87ba11eb net: mdiobus: Fix memory leak in __mdiobus_register
    2f4356963624 bpf, test, cgroup: Use sk_{alloc,free} for test cases
    4e5d794a2743 s390/pci: fix zpci_zdev_put() on reserve
    e27170d5f2fc s390/pci: cleanup resources only if necessary
    2be38f02ec89 scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
    ff261f9aa654 autofs: fix wait name hash calculation in autofs_wait()
    1009f098dfbe drm/kmb: Limit supported mode to 1080p
    217d42e8b835 drm/kmb: Enable alpha blended second plane
    c1ad040dbea8 net/mlx5: Lag, change multipath and bonding to be mutually exclusive
    d2ec7d208d8e net/mlx5: Lag, move lag destruction to a workqueue
    42b6431f1c17 net: hns3: fix for miscalculation of rx unused desc
    f1972f14f16e sched/scs: Reset the shadow stack when idle_task_exit
    c4813d308517 mm/thp: decrease nr_thps in file's mapping on THP split
    a7fbb56e6c94 scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
    c8c1b2183fb8 scsi: mpi3mr: Fix duplicate device entries when scanning through sysfs
    ce527668277c scsi: storvsc: Fix validation for unsolicited incoming packets
    08d82a9b65e7 scsi: iscsi: Fix set_param() handling
    6408a4c8da2f ASoC: codec: wcd938x: Add irq config support
    9eb2aaede632 Input: snvs_pwrkey - add clk handling
    9dd0389d77b9 perf/x86/msr: Add Sapphire Rapids CPU support
    11d6811cbde0 libperf tests: Fix test_stat_cpu
    65eec1fb58c1 libperf test evsel: Fix build error on !x86 architectures
    b6062308c510 spi-mux: Fix false-positive lockdep splats
    722ef19a161c spi: Fix deadlock when adding SPI controllers on SPI buses
    785d69099ef4 ALSA: hda: avoid write to STATESTS if controller is in reset
    3972b03ed085 platform/x86: intel_scu_ipc: Update timeout value in comment
    6659008140b4 platform/x86: intel_scu_ipc: Increase virtual timeout to 10s
    f5966ba53013 isdn: mISDN: Fix sleeping function called from invalid context
    ef24577a52ba ARM: dts: spear3xx: Fix gmac node
    834cc3fc2b99 net: stmmac: add support for dwmac 3.40a
    0c878175dd2f btrfs: deal with errors when checking if a dir entry exists during log replay
    051995bd0f42 ALSA: hda: intel: Allow repeatedly probing on codec configuration errors
    9906da162dc8 objtool: Update section header before relocations
    e73e72be194e objtool: Check for gelf_update_rel[a] failures
    515e03331255 bitfield: build kunit tests without structleak plugin
    3f66b6e01c82 thunderbolt: build kunit tests without structleak plugin
    d9f94a8ec35a device property: build kunit tests without structleak plugin
    2c793a67d71b iio/test-format: build kunit tests without structleak plugin
    930f561aae28 gcc-plugins/structleak: add makefile var for disabling structleak
    1d1af4da1c44 drm/msm/a6xx: Serialize GMU communication
    bbdd158b40b6 kunit: fix reference count leak in kfree_at_end
    dfcc47a1fe36 KVM: MMU: Reset mmu->pkru_mask to avoid stale data
    e647d75565ab net: hns3: fix the max tx size according to user manual
    b0e6db0656dd drm: mxsfb: Fix NULL pointer dereference crash on unload
    56a3d9637b77 KVM: SEV-ES: Set guest_state_protected after VMSA update
    d469678d6b50 net: bridge: mcast: use multicast_membership_interval for IGMPv3
    8f20259f186e selftests: netfilter: remove stray bash debug line
    057aef8df940 netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
    cc20226e218a isdn: cpai: check ctr->cnr to avoid array index out of bound
    6197eb050cfa nfc: nci: fix the UAF of rf_conn_info object
    fb82d4dbee95 KVM: x86: remove unnecessary arguments from complete_emulator_pio_in
    66e46fe3f276 KVM: x86: split the two parts of emulator_pio_in
    9887c1668ada KVM: x86: check for interrupts before deciding whether to exit the fast path
    169577c8840e KVM: x86: leave vcpu->arch.pio.count alone in emulator_pio_in_out
    62a1a254ed83 KVM: SEV-ES: reduce ghcb_sa_len to 32 bits
    3f54362dc7d7 KVM: SEV-ES: go over the sev_pio_data buffer in multiple passes if needed
    4988e000b3a8 KVM: SEV-ES: fix length of string I/O
    727286b23f93 KVM: SEV-ES: keep INS functions together
    98c55c508df0 KVM: SEV-ES: clean up kvm_sev_es_ins/outs
    abcae3cd6272 KVM: SEV-ES: rename guest_ins_data to sev_pio_data
    6697ceb9f6cd KVM: SEV: Flush cache on non-coherent systems before RECEIVE_UPDATE_DATA
    495bd03b6ba5 KVM: nVMX: promptly process interrupts delivered while in guest mode
    dc94b8b3f28a mm, slub: fix incorrect memcg slab count for bulk free
    159d8cfbd042 mm, slub: fix potential use-after-free in slab_debugfs_fops
    42b81946e3ac mm, slub: fix potential memoryleak in kmem_cache_open()
    ec93d4a439c3 mm, slub: fix mismatch between reconstructed freelist depth and cnt
    65ede7bd9713 powerpc/idle: Don't corrupt back chain when going idle
    5a8c22e7fb66 KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest
    6d077c37c464 KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
    e8735e2e306f ucounts: Fix signal ucount refcounting
    1eb825343d63 ucounts: Proper error handling in set_cred_ucounts
    f7f7e4dbc41c ucounts: Pair inc_rlimit_ucounts with dec_rlimit_ucoutns in commit_creds
    32880dcecb51 ucounts: Move get_ucounts from cred_alloc_blank to key_change_session_keyring
    04b938ff2d2c net: dsa: mt7530: correct ds->num_ports
    4e9e46a70020 audit: fix possible null-pointer dereference in audit_filter_rules
    b1a34f86b41f blk-cgroup: blk_cgroup_bio_start() should use irq-safe operations on blkg->iostat_cpu
    152f35191d12 ASoC: nau8824: Fix headphone vs headset, button-press detection no longer working
    a60ce083dcbf ASoC: DAPM: Fix missing kctl change notifications
    9da68a107d07 ALSA: hda/realtek: Add quirk for Clevo PC50HS
    896fc3ab9fc1 ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
    b77ba1e02345 mm/secretmem: fix NULL page->mapping dereference in page_is_secretmem()
    abe046ddf311 vfs: check fd has read access in kernel_read_file_from_fd()
    3681e4772c78 elfcore: correct reference to CONFIG_UML
    9ee4e9ae98f1 mm/mempolicy: do not allow illegal MPOL_F_NUMA_BALANCING | MPOL_LOCAL in mbind()
    149958ecd062 userfaultfd: fix a race between writeprotect and exit_mmap()
    6de91691768c mm/userfaultfd: selftests: fix memory corruption with thp enabled
    0e677ea5b739 ocfs2: mount fails with buffer overflow in strlen
    fa9b6b6c953e ocfs2: fix data corruption after conversion from inline format
    909c8482d8ac tracing: Have all levels of checks prevent recursion
    54dc25f4e31e ceph: fix handling of "meta" errors
    0ff7b35631ac ceph: skip existing superblocks that are blocklisted or shut down when mounting
    d832133cf228 can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
    03ec23e55e3e can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length
    6e8811707e2d can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
    fb545be86c53 can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
    013e7890663d can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg()
    a76abedd2be3 can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible()
    1d12d110a820 can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path
    0e5afdc2315b can: peak_pci: peak_pci_remove(): fix UAF
    44c353a14375 can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
    e18b9f4d62c1 can: rcar_can: fix suspend/resume
    113f7a1f3421 net: enetc: make sure all traffic classes can send large frames
    284c68cae7e0 net: enetc: fix ethtool counter name for PM0_TERR
    eff55ddd240f drm/kmb: Enable ADV bridge after modeset
    c0179dbae96d drm/kmb: Corrected typo in handle_lcd_irq
    566ec004ed8b drm/kmb: Disable change of plane parameters
    2317b45fb3d2 drm/kmb: Remove clearing DPHY regs
    97cfc4b28c4d drm/kmb: Work around for higher system clock
    4dbf3d658540 drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel
    3b194affe445 net/mlx5e: IPsec: Fix work queue entry ethernet segment checksum flags
    ea7a4d6132ce net/mlx5e: IPsec: Fix a misuse of the software parser's fields
    e867502bc4f6 ice: Add missing E810 device ids
    9b76c3fedb24 igc: Update I226_K device ID
    3300633367b6 e1000e: Fix packet loss on Tiger Lake and later
    95c0a0c5ec88 ptp: Fix possible memory leak in ptp_clock_register()
    d487413c020f net: stmmac: Fix E2E delay mechanism
    9b5a29f0acef net: hns3: disable sriov before unload hclge layer
    82a136c15a77 net: hns3: fix vf reset workqueue cannot exit
    9ee9191d3384 net: hns3: schedule the polling again when allocation fails
    6446be7c9090 net: hns3: add limit ets dwrr bandwidth cannot be 0
    dddafeda454a net: hns3: reset DWRR of unused tc to zero
    93fa0277ea4e net: hns3: Add configuration of TM QCN error event
    3ea0b497a7a2 powerpc/smp: do not decrement idle task preempt count in CPU offline
    0666c4cd67b1 net: dsa: Fix an error handling path in 'dsa_switch_parse_ports_of()'
    9ef9a287aab5 NIOS2: irqflags: rename a redefined register name
    8b523da74a22 net/sched: act_ct: Fix byte count on fragmented packets
    872b836a183d net: dsa: lantiq_gswip: fix register definition
    57deb5ffd8f6 hamradio: baycom_epp: fix build for UML
    c74f3c127e6c ipv6: When forwarding count rx stats on the orig netdev
    1dda424ef5c4 tcp: md5: Fix overlap between vrf and non-vrf keys
    9c281a1006f4 lan78xx: select CRC32
    5220cad0e69e sctp: fix transport encap_port update in sctp_vtag_verify
    ddffcd23d325 netfilter: ipvs: make global sysctl readonly in non-init netns
    cd3d0282dd3d netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6
    aabf95dddb45 ice: Print the api_patch as part of the fw.mgmt.api
    75ebc3b08bbd ice: fix getting UDP tunnel entry
    777682e59840 ice: Avoid crash from unnecessary IDA free
    31b4517293bf ice: Fix failure to re-add LAN/RDMA Tx queues
    18b4fcfeab6d ASoC: wm8960: Fix clock configuration on slave mode
    2b7d598b9651 dma-debug: fix sg checks in debug_dma_map_sg()
    90c7c58aa2bd netfilter: nf_tables: skip netdev events generated on netns removal
    cae7cab804c9 netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value
    78325fcb17f3 KVM: arm64: Release mmap_lock when using VM_SHARED with MTE
    b372264c66ef KVM: arm64: Fix host stage-2 PGD refcount
    649c2e76632d ASoC: cs4341: Add SPI device ID table
    efdcc26785de ASoC: pcm179x: Add missing entries SPI to device ID table
    242ce1c51b69 ASoC: fsl_xcvr: Fix channel swap issue with ARC
    41551810285e ASoC: pcm512x: Mend accesses to the I2S_1 and I2S_2 registers
    c8ecd221db9a powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
    663e89b7f4cc powerpc/security: Add a helper to query stf_barrier type
    23d127cf5e66 powerpc/bpf: Validate branch ranges
    e680ab91a034 powerpc/lib: Add helper to check if offset is within conditional branch range
    6fe5d304ca49 NFSD: Keep existing listeners on portlist error
    9ad89fcde18c xtensa: xtfpga: Try software restart before simulating CPU reset
    8287678c20b2 xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
    2602e9cc283a drm/amdgpu: init iommu after amdkfd device init
    68771262aab3 drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI
    537a7189df57 r8152: avoid to resubmit rx immediately
    7d8cdaffc518 xen/x86: prevent PVH type from getting clobbered
    28d084adc22d block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output
    96a37f6acb6a ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
    470585caf603 arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address
    79e3dc32f14f sh: pgtable-3level: fix cast to pointer from integer of different size
    d3f4c51c2a7f parisc: math-emu: Fix fall-through warnings
    4248f37f6cfc block/mq-deadline: Move dd_queued() to fix defined but not used warning

(From OE-Core rev: e745b0d7c2354405946ab669281224747d255a6c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5c2c7e54bf17d28fe8b918ee8f053748b2b13e01)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Richard Purdie
520493bef5 opkg: Fix poor operator combination choice
Combining :append with += rarely makes sense. Improve it to use the standard
format (and tweak the implied spacing).

(From OE-Core rev: 0ed0fd99153dd8a4560b6fbbbaa0decc60f79c5a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 768766dc007ebe9b4bc38d425584be03fbdb98c1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Alexander Kanavin
ef62cff62e linux-firmware: upgrade 20210919 -> 20211027
License-Update: additional firmwares listed

(From OE-Core rev: 38d613df4854d269493d019d24606161d49b4659)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1ca3fb1c7f11e04bf8d8bf59901ddd60178cb13c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Manuel Leonhardt
b9a58411fc dpkg: Install dkpg-perl scripts to versioned perl directory
Install dpkg-perl scripts to versioned perl directory, otherwise the
following traceback happens when running, e.g. dpkg-architecture on the
target:

Can't locate Dpkg.pm in @INC (you may need to install the Dpkg module)
  (@INC contains: /usr/lib/perl5/site_perl/5.30.1/aarch64-linux
  /usr/lib/perl5/site_perl/5.30.1
  /usr/lib/perl5/vendor_perl/5.30.1/aarch64-linux
  /usr/lib/perl5/vendor_perl/5.30.1
  /usr/lib/perl5/5.30.1/aarch64-linux
  /usr/lib/perl5/5.30.1 .) at /usr/bin/dpkg-architecture line 25.

Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 37030893cdabdce935defc6f468309d8cd275e53)

Signed-off-by: Manuel Leonhardt <mleonhardt@arri.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bdd4757ae057c7b3bfe27353fa25c4d7807a86ce)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Manuel Leonhardt
b0db46f667 sstate: Account for reserved characters when shortening sstate filenames
Previously, when shortening sstate filenames, the reserved
characters for .siginfo were not considered, when siginfo=False,
resulting in differently shortend filenames for the sstate and siginfo
files. With this change, the filenames of the truncated sstate and
siginfo files have the same basename, just as is already the case for
untruncated filenames.

Making sure that the .siginfo files always have the filename of the
corresponding sstate file plus its .siginfo suffix, also when being
truncated, makes it easier to manage the sstate cache and an sstate
mirror outside of Bitbake/Yocto.

(From OE-Core rev: c5fbe4b18446900525119038b8c4b284ace3a8d6)

Signed-off-by: Manuel Leonhardt <mleonhardt@arri.de>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c2e0e43b7123cf5149833e0072c8edaea3629112)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Kai Kang
fc46b14304 squashfs-tools: fix CVE-2021-41072
Backport patch to fix CVE-2021-41072. And 3 more ancestor commits are
backported too, otherwise it fails to compile.

CVE: CVE-2021-41072

Ref:
* https://nvd.nist.gov/vuln/detail/CVE-2021-41072

(From OE-Core rev: 329e893a36cf651bfd73abe8e50f173382e3b015)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-15 11:56:16 +00:00
Richard Purdie
6e02c340bf bitbake: runqueue: Fix runall option handling
The previous fix for runall option handling had a small bug in it, it
didn't clear the originally processed task list which meant it was running
too many tasks. Fix this so the list is reset and rebuild correctly.

(Bitbake rev: 693eec8edf8d3b2b01c53be6776213cccd797485)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 87c9e120897ed04dfc64d4752fc602f9bfcb8645)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-12 17:27:58 +00:00
Richard Purdie
903333da5b bitbake: runqueue: Fix runall option task deletion ordering issue
The runbuild option handling in runqueue was flawed as items deleted from the
main task list may be dependencies and hence cause index errors.

Rather than modify runtaskentries straight away, compute a new shorted list
and use that as an input to the second phase. This avoids the need to add tasks
back to the list meaning delcount can be simplifed to a simple counter.

The second use case in runonly doen't re-add items so doesn't have this
issue.

(Bitbake rev: cc2e9c4800a8dfde24b3b5fa7184d0bb6398d4fe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3428e3c54eb5cc03ff96f9cee6dc839afee7a419)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-12 17:27:58 +00:00
Richard Purdie
679e630732 bitbake: tests/fetch: Update pcre.org address after github changes
vcs.pcre.org was a redirect to github which we use for subversion testing.
With the protocol changes at github and the removal of the redirect, use a
direct address for github.

(Bitbake rev: 85eb90edb4b912b4befb10128d60d342d0525eb3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6230ca71eb7eb2a6db162e28a01727d00af5299b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-12 17:27:58 +00:00
Jose Quaresma
a48e0bb5ec bitbake: cooker: check if upstream hash equivalence server is available
When the user specify an invalid upstream hash equivalence server in
BB_HASHSERVE_UPSTREAM notify the user that we can't connect the server.

(Bitbake rev: 7561fdc23f1aff370ead2abc5747c3a1c8b4ae4d)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit be45aeb9a84f30c28711e87e2d2a4a86320a8d94)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-12 17:27:58 +00:00
Richard Purdie
a498f39e5b bitbake: fetch: Handle mirror user/password replacements correctly
Username or password replacements in URIs were being appended rather than
replaced in mirror url remapping. Fix this and add a test case.

[YOCTO #13823]

(Bitbake rev: 85e7af227a48faec65838dcb7e73b17344bb2a0d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 66ad58bb87e5158aced572be4f1d5726bc97fcce)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-12 17:27:58 +00:00
Richard Purdie
164c944983 bitbake: tests/fetch: Update github urls
(Bitbake rev: 5e9bb32f229d4beebf11b880841edd5a7417bb70)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 07fca7e3ab696ba985b3ef86ab9031d688bf2df2)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-12 17:27:58 +00:00
Quentin Schulz
98d101475a conf: update for release 3.4
conf.py:
* set version to 3.4

switchers.js:
* add 3.4 release
* update 'dev' to 3.5

(From yocto-docs rev: 063e21e1eaffa3e43119800bea50263e12b45f92)

Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-11 11:08:13 +00:00
Richard Purdie
9b66d8fb60 bitbake: fetch/wget: Add timeout for checkstatus calls (30s)
We had an issue where a webserver serving sstate had filesystem issues so
would accept connections but effectively not do anything with them. This
causes bitbake to hang whilst processing things like sstate objects inside
the checkstatus() calls. It can be replicated by setting up a server like:

socat -u TCP4-LISTEN:NNN,fork OPEN:/dev/null

and pointing SSTATE_MIRRORS in OE at that address.

Adding a timeout to the checkstatus calls of 30s means that whilst the
system will pause, it will then continue and not hang entirely. Since there
isn't a large transfer here, 30s should be a reasonable response time after
which we should fall back to building things ourselves.

[YOCTO #13716]

(Bitbake rev: ba97caa58efe25bb62d2378fa52d21b6a6aa446c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-11 11:04:15 +00:00
Peter Kjellerstedt
72f8934284 qemu.inc: Remove empty egg-info directories before running meson
This is the same solution that has been applied to meson.bbclass to
allow building with meson after it has been updated to a new
version. It needs to be applied here as well since qemu uses meson
without inheriting meson.bbclass.

(From OE-Core rev: 3cbe3e6f932151800793854ad5d3569dc6f36ab1)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9d05227e910d3f374ba7a9763ff2584b9e40db61)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Peter Kjellerstedt
0979299bb9 meson.bblcass: Remove empty egg-info directories before running meson
sstate.bbclass no longer removes empty directories to avoid a race (see
commit 4f94d929 "sstate/staging: Handle directory creation race issue").
Unfortunately Python apparently treats an empty egg-info directory as if
the version it previously contained still exists and fails if a newer
version is required, which Meson does. To avoid this, make sure there
are no empty egg-info directories from previous versions left behind.

(From OE-Core rev: 0abc761e84ea25a4acc7633eb9b5c8ae73120116)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 47d9d90b4ec7d04d6f3f1a9b97c0ab7f1264a88e)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Teoh Jay Shen
a10db5945e oeqa/runtime/parselogs: modified drm error in common errors list
Changed the following line from:

  [drm] Cannot find any crtc or sizes - going 1024x768  >  [drm] Cannot find any crtc or sizes

This will expand the coverage of the failure to also cover the case when fallback size is not set.

(From OE-Core rev: 51c6c16e2342a13874124d9364d92b340cb002ed)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0569fa735458512d6e15aa3315218ecbdf8510a3)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Saul Wold
b922f5cfa1 create-spdx: cross recipes are native also
Recipes that inherit cross should also be categorized as isNative

(From OE-Core rev: 9edd5e3eeec447a1d90ebbfc681c84d7047933ec)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit ee113e3894deb1cfb18622085a3fe0600e1ef01d)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Saul Wold
ceb1f52dff create-spdx: add create_annotation function
This allows code reuse and future usage with relationship annotations

(From OE-Core rev: a56b50ada5d1aba57e901684af6a3761f74f6674)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 1f8fdb7dc9d02d0ee3c42674ca16e03f0ec18cba)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Saul Wold
4c9414b35d spdx.py: Add annotation to relationship
Having annotations on relationship can provide additional information
about the relationship such as how it was derived.

(From OE-Core rev: 37a29bd732cb917da4930ef624da72f5196732cc)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit d98585aa89e1d3819f8139a07fb7376ef89b37f8)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Alexander Kanavin
c7b2db1fa6 tzdata: update 2021d -> 2021e
(From OE-Core rev: f598f13dd642fc6451a3700ea77bef4a841e81c1)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 660f932c21fed410ad092ec610749e7090b6a324)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Alexander Kanavin
17be7973d6 tzdata: upgrade 2021a -> 2021d
(From OE-Core rev: 38da21f954899bb1a0dd05be87c8794d12b96b5a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f171f4f528090fc108624de6049274aa4d4880eb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Alexander Kanavin
d70d12d140 stress-ng: convert to git, website is down
(From OE-Core rev: 464fba5a4ee320fb964fcaa378c899aa04ade558)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 0bc00868993d7093a70f29de9047f9ae0be33836)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Ahmed Hossam
2f3ee2aff2 go.bbclass: Allow adding parameters to go ldflags
Currently, there is no clean way to pass extra parameters to the go tool link,
which is passed by the go build ldflags flag, the append needs to happen inside
the quotes of the ldflags parameter

See [YOCTO #14554].

Add a variable to allow adding extra parameters to -ldflags in the GO_LDFLAGS
variable, one of the main usecases is setting the application version.

For example, adding to the recipe something like
GO_EXTRA_LDFLAGS="-X main.Version=v1.0.0"
or
GO_EXTRA_LDFLAGS="-X main.Version=${PV}"

(From OE-Core rev: 4c0c5edbb561f2bd21bba979ed7553fb3b717116)

Signed-off-by: Ahmed Hossam <Ahmed.Hossam@opensynergy.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit eaa7a61dab9a1d7bb039f16abdd9aacb44faa595)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Hsia-Jun(Randy) Li
1eb9a963ff meson: install native file in sdk
Without a native environment file, find_program() can't
locate the native program inside SDK.

That stops wayland compositor using wayland scanner.

(From OE-Core rev: 2ea62c23bf9d37e46d3cd9aa7527c535994d4b77)

Signed-off-by: Hsia-Jun(Randy) Li <randy.li@synaptics.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c6aed1084006727e3baf70ab9d1f70d9d2d6c01f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Randy Li
ae397dcedc meson: move lang args to the right section
After meson 0.56.0, <lang>_args and <lang>_link_args would be
regarded as meson built-in options.

(From OE-Core rev: 07e2ace3e9208b1a0806cd0ab768059671974a1c)

Signed-off-by: Hsia-Jun(Randy) Li <randy.li@synaptics.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 50c8f654e9006a7c902dd76f75082d4f8d668d0c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
b254cbfcff linux-yocto/5.10: update to v5.10.75
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    3a9842b42e42 Linux 5.10.75
    3e2873652163 net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's
    3593fa147c86 ionic: don't remove netdev->dev_addr when syncing uc list
    f33890d9bb59 net: mscc: ocelot: warn when a PTP IRQ is raised for an unknown skb
    9c546af181bc nfp: flow_offload: move flow_indr_dev_register from app init to app start
    6da9af2d2531 r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
    ecfd4fa15b06 qed: Fix missing error code in qed_slowpath_start()
    51f6e72ca656 mqprio: Correct stats in mqprio_dump_class_stats().
    fdaff7f9e806 platform/x86: intel_scu_ipc: Fix busy loop expiry time
    057ee6843bbb acpi/arm64: fix next_platform_timer() section mismatch error
    c6b2400095ba drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
    2c5658717428 drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
    b28586fb04f3 drm/msm/a6xx: Track current ctx by seqno
    abd11864159b drm/msm/mdp5: fix cursor-related warnings
    91a340768b01 drm/msm: Fix null pointer dereference on pointer edp
    a7b45024f66f drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read
    d0f0e1710397 drm/panel: olimex-lcd-olinuxino: select CRC32
    a4a37e6516f8 spi: bcm-qspi: clear MSPI spifie interrupt during probe
    d9428f08e1c3 platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes
    c216cebdd245 platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
    e59d839743b5 mlxsw: thermal: Fix out-of-bounds memory accesses
    7eef482db728 ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
    116932c0e45e pata_legacy: fix a couple uninitialized variable bugs
    50cb95487c26 NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
    3f2960b39f22 NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
    2f21f06a5e7a nfc: fix error handling of nfc_proto_register()
    ba39f55952a2 vhost-vdpa: Fix the wrong input in config_cb
    84e0f2fc662e ethernet: s2io: fix setting mac address during resume
    e19c10d6e07c net: encx24j600: check error in devm_regmap_init_encx24j600
    f2e1de075018 net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work
    9053c5b4594c net: stmmac: fix get_hw_feature() on old hardware
    12da46cb6a90 net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
    4f7bddf8c5c0 net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path
    afb0c67dfdb5 net: korina: select CRC32
    33ca85010511 net: arc: select CRC32
    17a027aafd52 gpio: pca953x: Improve bias setting
    d84a69ac410f sctp: account stream padding length for reconf chunk
    6fecdb5b54a5 nvme-pci: Fix abort command id
    2d937cc12c14 ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting
    6e6082250b53 ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states
    48613e687e28 ARM: dts: bcm2711: fix MDIO #address- and #size-cells
    6e6e3018d3ce ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address
    76644f94595b tee: optee: Fix missing devices unregister during optee_remove
    07f885682486 iio: dac: ti-dac5571: fix an error code in probe()
    6c0024bcaadc iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
    0fbc3cf7dd9a iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
    abe5b13dd959 iio: adc: max1027: Fix the number of max1X31 channels
    41e84a4f25b6 iio: light: opt3001: Fixed timeout error when 0 lux
    e811506f609a iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
    1671cfd31b66 iio: adc: max1027: Fix wrong shift with 12-bit devices
    f931076d32b6 iio: adc128s052: Fix the error handling path of 'adc128_probe()'
    4425d059aa2e iio: adc: ad7793: Fix IRQ flag
    d078043a1775 iio: adc: ad7780: Fix IRQ flag
    a8177f0576fa iio: adc: ad7192: Add IRQ flag
    be8ef91d6166 driver core: Reject pointless SYNC_STATE_ONLY device links
    d5f13bbb5104 drivers: bus: simple-pm-bus: Add support for probing simple bus only devices
    b45923f66eb6 iio: adc: aspeed: set driver data when adc probe.
    ea947267eb6f powerpc/xive: Discard disabled interrupts in get_irqchip_state()
    9e46bdfb55a3 x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
    57e48886401b nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
    a7bd0dd3f2ed EDAC/armada-xp: Fix output of uncorrectable error counter
    92e6e08ca2b0 virtio: write back F_VERSION_1 before validate
    86e3ad8b759d misc: fastrpc: Add missing lock before accessing find_vma()
    3f0ca245a834 USB: serial: option: add prod. id for Quectel EG91
    ecad614b0c68 USB: serial: option: add Telit LE910Cx composition 0x1204
    bf26bc72dc59 USB: serial: option: add Quectel EC200S-CN module support
    d4b77900cffe USB: serial: qcserial: add EM9191 QDL support
    3147f5721588 Input: xpad - add support for another USB ID of Nacon GC-100
    9d89e2871167 usb: musb: dsps: Fix the probe error path
    3b4275140142 efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock()
    5100dc4489ab efi/cper: use stack buffer for error record decoding
    2c5dd2a8af77 cb710: avoid NULL pointer subtraction
    d40e193abd07 xhci: Enable trust tx length quirk for Fresco FL11 USB controller
    dec944bb7079 xhci: Fix command ring pointer corruption while aborting a command
    dc3e0a20dbb9 xhci: guard accesses to ep_state in xhci_endpoint_reset()
    0ee66290f006 USB: xhci: dbc: fix tty registration race
    9f0d6c781cb5 mei: me: add Ice Lake-N device id.
    e4f7171c2395 x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
    0e32a2b85c7d btrfs: fix abort logic in btrfs_replace_file_extents
    52924879ed45 btrfs: update refs for any root except tree log roots
    352349aa4948 btrfs: check for error when looking up inode during dir entry replay
    4ed68471bc37 btrfs: deal with errors when adding inode reference during log replay
    95d3aba5febe btrfs: deal with errors when replaying dir entry during log replay
    206868a5b6c1 btrfs: unlock newly allocated extent buffer after error
    e7e3ed5c92b6 drm/msm: Avoid potential overflow in timeout_to_jiffies()
    a31c33aa80a5 arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE
    0c97008859ca csky: Fixup regs.sr broken in ptrace
    5dab6e8f141a csky: don't let sigreturn play with priveleged bits of status register
    e3c37135c9ca clk: socfpga: agilex: fix duplicate s2f_user0_clk
    faba7916cdc0 s390: fix strrchr() implementation
    7ef43c0f68fb nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
    c3bf276fd7c8 ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
    1099953b32c6 ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s Gen2
    554a5027f536 ALSA: hda/realtek: Add quirk for TongFang PHxTxX1
    0fa256509b9f ALSA: hda/realtek - ALC236 headset MIC recording issue
    1e10c6bf15d2 ALSA: hda/realtek: Add quirk for Clevo X170KM-G
    8a5f01f4b01c ALSA: hda/realtek: Complete partial device name to avoid ambiguity
    c6e5290e6cc1 ALSA: hda - Enable headphone mic on Dell Latitude laptops with ALC3254
    9bb1659ac594 ALSA: hda/realtek: Enable 4-speaker output for Dell Precision 5560 laptop
    7680631ac7ab ALSA: seq: Fix a potential UAF by wrong private_free call order
    4aab156d302c ALSA: pcm: Workaround for a wrong offset in SYNC_PTR compat ioctl
    f077d699c1d2 ALSA: usb-audio: Add quirk for VF0770

(From OE-Core rev: 40a688f4b3398c1bfe1258be98c3ff7b74699094)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 08857198b40617d53701ac46d95d6d60dfbdb4af)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
88e6b99201 linux-yocto/5.14: update to v5.14.14
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    fe024e004fa3 Linux 5.14.14
    9513ce07f05b ionic: don't remove netdev->dev_addr when syncing uc list
    6b55eadb0b1d net: dsa: felix: break at first CPU port during init and teardown
    9d2cec10ea9e net: mscc: ocelot: cross-check the sequence id from the timestamp FIFO with the skb PTP header
    23a6801c0585 net: mscc: ocelot: deny TX timestamping of non-PTP packets
    de32ef6d79dd net: mscc: ocelot: warn when a PTP IRQ is raised for an unknown skb
    3b4241817601 net: mscc: ocelot: avoid overflowing the PTP timestamp FIFO
    34fd7a2e375a net: mscc: ocelot: make use of all 63 PTP timestamp identifiers
    f7697d70d76b nfp: flow_offload: move flow_indr_dev_register from app init to app start
    9d162f541ba3 block/rnbd-clt-sysfs: fix a couple uninitialized variable bugs
    61616be89997 ice: fix locking for Tx timestamp tracking flush
    99eef638a327 r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
    821dca5635e2 qed: Fix missing error code in qed_slowpath_start()
    1a4554e94f0d mptcp: fix possible stall on recvmsg()
    4fd74935619f mqprio: Correct stats in mqprio_dump_class_stats().
    395218b5c7e0 platform/x86: intel_scu_ipc: Fix busy loop expiry time
    b4fb645a7412 acpi/arm64: fix next_platform_timer() section mismatch error
    6302ce26eceb drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
    3c403c4c0580 drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
    f1457eea4ccd drm/msm/dsi: dsi_phy_14nm: Take ready-bit into account in poll_for_ready
    d59e44e7821a drm/msm/a3xx: fix error handling in a3xx_gpu_init()
    3962d626eb3e drm/msm/a4xx: fix error handling in a4xx_gpu_init()
    20cfa89cd7e1 drm/msm/a6xx: Track current ctx by seqno
    00ba7a3951f4 drm/msm/submit: fix overflow check on 64-bit architectures
    2d28dafbc88e drm/msm/mdp5: fix cursor-related warnings
    46c8ddede027 drm/msm: Fix null pointer dereference on pointer edp
    09f3946bb452 drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read
    8b0462c25eff drm/panel: olimex-lcd-olinuxino: select CRC32
    dc4f4acadabf spi: bcm-qspi: clear MSPI spifie interrupt during probe
    2a51f25a7ed9 spi: spidev: Add SPI ID table
    b461c8553474 platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes
    1da4f33681b5 platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
    df8e58716afb mlxsw: thermal: Fix out-of-bounds memory accesses
    2d14f8a9f1b7 ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
    55b033b82dde pata_legacy: fix a couple uninitialized variable bugs
    6432d7f1d1c3 NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
    564249219e5b NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
    e005ba2235b6 nfc: fix error handling of nfc_proto_register()
    0b84e32840b7 vhost-vdpa: Fix the wrong input in config_cb
    2d902349653c ethernet: s2io: fix setting mac address during resume
    322c0e534963 net: encx24j600: check error in devm_regmap_init_encx24j600
    38eaccdcc811 net: dsa: fix spurious error message when unoffloaded port leaves bridge
    383239a33cf2 net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work
    b1752d2f4fc2 net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's
    f71c73a1275c net: phy: Do not shutdown PHYs in READY state
    568feb737f5e net: stmmac: fix get_hw_feature() on old hardware
    947442b62090 net/mlx5e: Switchdev representors are not vlan challenged
    2f306483d547 net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
    ed8aafea4fec net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path
    0d9ddf515cde net/smc: improved fix wait on already cleared link
    844b62f61709 net: korina: select CRC32
    af9a33bfff34 net: arc: select CRC32
    81099749174e gpio: pca953x: Improve bias setting
    9025c92a6cc7 gpio: 74x164: Add SPI device ID table
    4f0bc44b9191 sctp: account stream padding length for reconf chunk
    5ccd69157a9a nvme-pci: Fix abort command id
    9036542c2bef clk: renesas: rzg2l: Fix clk status function
    abab28387755 ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting
    264e77ee3987 ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states
    06560ba731e2 firmware: arm_ffa: Add missing remove callback to ffa_bus_type
    b2da1ae1941d firmware: arm_ffa: Fix __ffa_devices_unregister
    a0dfb710735d ARM: dts: bcm2711: fix MDIO #address- and #size-cells
    83fe15846c48 ARM: dts: bcm283x: Fix VEC address for BCM2711
    2a7374dd882d ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address
    a009758b28f3 tee: optee: Fix missing devices unregister during optee_remove
    362d067a231d tracing: Fix missing osnoise tracer on max_latency
    ce5c6dd07473 iio: dac: ti-dac5571: fix an error code in probe()
    8d3fd8fdf2cb fpga: ice40-spi: Add SPI device ID table
    645e2c994b6a eeprom: at25: Add SPI ID table
    362fe6c8d5ab eeprom: 93xx46: fix MODULE_DEVICE_TABLE
    42c587653cb7 eeprom: 93xx46: Add SPI device ID table
    1a5ba478c41c Input: resistive-adc-touch - fix division by zero error on z1 == 0
    6ad4dc9602fa iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
    af8aae7a1257 iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
    3903e5404214 iio: adc: max1027: Fix the number of max1X31 channels
    43e399d862ef iio: accel: fxls8962af: return IRQ_HANDLED when fifo is flushed
    56e3bcdf6b9b iio: light: opt3001: Fixed timeout error when 0 lux
    07415de29ded iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
    04e03b907022 iio: adis16475: fix deadlock on frequency set
    06a6230a5683 iio: adc: max1027: Fix wrong shift with 12-bit devices
    45b54f7f6ae7 iio: adc128s052: Fix the error handling path of 'adc128_probe()'
    2c675f25eb35 iio: adis16480: fix devices that do not support sleep mode
    696eef458c31 iio: adc: ad7793: Fix IRQ flag
    c9e8c11b1a84 iio: adc: ad7780: Fix IRQ flag
    d8f72ea6ccfd iio: adc: ad7192: Add IRQ flag
    10dea2bc52e4 driver core: Reject pointless SYNC_STATE_ONLY device links
    e733c7a6f754 drivers: bus: simple-pm-bus: Add support for probing simple bus only devices
    11d6dbd807aa iio: adc: aspeed: set driver data when adc probe.
    74c078866ff4 powerpc/xive: Discard disabled interrupts in get_irqchip_state()
    202975c570d2 x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
    128f38289215 x86/fpu: Mask out the invalid MXCSR bits properly
    bce9adf0b5ea Revert "virtio-blk: Add validation for block size in config space"
    f2935e790419 virtio-blk: remove unneeded "likely" statements
    0e822e5413da nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
    eb1e9f2ec683 EDAC/armada-xp: Fix output of uncorrectable error counter
    2c2e626d9ba4 virtio: write back F_VERSION_1 before validate
    d22592f1fd8d misc: fastrpc: Add missing lock before accessing find_vma()
    6df4c42e0b60 USB: serial: option: add prod. id for Quectel EG91
    b39adce3afe1 USB: serial: option: add Telit LE910Cx composition 0x1204
    8372fb17ebf2 USB: serial: option: add Quectel EC200S-CN module support
    1e2c4a11a59b USB: serial: qcserial: add EM9191 QDL support
    96703298fc51 Input: xpad - add support for another USB ID of Nacon GC-100
    ff9249aab398 usb: musb: dsps: Fix the probe error path
    85c6f477b357 efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock()
    3b7951e32193 efi/cper: use stack buffer for error record decoding
    746b00a48688 cb710: avoid NULL pointer subtraction
    2b6c75bf9202 xhci: Enable trust tx length quirk for Fresco FL11 USB controller
    e54abefe703a xhci: Fix command ring pointer corruption while aborting a command
    fa3093d37cce xhci: add quirk for host controllers that don't update endpoint DCS
    eacfdec26656 xhci: guard accesses to ep_state in xhci_endpoint_reset()
    db96c1d87c95 USB: xhci: dbc: fix tty registration race
    7c0af62f11c3 mei: hbm: drop hbm responses on early shutdown
    fe87a580929e mei: me: add Ice Lake-N device id.
    ce8f1faa8140 x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
    0294b7ccb00b module: fix clang CFI with MODULE_UNLOAD=n
    0e309e1152fc btrfs: fix abort logic in btrfs_replace_file_extents
    f86531a3115f btrfs: update refs for any root except tree log roots
    5dbc0d798074 btrfs: check for error when looking up inode during dir entry replay
    439cce2df925 btrfs: deal with errors when adding inode reference during log replay
    790dbfcd43a0 btrfs: deal with errors when replaying dir entry during log replay
    0adda9f173f1 btrfs: unlock newly allocated extent buffer after error
    697ee8c3d3fa drm/msm: Avoid potential overflow in timeout_to_jiffies()
    2479f72f5328 drm/msm: Do not run snapshot on non-DPU devices
    95a9523afb3d drm/nouveau/fifo: Reinstate the correct engine bit programming
    0af9c042cd6e arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE
    f66b6d61f2e3 drm/fbdev: Clamp fbdev surface size if too large
    2c7820141702 csky: Fixup regs.sr broken in ptrace
    f8e8e5448c77 csky: don't let sigreturn play with priveleged bits of status register
    46f067744387 clk: socfpga: agilex: fix duplicate s2f_user0_clk
    d429630cde94 s390: fix strrchr() implementation
    8ca9745efe35 dm rq: don't queue request to blk-mq during DM suspend
    d856f5d13d65 ACPI: PM: Include alternate AMDI0005 id in special behaviour
    6e506f07c5b5 dm: fix mempool NULL pointer race when completing IO
    594a97f7617b nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
    24262c6439c6 mtd: rawnand: qcom: Update code word value for raw read
    f7744bdec09f spi: atmel: Fix PDC transfer setup bug
    26a88eedfc88 platform/x86: amd-pmc: Add alternative acpi id for PMC controller
    1a707ec090e9 platform/x86: gigabyte-wmi: add support for B550 AORUS ELITE AX V2
    52d44bd028c1 ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
    8c5628cbb26e ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s Gen2
    9a13d0f9c3d9 ALSA: hda/realtek: Add quirk for TongFang PHxTxX1
    f8d3c17e1c37 ALSA: hda/realtek - ALC236 headset MIC recording issue
    1f923b81f49e ALSA: hda/realtek: Add quirk for Clevo X170KM-G
    07015c2e0f35 ALSA: hda/realtek: Complete partial device name to avoid ambiguity
    a2fc31b3699a ALSA: hda - Enable headphone mic on Dell Latitude laptops with ALC3254
    72653bfc9b9d ALSA: hda/realtek: Enable 4-speaker output for Dell Precision 5560 laptop
    14137ae740cb ALSA: seq: Fix a potential UAF by wrong private_free call order
    dfd5633ae775 ALSA: usb-audio: Fix a missing error check in scarlett gen2 mixer
    1a98c3c68795 ALSA: pcm: Workaround for a wrong offset in SYNC_PTR compat ioctl
    ca3dccb96511 ALSA: usb-audio: Add quirk for VF0770

(From OE-Core rev: 3ac58e2c4ebc3b4ebccfccca587406dcf5a7aa28)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3471c208fe87e80e4e8d54bc3e24d8ea9c3f6b2a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
25e649f67e linux-yocto/5.14: common-pc: enable CONFIG_ATA_PIIX as built-in
Jacob Kroon reported that generic/custom x86 kernels would no
longer boot out of the box since the IDE options were removed
and the PATA migration happened.

To re-enable that use case, we grab the following kernel
configuration change:

    common-pc*/qemux86*: set CONFIG_ATA_PIIX as built-in

    Since the IDE options were made obselete in the kernel, and the
    PATA driver is the replacement, we haven't had one of the commonly
    used qemu boot devices enabled in our kernel by default.

    We change CONFIG_ATA_PIIX to built-in, to re-enable use cases that
    boot from default qemu 'hardware'.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>

Reported-by: Jacob Kroon <jacob.kroon@gmail.com>
(From OE-Core rev: 32f484d445eedadb9d1f2428398a4ec64ac7e4eb)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 341707513a7c3cfcd797f6631b8daf09ddf5bae8)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
3fe7557392 linux-yocto/5.10: update to v5.10.74
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    77434fe5a077 Linux 5.10.74
    42b49f012b6a hwmon: (pmbus/ibm-cffps) max_power_out swap changes
    bb893f075431 sched: Always inline is_percpu_thread()
    bdae2a083436 perf/core: fix userpage->time_enabled of inactive events
    57c7ca3d5592 scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
    d993d1e1c411 scsi: ses: Fix unsigned comparison with less than zero
    621ddffb70db drm/amdgpu: fix gart.bo pin_count leak
    a5ba615fbeb3 net: sun: SUNVNET_COMMON should depend on INET
    db868b45324d vboxfs: fix broken legacy mount signature checking
    42c871d38e3d mac80211: check return value of rhashtable_init
    bda06aff03a1 net: prevent user from passing illegal stab size
    3d68c7b0ab5b hwmon: (ltc2947) Properly handle errors when looking for the external clock
    194e8a4f0acd m68k: Handle arrivals of multiple signals correctly
    977aee58142a mac80211: Drop frames from invalid MAC address in ad-hoc mode
    9ec9a975ea37 netfilter: nf_nat_masquerade: defer conntrack walk to work queue
    5182d6db80bb netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
    bcb647c1e15d ASoC: SOF: loader: release_firmware() on load failure to avoid batching
    f6952b1e22c2 HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
    ddc4ba737bcb netfilter: ip6_tables: zero-initialize fragment offset
    ddf026d6ae9a HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
    0bcfa99e8fae ASoC: Intel: sof_sdw: tag SoundWire BEs as non-atomic
    14cbfeeee41b ext4: correct the error path of ext4_write_inline_data_end()
    d7a15e1e4fd7 ext4: check and update i_disksize properly

(From OE-Core rev: 7615702d29bd1578416e3a965a794fa2aad3f88f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8e863e9c57fc26e4158b6c10b04931976c54efb8)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
4d2d21ef4d linux-yocto/5.14: update to v5.14.13
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    b9ed05407395 Linux 5.14.13
    d7c187ab28f6 hwmon: (pmbus/ibm-cffps) max_power_out swap changes
    e798dcd960a3 io_uring: kill fasync
    15571bb5bb64 sched: Always inline is_percpu_thread()
    643c519c36dc perf/core: fix userpage->time_enabled of inactive events
    15f69a666166 scsi: qla2xxx: Fix excessive messages during device logout
    cc07ecaf9a9c scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
    21c2e89e7caa scsi: ses: Fix unsigned comparison with less than zero
    18d1c5ea3798 drm/amdgpu: fix gart.bo pin_count leak
    048389b85643 net: sun: SUNVNET_COMMON should depend on INET
    e36444b36ff0 vboxfs: fix broken legacy mount signature checking
    5c85a825615a net: bgmac-platform: handle mac-address deferral
    af13e6176b25 mac80211: check return value of rhashtable_init
    ebb25ff84341 net: prevent user from passing illegal stab size
    998e080844c9 hwmon: (ltc2947) Properly handle errors when looking for the external clock
    1d0996b0d2b3 m68k: Handle arrivals of multiple signals correctly
    4d38fb418f71 pinctrl: qcom: sc7280: Add PM suspend callbacks
    9a8a181ed97e mac80211: Drop frames from invalid MAC address in ad-hoc mode
    a3ea231aa3f0 netfilter: nf_nat_masquerade: defer conntrack walk to work queue
    36f822c301c7 netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
    6c3e84af3944 KVM: arm64: nvhe: Fix missing FORCE for hyp-reloc.S build rule
    1fd0252cad6b ASoC: SOF: loader: release_firmware() on load failure to avoid batching
    2dd40af15d19 HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
    95cb145dcfc8 netfilter: ip6_tables: zero-initialize fragment offset
    f117530a10e0 HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
    13e6abfa0b1e ALSA: usb-audio: Unify mixer resume and reset_resume procedure
    cb315326664d ALSA: oxfw: fix transmission method for Loud models based on OXFW971
    3c13d6e6fc56 ASoC: Intel: sof_sdw: tag SoundWire BEs as non-atomic
    7c2893a12fc0 ext4: correct the error path of ext4_write_inline_data_end()
    501f3491d99e ext4: check and update i_disksize properly

(From OE-Core rev: d7eebc956d4fa4353475fda198a656619ae387e4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a1028453439db361d5f77fa220d77c49bc7a1f82)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
e11d7bf851 linux-yocto/5.14: update to v5.14.12
Updating linux-yocto/5.14 to the latest korg -stable release that comprises
the following commits:

    325225e2f9fa Linux 5.14.12
    58f0e59efa34 dsa: tag_dsa: Fix mask for trunked packets
    5dc24f3e0841 x86/hpet: Use another crystalball to evaluate HPET usability
    4e9ec1c65da9 x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n
    2ba3e3026f4f x86/entry: Correct reference to intended CONFIG_64_BIT
    0723d4f8b179 x86/fpu: Restore the masking out of reserved MXCSR bits
    44976b5cb6af x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0]
    6665c1c5770f x86/Kconfig: Correct reference to MWINCHIP3D
    1d4092c10125 x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
    8ba6e4551011 pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init
    da0cb12f1983 powerpc/32s: Fix kuap_kernel_restore()
    d7a8e38999fb powerpc/64s: Fix unrecoverable MCE calling async handler from NMI
    22ee1f15a72e powerpc/traps: do not enable irqs in _exception
    c835b3d1d636 powerpc/64s: fix program check interrupt emergency stack path
    6b77166ffee7 powerpc/bpf ppc32: Fix BPF_SUB when imm == 0x80000000
    b8601d47e87a powerpc/bpf ppc32: Do not emit zero extend instruction for 64-bit BPF_END
    491976e521c1 powerpc/bpf ppc32: Fix JMP32_JSET_K
    9a3e91f94473 powerpc/bpf ppc32: Fix ALU32 BPF_ARSH operation
    096d4c941f0e powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
    2d7781883b3e powerpc/bpf: Fix BPF_MOD when imm == 1
    a7ce57ca9407 objtool: Make .altinstructions section entry size consistent
    039a68957f81 objtool: Remove reloc symbol type checks in get_alt_entry()
    1642f51ac0d4 scsi: iscsi: Fix iscsi_task use after free
    412754da783d RISC-V: Include clone3() on rv32
    cf63b49349cc i2c: mlxcpld: Modify register setting for 400KHz frequency
    3655a1934519 i2c: mlxcpld: Fix criteria for frequency setting
    d590a410e472 bpf, s390: Fix potential memory leak about jit_data
    f344ad3060c4 riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable
    b8b60c1139c7 riscv/vdso: Move vdso data page up front
    309fd6f1e7cf riscv/vdso: Refactor asm/vdso.h
    ff26f96fe0a2 RISC-V: Fix VDSO build for !MMU
    363128071346 riscv: explicitly use symbol offsets for VDSO
    26e7025ef25a i2c: mediatek: Add OFFSET_EXT_CONF setting back
    90f1077c9184 i2c: acpi: fix resource leak in reconfiguration device addition
    d40c4da7318f powerpc/iommu: Report the correct most efficient DMA mask for PCI devices
    272b85c2fdb2 net: prefer socket bound to interface when not in VRF
    8d2a1e7fb90c iavf: fix double unlock of crit_lock
    75099439209d i40e: Fix freeing of uninitialized misc IRQ vector
    d6db5bcd1817 i40e: fix endless loop under rtnl
    1fad5d7f75f7 gve: report 64bit tx_bytes counter from gve_handle_report_stats()
    bcf4f5e4d33d gve: fix gve_get_stats()
    f4479f3bc861 rtnetlink: fix if_nlmsg_stats_size() under estimation
    f5cfed82e0f3 gve: Properly handle errors in gve_assign_qpl
    2044137a268a gve: Avoid freeing NULL pointer
    3e8df2cada21 gve: Correct available tx qpl check
    bb23ade18ad7 net: stmmac: trigger PCS EEE to turn off on link down
    940ee87907f0 net: pcs: xpcs: fix incorrect steps on disable EEE
    88c3610045ca drm/nouveau/debugfs: fix file release memory leak
    0b4e9fc14973 drm/nouveau/kms/nv50-: fix file release memory leak
    548f2ff8ea5e drm/nouveau: avoid a use-after-free when BO init fails
    23514c752f9b video: fbdev: gbefb: Only instantiate device when built for IP32
    ae7a72cd325c drm/panel: abt-y030xx067a: yellow tint fix
    e6b90dcda29b drm/nouveau/fifo/ga102: initialise chid on return from channel creation
    8228b3b3b5a2 drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup
    ad0fca5a28b3 bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
    37e2d7fe11ae perf jevents: Free the sys_event_tables list after processing entries
    72e9a1bf9b72 drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume
    7e5ce6029b62 drm/amdkfd: fix a potential ttm->sg memory leak
    50002489a20c ARM: defconfig: gemini: Restore framebuffer
    942bde2caec2 netlink: annotate data races around nlk->bound
    464be37f127b net: pcs: xpcs: fix incorrect CL37 AN sequence
    6594158f24e1 net: sfp: Fix typo in state machine debug string
    7a1c1af34104 net/sched: sch_taprio: properly cancel timer from taprio_destroy()
    ba07883c780f net: bridge: fix under estimation in br_get_linkxstats_size()
    df7983fdbc83 net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
    47afb35c4f87 afs: Fix afs_launder_page() to set correct start file position
    2eb0a5440068 netfs: Fix READ/WRITE confusion when calling iov_iter_xarray()
    cd4dcab5d20c drm/i915/bdb: Fix version check
    4e7c20e5166e drm/i915/tc: Fix TypeC port init/resume time sanitization
    185e4eeac58e drm/i915/jsl: Add W/A 1409054076 for JSL
    8eb67e815d5e drm/i915/audio: Use BIOS provided value for RKL HDA link
    a23d12eeb1ad ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence
    94d64d44e41a dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value
    b07494f81da2 arm64: dts: ls1028a: fix eSDHC2 node
    26a949f2335b arm64: dts: imx8mm-kontron-n801x-som: do not allow to switch off buck2
    4350e1f61930 arm64: dts: imx8: change the spi-nor tx
    672285df5e0a ARM: dts: imx: change the spi-nor tx
    baa59a36ff1b ptp_pch: Load module automatically if ID matches
    9b5198c1e041 powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
    6d1e04d8f044 netfilter: nf_tables: honor NLM_F_CREATE and NLM_F_EXCL in event notification
    96117e85b83b MIPS: Revert "add support for buggy MT7621S core detection"
    8efe947ea1ea net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices
    f1325381177c net: mscc: ocelot: fix VCAP filters remaining active after being deleted
    fb58cd799174 net_sched: fix NULL deref in fifo_set_limit()
    9e8e7504e098 libbpf: Fix memory leak in strset
    064c2616234a phy: mdio: fix memory leak
    8b6cd17219c3 libbpf: Fix segfault in light skeleton for objects without BTF
    2ca78aa65bc1 net/mlx5e: Fix the presented RQ index in PTP stats
    c0b1de56a40e net/mlx5: Fix setting number of EQs of SFs
    5ef55400217f net/mlx5: Fix length of irq_index in chars
    f1c4eaf49d5d net/mlx5: Avoid generating event after PPS out in Real time mode
    4f3369d3e5e8 net/mlx5: Force round second at 1PPS out start time
    ea0b8ffff565 net/mlx5: E-Switch, Fix double allocation of acl flow counter
    d7954cedb9e6 net/mlx5e: Keep the value for maximum number of channels in-sync
    35460565138f net/mlx5e: IPSEC RX, enable checksum complete
    3a1ac1e368be bpf: Fix integer overflow in prealloc_elems_and_freelist()
    0385744b240a soc: ti: omap-prm: Fix external abort for am335x pruss
    f419febd396e bpf, arm: Fix register clobbering in div/mod implementation
    34362a65c248 netfilter: nf_tables: reverse order in rule replacement expansion
    0b1891aa588a netfilter: nf_tables: add position handle in event notification
    3ece5c4bf601 netfilter: conntrack: fix boot failure with nf_conntrack.enable_hooks=1
    9039a8596370 iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15
    8979fa2c43b0 xtensa: call irqchip_init only when CONFIG_USE_OF is selected
    c4a9836c9dd6 xtensa: use CONFIG_USE_OF instead of CONFIG_OF
    5be9d1335749 arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
    1c186680c89f ath5k: fix building with LEDS=m
    436f61a89655 PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus
    11fc74ddd63a ARM: dts: imx6qdl-pico: Fix Ethernet support
    871b9129ca6d ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
    d5cbf524d90c ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
    64a64a031fc1 soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
    432d8185e9ff iwlwifi: mvm: Fix possible NULL dereference
    306b7fe278ac ARM: at91: pm: do not panic if ram controllers are not enabled
    55f37cc6ee05 Revert "arm64: dts: qcom: sc7280: Fixup the cpufreq node"
    5ceb465692d6 ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
    457673bfee0b soc: qcom: socinfo: Fixed argument passed to platform_set_data()
    54607728e944 bus: ti-sysc: Add break in switch statement in sysc_init_soc()
    f1c7aa87c423 riscv: Flush current cpu icache before other cpus
    b514b752b626 scsi: ufs: core: Fix task management completion
    4a0775d0c030 ARM: dts: qcom: apq8064: use compatible which contains chipid
    d62956ddb915 ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe
    05d9d419220b ARM: dts: omap3430-sdp: Fix NAND device node
    35c6691812b7 xen/balloon: fix cancelled balloon action
    f574ab3192eb SUNRPC: fix sign error causing rpcsec_gss drops
    ace054d4e523 nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
    9228f2a0d1bc nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
    d9f9dfb9040c ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO
    71b8b36187af ovl: fix missing negative dentry check in ovl_rename()
    b0ee6190e856 fbdev: simplefb: fix Kconfig dependencies
    897e427ef37c mmc: sdhci-of-at91: replace while loop with read_poll_timeout
    aa7c4ce94835 mmc: sdhci-of-at91: wait for calibration done before proceed
    266fd4b85ce3 mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
    527d377da38f xen/privcmd: fix error handling in mmap-resource processing
    c2a35a408070 drm/i915: Extend the async flip VT-d w/a to skl/bxt
    6dafefe60cb2 drm/i915: Fix runtime pm handling in i915_gem_shrink
    92c92e554553 drm/amd/display: Fix DCN3 B0 DP Alt Mapping
    1a9c5c132686 drm/amd/display: Fix detection of 4 lane for DPALT
    4fd24bff9fac drm/amd/display: Limit display scaling to up to 4k for DCN 3.1
    c43e26907d91 drm/nouveau/ga102-: support ttm buffer moves via copy engine
    e4c1d18cb951 drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
    4df3adab896f drm/amdgpu: During s0ix don't wait to signal GFXOFF
    ec36503dffdd drm/amd/display: USB4 bring up set correct address
    4b55ade094de drm/amd/display: Fix B0 USB-C DP Alt mode
    3048656f5abf usb: typec: tipd: Remove dependency on "connector" child fwnode
    f5155225108f usb: typec: tcpm: handle SRC_STARTUP state if cc changes
    108d39a6b5a7 usb: typec: tcpci: don't handle vSafe0V event if it's not enabled
    267d19e300c1 USB: cdc-acm: fix break reporting
    aff426d4b887 USB: cdc-acm: fix racy tty buffer accesses
    09c4c413bc56 usb: gadget: f_uac2: fixed EP-IN wMaxPacketSize
    66dd03b10e1c usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle
    9b70e9acfceb usb: cdc-wdm: Fix check for WWAN
    d92e0c42cfee Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
    924356b31dcb Linux 5.14.11
    add46a06b8d3 Revert "ARM: imx6q: drop of_platform_default_populate() from init_machine"
    cfd436c4b683 Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"
    86524ac0ddac libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
    2cef02f53d59 perf/x86: Reset destroy callback on event init failure
    12058756a220 KVM: x86: nSVM: restore int_vector in svm_clear_vintr
    b232ba59feb9 kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
    9c827ab0cb09 KVM: x86: reset pdptrs_from_userspace when exiting smm
    ce64d61801d9 KVM: do not shrink halt_poll_ns below grow_start
    11e4acd09e3f selftests: KVM: Align SMCCC call with the spec in steal_time
    96320e3316f8 kasan: always respect CONFIG_KASAN_STACK
    7d434c5f4687 tools/vm/page-types: remove dependency on opt_file for idle page tracking
    004b8f8a6912 block: don't call rq_qos_ops->done_bio if the bio isn't tracked
    648f59a06b0e io_uring: allow conditional reschedule for intensive iterators
    1b5b6666e235 x86/insn, tools/x86: Fix undefined behavior due to potential unaligned accesses
    d022e4c48e16 smb3: correct smb3 ACL security descriptor
    629c6e725d10 irqchip/gic: Work around broken Renesas integration
    ab0a257d1591 scsi: ses: Retry failed Send/Receive Diagnostic commands
    cd402c666fe7 thermal/drivers/tsens: Fix wrong check for tzd in irq handlers
    7efa50dd020c nvme-fc: avoid race between time out and tear down
    70f57c93f10b nvme-fc: update hardware queues before using them
    2e4a7695c8df swiotlb-xen: ensure to issue well-formed XENMEM_exchange requests
    3ad674aa1742 Xen/gntdev: don't ignore kernel unmapping error
    95342046ba4e selftests: kvm: fix get_run_delay() ignoring fscanf() return warn
    80b7cc21401b selftests: kvm: move get_run_delay() into lib/test_util
    b6d7e8c09c40 selftests:kvm: fix get_trans_hugepagesz() ignoring fscanf() return warn
    b664df7bb40a selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
    2085e5ad67f4 selftests: be sure to make khdr before other targets
    656998200410 habanalabs/gaudi: fix LBW RR configuration
    6874cdba4daa habanalabs: fail collective wait when not supported
    1c806d5a425b habanalabs/gaudi: use direct MSI in single mode
    337f00a0bc62 usb: dwc2: check return value after calling platform_get_resource()
    6b5af31c50ac usb: testusb: Fix for showing the connection speed
    6a48e3f46ef4 scsi: elx: efct: Do not hold lock while calling fc_vport_terminate()
    e95f62013a11 scsi: sd: Free scsi_disk device via put_device()
    ac7d732b24f4 drm/amdkfd: fix svm_migrate_fini warning
    4c5a564bf968 drm/amdkfd: handle svm migrate init error
    3c2830d0cb6f ext2: fix sleeping in atomic bugs on error
    a3b450333d64 platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX
    3702afcf0aac sparc64: fix pci_iounmap() when CONFIG_PCI is not set
    e4cff35be8ff xen-netback: correct success/error reporting for the SKB-with-fraglist case
    0cfda0cc59d4 net: mdio: introduce a shutdown method to mdio device drivers
    7a08b2e1e477 btrfs: fix mount failure due to past and transient device flush error
    31e401cb05ac btrfs: replace BUG_ON() in btrfs_csum_one_bio() with proper error handling
    20282e53d6bd nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN
    5c1e84b7ae04 platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet
    77e6b00985f6 platform/x86: touchscreen_dmi: Add info for the Chuwi HiBook (CWI514) tablet
    bf4597f45f31 afs: Add missing vnode validation checks
    20137432e181 spi: rockchip: handle zero length transfers without timing out
    b133f076639b Linux 5.14.10
    81971ea5ec5c HID: amd_sfh: Fix potential NULL pointer dereference - take 2
    fe6f7b77796e objtool: print out the symbol type when complaining about it
    a7d4cb29f556 drivers: net: mhi: fix error path in mhi_net_newlink
    14492ff96387 netfilter: nf_tables: Fix oversized kvmalloc() calls
    7ea6f5848281 netfilter: conntrack: serialize hash resizes and cleanups
    4664318f73e4 KVM: x86: Handle SRCU initialization failure during page track init
    38c84dfafed5 crypto: aesni - xts_crypt() return if walk.nbytes is 0
    2b704864c92d HID: usbhid: free raw_report buffers in usbhid_stop
    24f3fc95b56b mm: don't allow oversized kvmalloc() calls
    3213f5f8d4ad netfilter: ipset: Fix oversized kvmalloc() calls
    708107b80aa6 HID: betop: fix slab-out-of-bounds Write in betop_probe
    eae2fce438f1 usb: hso: remove the bailout parameter
    47d791dbe1ba NIOS2: setup.c: drop unused variable 'dram_start'
    a7931aa81760 net: udp: annotate data race around udp_sk(sk)->corkflag
    aa3a4f5913a9 HID: u2fzero: ignore incomplete packets without data
    a4f316af25ba ext4: flush s_error_work before journal destroy in ext4_fill_super
    2021f187321c ext4: fix potential infinite loop in ext4_dx_readdir()
    27e10c5d31ff ext4: add error checking to ext4_ext_replay_set_iblocks()
    9bef6f6e2172 ext4: fix reserved space counter leakage
    a5a403aed8a0 ext4: limit the number of blocks in one ADD_RANGE TLV
    68a5ca234225 ext4: fix loff_t overflow in ext4_max_bitmap_size()
    811178f296b1 ipack: ipoctal: fix module reference leak
    382ef7ff1854 ipack: ipoctal: fix missing allocation-failure check
    fcd28f229175 ipack: ipoctal: fix tty-registration error handling
    4953ef80af5f ipack: ipoctal: fix tty registration race
    0a9c36a2e06a ipack: ipoctal: fix stack information leak
    ec889a8be77b debugfs: debugfs_create_file_size(): use IS_ERR to check for error
    e554f26ea453 driver core: fw_devlink: Improve handling of cyclic dependencies
    133578ac70a2 elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
    617f0ea5dfc4 nvme: add command id quirk for apple controllers
    bad1cb95af71 kvm: fix objtool relocation warning
    77744fa757b1 hwmon: (pmbus/mp2975) Add missed POUT attribute for page 1 mp2975 controller
    ec9331ef103f hwmon: (occ) Fix P10 VRM temp sensors
    9ea06d55278e sched/fair: Null terminate buffer when updating tunable_scaling
    fce08b03923e sched/fair: Add ancestors of unthrottled undecayed cfs_rq
    d42683c2b196 perf/x86/intel: Update event constraints for ICX
    3aa381480fbe objtool: Teach get_alt_entry() about more relocation types
    ec716aac7fe4 af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
    97f1c1783c1b net: stmmac: fix EEE init issue when paired with EEE capable PHYs
    dab4677bdbff net: sched: flower: protect fl_walk() with rcu
    e88c502ef7be net: phy: bcm7xxx: Fixed indirect MMD operations
    4cdec1041cd3 net: hns3: disable firmware compatible features when uninstall PF
    3937b9c2961e net: hns3: fix always enable rx vlan filter problem after selftest
    fd519ae5a816 net: hns3: reconstruct function hns3_self_test
    851c0b9913b8 net: hns3: fix show wrong state when add existing uc mac address
    18e609791fa6 net: hns3: fix mixed flag HCLGE_FLAG_MQPRIO_ENABLE and HCLGE_FLAG_DCB_ENABLE
    8bcaeeefccfb net: hns3: don't rollback when destroy mqprio fail
    8d4ad0ab2874 net: hns3: remove tc enable checking
    3dac38bdce79 net: hns3: do not allow call hns3_nic_net_open repeatedly
    2744341dd52e ixgbe: Fix NULL pointer dereference in ixgbe_xdp_setup
    81369dce6d85 scsi: csiostor: Add module softdep on cxgb4
    7a73120f8eaf Revert "block, bfq: honor already-setup queue merges"
    27b9ff88f1f6 ionic: fix gathering of debug stats
    477e7f62b358 net: ks8851: fix link error
    9d561381e48c bpf, x86: Fix bpf mapping of atomic fetch implementation
    0157eb81e339 selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
    54d54d2e02c7 selftests, bpf: Fix makefile dependencies on libbpf
    173dbe4fdb22 libbpf: Fix segfault in static linker for objects without BTF
    b822ce7334d5 bpf: Exempt CAP_BPF from checks against bpf_jit_limit
    b96fc31338ca RDMA/hns: Add the check of the CQE size of the user space
    8ba300a48a3b RDMA/hns: Fix the size setting error when copying CQE in clean_cq()
    714bfabe5f29 RDMA/hfi1: Fix kernel pointer leak
    d1db35d832a8 e100: fix buffer overrun in e100_get_regs
    474443c9982b e100: fix length calculation in e100_get_regs_len
    ed3617b8aeb4 dsa: mv88e6xxx: Include tagger overhead when setting MTU for DSA and CPU ports
    2c3c98b40e1f dsa: mv88e6xxx: Fix MTU definition
    eabd1e182225 dsa: mv88e6xxx: 6161: Use chip wide MAX MTU
    3027d7ba264f drm/i915: Remove warning from the rps worker
    406b3c0f64ab drm/i915/request: fix early tracepoints
    60edf381ca21 smsc95xx: fix stalled rx after link change
    bac85b1d0745 net: ipv4: Fix rtnexthop len when RTA_FLOW is present
    3636e045de1f net: enetc: fix the incorrect clearing of IF_MODE bits
    d4a6139e651f hwmon: (tmp421) fix rounding for negative values
    8776ad745092 hwmon: (tmp421) report /PVLD condition as fault
    0fe76b4171e4 RDMA/hns: Work around broken constant propagation in gcc 8
    62adc41df3b5 mptcp: allow changing the 'backup' bit when no sockets are open
    385cf9ac00c2 mptcp: don't return sockets in foreign netns
    8180611c238e sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
    734652b0a231 net: mdiobus: Set FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD for mdiobus parents
    7f9cb654462d driver core: fw_devlink: Add support for FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD
    ed2adf69e298 mac80211-hwsim: fix late beacon hrtimer handling
    35367a5b63d9 mac80211: mesh: fix potentially unaligned access
    997ee230e4f5 mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
    764a80c53dee mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
    2e46f261b28c Revert "mac80211: do not use low data rates for data frames with no ack flag"
    5f66dd17451d netfilter: log: work around missing softdep backend module
    f65c73d3aabb netfilter: nf_tables: unlink table before deleting it
    ec0eb6794804 RDMA/irdma: Report correct WC error when there are MW bind errors
    c3044d872d6d RDMA/irdma: Report correct WC error when transport retry counter is exceeded
    63a5c2119924 RDMA/irdma: Validate number of CQ entries on create CQ
    7dce0dc364c4 RDMA/irdma: Skip CQP ring during a reset
    aa85fb7bde55 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs
    dbe853968d4d bpf, mips: Validate conditional branch offsets
    e56a5146ef8c RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure
    2288eafe2c4a IB/cma: Do not send IGMP leaves for sendonly Multicast groups
    67b07e7b490f bpf: Handle return value of BPF_PROG_TYPE_STRUCT_OPS prog
    473c59ab5de5 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
    ce1cccb000bd drm/i915/gvt: fix the usage of ww lock in gvt scheduler.
    8bb4ef3807d5 interconnect: qcom: sdm660: Correct NOC_QOS_PRIORITY shift and mask
    f3856fe1a057 interconnect: qcom: sdm660: Fix id of slv_cnoc_mnoc_cfg
    5c488a28b436 drm/amdgpu: correct initial cp_hqd_quantum for gfx9
    73bb3f4e877c drm/amdgpu: check tiling flags when creating FB on GFX8-
    0d77b5d94301 drm/amdgpu: force exit gfxoff on sdma resume for rmb s0ix
    be6f8fb11a24 drm/amd/display: Fix Display Flicker on embedded panels
    f43a2abf5dd7 drm/amd/display: Pass PCI deviceid into DC
    81a22172ba35 drm/amd/display: initialize backlight_ramping_override to false
    25011c9ec8e7 nbd: use shifts rather than multiplies
    03d884671572 RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests
    d9ba5565c7f8 RDMA/cma: Do not change route.addr.src_addr.ss_family
    698c8a0a029b media: ir_toy: prevent device from hanging during transmit
    4ed5f2656691 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs
    dd2ee266dd58 KVM: VMX: Fix a TSX_CTRL_CPUID_CLEAR field mask issue
    2cebb9aed993 KVM: nVMX: Fix nested bus lock VM exit
    efd7866e114d KVM: SVM: fix missing sev_decommission in sev_receive_start
    540dd9506ae0 KVM: SEV: Allow some commands for mirror VM
    d6e7fd7ece71 KVM: SEV: Acquire vcpu mutex when updating VMSA
    c9343f03e522 KVM: SEV: Pin guest memory for write for RECEIVE_UPDATE_DATA
    0c1a1c505432 KVM: SEV: Update svm_vm_copy_asid_from for SEV-ES
    5d522f759211 KVM: nVMX: Filter out all unsupported controls when eVMCS was activated
    17e96fe4a8ec KVM: x86: Swap order of CPUID entry "index" vs. "significant flag" checks
    3e7144429936 KVM: x86: Clear KVM's cached guest CR3 at RESET/INIT
    4639ee36e064 KVM: x86: nSVM: don't copy virt_ext from vmcb12
    99a9e9b80f19 KVM: x86: Fix stack-out-of-bounds memory access from ioapic_write_indirect()
    99a016076ed5 ptp: Fix ptp_kvm_getcrosststamp issue for x86 ptp_kvm
    81bfd6268fd3 x86/kvmclock: Move this_cpu_pvti into kvmclock.h
    9a75f445a4a1 platform/x86/intel: hid: Add DMI switches allow list
    27d3eb5616ee mac80211: fix use-after-free in CCMP/GCMP RX
    38b789c914b1 scsi: ufs: Fix illegal offset in UPIU event trace
    de6c8af17f53 gpio: pca953x: do not ignore i2c errors
    16887ae4e3de hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field
    24af1fe376e2 hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field
    746011193f44 hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field
    7635f8a7fc8a hwmon: (tmp421) handle I2C errors
    343307d050c1 fs-verity: fix signed integer overflow with i_size near S64_MAX
    2a0d1a8ff21c ACPI: NFIT: Use fallback node id when numa info in NFIT table is incorrect
    062055d4f23e ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.
    c949aaec0208 ALSA: firewire-motu: fix truncated bytes in message tracepoints
    12d508014972 ALSA: rawmidi: introduce SNDRV_RAWMIDI_IOCTL_USER_PVERSION
    3327293839d0 scsi: ufs: ufs-pci: Fix Intel LKF link stability
    e130f2ed1da9 cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
    920e3c77f130 drm/amdgpu: stop scheduler when calling hw_fini (v2)
    8ba968ae672b drm/amdgpu: avoid over-handle of fence driver fini in s3 test (v2)
    05c8a9dca354 drm/amdgpu: adjust fence driver enable sequence
    8a88b1529a39 scsi: qla2xxx: Changes to support kdump kernel for NVMe BFS
    8d62aec52a8c cpufreq: schedutil: Use kobject release() method to free sugov_tunables
    699d926585da tty: Fix out-of-bound vmalloc access in imageblit
    7be199764d46 watchdog/sb_watchdog: fix compilation problem due to COMPILE_TEST
    a55e7c3f7e4d perf iostat: Fix Segmentation fault from NULL 'struct perf_counts_values *'
    af0bbcbba0d5 perf iostat: Use system-wide mode if the target cpu_list is unspecified
    018e7ce13f2d perf test: Fix DWARF unwind for optimized builds.
    283e4bee701d HID: amd_sfh: Fix potential NULL pointer dereference
    a3d0bfc22a99 kasan: fix Kconfig check of CC_HAS_WORKING_NOSANITIZE_ADDRESS
    5a309b91dd57 NIOS2: fix kconfig unmet dependency warning for SERIAL_CORE_CONSOLE
    a688abc484b5 m68k: Update ->thread.esp0 before calling syscall_trace() in ret_from_signal
    e450c422aa23 crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
    0bfe74174132 s390/qeth: fix deadlock during failing recovery
    0184084365c4 s390/qeth: Fix deadlock in remove_discipline
    946aa1b742df net/mlx4_en: Resolve bad operstate value
    262468353f59 pinctrl: qcom: spmi-gpio: correct parent irqspec translation
    b1ca0c6353d4 ASoC: SOF: imx: imx8m: Bar index is only valid for IRAM and SRAM types
    5f589b073843 ASoC: SOF: imx: imx8: Bar index is only valid for IRAM and SRAM types
    a6bb576ead07 ASoC: SOF: Fix DSP oops stack dump output contents
    69c9494d1450 scsi: elx: efct: Fix void-pointer-to-enum-cast warning for efc_nport_topology
    0a0d0ce37578 ASoC: mediatek: common: handle NULL case in suspend/resume function
    9b5de0165d67 ASoC: fsl_xcvr: register platform component before registering cpu dai
    4916efd4385c ASoC: fsl_spdif: register platform component before registering cpu dai
    63ff9da3572a ASoC: fsl_micfil: register platform component before registering cpu dai
    b04db30f71bb ASoC: fsl_esai: register platform component before registering cpu dai
    799b9ffd7f5a ASoC: fsl_sai: register platform component before registering cpu dai
    ef074ff5a776 media: s5p-jpeg: rename JPEG marker constants to prevent build warnings
    add13fd5e07e media: cedrus: Fix SUNXI tile size calculation
    00426cf7effb media: hantro: Fix check for single irq

(From OE-Core rev: f282f90a44db3213b974d574a285acda97a10c1c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ddf50256fa94f240d62719d74e144e68a2302797)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Bruce Ashfield
ef4175b82f linux-yocto/5.10: update to v5.10.73
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    0268aa579b1f Linux 5.10.73
    825c00c2ee14 x86/hpet: Use another crystalball to evaluate HPET usability
    f2447f6587b8 x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n
    6bfe1f6fc876 x86/entry: Correct reference to intended CONFIG_64_BIT
    5d637bc6f98a x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0]
    df121cf55003 x86/Kconfig: Correct reference to MWINCHIP3D
    d7c36115fb81 x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
    f73ca4961d51 pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init
    411b38fe68ba powerpc/64s: fix program check interrupt emergency stack path
    18a2a2cafcf9 powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
    a4037dded56b RISC-V: Include clone3() on rv32
    29fdb11ca88d bpf, s390: Fix potential memory leak about jit_data
    2c152d9da8fe riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable
    de834e12b96d i2c: mediatek: Add OFFSET_EXT_CONF setting back
    f86de018fd7a i2c: acpi: fix resource leak in reconfiguration device addition
    87990a60b45f powerpc/iommu: Report the correct most efficient DMA mask for PCI devices
    985cca1ad11e net: prefer socket bound to interface when not in VRF
    97aeed72af4f i40e: Fix freeing of uninitialized misc IRQ vector
    2dc768a98c9b i40e: fix endless loop under rtnl
    d3a07ca78ace gve: report 64bit tx_bytes counter from gve_handle_report_stats()
    35f6ddd934e6 gve: fix gve_get_stats()
    9a043022522e rtnetlink: fix if_nlmsg_stats_size() under estimation
    72c2a68f1d83 gve: Avoid freeing NULL pointer
    5d903a694b08 gve: Correct available tx qpl check
    f69556a42043 drm/nouveau/debugfs: fix file release memory leak
    65fff0a8efcd drm/nouveau/kms/nv50-: fix file release memory leak
    f86e19d918a8 drm/nouveau: avoid a use-after-free when BO init fails
    008224cdc126 video: fbdev: gbefb: Only instantiate device when built for IP32
    d2ccbaaa6615 drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup
    18d2568cc7ff bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
    40a84fcae2bf perf jevents: Tidy error handling
    628b31d96711 netlink: annotate data races around nlk->bound
    144715fbab1b net: sfp: Fix typo in state machine debug string
    3ec73ffeef54 net/sched: sch_taprio: properly cancel timer from taprio_destroy()
    60955b65bd6a net: bridge: fix under estimation in br_get_linkxstats_size()
    c480d15190eb net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
    cb8880680bdf ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence
    2b0035d1058a dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value
    10afd1597263 arm64: dts: ls1028a: add missing CAN nodes
    95ba03fb4cb1 ptp_pch: Load module automatically if ID matches
    442ea65d0ccb powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
    acff2d182c07 net_sched: fix NULL deref in fifo_set_limit()
    0d2dd40a7be6 phy: mdio: fix memory leak
    6e6f79e39830 net/mlx5: E-Switch, Fix double allocation of acl flow counter
    d70cb6c77ad9 net/mlx5e: IPSEC RX, enable checksum complete
    064faa8e8a9b bpf: Fix integer overflow in prealloc_elems_and_freelist()
    d5f4b27c3cfc soc: ti: omap-prm: Fix external abort for am335x pruss
    1d8f4447e8c4 bpf, arm: Fix register clobbering in div/mod implementation
    29a19eaeb29d iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15
    6b0132f73094 xtensa: call irqchip_init only when CONFIG_USE_OF is selected
    3d288ed98314 xtensa: use CONFIG_USE_OF instead of CONFIG_OF
    997bec509a83 arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
    fbca14abc111 ath5k: fix building with LEDS=m
    8aef3824e946 PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus
    d9b838ae390e ARM: dts: imx6qdl-pico: Fix Ethernet support
    9e99ad4194a5 ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
    2ba34cf0c16c ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
    8f977e97b2b9 soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
    14f52004bda5 ARM: at91: pm: do not panic if ram controllers are not enabled
    d89a313a5739 ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
    25ac88e601eb soc: qcom: socinfo: Fixed argument passed to platform_set_data()
    ab8073794be3 bus: ti-sysc: Add break in switch statement in sysc_init_soc()
    427faa29e06f riscv: Flush current cpu icache before other cpus
    05287407dedf ARM: dts: qcom: apq8064: use compatible which contains chipid
    ac06fe40e889 ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe
    71d3ce62ac88 ARM: dts: omap3430-sdp: Fix NAND device node
    f9a855d1bcb2 xen/balloon: fix cancelled balloon action
    9aac782ab0ab SUNRPC: fix sign error causing rpcsec_gss drops
    8f174a208c4c nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
    12d4b179022a nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
    1bc2f315a215 ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO
    9763ffd4da21 ovl: fix missing negative dentry check in ovl_rename()
    1500f0c83670 mmc: sdhci-of-at91: replace while loop with read_poll_timeout
    3a0feae5f642 mmc: sdhci-of-at91: wait for calibration done before proceed
    e5cb3680b958 mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
    13d17cc717d5 xen/privcmd: fix error handling in mmap-resource processing
    de1e8bd36ab4 drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
    1d4e9f27d20d usb: typec: tcpm: handle SRC_STARTUP state if cc changes
    feb3fe702a58 USB: cdc-acm: fix break reporting
    fc8b3e838bdf USB: cdc-acm: fix racy tty buffer accesses
    b3265b88e83b usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle
    16d728110bd7 Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
    5aa003b38148 Linux 5.10.72
    387aecdab7fa libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
    02bf504bc32b perf/x86: Reset destroy callback on event init failure
    b56475c29bd8 KVM: x86: nSVM: restore int_vector in svm_clear_vintr
    ae34f26d4a84 kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
    6d0ff9205999 KVM: do not shrink halt_poll_ns below grow_start
    b8add3f47ae7 selftests: KVM: Align SMCCC call with the spec in steal_time
    352b02562a3e tools/vm/page-types: remove dependency on opt_file for idle page tracking
    84778fd66d3d smb3: correct smb3 ACL security descriptor
    a7be240d1703 irqchip/gic: Work around broken Renesas integration
    8724a2a0e6d9 scsi: ses: Retry failed Send/Receive Diagnostic commands
    2e28f7dd3743 thermal/drivers/tsens: Fix wrong check for tzd in irq handlers
    7a670cfb0f4c nvme-fc: avoid race between time out and tear down
    c251d023ed22 nvme-fc: update hardware queues before using them
    c4506403e1f3 selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
    bcc4b4de63a4 selftests: be sure to make khdr before other targets
    6a4aaf1d84f7 habanalabs/gaudi: fix LBW RR configuration
    2754fa3b73df usb: dwc2: check return value after calling platform_get_resource()
    ed6574d48469 usb: testusb: Fix for showing the connection speed
    60df9f55562a scsi: sd: Free scsi_disk device via put_device()
    76c7063c7405 ext2: fix sleeping in atomic bugs on error
    b114f2d18e0f sparc64: fix pci_iounmap() when CONFIG_PCI is not set
    fdfb3bc87381 xen-netback: correct success/error reporting for the SKB-with-fraglist case
    a41938d07201 net: mdio: introduce a shutdown method to mdio device drivers
    63c89930d4b5 btrfs: fix mount failure due to past and transient device flush error
    50628b06e604 btrfs: replace BUG_ON() in btrfs_csum_one_bio() with proper error handling
    83050cc23909 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN
    f986cf270284 platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet
    e5611503249f platform/x86: touchscreen_dmi: Add info for the Chuwi HiBook (CWI514) tablet
    2ababcd8c2ab spi: rockchip: handle zero length transfers without timing out
    5cd40b137cba Linux 5.10.71
    96f439a7eda6 netfilter: nf_tables: Fix oversized kvmalloc() calls
    e2d192301a0d netfilter: conntrack: serialize hash resizes and cleanups
    deb294941767 KVM: x86: Handle SRCU initialization failure during page track init
    f7ac4d24e161 HID: usbhid: free raw_report buffers in usbhid_stop
    57a269a1b12a mm: don't allow oversized kvmalloc() calls
    da5b8b9319f0 netfilter: ipset: Fix oversized kvmalloc() calls
    dedfc35a2de2 HID: betop: fix slab-out-of-bounds Write in betop_probe
    17ccc64e4fa5 crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
    28f0fdbac0f5 usb: hso: remove the bailout parameter
    4ad4852b9adf ASoC: dapm: use component prefix when checking widget names
    5c3a90b6ff75 net: udp: annotate data race around udp_sk(sk)->corkflag
    a7f4c633ae12 HID: u2fzero: ignore incomplete packets without data
    3770e21f60fc ext4: fix potential infinite loop in ext4_dx_readdir()
    a63474dbf692 ext4: add error checking to ext4_ext_replay_set_iblocks()
    9ccf35492b08 ext4: fix reserved space counter leakage
    dc0942168ab3 ext4: limit the number of blocks in one ADD_RANGE TLV
    d11502fa2691 ext4: fix loff_t overflow in ext4_max_bitmap_size()
    7cea84867847 ipack: ipoctal: fix module reference leak
    843efca98e6a ipack: ipoctal: fix missing allocation-failure check
    67d1df661088 ipack: ipoctal: fix tty-registration error handling
    f46e5db92fa2 ipack: ipoctal: fix tty registration race
    5f6a309a6996 ipack: ipoctal: fix stack information leak
    3bef1b7242e0 debugfs: debugfs_create_file_size(): use IS_ERR to check for error
    15fd3954bca7 elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
    011b4de950d8 nvme: add command id quirk for apple controllers
    44c600a57d57 hwmon: (pmbus/mp2975) Add missed POUT attribute for page 1 mp2975 controller
    7fc5f60a01bb perf/x86/intel: Update event constraints for ICX
    3db53827a0e9 af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
    d0d520c19e7e net: sched: flower: protect fl_walk() with rcu
    e63f6d8fe74a net: phy: bcm7xxx: Fixed indirect MMD operations
    071febc37e06 net: hns3: fix always enable rx vlan filter problem after selftest
    85e4f5d28d25 net: hns3: reconstruct function hns3_self_test
    8e89876c84b2 net: hns3: fix prototype warning
    d4a14faf7919 net: hns3: fix show wrong state when add existing uc mac address
    64dae9551f8a net: hns3: fix mixed flag HCLGE_FLAG_MQPRIO_ENABLE and HCLGE_FLAG_DCB_ENABLE
    8d3d27664ef4 net: hns3: keep MAC pause mode when multiple TCs are enabled
    f8ba689cb695 net: hns3: do not allow call hns3_nic_net_open repeatedly
    20f6c4a31a52 ixgbe: Fix NULL pointer dereference in ixgbe_xdp_setup
    16138cf938dc scsi: csiostor: Add module softdep on cxgb4
    0306a2c7df7e Revert "block, bfq: honor already-setup queue merges"
    1f2ca30fbde6 net: ks8851: fix link error
    f1dd6e10f077 selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
    4967ae9ab44b selftests, bpf: Fix makefile dependencies on libbpf
    59efda5073ab bpf: Exempt CAP_BPF from checks against bpf_jit_limit
    f908072391a6 RDMA/hns: Fix inaccurate prints
    7e3eda32b881 e100: fix buffer overrun in e100_get_regs
    f2edf80cdd03 e100: fix length calculation in e100_get_regs_len
    c20a0ad7b6a0 dsa: mv88e6xxx: Include tagger overhead when setting MTU for DSA and CPU ports
    7b771b12229e dsa: mv88e6xxx: Fix MTU definition
    ee4d0495a65e dsa: mv88e6xxx: 6161: Use chip wide MAX MTU
    d35d95e8b9da drm/i915/request: fix early tracepoints
    8321738c6e5a smsc95xx: fix stalled rx after link change
    8de12ad9162c net: ipv4: Fix rtnexthop len when RTA_FLOW is present
    b22c5e2c8e03 net: enetc: fix the incorrect clearing of IF_MODE bits
    5ee40530b0a6 hwmon: (tmp421) fix rounding for negative values
    89d96f147d82 hwmon: (tmp421) report /PVLD condition as fault
    560271d09f78 mptcp: don't return sockets in foreign netns
    9c6591ae8e63 sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
    2c204cf594df mac80211-hwsim: fix late beacon hrtimer handling
    8576e72ac5d6 mac80211: mesh: fix potentially unaligned access
    1282bb00835f mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
    3748871e1215 mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
    76bbb482d33b hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs
    c61736a994fe bpf, mips: Validate conditional branch offsets
    3f4e68902d2e RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure
    62ba3c50104b IB/cma: Do not send IGMP leaves for sendonly Multicast groups
    d93f65586c59 bpf: Handle return value of BPF_PROG_TYPE_STRUCT_OPS prog
    12cbdaeeb5d4 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
    9f382e1edf90 drm/amdgpu: correct initial cp_hqd_quantum for gfx9
    c331fad63b6d drm/amd/display: Pass PCI deviceid into DC
    0a16c9751e0f RDMA/cma: Do not change route.addr.src_addr.ss_family
    31a13f039e15 media: ir_toy: prevent device from hanging during transmit
    249e5e5a501e KVM: rseq: Update rseq when processing NOTIFY_RESUME on xfer to KVM guest
    3778511dfc59 KVM: nVMX: Filter out all unsupported controls when eVMCS was activated
    4ed671e6bc62 KVM: x86: nSVM: don't copy virt_ext from vmcb12
    bebabb76ad9a KVM: x86: Fix stack-out-of-bounds memory access from ioapic_write_indirect()
    782122ae7db0 x86/kvmclock: Move this_cpu_pvti into kvmclock.h
    57de2dcb1874 mac80211: fix use-after-free in CCMP/GCMP RX
    201ba843fef5 scsi: ufs: Fix illegal offset in UPIU event trace
    bd4e446a6947 gpio: pca953x: do not ignore i2c errors
    516d90550390 hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field
    1499bb2c3a87 hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field
    7c4fd5de39f2 hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field
    196dabd96bbf hwmon: (tmp421) handle I2C errors
    23a6dfa10f03 fs-verity: fix signed integer overflow with i_size near S64_MAX
    d1d0016e4a7d ACPI: NFIT: Use fallback node id when numa info in NFIT table is incorrect
    e9edc7bc611a ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.
    23115ca7d227 usb: cdns3: fix race condition before setting doorbell
    3945c481360c cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
    2193cf76f43a scsi: qla2xxx: Changes to support kdump kernel for NVMe BFS
    a7d4fc84404d cpufreq: schedutil: Use kobject release() method to free sugov_tunables
    d570c48dd37d tty: Fix out-of-bound vmalloc access in imageblit

(From OE-Core rev: 51ec225dcef75eb3e75e3bd3d143c2a6bb8e83ce)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c9697cc081208a91d21b0c41219dc1b30d772f13)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Richard Purdie
49e0ce0e29 staging: Fix autoconf-native rebuild failure
When rebuilds are triggered, autoconf-native can fail with:

| DEBUG: Executing shell function update_gnu_config
| install: cannot stat '[BUILDPATH]tmp/work/x86_64-linux/autoconf-native/2.71-r0/recipe-sysroot-native/usr/share/gnu-config/config.guess': No such file or directory

which is due to update_gnu_config running before extend_recipe_sysroot.
This only happens rarely since usually the prepare_recipe_sysroot
function would already have set things up and only in the invalidated
task hash cases does this rebuild in this way from configure only.

Fix the code to prepend this function instead of appending which
resolves the ordering issue.

(From OE-Core rev: f79fa476c0d0d57ab5ce59728fdb9fff4cd54df1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b9535f513366536b13d0522058f517d2e04451b5)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Joshua Watt
5254f0af57 classes/populate_sdk_base: Add setscene tasks
do_populate_sdk was added to SSTATETASKS, but had no _setscene task
created to allow it to actually run from sstate. Add it so that SDKs can
be restored from sstate.

Note that like do_image_complete, do_populate_sdk is marked with
SSTATE_SKIP_CREATION by default so sstate is not used for them; adding
this task will allow it to work if the user overrides this default
though.

(From OE-Core rev: 292cd79bfb9a9e62f1cb4afaef7d8c7f2c4aac98)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1f204592903a2fd9375b0f3c9c52e7dde0467460)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:41:00 +00:00
Ross Burton
d35822d09a strace: show test suite log on failure
If the tests fail, dump the log so we can see the failures.

(From OE-Core rev: b5e799b94d918ad908eab5a0daf6a0ee460d7581)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3154a65039831b1e041217707fdd6ca042f588fb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:40:59 +00:00
Alexander Kanavin
47e8cde01f waffle: convert to git, website is down
(From OE-Core rev: 767a12b4e2cd55faf91fa1b918b73e7562ec5bc5)

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>
(cherry picked from commit 28391c20044058e05a1bfdacc31a3e876828fb72)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:40:59 +00:00
Tim Orling
d74def94da python3-setuptools: _distutils/sysconfig fix
Add patch to append STAGING_LIBDIR python-sysconfigdata to sys.path so
that packages which set SETUPTOOLS_USE_DISUTILS='local' cross-compile
properly with python3-setuptools-native.

Fixes:
ModuleNotFoundError: No module named '_sysconfigdata'

References:
https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html#porting-from-distutils

(From OE-Core rev: 2f9a362bfebc83ea6459b5294a6fab3c77ea6cb2)

Signed-off-by: Tim Orling <timothy.t.orling@intel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f6fb99c53f779966fc902a629d0a8bbd9f84c6be)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:40:59 +00:00
Richard Purdie
907ca04187 bitbake: Revert "parse/ast: Show errors for append/prepend/remove operators combined with +=/.="
This reverts commit ae2b34285f8b3a1a3067c5e9b5d29e32e68c75f1.

Accidentally applied to the wrong branch.

(Bitbake rev: 1ac73638c1504cf2aa7f13257396aad617f25e8f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:40:59 +00:00
Richard Purdie
e0218edf84 bitbake: parse/ast: Show errors for append/prepend/remove operators combined with +=/.=
Operations like XXX:append += "YYY" are almost always wrong and this
is a common mistake made in the metadata. Show warnings for these usages
with a view to making it a fatal error eventually.

(Bitbake rev: ae2b34285f8b3a1a3067c5e9b5d29e32e68c75f1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-08 23:40:59 +00:00
Chen Qi
fb2300c144 bitbake: fetch2: fix downloadfilename issue with premirror
The following commit to fix [Yocto #13039] causes regression of
the behavior of PREMIRRORS.

  "bitbake: fetch2: fix premirror URI when downloadfilename defined"

Take meta-openembedded/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
as an example.
SRC_URI = "\
    http://www.freediameter.net/hg/${fd_pkgname}/archive/${PV}.tar.gz;downloadfilename=${fd_pkgname}-${PV}.tar.gz \
    ...
"
With the above commit, it now tries to fetch 1.4.0.tar.gz instead of
freeDiameter-1.4.0.tar.gz. This makes https://downloads.yoctoproject.org/mirror/sources
not work for freediameter, as it holds freeDiameter-1.4.0.tar.gz.

The commit above tries to avoid fetching from invalid url such as:
https://<some_mirror>/1.4.0.tar.gz/freeDiameter-1.4.0.tar.gz.
And its solution is to make basename to be 1.4.0.tar.gz, thus causing the
regression.

This patch fixes the above regression. For Yocto #13039, it now tries
to fetch from url: https://<some_mirror>/freeDiameter-1.4.0.tar.gz.

(Bitbake rev: 78949cf3fd31d8a408e93af7e27bcf26ae7942f4)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 96c30007dc0b32eee2b15771daec7948bc9bfd97)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03 12:30:51 +00:00
Chen Qi
1a344c3242 bitbake: tests/fetch.py: add test case to ensure downloadfilename is used for premirror
Add a test case test_fetch_premirror_use_downloadfilename_to_fetch to ensure
that 'downloadfilename' is used when fetching from premirror.

Although the other two previous test cases, test_fetch_premirror_specify_downloadfilename_regex_uri
and test_fetch_premirror_specify_downloadfilename_specific_uri already
implicitly contain such verification, we still need to add a very clear
case to ensure no regression.

(Bitbake rev: 057cbba6b7ade134e4fa3584b9e896be025a6f46)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 20aabc3d53f69949810ecf02295725db947ffef8)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03 12:30:51 +00:00
Chen Qi
57e91d6136 bitbake: tests/fetch.py: fix premirror test cases
When downloadfilename is specified, it is used to fetch from premirror.
So fix the test cases accordingly.

(Bitbake rev: af573273e4a5b73550af9639da18906f13bfa1a9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3b4d2e3b5024324058360a2a28f33c34114218d0)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03 12:30:51 +00:00
Richard Purdie
13a4588253 bitbake: fetch/git: Handle github dropping git:// support
github is dropping support for git protocol in Git urls. Add code to remap
this to https in a way that could be used in older bitbake versions.

(Bitbake rev: f19eefdaa5b43460f00d79d002f96112a6aa3c9a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-03 11:31:21 +00:00
Richard Purdie
43cfa130d9 bootchart2: Don't compile python modules
"make install" may attempt to compile the python modules but it uses the host python
and host paths which means the binaries are not reproducbile. Make things consistent.
If anyone needs compiling, it will beed to be fixed to be cross compile compatible.

(From OE-Core rev: 6ca6c9c12c93c6df7b18f49ebdbfb69433ff5158)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1189f95e05c80286e009e1ab46a603ee5b7ca239)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Jose Quaresma
7ff34cf041 sstate: fix touching files inside pseudo
running the 'id' command inside the sstate_create_package
function shows that this funcion run inside the pseudo:

 uid=0(root) gid=0(root) groups=0(root)

The check for touch files [ ! -w ${SSTATE_PKG} ]
will always return true and the touch can fail
when the real user don't have permission or
in readonly filesystem.

As the documentation refers, the file test operator "-w"
check if the file has write permission (for the user running the test).

We can avoid this test running the touch and mask any return errors
that we have.

(From OE-Core rev: 1092bb67737eff63c24c26c9f807bec5e6adffc9)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f6e7445c94443544e92fda97a017ce93393c5f84)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Pablo Saavedra Rodi?o
41320cf8c3 mesa: upgrade 21.2.1 -> 21.2.4
Contains 'Make YUV formats we're going to emulate external-only' [1]
was applied in 21.2.4. This fixes red label issues on video for VC4,
Freedreno and others.

Deletes meta/recipes-graphics/mesa/files/without-neon.patch [2]
already in Mesa since 21.2.

Release notes:

* 21.2.2: https://docs.mesa3d.org/relnotes/21.2.2.html
* 21.2.3: https://docs.mesa3d.org/relnotes/21.2.3.html
* 21.2.4: https://docs.mesa3d.org/relnotes/21.2.4.html

[1] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13038
[2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12569

(From OE-Core rev: 5ac1121e4c3f559562037abf8ab736f4772173dd)

Signed-off-by: Pablo Saavedra <psaavedra@igalia.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 51fccaa16a3cb78ace077ba593b6cdde5e085528)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Kiran Surendran
e6ef65341e ffmpeg: fix CVE-2021-38114
backport from upstream

(From OE-Core rev: b9a3ca0f4f70ebdb58e59e94e917242b7e9d2111)

Signed-off-by: Kiran Surendran <kiran.surendran@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fe9cdf74f7ef3637ed7c600182f8a0ba40510d2a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Yureka
91527514f3 systemd: add missing include for musl
Fixes "error: ‘FTW_ACTIONRETVAL’ undeclared (first use in this
function)" in src/shared/mount-setup.c.

(From OE-Core rev: 1c4c9f68f13d40bfea489fe27556b85e59255da8)

Signed-off-by: Yureka <yuka@yuka.dev>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7707d08bb10db5eb782a2476be58ebe4b8bba154)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Alexander Kanavin
4f97823c12 wireless-regdb: upgrade 2021.07.14 -> 2021.08.28
(From OE-Core rev: 15f5ad7b9844a80fecb6a35013e8645b6b68064f)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 00c590f50d6894089ff7ce8ad6e263431d9cc550)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Alexander Kanavin
2610a43530 linux-firmware: upgrade 20210818 -> 20210919
License-Update: additional files
(From OE-Core rev: 34b44c7c52b5e207a0affdff8c58fd912649d9ce)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8dac57dfed45a0d8a049473f2efc1711b56273a4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Alexander Kanavin
1eb0c9e32e ovmf: update 202105 -> 202108
(From OE-Core rev: 07644ddc782547fd790c45ce9820efe0fc87f871)

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>
(cherry picked from commit 9e5d15aba7515952614f69e06d3d9b9316a77204)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Alexander Kanavin
1fb6bc3cbd ca-certificates: update 20210119 -> 20211016
(From OE-Core rev: 686db3483e7db36e9854862518c64ca4c6932442)

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>
(cherry picked from commit c479b8a810d966d7267af1b4dac38a46f55fc547)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Ross Burton
cfc03f903a testimage: fix unclosed testdata file
(From OE-Core rev: 950bafd0ce15309167336d30e0ced6f184284c81)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0c192a97e3e1c015a48667d6903cc07a8b2620e4)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Khem Raj
792d4036e2 mesa: Enable svga for x86 only
Enable svga only on x86/x86_64 since some arches e.g. riscv64 do not
support it

(From OE-Core rev: c45f98e424dffee97f6e43d9b04ea59d6d9b68b1)

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>
(cherry picked from commit d7d380a45ab0efedcba33baaae37589da4d25a2b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Richard Purdie
6af7e42820 oeqa: Update cleanup code to wait for hashserv exit
We sometimes see exceptions from code seeing the hashserv DB files
being removed at directory cleanup time. Add a check to ensure the
hashserv has written the data base journal (and hence likely exited)
before cleaning up.

This will hopefully avoid errors like:

Traceback (most recent call last):
  File "[...]/meta/lib/oeqa/sdk/buildtools-cases/build.py", line 30, in test_libc
    delay = delay - 1
  File "/usr/lib/python3.6/tempfile.py", line 948, in __exit__
    self.cleanup()
  File "/usr/lib/python3.6/tempfile.py", line 952, in cleanup
    _rmtree(self.name)
  File "/usr/lib/python3.6/shutil.py", line 486, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib/python3.6/shutil.py", line 424, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
  File "/usr/lib/python3.6/shutil.py", line 444, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/usr/lib/python3.6/shutil.py", line 442, in _rmtree_safe_fd
    os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'hashserv.db-wal'

(From OE-Core rev: 635833734b4c61e453ca9843a9fb5cecf3eb1c97)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0b07d9add687d78495176cda0f3011c10ffa4d4b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Ross Burton
095aa7adfd curl: fix CVE-2021-22945 through -22947
(From OE-Core rev: 2f9feadd518444a5c19892acfa9bfca38cb1c25b)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cff6888f3b2b4bd0a42329b7f7c59b33c9d51265)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Jose Quaresma
b332b342b4 patch.bbclass: when the patch fails show more info on the fatal error
There are situations when the user have the 'patchdir' defined
as a parameter on SRC_URI. However he doesn't know that with this
the patch is applied relatively to the receipe source dir 'S'.

- When user have 'patchdir' defined check if this directory exist.
- If the patch fails show addition info to the user:
  - Import: show the striplevel
  - Resolver: show the expanded 'patchdir' to the user.

The next example is from opencv in meta-oe layer, here the
patch is applied on the target directory ${WORKDIR}/git/contrib.

S = "${WORKDIR}/git"
SRCREV_FORMAT = "opencv_contrib"
SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
           git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
           file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \
           "

* When the patch fail there are no message that indicates the real reason.
  patchdir=../no-found-on-file-system

ERROR: opencv-4.5.2-r0 do_patch: Command Error: 'quilt --quiltrc /build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
stdout: Applying patch 0001-sfm-link-with-Glog_LIBS.patch
can't find file to patch at input line 37
Perhaps you used the wrong -p or --strip option?

* The check of the patchdir will add a new fatal error
  when the user specifies a wrong path than don't exist.
  patchdir=../no-found-on-file-system

ERROR: opencv-4.5.2-r0 do_patch: Target directory '/build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/git/../no-found-on-file-system' not found, patchdir '../no-found-on-file-system' is incorrect in patch file '0001-sfm-link-with-Glog_LIBS.patch'

* When we can't aplly the patch but the patchdir exist,
  show the expanded patchdir on fatal error.
  patchdir=../git

ERROR: opencv-4.5.2-r0 do_patch: Applying patch '0001-sfm-link-with-Glog_LIBS.patch' on target directory '/build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/git/../git'
Command Error: 'quilt --quiltrc /build/tmp/work/core2-64-poky-linux/opencv/4.5.2-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
stdout: Applying patch 0001-sfm-link-with-Glog_LIBS.patch
can't find file to patch at input line 37
Perhaps you used the wrong -p or --strip option?

(From OE-Core rev: caf21ee38f7a96af6c10e80f9422611e317b29d6)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit c44bc7c0fb8b7c2e44dd93607a3bfd9733e1df80)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Richard Purdie
8e140d5d12 linux-yocto-dev: Ensure DEPENDS matches recent 5.14 kernel changes
DEPENDS here should match what 5.14 is using.

(From OE-Core rev: adc33c4bb8a0f5c542cb1da3b986e89ecea75714)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 899fd41723f41fe0a0cc24373c326b88cb385fe9)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Ross Burton
d484fcd8df linux-yocto: add libmpc-native to DEPENDS
5.14 changed how the GCC plugins are built, which means they now
depend on both GMP and MPC to be built. We already depend on gmp-native,
so add libmpc-native aswell.

(From OE-Core rev: 0c15ed141ea3b23140d3aa4e6ae17ddee0947f3f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit f242a6db0757b31c0d4eba5c362f616e1ace14d6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Andres Beltran
6c3a8ae1f9 buildhistory: Fix package output files for SDKs
Currently, installed packages are listed for images in image-info.txt, but
not for SDKs in sdk-info.txt. Add TOOLCHAIN_HOST_TASK and
TOOLCHAIN_TARGET_TASK to the output variables in sdk-info.txt.

Moreover, package output files for the SDK host are empty because
PKGDATA_DIR defaults to the target directory. Fix this bug and create a new
variable called PKGDATA_DIR_SDK which stores the correct path for the SDK
host package data.

(From OE-Core rev: af7b5c664649d2c0d1b23eb1d553080b9d2a7864)

Signed-off-by: Andres Beltran <abeltran@linux.microsoft.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 82e6172c1df378dff4e503aa878501c08937b5bb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Alexander Kanavin
be011b75c0 lttng-tools: replace ad hoc ptest fixup with upstream fixes
(From OE-Core rev: e9613ecfcec8b606b05407b6199806df7ac18e9b)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 87fd3080c86f6987e4403a2cb8263564f6e1ac4f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Richard Purdie
984e5e04aa libnewt: Use python3targetconfig to fix reproducibility issue
We're seeing pthread being linked sometimes and not others leading to
non-reproducible target binaries. The reason is mixing the native python
config with the target one. We should use the target one.

(From OE-Core rev: 5d27faf68ff94519d6618351ce87a8b3818ba611)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3fe5101b335384ef83e96ccc58687fd631164075)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Richard Purdie
5fa3c638ed libxml2: Use python3targetconfig to fix reproducibility issue
We're seeing pthread being linked sometimes and not others leading to
non-reproducible target binaries. The reason is mixing the native python
config with the target one. We should use the target one.

(From OE-Core rev: 0a390b5b36bbd1b2a3aefa74d03e8e40240c68fb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1bc5378db760963e2ad46542f2907dd6a592eb66)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Oleksandr Kravchuk
b26b40bbf7 python3: update to 3.9.7
(From OE-Core rev: 5895b6a51b73735f081267ed6e6e2455c1d717ed)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 9612bb0639c13571e661f208aa7b28789953d9ec)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Sakib Sajal
a02cfe25a5 go: upgrade 1.16.7 -> 1.16.8
(From OE-Core rev: 18559ba281a2ea4f8334fcdd4fca427af802ea81)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 97a2f406635f51bad1ab070f018a6466209f257b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:26 +01:00
Andrej Valek
3bf9467bcb busybox: 1.34.0 -> 1.34.1
- update to next stable version 1.34.1

(From OE-Core rev: 12930a587dbce9057071f5ea177c649e524d950d)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 84c9bb0796aa4382cc08075ec2908aea81892f64)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
48efa6a229 gstreamer1.0: 1.18.4 -> 1.18.5
(From OE-Core rev: 8fc9f5ad560b8d530cbffacbd1191fba4c2b14d4)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit d325f0d31bb1cbe889c7303ac2999c4dae391b34)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
c53f1f413a gst-examples: 1.18.4 -> 1.18.5
(From OE-Core rev: 570573718fe34de28709301d9cbc322321e71f5f)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit b1bddc80dc172563b7cd469a8de6b9db2e6ad985)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
8f140e272a gst-devtools: 1.18.4 -> 1.18.5
(From OE-Core rev: 9de831baa373f71805c2c3fb20463ebb70215760)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit fe1345f72e41fe0fd0a8c69ac8e7cb7551666fcb)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
fa13f88d19 gstreamer1.0-python: 1.18.4 -> 1.18.5
(From OE-Core rev: 9b436d2f69d1594e3efa33153226a269f09f3130)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 3c68529eb99c74de5a30520261f62a5544be9b39)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
11ff9d080a gstreamer1.0-omx: 1.18.4 -> 1.18.5
(From OE-Core rev: 0ede8a6546e54fd4e4c0ebe829e354a8bb4ae7c6)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 65ed3c4e6c0fbade647ec31a6a77f06ed4e97e7a)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
57703b457c gstreamer1.0-vaapi: 1.18.4 -> 1.18.5
(From OE-Core rev: f1f0d33097a939f573ea02d6ee2aff6c5df783fb)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit a46b9209b5f2f45b4206a7819e00c48795885093)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
eb7bcac465 gstreamer1.0-libav: 1.18.4 -> 1.18.5
(From OE-Core rev: 6290f239b73209ad3ba49cce56ac14b7fb225edc)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 6a52088c1938c197d8e89e10d8e6622fa4b41465)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
86d6c4cbfe gstreamer1.0-rtsp-server: 1.18.4 -> 1.18.5
(From OE-Core rev: b34d6d2be8bb5c7f8718ba6948502db808f09601)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 809db373816ed896048f551275589bac0f04ff92)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
9b197bef11 gstreamer1.0-plugins-ugly: 1.18.4 -> 1.18.5
(From OE-Core rev: 9d78656433bd9b1192dc5ca7a8eefa31ba6d97a3)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 09373e8c33cd0c585e146b55d9f7680832f2ad09)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
5d8c7e6ab6 gstreamer1.0-plugins-bad: 1.18.4 -> 1.18.5
(From OE-Core rev: ef13e5913b1b4a447c89ca3247face6178accaef)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 4e7789ecfdb1bd7afa6ff5be40f1d0e2a1a09e4c)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
73ebd1f04d gstreamer1.0-plugins-good: 1.18.4 -> 1.18.5
Drop backport patches:
    * 0002-rtpjitterbuffer-Fix-parsing-of-the-mediaclk-direct-f.patch

    * 0003-Remove-volatile-from-static-vars-to-fix-build-with-g.patch
      a1bf3d8d54

(From OE-Core rev: 790cb8acafc89969a6d1468f7df0493b737f946a)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit b51d46790e582556a7230a1fe8f67375e785cc43)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Jose Quaresma
dc851c427b gstreamer1.0-plugins-base: 1.18.4 -> 1.18.5
Drop backport patches:
    * 4ef5c91697a141fea7317aff7f0f28e5a861db99.patch

(From OE-Core rev: d38a5626f20ed964d79e64f237aa2e3bdb5c7d69)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit de0ee4323a19a27b6bcef7cc791d0373c311ef22)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Alexandre Belloni
9d87c1c9d4 oeqa/selftest/sstatetests: fix typo ware -> were
(From OE-Core rev: 0c8d02830ebac3c8ba563a46d304b1ef2a282b9f)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit c94a9ece226b1d2012f5ee966b81bf607d954937)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Ralph Siemsen
291da72ce1 tar: filter CVEs using vendor name
Recently a number of CVEs have been logged against a nodejs project
called "node-tar". These appear as false positives against the GNU tar
being built by Yocto. Some of these have been manually excluded using
CVE_CHECK_WHITELIST.

To avoid this problem, use the vendor name (in addition to package name)
for filtering CVEs. The syntax for this is:
  CVE_PRODUCT = "vendor:package"
When not specified, the vendor defaults to "%" which matches anything.

(From OE-Core rev: d11e970c6e2482ad0b21994e4ec85ddf2aea1ede)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 45d1a0bea0c628f84a00d641a4d323491988106f)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-29 11:17:25 +01:00
Richard Purdie
0b500dba7a bitbake: bitbake-worker: Add debug when unpickle fails
We occasionally see bitbake-worker failing and from the logs, an unpickle error
occurs. Add more debug so we can further debug this next time it fails.

[YOCTO #14595]

(Bitbake rev: 692fa35f4c23722f3179502cb965960cc230e709)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fe8105cc06beca8240b76ea366a1eff5aa9c5412)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-26 23:27:20 +01:00
Richard Purdie
3c5a5bbc19 bitbake: tests/runqueue: Ensure hashserv exits before deleting files
We've seen races where the socket may be gone but the server is still writing
out it's database. Handle that case too to avoid cleanup tracebacks.

[YOCTO #14440]

(Bitbake rev: 36b1b4c4fcee9dde628c7113203939730ab12ae5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b9e4fb843cb9d3a4d4404af093a781fab5520465)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-26 23:27:20 +01:00
Richard Purdie
a9fdfc41ba bitbake: fetch2/perforce: Fix typo
(Bitbake rev: 20eae05fdd6cb7ace87ad005f72c256e2fddb3d0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-26 13:47:21 +01:00
Michael Opdenacker
8eb5dd8757 docs: poky.yaml: updates for 3.4
(From yocto-docs rev: 6b5fd186df147816e2769241c4d6b501b66126dc)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-22 22:15:30 +01:00
Michael Opdenacker
80f109a7da releases.rst: fix release number for 3.3.3
(From yocto-docs rev: 3bb6a0918f3755d8d25865b5b3d2bd711925714b)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-22 22:15:30 +01:00
Daiane Angolini
1b1369d52c ref-manual: Update how to set a useradd password
Partial fix for [YOCTO 14605]

(From yocto-docs rev: d9c7fba68ca7c901e9e7064fee2989d834d4684c)

Signed-off-by: Daiane Angolini <daiane.angolini@foundries.io>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-22 22:15:30 +01:00
Paul Eggleton
14d4106f56 migration-3.4: add some extra packaging notes
Add some notes on minor packaging changes that I missed earlier.

(From yocto-docs rev: 8cb799a04f9c160da28a7283c9bd8d10406f57af)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-22 22:15:30 +01:00
Paul Eggleton
3507345f40 poky.yaml: fix lz4 package name for older Ubuntu versions
It turns out that for Ubuntu, lz4 is the valid package name for newer
versions (e.g. 20.04 LTS) but not for older ones (e.g. 18.04 LTS, where
the correct package is liblz4-tool). In 20.04 the lz4 package includes
liblz4-tool in its "provides" so it's best to list that one for now.

(From yocto-docs rev: 222af72b9ee307d43a8463283e058c6ebb18fefc)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-22 22:15:30 +01:00
Michael Opdenacker
42322ad2ce ref-manual: document TOOLCHAIN_HOST_TASK_ESDK
(From yocto-docs rev: d75c5450ecf56c8ac799a633ee9ac459e88f91fc)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Michael Opdenacker
34d69cc1b3 test-manual: how to enable reproducible builds
(From yocto-docs rev: 2f6780b837b3c17bc7fd1d2d1420e2e893960a27)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Michael Opdenacker
9bdb2db854 ref-manual: document "reproducible_build" class and SOURCE_DATE_EPOCH
(From yocto-docs rev: ab6d3dbf57cac560b9b142cf5becf11d3edf09b7)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Michael Opdenacker
d03d151093 ref-manual: document BUILD_REPRODUCIBLE_BINARIES
(From yocto-docs rev: 9855ed9b35acede2f6e56509709000796a3927f3)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Paul Eggleton
2abbaa3319 migration: tweak introduction section
Ensure we have a brief introductory section and tweak the general
migration considerations a little.

(From yocto-docs rev: c94aa8b9d828f9267a70deee05bdf483dc570101)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Paul Eggleton
f0428cea44 migration-3.4: add additional migration info
Add migration instructions gathered by combing the commits in this
release.

(From yocto-docs rev: b864f8570271df4e6cb47d21cb658d13ffd1d8f5)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Paul Eggleton
cc8df6ce5a poky.yaml: add lz4 and zstd to essential host packages
These are now required so update the corresponding distro-specific
lists used in the system requirements documentation.

(From yocto-docs rev: 1ddd56a98064015582a8c161a1b998c06ebcaf26)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Paul Eggleton
5c6455f1af ref-manual: remove meta class
This was recently removed so remove the reference to it.

(From yocto-docs rev: 46bfdb0b4ae2cb834589ef09436b120715663a31)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Paul Eggleton
c3223e3101 migration-3.4: tweak overrides change section
Minor grammar and readability improvements.

(From yocto-docs rev: 8e497bf7398042620e921645f85f5ccc59c4790a)

Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
Richard Purdie
7f4efed145 bitbake: test/fetch: Update urls to match upstream branch name changes
(Bitbake rev: 036ad517921a68525a9b2564363b01332d668e4c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-20 20:20:46 +01:00
5332 changed files with 647586 additions and 120 deletions

7
.gitignore vendored
View File

@@ -31,9 +31,4 @@ pull-*/
bitbake/lib/toaster/contrib/tts/backlog.txt
bitbake/lib/toaster/contrib/tts/log/*
bitbake/lib/toaster/contrib/tts/.cache/*
bitbake/lib/bb/tests/runqueue-tests/bitbake-cookerdaemon.log
_toaster_clones/
downloads/
sstate-cache/
toaster.sqlite
.vscode/
bitbake/lib/bb/tests/runqueue-tests/bitbake-cookerdaemon.log

2
.templateconf Normal file
View File

@@ -0,0 +1,2 @@
# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf}

20
LICENSE Normal file
View File

@@ -0,0 +1,20 @@
Different components of OpenEmbedded are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
details of the individual licenses.
All metadata is MIT licensed unless otherwise stated. Source code
included in tree for individual recipes (e.g. patches) are under
the LICENSE stated in the associated recipe (.bb file) unless
otherwise stated.
License information for any other files is either explicitly stated
or defaults to GPL version 2 only.
Individual files contain the following style tags instead of the full license
text to identify their license:
SPDX-License-Identifier: GPL-2.0-only
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

288
LICENSE.GPL-2.0-only Normal file
View File

@@ -0,0 +1,288 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

25
LICENSE.MIT Normal file
View File

@@ -0,0 +1,25 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

72
MAINTAINERS.md Normal file
View File

@@ -0,0 +1,72 @@
OpenEmbedded-Core and Yocto Project Maintainer Information
==========================================================
OpenEmbedded and Yocto Project work jointly together to maintain the metadata,
layers, tools and sub-projects that make up their ecosystems.
The projects operate through collaborative development. This currently takes
place on mailing lists for many components as the "pull request on github"
workflow works well for single or small numbers of maintainers but we have
a large number, all with different specialisms and benefit from the mailing
list review process. Changes therefore undergo peer review through mailing
lists in many cases.
This file aims to acknowledge people with specific skills/knowledge/interest
both to recognise their contributions but also empower them to help lead and
curate those components. Where we have people with specialist knowledge in
particular areas, during review patches/feedback from these people in these
areas would generally carry weight.
This file is maintained in OE-Core but may refer to components that are separate
to it if that makes sense in the context of maintainership. The README of specific
layers and components should ultimately be definitive about the patch process and
maintainership for the component.
Recipe Maintainers
------------------
See meta/conf/distro/include/maintainers.inc
Component/Subsystem Maintainers
-------------------------------
* Kernel (inc. linux-yocto, perf): Bruce Ashfield
* Reproducible Builds: Joshua Watt
* Toaster: David Reyna
* Hash-Equivalence: Joshua Watt
* Recipe upgrade infrastructure: Alex Kanavin
* Toolchain: Khem Raj
* ptest-runner: Aníbal Limón
* opkg: Alex Stewart
* devtool: Saul Wold
* eSDK: Saul Wold
* overlayfs: Vyacheslav Yurkov
Maintainers needed
------------------
* Pseudo
* Layer Index
* recipetool
* QA framework/automated testing
* error reporting system/web UI
* wic
* Patchwork
* Patchtest
* Prelink-cross
* Matchbox
* Sato
* Autobuilder
Layer Maintainers needed
------------------------
* meta-gplv2 (ideally new strategy but active maintainer welcome)
Shadow maintainers/development needed
--------------------------------------
* toaster
* bitbake

5
MEMORIAM Normal file
View File

@@ -0,0 +1,5 @@
Some project contributors who are sadly no longer with us:
Greg Gilbert (treke) - Ahead of his time with licensing
Thomas Wood (thos) - Creator of the original sato
Scott Rifenbark (scottrif) - Our long standing techwriter whose words live on

35
Makefile Normal file
View File

@@ -0,0 +1,35 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile.sphinx clean publish
publish: Makefile.sphinx html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile.sphinx
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

114
README
View File

@@ -1,114 +0,0 @@
The poky repository master branch is no longer being updated.
You can either:
a) switch to individual clones of bitbake, openembedded-core, meta-yocto and yocto-docs
https://docs.yoctoproject.org/dev/dev-manual/poky-manual-setup.html
b) use the new bitbake-setup
https://docs.yoctoproject.org/bitbake/dev/bitbake-user-manual/bitbake-user-manual-environment-setup.html
You can find more information in our documentation: https://docs.yoctoproject.org/
Note that "poky" the distro setting is still available in meta-yocto as
before and we continue to use and maintain that.
Long live Poky!
Some further information on the background of this change follows. The
details are taken from:
https://lists.openembedded.org/g/openembedded-architecture/message/2179
TLDR: People have complained about the combo-layer built poky
repository for years. It was meant to be a temporary thing, we now have
an alternative and I'm therefore doing what I promised I'd do. Change
is tough, things may break but this is the right point to at least try
it.
I'd like to note that:
* setting up builds with a separate oe-core and bitbake clone
works as it always has done
* you can change your CI just to use those two repos instead of poky
* bitbake-setup isn't mandatory, it will just be what the yocto-
docs presents to users
* we don't have to stop maintaining the poky repository
however nobody will test the new approach/code unless we do
* we are optionally exposing sstate mirrors in the new config
* we are also exposing config fragments to users
* poky as a DISTRO in meta-yocto remains
A bit more about the history and background for those who are
interested and then some FAQs:
Back around 2010 when we split up openembedded-classic and started
developing layers, we made the artificial "poky" repository construct
as a way to let people easily and quickly get started with the project.
without cloning and managing multiple repositories. Layers were a new
idea with lots of rough edges. kas didn't exist, I think repo was only
just created and it was a different world. For us, it meant hacking up
a quick tool, "combo-layer" and it was really a temporary solution to
fill a gap and it was at least as functional as repo of the era. It was
assumed we'd work it out properly in the future.
At developer meetings there are inevitable questions about why
poky/combo-layer exist and few seem to actually like/support it. There
are continual questions about why a tool doesn't exist or why we don't
adopt one too.
15 years later, a bit longer than we might have thought, we are finally
in a position where there may be a viable way forward to change.
It has taken us a bit of time to get to this point. I wrote the
original description of something like bitbake-setup about 7-8 years
ago. I shared it privately with a few people, the review feedback
stopped me pushing it further as I simply did not have the bandwidth.
We were fortunate to get funding from the Sovereign Tech Fund to start
the work and whilst I'd probably prefer to avoid the issue, the time
had come to start. Since then, Alexander Kanavin has put a lot of work
into getting it to the point where it would be possible to switch. A
huge thanks to him for getting this to the current point.
Why not use kas/submodules/repo?
This topic has been discussed in depth several times. Very roughly,
these are either difficult to focus on our use cases or have specific
designs and intent which we as a project would struggle to influence.
We are taking significant influence from some of them but also trying
to build something where we can benefit from tight direct integration
with bitbake and the metadata. For example fragment support is generic
and hopefully something other approaches can also benefit from. We want
to provide something we can switch the projects docs and autobuilder to
which we can control and develop as we need it to. We are not aiming to
force anyone to switch, you can use whichever tool you want.
Can we not keep poky [repository master branch] around?
If we do that, nobody will use the new tooling and it will be a
disaster as issues won't get resolved. We need our CI to use the same
thing we promote to our new and experienced users. We need this new
tooling to be usable by our experienced developers too. We have tried
for months to get people to try it and they simply don't. Making a
release with it won't change much either. It needs people using it and
for that, poky has to stop being updated.
What happens to poky [repository]?
The LTS branches continue their lifetime as planned. For master, I'll
probably put a final commit in changing to just a README which points
people at the bitbake-setup changes and explains what happened.
What are the timelines? Why now?
If we're going to make a change, we really want this in the next LTS
release, which is April 2026. We only have one release before that
which is now, October 2025. We therefore need to switch now, and then
give us time to update docs, fix issues that arise and so on and have
it in a release cycle. Whilst it means delaying the Oct 2025 release
slightly, that is the right thing to do in the context of the bigger
picture.

29
README.OE-Core.md Normal file
View File

@@ -0,0 +1,29 @@
OpenEmbedded-Core
=================
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "nodistro") and contains only emulated machine support.
For information about OpenEmbedded, see the OpenEmbedded website:
https://www.openembedded.org/
The Yocto Project has extensive documentation about OE including a reference manual
which can be found at:
https://docs.yoctoproject.org/
Contributing
------------
Please refer to
https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
for guidelines on how to submit patches.
Mailing list:
https://lists.openembedded.org/g/openembedded-core
Source code:
https://git.openembedded.org/openembedded-core/

1
README.hardware.md Symbolic link
View File

@@ -0,0 +1 @@
meta-yocto-bsp/README.hardware.md

1
README.md Symbolic link
View File

@@ -0,0 +1 @@
README.poky.md

1
README.poky.md Symbolic link
View File

@@ -0,0 +1 @@
meta-poky/README.poky.md

15
README.qemu.md Normal file
View File

@@ -0,0 +1,15 @@
QEMU Emulation Targets
======================
To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:
* ARM (qemuarm + qemuarm64)
* x86 (qemux86 + qemux86-64)
* PowerPC (qemuppc only)
* MIPS (qemumips + qemumips64)
Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.

2
bitbake/.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
*min.js binary
*min.css binary

10
bitbake/AUTHORS Normal file
View File

@@ -0,0 +1,10 @@
Tim Ansell <mithro@mithis.net>
Phil Blundell <pb@handhelds.org>
Seb Frankengul <seb@frankengul.org>
Holger Freyther <holger@moiji-mobile.com>
Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Chris Larson <kergoth@handhelds.org>
Ulrich Luckas <luckas@musoft.de>
Mickey Lauer <mickey@Vanille.de>
Richard Purdie <rpurdie@rpsys.net>
Holger Schurig <holgerschurig@gmx.de>

317
bitbake/ChangeLog Normal file
View File

@@ -0,0 +1,317 @@
Changes in Bitbake 1.9.x:
- Add PE (Package Epoch) support from Philipp Zabel (pH5)
- Treat python functions the same as shell functions for logging
- Use TMPDIR/anonfunc as a __anonfunc temp directory (T)
- Catch truncated cache file errors
- Allow operations other than assignment on flag variables
- Add code to handle inter-task dependencies
- Fix cache errors when generation dotGraphs
- Make sure __inherit_cache is updated before calling include() (from Michael Krelin)
- Fix bug when target was in ASSUME_PROVIDED (#2236)
- Raise ParseError for filenames with multiple underscores instead of infinitely looping (#2062)
- Fix invalid regexp in BBMASK error handling (missing import) (#1124)
- Promote certain warnings from debug to note 2 level
- Update manual
- Correctly redirect stdin when forking
- If parsing errors are found, exit, too many users miss the errors
- Remove supriours PREFERRED_PROVIDER warnings
- svn fetcher: Add _buildsvncommand function
- Improve certain error messages
- Rewrite svn fetcher to make adding extra operations easier
as part of future SRCDATE="now" fixes
(requires new FETCHCMD_svn definition in bitbake.conf)
- Change SVNDIR layout to be more unique (fixes #2644 and #2624)
- Add ConfigParsed Event after configuration parsing is complete
- Add SRCREV support for svn fetcher
- data.emit_var() - only call getVar if we need the variable
- Stop generating the A variable (seems to be legacy code)
- Make sure intertask depends get processed correcting in recursive depends
- Add pn-PN to overrides when evaluating PREFERRED_VERSION
- Improve the progress indicator by skipping tasks that have
already run before starting the build rather than during it
- Add profiling option (-P)
- Add BB_SRCREV_POLICY variable (clear or cache) to control SRCREV cache
- Add SRCREV_FORMAT support
- Fix local fetcher's localpath return values
- Apply OVERRIDES before performing immediate expansions
- Allow the -b -e option combination to take regular expressions
- Fix handling of variables with expansion in the name using _append/_prepend
e.g. RRECOMMENDS_${PN}_append_xyz = "abc"
- Add plain message function to bb.msg
- Sort the list of providers before processing so dependency problems are
reproducible rather than effectively random
- Fix/improve bitbake -s output
- Add locking for fetchers so only one tries to fetch a given file at a given time
- Fix int(0)/None confusion in runqueue.py which causes random gaps in dependency chains
- Expand data in addtasks
- Print the list of missing DEPENDS,RDEPENDS for the "No buildable providers available for required...."
error message.
- Rework add_task to be more efficient (6% speedup, 7% number of function calls reduction)
- Sort digraph output to make builds more reproducible
- Split expandKeys into two for loops to benefit from the expand_cache (12% speedup)
- runqueue.py: Fix idepends handling to avoid dependency errors
- Clear the terminal TOSTOP flag if set (and warn the user)
- Fix regression from r653 and make SRCDATE/CVSDATE work for packages again
- Fix a bug in bb.decodeurl where http://some.where.com/somefile.tgz decoded to host="" (#1530)
- Warn about malformed PREFERRED_PROVIDERS (#1072)
- Add support for BB_NICE_LEVEL option (#1627)
- Psyco is used only on x86 as there is no support for other architectures.
- Sort initial providers list by default preference (#1145, #2024)
- Improve provider sorting so prefered versions have preference over latest versions (#768)
- Detect builds of tasks with overlapping providers and warn (will become a fatal error) (#1359)
- Add MULTI_PROVIDER_WHITELIST variable to allow known safe multiple providers to be listed
- Handle paths in svn fetcher module parameter
- Support the syntax "export VARIABLE"
- Add bzr fetcher
- Add support for cleaning directories before a task in the form:
do_taskname[cleandirs] = "dir"
- bzr fetcher tweaks from Robert Schuster (#2913)
- Add mercurial (hg) fetcher from Robert Schuster (#2913)
- Don't add duplicates to BBPATH
- Fix preferred_version return values (providers.py)
- Fix 'depends' flag splitting
- Fix unexport handling (#3135)
- Add bb.copyfile function similar to bb.movefile (and improve movefile error reporting)
- Allow multiple options for deptask flag
- Use git-fetch instead of git-pull removing any need for merges when
fetching (we don't care about the index). Fixes fetch errors.
- Add BB_GENERATE_MIRROR_TARBALLS option, set to 0 to make git fetches
faster at the expense of not creating mirror tarballs.
- SRCREV handling updates, improvements and fixes from Poky
- Add bb.utils.lockfile() and bb.utils.unlockfile() from Poky
- Add support for task selfstamp and lockfiles flags
- Disable task number acceleration since it can allow the tasks to run
out of sequence
- Improve runqueue code comments
- Add task scheduler abstraction and some example schedulers
- Improve circular dependency chain debugging code and user feedback
- Don't give a stacktrace for invalid tasks, have a user friendly message (#3431)
- Add support for "-e target" (#3432)
- Fix shell showdata command (#3259)
- Fix shell data updating problems (#1880)
- Properly raise errors for invalid source URI protocols
- Change the wget fetcher failure handling to avoid lockfile problems
- Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
- Make taskdata and runqueue errors more user friendly
- Add norecurse and fullpath options to cvs fetcher
- Fix exit code for build failures in --continue mode
- Fix git branch tags fetching
- Change parseConfigurationFile so it works on real data, not a copy
- Handle 'base' inherit and all other INHERITs from parseConfigurationFile
instead of BBHandler
- Fix getVarFlags bug in data_smart
- Optmise cache handling by more quickly detecting an invalid cache, only
saving the cache when its changed, moving the cache validity check into
the parsing loop and factoring some getVar calls outside a for loop
- Cooker: Remove a debug message from the parsing loop to lower overhead
- Convert build.py exec_task to use getVarFlags
- Update shell to use cooker.buildFile
- Add StampUpdate event
- Convert -b option to use taskdata/runqueue
- Remove digraph and switch to new stamp checking code. exec_task no longer
honours dependencies
- Make fetcher timestamp updating non-fatal when permissions don't allow
updates
- Add BB_SCHEDULER variable/option ("completion" or "speed") controlling
the way bitbake schedules tasks
- Add BB_STAMP_POLICY variable/option ("perfile" or "full") controlling
how extensively stamps are looked at for validity
- When handling build target failures make sure idepends are checked and
failed where needed. Fixes --continue mode crashes.
- Fix -f (force) in conjunction with -b
- Fix problems with recrdeptask handling where some idepends weren't handled
correctly.
- Handle exit codes correctly (from pH5)
- Work around refs/HEAD issues with git over http (#3410)
- Add proxy support to the CVS fetcher (from Cyril Chemparathy)
- Improve runfetchcmd so errors are seen and various GIT variables are exported
- Add ability to fetchers to check URL validity without downloading
- Improve runtime PREFERRED_PROVIDERS warning message
- Add BB_STAMP_WHITELIST option which contains a list of stamps to ignore when
checking stamp dependencies and using a BB_STAMP_POLICY of "whitelist"
- No longer weight providers on the basis of a package being "already staged". This
leads to builds being non-deterministic.
- Flush stdout/stderr before forking to fix duplicate console output
- Make sure recrdeps tasks include all inter-task dependencies of a given fn
- Add bb.runqueue.check_stamp_fn() for use by packaged-staging
- Add PERSISTENT_DIR to store the PersistData in a persistent
directory != the cache dir.
- Add md5 and sha256 checksum generation functions to utils.py
- Correctly handle '-' characters in class names (#2958)
- Make sure expandKeys has been called on the data dictionary before running tasks
- Correctly add a task override in the form task-TASKNAME.
- Revert the '-' character fix in class names since it breaks things
- When a regexp fails to compile for PACKAGES_DYNAMIC, print a more useful error (#4444)
- Allow to checkout CVS by Date and Time. Just add HHmm to the SRCDATE.
- Move prunedir function to utils.py and add explode_dep_versions function
- Raise an exception if SRCREV == 'INVALID'
- Fix hg fetcher username/password handling and fix crash
- Fix PACKAGES_DYNAMIC handling of packages with '++' in the name
- Rename __depends to __base_depends after configuration parsing so we don't
recheck the validity of the config files time after time
- Add better environmental variable handling. By default it will now only pass certain
whitelisted variables into the data store. If BB_PRESERVE_ENV is set bitbake will use
all variable from the environment. If BB_ENV_WHITELIST is set, that whitelist will be
used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used
to extend the internal whitelist.
- Perforce fetcher fix to use commandline options instead of being overriden by the environment
- bb.utils.prunedir can cope with symlinks to directoriees without exceptions
- use @rev when doing a svn checkout
- Add osc fetcher (from Joshua Lock in Poky)
- When SRCREV autorevisioning for a recipe is in use, don't cache the recipe
- Add tryaltconfigs option to control whether bitbake trys using alternative providers
to fulfil failed dependencies. It defaults to off, changing the default since this
behaviour confuses many users and isn't often useful.
- Improve lock file function error handling
- Add username handling to the git fetcher (Robert Bragg)
- Add support for HTTP_PROXY and HTTP_PROXY_IGNORE variables to the wget fetcher
- Export more variables to the fetcher commands to allow ssh checkouts and checkouts through
proxies to work better. (from Poky)
- Also allow user and pswd options in SRC_URIs globally (from Poky)
- Improve proxy handling when using mirrors (from Poky)
- Add bb.utils.prune_suffix function
- Fix hg checkouts of specific revisions (from Poky)
- Fix wget fetching of urls with parameters specified (from Poky)
- Add username handling to git fetcher (from Poky)
- Set HOME environmental variable when running fetcher commands (from Poky)
- Make sure allowed variables inherited from the environment are exported again (from Poky)
- When running a stage task in bbshell, run populate_staging, not the stage task (from Poky)
- Fix + character escaping from PACKAGES_DYNAMIC (thanks Otavio Salvador)
- Addition of BBCLASSEXTEND support for allowing one recipe to provide multiple targets (from Poky)
Changes in Bitbake 1.8.0:
- Release 1.7.x as a stable series
Changes in BitBake 1.7.x:
- Major updates of the dependency handling and execution
of tasks. Code from bin/bitbake replaced with runqueue.py
and taskdata.py
- New task execution code supports multithreading with a simplistic
threading algorithm controlled by BB_NUMBER_THREADS
- Change of the SVN Fetcher to keep the checkout around
courtsey of Paul Sokolovsky (#1367)
- PATH fix to bbimage (#1108)
- Allow debug domains to be specified on the commandline (-l)
- Allow 'interactive' tasks
- Logging message improvements
- Drop now uneeded BUILD_ALL_DEPS variable
- Add support for wildcards to -b option
- Major overhaul of the fetchers making a large amount of code common
including mirroring code
- Fetchers now touch md5 stamps upon access (to show activity)
- Fix -f force option when used without -b (long standing bug)
- Add expand_cache to data_cache.py, caching expanded data (speedup)
- Allow version field in DEPENDS (ignored for now)
- Add abort flag support to the shell
- Make inherit fail if the class doesn't exist (#1478)
- Fix data.emit_env() to expand keynames as well as values
- Add ssh fetcher
- Add perforce fetcher
- Make PREFERRED_PROVIDER_foobar defaults to foobar if available
- Share the parser's mtime_cache, reducing the number of stat syscalls
- Compile all anonfuncs at once!
*** Anonfuncs must now use common spacing format ***
- Memorise the list of handlers in __BBHANDLERS and tasks in __BBTASKS
This removes 2 million function calls resulting in a 5-10% speedup
- Add manpage
- Update generateDotGraph to use taskData/runQueue improving accuracy
and also adding a task dependency graph
- Fix/standardise on GPLv2 licence
- Move most functionality from bin/bitbake to cooker.py and split into
separate funcitons
- CVS fetcher: Added support for non-default port
- Add BBINCLUDELOGS_LINES, the number of lines to read from any logfile
- Drop shebangs from lib/bb scripts
Changes in Bitbake 1.6.0:
- Better msg handling
- COW dict implementation from Tim Ansell (mithro) leading
to better performance
- Speed up of -s
Changes in Bitbake 1.4.4:
- SRCDATE now handling courtsey Justin Patrin
- #1017 fix to work with rm_work
Changes in BitBake 1.4.2:
- Send logs to oe.pastebin.com instead of pastebin.com
fixes #856
- Copy the internal bitbake data before building the
dependency graph. This fixes nano not having a
virtual/libc dependency
- Allow multiple TARBALL_STASH entries
- Cache, check if the directory exists before changing
into it
- git speedup cloning by not doing a checkout
- allow to have spaces in filenames (.conf, .bb, .bbclass)
Changes in BitBake 1.4.0:
- Fix to check both RDEPENDS and RDEPENDS_${PN}
- Fix a RDEPENDS parsing bug in utils:explode_deps()
- Update git fetcher behaviour to match git changes
- ASSUME_PROVIDED allowed to include runtime packages
- git fetcher cleanup and efficency improvements
- Change the format of the cache
- Update usermanual to document the Fetchers
- Major changes to caching with a new strategy
giving a major performance increase when reparsing
with few data changes
Changes in BitBake 1.3.3:
- Create a new Fetcher module to ease the
development of new Fetchers.
Issue #438 fixed by rpurdie@openedhand.com
- Make the Subversion fetcher honor the SRC Date
(CVSDATE).
Issue #555 fixed by chris@openedhand.com
- Expand PREFERRED_PROVIDER properly
Issue #436 fixed by rprudie@openedhand.com
- Typo fix for Issue #531 by Philipp Zabel for the
BitBake Shell
- Introduce a new special variable SRCDATE as
a generic naming to replace CVSDATE.
- Introduce a new keyword 'required'. In contrast
to 'include' parsing will fail if a to be included
file can not be found.
- Remove hardcoding of the STAMP directory. Patch
courtsey pHilipp Zabel
- Track the RDEPENDS of each package (rpurdie@openedhand.com)
- Introduce BUILD_ALL_DEPS to build all RDEPENDS. E.g
this is used by the OpenEmbedded Meta Packages.
(rpurdie@openedhand.com).
Changes in BitBake 1.3.2:
- reintegration of make.py into BitBake
- bbread is gone, use bitbake -e
- lots of shell updates and bugfixes
- Introduction of the .= and =. operator
- Sort variables, keys and groups in bitdoc
- Fix regression in the handling of BBCOLLECTIONS
- Update the bitbake usermanual
Changes in BitBake 1.3.0:
- add bitbake interactive shell (bitbake -i)
- refactor bitbake utility in OO style
- kill default arguments in methods in the bb.data module
- kill default arguments in methods in the bb.fetch module
- the http/https/ftp fetcher will fail if the to be
downloaded file was not found in DL_DIR (this is needed
to avoid unpacking the sourceforge mirror page)
- Switch to a cow like data instance for persistent and non
persisting mode (called data_smart.py)
- Changed the callback of bb.make.collect_bbfiles to carry
additional parameters
- Drastically reduced the amount of needed RAM by not holding
each data instance in memory when using a cache/persistent
storage
Changes in BitBake 1.2.1:
The 1.2.1 release is meant as a intermediate release to lay the
ground for more radical changes. The most notable changes are:
- Do not hardcode {}, use bb.data.init() instead if you want to
get a instance of a data class
- bb.data.init() is a factory and the old bb.data methods are delegates
- Do not use deepcopy use bb.data.createCopy() instead.
- Removed default arguments in bb.fetch

29
bitbake/LICENSE Normal file
View File

@@ -0,0 +1,29 @@
BitBake is licensed under the GNU General Public License version 2.0. See
LICENSE.GPL-2.0-only for further details.
Individual files contain the following style tags instead of the full license text:
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
The following external components are distributed with this software:
* The Toaster Simple UI application is based upon the Django project template, the files of which are covered by the BSD license and are copyright (c) Django Software
Foundation and individual contributors.
* Twitter Bootstrap (including Glyphicons), redistributed under the MIT license
* jQuery is redistributed under the MIT license.
* Twitter typeahead.js redistributed under the MIT license. Note that the JS source has one small modification, so the full unminified file is currently included to make it obvious where this is.
* jsrender is redistributed under the MIT license.
* QUnit is redistributed under the MIT license.
* Font Awesome fonts redistributed under the SIL Open Font License 1.1
* simplediff is distributed under the zlib license.

View File

@@ -0,0 +1,288 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: GPL-2.0-only
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

25
bitbake/LICENSE.MIT Normal file
View File

@@ -0,0 +1,25 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note:
Individual files contain the following tag instead of the full license text.
SPDX-License-Identifier: MIT
This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

43
bitbake/README Normal file
View File

@@ -0,0 +1,43 @@
Bitbake
=======
BitBake is a generic task execution engine that allows shell and Python tasks to be run
efficiently and in parallel while working within complex inter-task dependency constraints.
One of BitBake's main users, OpenEmbedded, takes this core and builds embedded Linux software
stacks using a task-oriented approach.
For information about Bitbake, see the OpenEmbedded website:
https://www.openembedded.org/
Bitbake plain documentation can be found under the doc directory or its integrated
html version at the Yocto Project website:
https://docs.yoctoproject.org
Contributing
------------
Please refer to
https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
for guidelines on how to submit patches, just note that the latter documentation is intended
for OpenEmbedded (and its core) not bitbake patches (bitbake-devel@lists.openembedded.org)
but in general main guidelines apply. Once the commit(s) have been created, the way to send
the patch is through git-send-email. For example, to send the last commit (HEAD) on current
branch, type:
git send-email -M -1 --to bitbake-devel@lists.openembedded.org
Mailing list:
https://lists.openembedded.org/g/bitbake-devel
Source code:
https://git.openembedded.org/bitbake/
Testing:
Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions.
You can run this with "bitbake-selftest". In particular the fetcher is well covered since
it has so many corner cases. The datastore has many tests too. Testing with the testsuite is
recommended before submitting patches, particularly to the fetcher and datastore. We also
appreciate new test cases and may require them for more obscure issues.

46
bitbake/bin/bitbake Executable file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env python3
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),
'lib'))
try:
import bb
except RuntimeError as exc:
sys.exit(str(exc))
from bb import cookerdata
from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
__version__ = "1.52.0"
if __name__ == "__main__":
if __version__ != bb.__version__:
sys.exit("Bitbake core version and program version mismatch!")
try:
sys.exit(bitbake_main(BitBakeConfigParameters(sys.argv),
cookerdata.CookerConfiguration()))
except BBMainException as err:
sys.exit(err)
except bb.BBHandledException:
sys.exit(1)
except Exception:
import traceback
traceback.print_exc()
sys.exit(1)

199
bitbake/bin/bitbake-diffsigs Executable file
View File

@@ -0,0 +1,199 @@
#!/usr/bin/env python3
# bitbake-diffsigs / bitbake-dumpsig
# BitBake task signature data dump and comparison utility
#
# Copyright (C) 2012-2013, 2017 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import warnings
warnings.simplefilter("default")
import argparse
import logging
import pickle
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
import bb.tinfoil
import bb.siggen
import bb.msg
myname = os.path.basename(sys.argv[0])
logger = bb.msg.logger_create(myname)
is_dump = myname == 'bitbake-dumpsig'
def find_siginfo(tinfoil, pn, taskname, sigs=None):
result = None
tinfoil.set_event_mask(['bb.event.FindSigInfoResult',
'logging.LogRecord',
'bb.command.CommandCompleted',
'bb.command.CommandFailed'])
ret = tinfoil.run_command('findSigInfo', pn, taskname, sigs)
if ret:
while True:
event = tinfoil.wait_event(1)
if event:
if isinstance(event, bb.command.CommandCompleted):
break
elif isinstance(event, bb.command.CommandFailed):
logger.error(str(event))
sys.exit(2)
elif isinstance(event, bb.event.FindSigInfoResult):
result = event.result
elif isinstance(event, logging.LogRecord):
logger.handle(event)
else:
logger.error('No result returned from findSigInfo command')
sys.exit(2)
return result
def find_siginfo_task(bbhandler, pn, taskname, sig1=None, sig2=None):
""" Find the most recent signature files for the specified PN/task """
if not taskname.startswith('do_'):
taskname = 'do_%s' % taskname
if sig1 and sig2:
sigfiles = find_siginfo(bbhandler, pn, taskname, [sig1, sig2])
if len(sigfiles) == 0:
logger.error('No sigdata files found matching %s %s matching either %s or %s' % (pn, taskname, sig1, sig2))
sys.exit(1)
elif not sig1 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig1))
sys.exit(1)
elif not sig2 in sigfiles:
logger.error('No sigdata files found matching %s %s with signature %s' % (pn, taskname, sig2))
sys.exit(1)
latestfiles = [sigfiles[sig1], sigfiles[sig2]]
else:
filedates = find_siginfo(bbhandler, pn, taskname)
latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
if not latestfiles:
logger.error('No sigdata files found matching %s %s' % (pn, taskname))
sys.exit(1)
return latestfiles
# Define recursion callback
def recursecb(key, hash1, hash2):
hashes = [hash1, hash2]
hashfiles = find_siginfo(tinfoil, key, None, hashes)
recout = []
if len(hashfiles) == 0:
recout.append("Unable to find matching sigdata for %s with hashes %s or %s" % (key, hash1, hash2))
elif not hash1 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash1))
elif not hash2 in hashfiles:
recout.append("Unable to find matching sigdata for %s with hash %s" % (key, hash2))
else:
out2 = bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb, color=color)
for change in out2:
for line in change.splitlines():
recout.append(' ' + line)
return recout
parser = argparse.ArgumentParser(
description=("Dumps" if is_dump else "Compares") + " siginfo/sigdata files written out by BitBake")
parser.add_argument('-D', '--debug',
help='Enable debug output',
action='store_true')
if is_dump:
parser.add_argument("-t", "--task",
help="find the signature data file for the last run of the specified task",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("sigdatafile1",
help="Signature file to dump. Not used when using -t/--task.",
action="store", nargs='?', metavar="sigdatafile")
else:
parser.add_argument('-c', '--color',
help='Colorize the output (where %(metavar)s is %(choices)s)',
choices=['auto', 'always', 'never'], default='auto', metavar='color')
parser.add_argument('-d', '--dump',
help='Dump the last signature data instead of comparing (equivalent to using bitbake-dumpsig)',
action='store_true')
parser.add_argument("-t", "--task",
help="find the signature data files for the last two runs of the specified task and compare them",
action="store", dest="taskargs", nargs=2, metavar=('recipename', 'taskname'))
parser.add_argument("-s", "--signature",
help="With -t/--task, specify the signatures to look for instead of taking the last two",
action="store", dest="sigargs", nargs=2, metavar=('fromsig', 'tosig'))
parser.add_argument("sigdatafile1",
help="First signature file to compare (or signature file to dump, if second not specified). Not used when using -t/--task.",
action="store", nargs='?')
parser.add_argument("sigdatafile2",
help="Second signature file to compare",
action="store", nargs='?')
options = parser.parse_args()
if is_dump:
options.color = 'never'
options.dump = True
options.sigdatafile2 = None
options.sigargs = None
if options.debug:
logger.setLevel(logging.DEBUG)
color = (options.color == 'always' or (options.color == 'auto' and sys.stdout.isatty()))
if options.taskargs:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
if not options.dump and options.sigargs:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1], options.sigargs[0], options.sigargs[1])
else:
files = find_siginfo_task(tinfoil, options.taskargs[0], options.taskargs[1])
if options.dump:
logger.debug("Signature file: %s" % files[-1])
output = bb.siggen.dump_sigfile(files[-1])
else:
if len(files) < 2:
logger.error('Only one matching sigdata file found for the specified task (%s %s)' % (options.taskargs[0], options.taskargs[1]))
sys.exit(1)
# Recurse into signature comparison
logger.debug("Signature file (previous): %s" % files[-2])
logger.debug("Signature file (latest): %s" % files[-1])
output = bb.siggen.compare_sigfiles(files[-2], files[-1], recursecb, color=color)
else:
if options.sigargs:
logger.error('-s/--signature can only be used together with -t/--task')
sys.exit(1)
try:
if not options.dump and options.sigdatafile1 and options.sigdatafile2:
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
output = bb.siggen.compare_sigfiles(options.sigdatafile1, options.sigdatafile2, recursecb, color=color)
elif options.sigdatafile1:
output = bb.siggen.dump_sigfile(options.sigdatafile1)
else:
logger.error('Must specify signature file(s) or -t/--task')
parser.print_help()
sys.exit(1)
except IOError as e:
logger.error(str(e))
sys.exit(1)
except (pickle.UnpicklingError, EOFError):
logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
sys.exit(1)
if output:
print('\n'.join(output))

1
bitbake/bin/bitbake-dumpsig Symbolic link
View File

@@ -0,0 +1 @@
bitbake-diffsigs

50
bitbake/bin/bitbake-getvar Executable file
View File

@@ -0,0 +1,50 @@
#! /usr/bin/env python3
#
# Copyright (C) 2021 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import io
import os
import sys
import warnings
warnings.simplefilter("default")
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.tinfoil
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Bitbake Query Variable")
parser.add_argument("variable", help="variable name to query")
parser.add_argument("-r", "--recipe", help="Recipe name to query", default=None, required=False)
parser.add_argument('-u', '--unexpand', help='Do not expand the value (with --value)', action="store_true")
parser.add_argument('-f', '--flag', help='Specify a variable flag to query (with --value)', default=None)
parser.add_argument('--value', help='Only report the value, no history and no variable name', action="store_true")
args = parser.parse_args()
if args.unexpand and not args.value:
print("--unexpand only makes sense with --value")
sys.exit(1)
if args.flag and not args.value:
print("--flag only makes sense with --value")
sys.exit(1)
with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
if args.recipe:
tinfoil.prepare(quiet=2)
d = tinfoil.parse_recipe(args.recipe)
else:
tinfoil.prepare(quiet=2, config_only=True)
d = tinfoil.config_data
if args.flag:
print(str(d.getVarFlag(args.variable, args.flag, expand=(not args.unexpand))))
elif args.value:
print(str(d.getVar(args.variable, expand=(not args.unexpand))))
else:
bb.data.emit_var(args.variable, d=d, all=True)

169
bitbake/bin/bitbake-hashclient Executable file
View File

@@ -0,0 +1,169 @@
#! /usr/bin/env python3
#
# Copyright (C) 2019 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import argparse
import hashlib
import logging
import os
import pprint
import sys
import threading
import time
import warnings
warnings.simplefilter("default")
try:
import tqdm
ProgressBar = tqdm.tqdm
except ImportError:
class ProgressBar(object):
def __init__(self, *args, **kwargs):
pass
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
pass
def update(self):
pass
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
DEFAULT_ADDRESS = 'unix://./hashserve.sock'
METHOD = 'stress.test.method'
def main():
def handle_stats(args, client):
if args.reset:
s = client.reset_stats()
else:
s = client.get_stats()
pprint.pprint(s)
return 0
def handle_stress(args, client):
def thread_main(pbar, lock):
nonlocal found_hashes
nonlocal missed_hashes
nonlocal max_time
client = hashserv.create_client(args.address)
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
max_time = max(elapsed, max_time)
pbar.update()
max_time = 0
found_hashes = 0
missed_hashes = 0
lock = threading.Lock()
total_requests = args.clients * args.requests
start_time = time.perf_counter()
with ProgressBar(total=total_requests) as pbar:
threads = [threading.Thread(target=thread_main, args=(pbar, lock), daemon=False) for _ in range(args.clients)]
for t in threads:
t.start()
for t in threads:
t.join()
elapsed = time.perf_counter() - start_time
with lock:
print("%d requests in %.1fs. %.1f requests per second" % (total_requests, elapsed, total_requests / elapsed))
print("Average request time %.8fs" % (elapsed / total_requests))
print("Max request time was %.8fs" % max_time)
print("Found %d hashes, missed %d" % (found_hashes, missed_hashes))
if args.report:
with ProgressBar(total=args.requests) as pbar:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
outhash = hashlib.sha256()
outhash.update(args.outhash_seed.encode('utf-8'))
outhash.update(str(i).encode('utf-8'))
client.report_unihash(taskhash.hexdigest(), METHOD, outhash.hexdigest(), taskhash.hexdigest())
with lock:
pbar.update()
parser = argparse.ArgumentParser(description='Hash Equivalence Client')
parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
subparsers = parser.add_subparsers()
stats_parser = subparsers.add_parser('stats', help='Show server stats')
stats_parser.add_argument('--reset', action='store_true',
help='Reset server stats')
stats_parser.set_defaults(func=handle_stats)
stress_parser = subparsers.add_parser('stress', help='Run stress test')
stress_parser.add_argument('--clients', type=int, default=10,
help='Number of simultaneous clients')
stress_parser.add_argument('--requests', type=int, default=1000,
help='Number of requests each client will perform')
stress_parser.add_argument('--report', action='store_true',
help='Report new hashes')
stress_parser.add_argument('--taskhash-seed', default='',
help='Include string in taskhash')
stress_parser.add_argument('--outhash-seed', default='',
help='Include string in outhash')
stress_parser.set_defaults(func=handle_stress)
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
func = getattr(args, 'func', None)
if func:
client = hashserv.create_client(args.address)
return func(args, client)
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

66
bitbake/bin/bitbake-hashserv Executable file
View File

@@ -0,0 +1,66 @@
#! /usr/bin/env python3
#
# Copyright (C) 2018 Garmin Ltd.
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import logging
import argparse
import sqlite3
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import hashserv
VERSION = "1.0.0"
DEFAULT_BIND = 'unix://./hashserve.sock'
def main():
parser = argparse.ArgumentParser(description='Hash Equivalence Reference Server. Version=%s' % VERSION,
epilog='''The bind address is the path to a unix domain socket if it is
prefixed with "unix://". Otherwise, it is an IP address
and port in form ADDRESS:PORT. To bind to all addresses, leave
the ADDRESS empty, e.g. "--bind :8686". To bind to a specific
IPv6 address, enclose the address in "[]", e.g.
"--bind [::1]:8686"'''
)
parser.add_argument('-b', '--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('-d', '--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('-l', '--log', default='WARNING', help='Set logging level')
parser.add_argument('-u', '--upstream', help='Upstream hashserv to pull hashes from')
parser.add_argument('-r', '--read-only', action='store_true', help='Disallow write operations from clients')
args = parser.parse_args()
logger = logging.getLogger('hashserv')
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError('Invalid log level: %s' % args.log)
logger.setLevel(level)
console = logging.StreamHandler()
console.setLevel(level)
logger.addHandler(console)
server = hashserv.create_server(args.bind, args.database, upstream=args.upstream, read_only=args.read_only)
server.serve_forever()
return 0
if __name__ == '__main__':
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

102
bitbake/bin/bitbake-layers Executable file
View File

@@ -0,0 +1,102 @@
#!/usr/bin/env python3
# This script has subcommands which operate against your bitbake layers, either
# displaying useful information, or acting against them.
# See the help output for details on available commands.
# Copyright (C) 2011 Mentor Graphics Corporation
# Copyright (C) 2011-2015 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
#
import logging
import os
import sys
import argparse
import warnings
warnings.simplefilter("default")
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
import bb.tinfoil
import bb.msg
logger = bb.msg.logger_create('bitbake-layers', sys.stdout)
def main():
parser = argparse.ArgumentParser(
description="BitBake layers utility",
epilog="Use %(prog)s <subcommand> --help to get help on a specific command",
add_help=False)
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
parser.add_argument('-F', '--force', help='Force add without recipe parse verification', action='store_true')
parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR')
global_args, unparsed_args = parser.parse_known_args()
# Help is added here rather than via add_help=True, as we don't want it to
# be handled by parse_known_args()
parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
help='show this help message and exit')
subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
subparsers.required = True
if global_args.debug:
logger.setLevel(logging.DEBUG)
elif global_args.quiet:
logger.setLevel(logging.ERROR)
# Need to re-run logger_create with color argument
# (will be the same logger since it has the same name)
bb.msg.logger_create('bitbake-layers', output=sys.stdout,
color=global_args.color,
level=logger.getEffectiveLevel())
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
tinfoil.logger.setLevel(logger.getEffectiveLevel())
try:
tinfoil.prepare(True)
for path in ([topdir] +
tinfoil.config_data.getVar('BBPATH').split(':')):
pluginpath = os.path.join(path, 'lib', 'bblayers')
bb.utils.load_plugins(logger, plugins, pluginpath)
registered = False
for plugin in plugins:
if hasattr(plugin, 'register_commands'):
registered = True
plugin.register_commands(subparsers)
if hasattr(plugin, 'tinfoil_init'):
plugin.tinfoil_init(tinfoil)
if not registered:
logger.error("No commands registered - missing plugins?")
sys.exit(1)
args = parser.parse_args(unparsed_args, namespace=global_args)
if getattr(args, 'parserecipes', False):
tinfoil.config_data.disableTracking()
tinfoil.parse_recipes()
tinfoil.config_data.enableTracking()
return args.func(args)
finally:
tinfoil.shutdown()
if __name__ == "__main__":
try:
ret = main()
except bb.BBHandledException:
ret = 1
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

63
bitbake/bin/bitbake-prserv Executable file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys,logging
import optparse
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
import prserv
import prserv.serv
__version__="1.0.0"
PRHOST_DEFAULT='0.0.0.0'
PRPORT_DEFAULT=8585
def main():
parser = optparse.OptionParser(
version="Bitbake PR Service Core version %s, %%prog version %s" % (prserv.__version__, __version__),
usage = "%prog < --start | --stop > [options]")
parser.add_option("-f", "--file", help="database filename(default: prserv.sqlite3)", action="store",
dest="dbfile", type="string", default="prserv.sqlite3")
parser.add_option("-l", "--log", help="log filename(default: prserv.log)", action="store",
dest="logfile", type="string", default="prserv.log")
parser.add_option("--loglevel", help="logging level, i.e. CRITICAL, ERROR, WARNING, INFO, DEBUG",
action = "store", type="string", dest="loglevel", default = "INFO")
parser.add_option("--start", help="start daemon",
action="store_true", dest="start")
parser.add_option("--stop", help="stop daemon",
action="store_true", dest="stop")
parser.add_option("--host", help="ip address to bind", action="store",
dest="host", type="string", default=PRHOST_DEFAULT)
parser.add_option("--port", help="port number(default: 8585)", action="store",
dest="port", type="int", default=PRPORT_DEFAULT)
parser.add_option("-r", "--read-only", help="open database in read-only mode",
action="store_true")
options, args = parser.parse_args(sys.argv)
prserv.init_logger(os.path.abspath(options.logfile),options.loglevel)
if options.start:
ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile), options.read_only)
elif options.stop:
ret=prserv.serv.stop_daemon(options.host, options.port)
else:
ret=parser.print_help()
return ret
if __name__ == "__main__":
try:
ret = main()
except Exception:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

77
bitbake/bin/bitbake-selftest Executable file
View File

@@ -0,0 +1,77 @@
#!/usr/bin/env python3
#
# Copyright (C) 2012 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys, logging
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import unittest
try:
import bb
import hashserv
import layerindexlib
except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.color",
"bb.tests.cooker",
"bb.tests.cow",
"bb.tests.data",
"bb.tests.event",
"bb.tests.fetch",
"bb.tests.parse",
"bb.tests.persist_data",
"bb.tests.runqueue",
"bb.tests.siggen",
"bb.tests.utils",
"bb.tests.compression",
"hashserv.tests",
"layerindexlib.tests.layerindexobj",
"layerindexlib.tests.restapi",
"layerindexlib.tests.cooker"]
for t in tests:
t = '.'.join(t.split('.')[:3])
__import__(t)
# Set-up logging
class StdoutStreamHandler(logging.StreamHandler):
"""Special handler so that unittest is able to capture stdout"""
def __init__(self):
# Override __init__() because we don't want to set self.stream here
logging.Handler.__init__(self)
@property
def stream(self):
# We want to dynamically write wherever sys.stdout is pointing to
return sys.stdout
handler = StdoutStreamHandler()
bb.logger.addHandler(handler)
bb.logger.setLevel(logging.DEBUG)
ENV_HELP = """\
Environment variables:
BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network
connection
BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories
"""
class main(unittest.main):
def _print_help(self, *args, **kwargs):
super(main, self)._print_help(*args, **kwargs)
print(ENV_HELP)
if __name__ == '__main__':
main(defaultTest=tests, buffer=True)

53
bitbake/bin/bitbake-server Executable file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2020 Richard Purdie
#
import os
import sys
import warnings
warnings.simplefilter("default")
import logging
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
# Users shouldn't be running this code directly
if len(sys.argv) != 10 or not sys.argv[1].startswith("decafbad"):
print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.")
sys.exit(1)
import bb.server.process
lockfd = int(sys.argv[2])
readypipeinfd = int(sys.argv[3])
logfile = sys.argv[4]
lockname = sys.argv[5]
sockname = sys.argv[6]
timeout = float(sys.argv[7])
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
so = open(logfile, 'a+')
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
logger = logging.getLogger("BitBake")
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
logger.addHandler(handler)
bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface)

538
bitbake/bin/bitbake-worker Executable file
View File

@@ -0,0 +1,538 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import sys
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
from bb import fetch2
import logging
import bb
import select
import errno
import signal
import pickle
import traceback
import queue
import shlex
import subprocess
from multiprocessing import Lock
from threading import Thread
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
# Users shouldn't be running this code directly
if len(sys.argv) != 2 or not sys.argv[1].startswith("decafbad"):
print("bitbake-worker is meant for internal execution by bitbake itself, please don't use it standalone.")
sys.exit(1)
profiling = False
if sys.argv[1].startswith("decafbadbad"):
profiling = True
try:
import cProfile as profile
except:
import profile
# Unbuffer stdout to avoid log truncation in the event
# of an unorderly exit as well as to provide timely
# updates to log files for use with tail
try:
if sys.stdout.name == '<stdout>':
import fcntl
fl = fcntl.fcntl(sys.stdout.fileno(), fcntl.F_GETFL)
fl |= os.O_SYNC
fcntl.fcntl(sys.stdout.fileno(), fcntl.F_SETFL, fl)
#sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
except:
pass
logger = logging.getLogger("BitBake")
worker_pipe = sys.stdout.fileno()
bb.utils.nonblockingfd(worker_pipe)
# Need to guard against multiprocessing being used in child processes
# and multiple processes trying to write to the parent at the same time
worker_pipe_lock = None
handler = bb.event.LogHandler()
logger.addHandler(handler)
if 0:
# Code to write out a log file of all events passing through the worker
logfilename = "/tmp/workerlogfile"
format_str = "%(levelname)s: %(message)s"
conlogformat = bb.msg.BBLogFormatter(format_str)
consolelog = logging.FileHandler(logfilename)
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
worker_queue = queue.Queue()
def worker_fire(event, d):
data = b"<event>" + pickle.dumps(event) + b"</event>"
worker_fire_prepickled(data)
def worker_fire_prepickled(event):
global worker_queue
worker_queue.put(event)
#
# We can end up with write contention with the cooker, it can be trying to send commands
# and we can be trying to send event data back. Therefore use a separate thread for writing
# back data to cooker.
#
worker_thread_exit = False
def worker_flush(worker_queue):
worker_queue_int = b""
global worker_pipe, worker_thread_exit
while True:
try:
worker_queue_int = worker_queue_int + worker_queue.get(True, 1)
except queue.Empty:
pass
while (worker_queue_int or not worker_queue.empty()):
try:
(_, ready, _) = select.select([], [worker_pipe], [], 1)
if not worker_queue.empty():
worker_queue_int = worker_queue_int + worker_queue.get()
written = os.write(worker_pipe, worker_queue_int)
worker_queue_int = worker_queue_int[written:]
except (IOError, OSError) as e:
if e.errno != errno.EAGAIN and e.errno != errno.EPIPE:
raise
if worker_thread_exit and worker_queue.empty() and not worker_queue_int:
return
worker_thread = Thread(target=worker_flush, args=(worker_queue,))
worker_thread.start()
def worker_child_fire(event, d):
global worker_pipe
global worker_pipe_lock
data = b"<event>" + pickle.dumps(event) + b"</event>"
try:
worker_pipe_lock.acquire()
while(len(data)):
written = worker_pipe.write(data)
data = data[written:]
worker_pipe_lock.release()
except IOError:
sigterm_handler(None, None)
raise
bb.event.worker_fire = worker_fire
lf = None
#lf = open("/tmp/workercommandlog", "w+")
def workerlog_write(msg):
if lf:
lf.write(msg)
lf.flush()
def sigterm_handler(signum, frame):
signal.signal(signal.SIGTERM, signal.SIG_DFL)
os.killpg(0, signal.SIGTERM)
sys.exit()
def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskhash, unihash, appends, taskdepdata, extraconfigdata, quieterrors=False, dry_run_exec=False):
# We need to setup the environment BEFORE the fork, since
# a fork() or exec*() activates PSEUDO...
envbackup = {}
fakeroot = False
fakeenv = {}
umask = None
taskdep = workerdata["taskdeps"][fn]
if 'umask' in taskdep and taskname in taskdep['umask']:
umask = taskdep['umask'][taskname]
elif workerdata["umask"]:
umask = workerdata["umask"]
if umask:
# umask might come in as a number or text string..
try:
umask = int(umask, 8)
except TypeError:
pass
dry_run = cfg.dry_run or dry_run_exec
# We can't use the fakeroot environment in a dry run as it possibly hasn't been built
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
fakeroot = True
envvars = (workerdata["fakerootenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
os.environ[key] = value
fakeenv[key] = value
fakedirs = (workerdata["fakerootdirs"][fn] or "").split()
for p in fakedirs:
bb.utils.mkdirhier(p)
logger.debug2('Running %s:%s under fakeroot, fakedirs: %s' %
(fn, taskname, ', '.join(fakedirs)))
else:
envvars = (workerdata["fakerootnoenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
os.environ[key] = value
fakeenv[key] = value
sys.stdout.flush()
sys.stderr.flush()
try:
pipein, pipeout = os.pipe()
pipein = os.fdopen(pipein, 'rb', 4096)
pipeout = os.fdopen(pipeout, 'wb', 0)
pid = os.fork()
except OSError as e:
logger.critical("fork failed: %d (%s)" % (e.errno, e.strerror))
sys.exit(1)
if pid == 0:
def child():
global worker_pipe
global worker_pipe_lock
pipein.close()
bb.utils.signal_on_parent_exit("SIGTERM")
# Save out the PID so that the event can include it the
# events
bb.event.worker_pid = os.getpid()
bb.event.worker_fire = worker_child_fire
worker_pipe = pipeout
worker_pipe_lock = Lock()
# Make the child the process group leader and ensure no
# child process will be controlled by the current terminal
# This ensures signals sent to the controlling terminal like Ctrl+C
# don't stop the child processes.
os.setsid()
signal.signal(signal.SIGTERM, sigterm_handler)
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, sigterm_handler)
# No stdin
newsi = os.open(os.devnull, os.O_RDWR)
os.dup2(newsi, sys.stdin.fileno())
if umask:
os.umask(umask)
try:
bb_cache = bb.cache.NoCache(databuilder)
(realfn, virtual, mc) = bb.cache.virtualfn2realfn(fn)
the_data = databuilder.mcdata[mc]
the_data.setVar("BB_WORKERCONTEXT", "1")
the_data.setVar("BB_TASKDEPDATA", taskdepdata)
if cfg.limited_deps:
the_data.setVar("BB_LIMITEDDEPS", "1")
the_data.setVar("BUILDNAME", workerdata["buildname"])
the_data.setVar("DATE", workerdata["date"])
the_data.setVar("TIME", workerdata["time"])
for varname, value in extraconfigdata.items():
the_data.setVar(varname, value)
bb.parse.siggen.set_taskdata(workerdata["sigdata"])
if "newhashes" in workerdata:
bb.parse.siggen.set_taskhashes(workerdata["newhashes"])
ret = 0
the_data = bb_cache.loadDataFull(fn, appends)
the_data.setVar('BB_TASKHASH', taskhash)
the_data.setVar('BB_UNIHASH', unihash)
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN"), taskname.replace("do_", "")))
# exported_vars() returns a generator which *cannot* be passed to os.environ.update()
# successfully. We also need to unset anything from the environment which shouldn't be there
exports = bb.data.exported_vars(the_data)
bb.utils.empty_environment()
for e, v in exports:
os.environ[e] = v
for e in fakeenv:
os.environ[e] = fakeenv[e]
the_data.setVar(e, fakeenv[e])
the_data.setVarFlag(e, 'export', "1")
task_exports = the_data.getVarFlag(taskname, 'exports')
if task_exports:
for e in task_exports.split():
the_data.setVarFlag(e, 'export', '1')
v = the_data.getVar(e)
if v is not None:
os.environ[e] = v
if quieterrors:
the_data.setVarFlag(taskname, "quieterrors", "1")
except Exception:
if not quieterrors:
logger.critical(traceback.format_exc())
os._exit(1)
try:
if dry_run:
return 0
try:
ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
finally:
if fakeroot:
fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
return ret
except:
os._exit(1)
if not profiling:
os._exit(child())
else:
profname = "profile-%s.log" % (fn.replace("/", "-") + "-" + taskname)
prof = profile.Profile()
try:
ret = profile.Profile.runcall(prof, child)
finally:
prof.dump_stats(profname)
bb.utils.process_profilelog(profname)
os._exit(ret)
else:
for key, value in iter(envbackup.items()):
if value is None:
del os.environ[key]
else:
os.environ[key] = value
return pid, pipein, pipeout
class runQueueWorkerPipe():
"""
Abstraction for a pipe between a worker thread and the worker server
"""
def __init__(self, pipein, pipeout):
self.input = pipein
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
self.queue = b""
def read(self):
start = len(self.queue)
try:
self.queue = self.queue + (self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
end = len(self.queue)
index = self.queue.find(b"</event>")
while index != -1:
msg = self.queue[:index+8]
assert msg.startswith(b"<event>") and msg.count(b"<event>") == 1
worker_fire_prepickled(msg)
self.queue = self.queue[index+8:]
index = self.queue.find(b"</event>")
return (end > start)
def close(self):
while self.read():
continue
if len(self.queue) > 0:
print("Warning, worker child left partial message: %s" % self.queue)
self.input.close()
normalexit = False
class BitbakeWorker(object):
def __init__(self, din):
self.input = din
bb.utils.nonblockingfd(self.input)
self.queue = b""
self.cookercfg = None
self.databuilder = None
self.data = None
self.extraconfigdata = None
self.build_pids = {}
self.build_pipes = {}
signal.signal(signal.SIGTERM, self.sigterm_exception)
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, self.sigterm_exception)
if "beef" in sys.argv[1]:
bb.utils.set_process_name("Worker (Fakeroot)")
else:
bb.utils.set_process_name("Worker")
def sigterm_exception(self, signum, stackframe):
if signum == signal.SIGTERM:
bb.warn("Worker received SIGTERM, shutting down...")
elif signum == signal.SIGHUP:
bb.warn("Worker received SIGHUP, shutting down...")
self.handle_finishnow(None)
signal.signal(signal.SIGTERM, signal.SIG_DFL)
os.kill(os.getpid(), signal.SIGTERM)
def serve(self):
while True:
(ready, _, _) = select.select([self.input] + [i.input for i in self.build_pipes.values()], [] , [], 1)
if self.input in ready:
try:
r = self.input.read()
if len(r) == 0:
# EOF on pipe, server must have terminated
self.sigterm_exception(signal.SIGTERM, None)
self.queue = self.queue + r
except (OSError, IOError):
pass
if len(self.queue):
self.handle_item(b"cookerconfig", self.handle_cookercfg)
self.handle_item(b"extraconfigdata", self.handle_extraconfigdata)
self.handle_item(b"workerdata", self.handle_workerdata)
self.handle_item(b"newtaskhashes", self.handle_newtaskhashes)
self.handle_item(b"runtask", self.handle_runtask)
self.handle_item(b"finishnow", self.handle_finishnow)
self.handle_item(b"ping", self.handle_ping)
self.handle_item(b"quit", self.handle_quit)
for pipe in self.build_pipes:
if self.build_pipes[pipe].input in ready:
self.build_pipes[pipe].read()
if len(self.build_pids):
while self.process_waitpid():
continue
def handle_item(self, item, func):
if self.queue.startswith(b"<" + item + b">"):
index = self.queue.find(b"</" + item + b">")
while index != -1:
try:
func(self.queue[(len(item) + 2):index])
except pickle.UnpicklingError:
workerlog_write("Unable to unpickle data: %s\n" % ":".join("{:02x}".format(c) for c in self.queue))
raise
self.queue = self.queue[(index + len(item) + 3):]
index = self.queue.find(b"</" + item + b">")
def handle_cookercfg(self, data):
self.cookercfg = pickle.loads(data)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.cookercfg, worker=True)
self.databuilder.parseBaseConfiguration()
self.data = self.databuilder.data
def handle_extraconfigdata(self, data):
self.extraconfigdata = pickle.loads(data)
def handle_workerdata(self, data):
self.workerdata = pickle.loads(data)
bb.build.verboseShellLogging = self.workerdata["build_verbose_shell"]
bb.build.verboseStdoutLogging = self.workerdata["build_verbose_stdout"]
bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
for mc in self.databuilder.mcdata:
self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])
self.databuilder.mcdata[mc].setVar("BB_HASHSERVE", self.workerdata["hashservaddr"])
def handle_newtaskhashes(self, data):
self.workerdata["newhashes"] = pickle.loads(data)
def handle_ping(self, _):
workerlog_write("Handling ping\n")
logger.warning("Pong from bitbake-worker!")
def handle_quit(self, data):
workerlog_write("Handling quit\n")
global normalexit
normalexit = True
sys.exit(0)
def handle_runtask(self, data):
fn, task, taskname, taskhash, unihash, quieterrors, appends, taskdepdata, dry_run_exec = pickle.loads(data)
workerlog_write("Handling runtask %s %s %s\n" % (task, fn, taskname))
pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, taskhash, unihash, appends, taskdepdata, self.extraconfigdata, quieterrors, dry_run_exec)
self.build_pids[pid] = task
self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout)
def process_waitpid(self):
"""
Return none is there are no processes awaiting result collection, otherwise
collect the process exit codes and close the information pipe.
"""
try:
pid, status = os.waitpid(-1, os.WNOHANG)
if pid == 0 or os.WIFSTOPPED(status):
return False
except OSError:
return False
workerlog_write("Exit code of %s for pid %s\n" % (status, pid))
if os.WIFEXITED(status):
status = os.WEXITSTATUS(status)
elif os.WIFSIGNALED(status):
# Per shell conventions for $?, when a process exits due to
# a signal, we return an exit code of 128 + SIGNUM
status = 128 + os.WTERMSIG(status)
task = self.build_pids[pid]
del self.build_pids[pid]
self.build_pipes[pid].close()
del self.build_pipes[pid]
worker_fire_prepickled(b"<exitcode>" + pickle.dumps((task, status)) + b"</exitcode>")
return True
def handle_finishnow(self, _):
if self.build_pids:
logger.info("Sending SIGTERM to remaining %s tasks", len(self.build_pids))
for k, v in iter(self.build_pids.items()):
try:
os.kill(-k, signal.SIGTERM)
os.waitpid(-1, 0)
except:
pass
for pipe in self.build_pipes:
self.build_pipes[pipe].read()
try:
worker = BitbakeWorker(os.fdopen(sys.stdin.fileno(), 'rb'))
if not profiling:
worker.serve()
else:
profname = "profile-worker.log"
prof = profile.Profile()
try:
profile.Profile.runcall(prof, worker.serve)
finally:
prof.dump_stats(profname)
bb.utils.process_profilelog(profname)
except BaseException as e:
if not normalexit:
import traceback
sys.stderr.write(traceback.format_exc())
sys.stderr.write(str(e))
finally:
worker_thread_exit = True
worker_thread.join()
workerlog_write("exiting")
if not normalexit:
sys.exit(1)
sys.exit(0)

171
bitbake/bin/git-make-shallow Executable file
View File

@@ -0,0 +1,171 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""git-make-shallow: make the current git repository shallow
Remove the history of the specified revisions, then optionally filter the
available refs to those specified.
"""
import argparse
import collections
import errno
import itertools
import os
import subprocess
import sys
import warnings
warnings.simplefilter("default")
version = 1.0
def main():
if sys.version_info < (3, 4, 0):
sys.exit('Python 3.4 or greater is required')
git_dir = check_output(['git', 'rev-parse', '--git-dir']).rstrip()
shallow_file = os.path.join(git_dir, 'shallow')
if os.path.exists(shallow_file):
try:
check_output(['git', 'fetch', '--unshallow'])
except subprocess.CalledProcessError:
try:
os.unlink(shallow_file)
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
args = process_args()
revs = check_output(['git', 'rev-list'] + args.revisions).splitlines()
make_shallow(shallow_file, args.revisions, args.refs)
ref_revs = check_output(['git', 'rev-list'] + args.refs).splitlines()
remaining_history = set(revs) & set(ref_revs)
for rev in remaining_history:
if check_output(['git', 'rev-parse', '{}^@'.format(rev)]):
sys.exit('Error: %s was not made shallow' % rev)
filter_refs(args.refs)
if args.shrink:
shrink_repo(git_dir)
subprocess.check_call(['git', 'fsck', '--unreachable'])
def process_args():
# TODO: add argument to automatically keep local-only refs, since they
# can't be easily restored with a git fetch.
parser = argparse.ArgumentParser(description='Remove the history of the specified revisions, then optionally filter the available refs to those specified.')
parser.add_argument('--ref', '-r', metavar='REF', action='append', dest='refs', help='remove all but the specified refs (cumulative)')
parser.add_argument('--shrink', '-s', action='store_true', help='shrink the git repository by repacking and pruning')
parser.add_argument('revisions', metavar='REVISION', nargs='+', help='a git revision/commit')
if len(sys.argv) < 2:
parser.print_help()
sys.exit(2)
args = parser.parse_args()
if args.refs:
args.refs = check_output(['git', 'rev-parse', '--symbolic-full-name'] + args.refs).splitlines()
else:
args.refs = get_all_refs(lambda r, t, tt: t == 'commit' or tt == 'commit')
args.refs = list(filter(lambda r: not r.endswith('/HEAD'), args.refs))
args.revisions = check_output(['git', 'rev-parse'] + ['%s^{}' % i for i in args.revisions]).splitlines()
return args
def check_output(cmd, input=None):
return subprocess.check_output(cmd, universal_newlines=True, input=input)
def make_shallow(shallow_file, revisions, refs):
"""Remove the history of the specified revisions."""
for rev in follow_history_intersections(revisions, refs):
print("Processing %s" % rev)
with open(shallow_file, 'a') as f:
f.write(rev + '\n')
def get_all_refs(ref_filter=None):
"""Return all the existing refs in this repository, optionally filtering the refs."""
ref_output = check_output(['git', 'for-each-ref', '--format=%(refname)\t%(objecttype)\t%(*objecttype)'])
ref_split = [tuple(iter_extend(l.rsplit('\t'), 3)) for l in ref_output.splitlines()]
if ref_filter:
ref_split = (e for e in ref_split if ref_filter(*e))
refs = [r[0] for r in ref_split]
return refs
def iter_extend(iterable, length, obj=None):
"""Ensure that iterable is the specified length by extending with obj."""
return itertools.islice(itertools.chain(iterable, itertools.repeat(obj)), length)
def filter_refs(refs):
"""Remove all but the specified refs from the git repository."""
all_refs = get_all_refs()
to_remove = set(all_refs) - set(refs)
if to_remove:
check_output(['xargs', '-0', '-n', '1', 'git', 'update-ref', '-d', '--no-deref'],
input=''.join(l + '\0' for l in to_remove))
def follow_history_intersections(revisions, refs):
"""Determine all the points where the history of the specified revisions intersects the specified refs."""
queue = collections.deque(revisions)
seen = set()
for rev in iter_except(queue.popleft, IndexError):
if rev in seen:
continue
parents = check_output(['git', 'rev-parse', '%s^@' % rev]).splitlines()
yield rev
seen.add(rev)
if not parents:
continue
check_refs = check_output(['git', 'merge-base', '--independent'] + sorted(refs)).splitlines()
for parent in parents:
for ref in check_refs:
print("Checking %s vs %s" % (parent, ref))
try:
merge_base = check_output(['git', 'merge-base', parent, ref]).rstrip()
except subprocess.CalledProcessError:
continue
else:
queue.append(merge_base)
def iter_except(func, exception, start=None):
"""Yield a function repeatedly until it raises an exception."""
try:
if start is not None:
yield start()
while True:
yield func()
except exception:
pass
def shrink_repo(git_dir):
"""Shrink the newly shallow repository, removing the unreachable objects."""
subprocess.check_call(['git', 'reflog', 'expire', '--expire-unreachable=now', '--all'])
subprocess.check_call(['git', 'repack', '-ad'])
try:
os.unlink(os.path.join(git_dir, 'objects', 'info', 'alternates'))
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
subprocess.check_call(['git', 'prune', '--expire', 'now'])
if __name__ == '__main__':
main()

324
bitbake/bin/toaster Executable file
View File

@@ -0,0 +1,324 @@
#!/bin/echo ERROR: This script needs to be sourced. Please run as .
# toaster - shell script to start Toaster
# Copyright (C) 2013-2015 Intel Corp.
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
HELP="
Usage 1: source toaster start|stop [webport=<address:port>] [noweb] [nobuild] [toasterdir]
Optional arguments:
[nobuild] Setup the environment for capturing builds with toaster but disable managed builds
[noweb] Setup the environment for capturing builds with toaster but don't start the web server
[webport] Set the development server (default: localhost:8000)
[toasterdir] Set absolute path to be used as TOASTER_DIR (default: BUILDDIR/../)
Usage 2: source toaster manage [createsuperuser|lsupdates|migrate|makemigrations|checksettings|collectstatic|...]
"
custom_extention()
{
custom_extension=$BBBASEDIR/lib/toaster/orm/fixtures/custom_toaster_append.sh
if [ -f $custom_extension ] ; then
$custom_extension $*
fi
}
databaseCheck()
{
retval=0
# you can always add a superuser later via
# ../bitbake/lib/toaster/manage.py createsuperuser --username=<ME>
$MANAGE migrate --noinput || retval=1
if [ $retval -eq 1 ]; then
echo "Failed migrations, aborting system start" 1>&2
return $retval
fi
# Make sure that checksettings can pick up any value for TEMPLATECONF
export TEMPLATECONF
$MANAGE checksettings --traceback || retval=1
if [ $retval -eq 1 ]; then
printf "\nError while checking settings; aborting\n"
return $retval
fi
return $retval
}
webserverKillAll()
{
local pidfile
if [ -f ${BUILDDIR}/.toastermain.pid ] ; then
custom_extention web_stop_postpend
else
custom_extention noweb_stop_postpend
fi
for pidfile in ${BUILDDIR}/.toastermain.pid ${BUILDDIR}/.runbuilds.pid; do
if [ -f ${pidfile} ]; then
pid=`cat ${pidfile}`
while kill -0 $pid 2>/dev/null; do
kill -SIGTERM $pid 2>/dev/null
sleep 1
done
rm ${pidfile}
fi
done
}
webserverStartAll()
{
# do not start if toastermain points to a valid process
if ! cat "${BUILDDIR}/.toastermain.pid" 2>/dev/null | xargs -I{} kill -0 {} ; then
retval=1
rm "${BUILDDIR}/.toastermain.pid"
fi
retval=0
# check the database
databaseCheck || return 1
echo "Starting webserver..."
$MANAGE runserver --noreload "$ADDR_PORT" \
</dev/null >>${BUILDDIR}/toaster_web.log 2>&1 \
& echo $! >${BUILDDIR}/.toastermain.pid
sleep 1
if ! cat "${BUILDDIR}/.toastermain.pid" | xargs -I{} kill -0 {} ; then
retval=1
rm "${BUILDDIR}/.toastermain.pid"
else
echo "Toaster development webserver started at http://$ADDR_PORT"
echo -e "\nYou can now run 'bitbake <target>' on the command line and monitor your build in Toaster.\nYou can also use a Toaster project to configure and run a build.\n"
custom_extention web_start_postpend $ADDR_PORT
fi
return $retval
}
INSTOPSYSTEM=0
# define the stop command
stop_system()
{
# prevent reentry
if [ $INSTOPSYSTEM -eq 1 ]; then return; fi
INSTOPSYSTEM=1
webserverKillAll
# unset exported variables
unset TOASTER_DIR
unset BITBAKE_UI
unset BBBASEDIR
trap - SIGHUP
#trap - SIGCHLD
INSTOPSYSTEM=0
}
verify_prereq() {
# Verify Django version
reqfile=$(python3 -c "import os; print(os.path.realpath('$BBBASEDIR/toaster-requirements.txt'))")
exp='s/Django\([><=]\+\)\([^,]\+\),\([><=]\+\)\(.\+\)/'
# expand version parts to 2 digits to support 1.10.x > 1.8
# (note:helper functions hard to insert in-line)
exp=$exp'import sys,django;'
exp=$exp'version=["%02d" % int(n) for n in django.get_version().split(".")];'
exp=$exp'vmin=["%02d" % int(n) for n in "\2".split(".")];'
exp=$exp'vmax=["%02d" % int(n) for n in "\4".split(".")];'
exp=$exp'sys.exit(not (version \1 vmin and version \3 vmax))'
exp=$exp'/p'
if ! sed -n "$exp" $reqfile | python3 - ; then
req=`grep ^Django $reqfile`
echo "This program needs $req"
echo "Please install with pip3 install -r $reqfile"
return 2
fi
return 0
}
# read command line parameters
if [ -n "$BASH_SOURCE" ] ; then
TOASTER=${BASH_SOURCE}
elif [ -n "$ZSH_NAME" ] ; then
TOASTER=${(%):-%x}
else
TOASTER=$0
fi
export BBBASEDIR=`dirname $TOASTER`/..
MANAGE="python3 $BBBASEDIR/lib/toaster/manage.py"
if [ -z "$OE_ROOT" ]; then
OE_ROOT=`dirname $TOASTER`/../..
fi
# this is the configuraton file we are using for toaster
# we are using the same logic that oe-setup-builddir uses
# (based on TEMPLATECONF and .templateconf) to determine
# which toasterconf.json to use.
# note: There are a number of relative path assumptions
# in the local layers that currently make using an arbitrary
# toasterconf.json difficult.
. $OE_ROOT/.templateconf
if [ -n "$TEMPLATECONF" ]; then
if [ ! -d "$TEMPLATECONF" ]; then
# Allow TEMPLATECONF=meta-xyz/conf as a shortcut
if [ -d "$OE_ROOT/$TEMPLATECONF" ]; then
TEMPLATECONF="$OE_ROOT/$TEMPLATECONF"
fi
fi
fi
unset OE_ROOT
WEBSERVER=1
export TOASTER_BUILDSERVER=1
ADDR_PORT="localhost:8000"
TOASTERDIR=`dirname $BUILDDIR`
unset CMD
for param in $*; do
case $param in
noweb )
WEBSERVER=0
;;
nobuild )
TOASTER_BUILDSERVER=0
;;
start )
CMD=$param
;;
stop )
CMD=$param
;;
webport=*)
ADDR_PORT="${param#*=}"
# Split the addr:port string
ADDR=`echo $ADDR_PORT | cut -f 1 -d ':'`
PORT=`echo $ADDR_PORT | cut -f 2 -d ':'`
# If only a port has been speified then set address to localhost.
if [ $ADDR = $PORT ] ; then
ADDR_PORT="localhost:$PORT"
fi
;;
toasterdir=*)
TOASTERDIR="${param#*=}"
;;
manage )
CMD=$param
manage_cmd=""
;;
--help)
echo "$HELP"
return 0
;;
*)
if [ "manage" == "$CMD" ] ; then
manage_cmd="$manage_cmd $param"
else
echo "$HELP"
exit 1
fi
;;
esac
done
if [ `basename \"$0\"` = `basename \"${TOASTER}\"` ]; then
echo "Error: This script needs to be sourced. Please run as . $TOASTER"
return 1
fi
verify_prereq || return 1
# We make sure we're running in the current shell and in a good environment
if [ -z "$BUILDDIR" ] || ! which bitbake >/dev/null 2>&1 ; then
echo "Error: Build environment is not setup or bitbake is not in path." 1>&2
return 2
fi
# this defines the dir toaster will use for
# 1) clones of layers (in _toaster_clones )
# 2) the build dir (in build)
# 3) the sqlite db if that is being used.
# 4) pid's we need to clean up on exit/shutdown
export TOASTER_DIR=$TOASTERDIR
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE TOASTER_DIR"
# Determine the action. If specified by arguments, fine, if not, toggle it
if [ "$CMD" = "start" ] ; then
if [ -n "$BBSERVER" ]; then
echo " Toaster is already running. Exiting..."
return 1
fi
elif [ "$CMD" = "" ]; then
echo "No command specified"
echo "$HELP"
return 1
fi
echo "The system will $CMD."
# Execute the commands
custom_extention toaster_prepend $CMD $ADDR_PORT
case $CMD in
start )
# check if addr:port is not in use
if [ "$CMD" == 'start' ]; then
if [ $WEBSERVER -gt 0 ]; then
$MANAGE checksocket "$ADDR_PORT" || return 1
fi
fi
# Create configuration file
conf=${BUILDDIR}/conf/local.conf
line='INHERIT+="toaster buildhistory"'
grep -q "$line" $conf || echo $line >> $conf
if [ $WEBSERVER -eq 0 ] ; then
# Do not update the database for "noweb" unless
# it does not yet exist
if [ ! -f "$TOASTER_DIR/toaster.sqlite" ] ; then
if ! databaseCheck; then
echo "Failed ${CMD}."
return 4
fi
fi
custom_extention noweb_start_postpend $ADDR_PORT
fi
if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then
echo "Failed ${CMD}."
return 4
fi
export BITBAKE_UI='toasterui'
if [ $TOASTER_BUILDSERVER -eq 1 ] ; then
$MANAGE runbuilds \
</dev/null >>${BUILDDIR}/toaster_runbuilds.log 2>&1 \
& echo $! >${BUILDDIR}/.runbuilds.pid
else
echo "Toaster build server not started."
fi
# set fail safe stop system on terminal exit
trap stop_system SIGHUP
echo "Successful ${CMD}."
custom_extention toaster_postpend $CMD $ADDR_PORT
return 0
;;
stop )
stop_system
echo "Successful ${CMD}."
;;
manage )
cd $BBBASEDIR/lib/toaster
$MANAGE $manage_cmd
;;
esac
custom_extention toaster_postpend $CMD $ADDR_PORT

115
bitbake/bin/toaster-eventreplay Executable file
View File

@@ -0,0 +1,115 @@
#!/usr/bin/env python3
#
# Copyright (C) 2014 Alex Damian
#
# SPDX-License-Identifier: GPL-2.0-only
#
# This file re-uses code spread throughout other Bitbake source files.
# As such, all other copyrights belong to their own right holders.
#
"""
This command takes a filename as a single parameter. The filename is read
as a build eventlog, and the ToasterUI is used to process events in the file
and log data in the database
"""
import os
import sys
import json
import pickle
import codecs
import warnings
warnings.simplefilter("default")
from collections import namedtuple
# mangle syspath to allow easy import of modules
from os.path import join, dirname, abspath
sys.path.insert(0, join(dirname(dirname(abspath(__file__))), 'lib'))
import bb.cooker
from bb.ui import toasterui
class EventPlayer:
"""Emulate a connection to a bitbake server."""
def __init__(self, eventfile, variables):
self.eventfile = eventfile
self.variables = variables
self.eventmask = []
def waitEvent(self, _timeout):
"""Read event from the file."""
line = self.eventfile.readline().strip()
if not line:
return
try:
event_str = json.loads(line)['vars'].encode('utf-8')
event = pickle.loads(codecs.decode(event_str, 'base64'))
event_name = "%s.%s" % (event.__module__, event.__class__.__name__)
if event_name not in self.eventmask:
return
return event
except ValueError as err:
print("Failed loading ", line)
raise err
def runCommand(self, command_line):
"""Emulate running a command on the server."""
name = command_line[0]
if name == "getVariable":
var_name = command_line[1]
variable = self.variables.get(var_name)
if variable:
return variable['v'], None
return None, "Missing variable %s" % var_name
elif name == "getAllKeysWithFlags":
dump = {}
flaglist = command_line[1]
for key, val in self.variables.items():
try:
if not key.startswith("__"):
dump[key] = {
'v': val['v'],
'history' : val['history'],
}
for flag in flaglist:
dump[key][flag] = val[flag]
except Exception as err:
print(err)
return (dump, None)
elif name == 'setEventMask':
self.eventmask = command_line[-1]
return True, None
else:
raise Exception("Command %s not implemented" % command_line[0])
def getEventHandle(self):
"""
This method is called by toasterui.
The return value is passed to self.runCommand but not used there.
"""
pass
def main(argv):
with open(argv[-1]) as eventfile:
# load variables from the first line
variables = json.loads(eventfile.readline().strip())['allvariables']
params = namedtuple('ConfigParams', ['observe_only'])(True)
player = EventPlayer(eventfile, variables)
return toasterui.main(player, player, params)
# run toaster ui on our mock bitbake class
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: %s <event file>" % os.path.basename(sys.argv[0]))
sys.exit(1)
sys.exit(main(sys.argv))

1
bitbake/contrib/README Normal file
View File

@@ -0,0 +1 @@
This directory is for additional contributed files which may be useful.

View File

@@ -0,0 +1,13 @@
{
"version": 1,
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["BitBake.verbconsole"]
}
}
}

31
bitbake/contrib/bbdev.sh Normal file
View File

@@ -0,0 +1,31 @@
# This is a shell function to be sourced into your shell or placed in your .profile,
# which makes setting things up for BitBake a bit easier.
#
# The author disclaims copyright to the contents of this file and places it in the
# public domain.
bbdev () {
local BBDIR PKGDIR BUILDDIR
if test x"$1" = "x--help"; then echo >&2 "syntax: bbdev [bbdir [pkgdir [builddir]]]"; return 1; fi
if test x"$1" = x; then BBDIR=`pwd`; else BBDIR=$1; fi
if test x"$2" = x; then PKGDIR=`pwd`; else PKGDIR=$2; fi
if test x"$3" = x; then BUILDDIR=`pwd`; else BUILDDIR=$3; fi
BBDIR=`readlink -f $BBDIR`
PKGDIR=`readlink -f $PKGDIR`
BUILDDIR=`readlink -f $BUILDDIR`
if ! (test -d $BBDIR && test -d $PKGDIR && test -d $BUILDDIR); then
echo >&2 "syntax: bbdev [bbdir [pkgdir [builddir]]]"
return 1
fi
PATH=$BBDIR/bin:$PATH
BBPATH=$BBDIR
if test x"$BBDIR" != x"$PKGDIR"; then
BBPATH=$PKGDIR:$BBPATH
fi
if test x"$PKGDIR" != x"$BUILDDIR"; then
BBPATH=$BUILDDIR:$BBPATH
fi
export BBPATH
}

View File

@@ -0,0 +1,89 @@
#! /usr/bin/env python3
#
# Copyright (C) 2020 Joshua Watt <JPEWhacker@gmail.com>
#
# SPDX-License-Identifier: MIT
import argparse
import os
import random
import shutil
import signal
import subprocess
import sys
import time
def try_unlink(path):
try:
os.unlink(path)
except:
pass
def main():
def cleanup():
shutil.rmtree("tmp/cache", ignore_errors=True)
try_unlink("bitbake-cookerdaemon.log")
try_unlink("bitbake.sock")
try_unlink("bitbake.lock")
parser = argparse.ArgumentParser(
description="Bitbake parser torture test",
epilog="""
A torture test for bitbake's parser. Repeatedly interrupts parsing until
bitbake decides to deadlock.
""",
)
args = parser.parse_args()
if not "BUILDDIR" in os.environ:
print(
"'BUILDDIR' not found in the environment. Did you initialize the build environment?"
)
return 1
os.chdir(os.environ["BUILDDIR"])
run_num = 0
while True:
if run_num % 100 == 0:
print("Calibrating wait time...")
cleanup()
start_time = time.monotonic()
r = subprocess.run(["bitbake", "-p"])
max_wait_time = time.monotonic() - start_time
if r.returncode != 0:
print("Calibration run exited with %d" % r.returncode)
return 1
print("Maximum wait time is %f seconds" % max_wait_time)
run_num += 1
wait_time = random.random() * max_wait_time
print("Run #%d" % run_num)
print("Will sleep for %f seconds" % wait_time)
cleanup()
with subprocess.Popen(["bitbake", "-p"]) as proc:
time.sleep(wait_time)
proc.send_signal(signal.SIGINT)
try:
proc.wait(45)
except subprocess.TimeoutExpired:
print("Run #%d: Waited too long. Possible deadlock!" % run_num)
proc.wait()
return 1
if proc.returncode == 0:
print("Exited successfully. Timeout too long?")
else:
print("Exited with %d" % proc.returncode)
if __name__ == "__main__":
sys.exit(main())

83
bitbake/contrib/dump_cache.py Executable file
View File

@@ -0,0 +1,83 @@
#!/usr/bin/env python3
#
# Copyright (C) 2012, 2018 Wind River Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Used for dumping the bb_cache.dat
#
import os
import sys
import argparse
# For importing bb.cache
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../lib'))
from bb.cache import CoreRecipeInfo
import pickle
class DumpCache(object):
def __init__(self):
parser = argparse.ArgumentParser(
description="bb_cache.dat's dumper",
epilog="Use %(prog)s --help to get help")
parser.add_argument("-r", "--recipe",
help="specify the recipe, default: all recipes", action="store")
parser.add_argument("-m", "--members",
help = "specify the member, use comma as separator for multiple ones, default: all members", action="store", default="")
parser.add_argument("-s", "--skip",
help = "skip skipped recipes", action="store_true")
parser.add_argument("cachefile",
help = "specify bb_cache.dat", nargs = 1, action="store", default="")
self.args = parser.parse_args()
def main(self):
with open(self.args.cachefile[0], "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
while True:
try:
key = pickled.load()
val = pickled.load()
except Exception:
break
if isinstance(val, CoreRecipeInfo):
pn = val.pn
if self.args.recipe and self.args.recipe != pn:
continue
if self.args.skip and val.skipped:
continue
if self.args.members:
out = key
for member in self.args.members.split(','):
out += ": %s" % val.__dict__.get(member)
print("%s" % out)
else:
print("%s: %s" % (key, val.__dict__))
elif not self.args.recipe:
print("%s %s" % (key, val))
if __name__ == "__main__":
try:
dump = DumpCache()
ret = dump.main()
except Exception as esc:
ret = 1
import traceback
traceback.print_exc()
sys.exit(ret)

View File

@@ -0,0 +1,19 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2021 Joshua Watt <JPEWhacker@gmail.com>
#
# Dockerfile to build a bitbake hash equivalence server container
#
# From the root of the bitbake repository, run:
#
# docker build -f contrib/hashserv/Dockerfile .
#
FROM alpine:3.13.1
RUN apk add --no-cache python3
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]

View File

@@ -0,0 +1,18 @@
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,24 @@
" Vim filetype detection file
" Language: BitBake
" Author: Ricardo Salveti <rsalveti@rsalveti.net>
" Copyright: Copyright (C) 2008 Ricardo Salveti <rsalveti@rsalveti.net>
" Licence: You may redistribute this under the same terms as Vim itself
"
" This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc
if &compatible || version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
" .bb, .bbappend and .bbclass
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
" .inc
au BufNewFile,BufRead *.inc set filetype=bitbake
" .conf
au BufNewFile,BufRead *.conf
\ if (match(expand("%:p:h"), "conf") > 0) |
\ set filetype=bitbake |
\ endif

View File

@@ -0,0 +1,13 @@
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Don't load another plugin for this buffer
let b:did_ftplugin = 1
let b:undo_ftplugin = "setl cms< sts< sw< et< sua<"
setlocal commentstring=#\ %s
setlocal softtabstop=4 shiftwidth=4 expandtab
setlocal suffixesadd+=.bb,.bbclass

View File

@@ -0,0 +1,343 @@
" Vim indent file
" Language: BitBake
" Copyright: Copyright (C) 2019 Agilent Technologies, Inc.
" Maintainer: Chris Laplante <chris.laplante@agilent.com>
" License: You may redistribute this under the same terms as Vim itself
if exists("b:did_indent")
finish
endif
if exists("*BitbakeIndent")
finish
endif
runtime! indent/sh.vim
unlet b:did_indent
setlocal indentexpr=BitbakeIndent(v:lnum)
setlocal autoindent nolisp
function s:is_bb_python_func_def(lnum)
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return 0
endif
let top = synIDattr(stack[0], "name")
echo top
return synIDattr(stack[0], "name") == "bbPyFuncDef"
endfunction
"""" begin modified from indent/python.vim, upstream commit 7a9bd7c1e0ce1baf5a02daf36eeae3638aa315c7
"""" This copied code is licensed the same as Vim itself.
setlocal indentkeys+=<:>,=elif,=except
let s:keepcpo= &cpo
set cpo&vim
let s:maxoff = 50 " maximum number of lines to look backwards for ()
function GetPythonIndent(lnum)
" If this line is explicitly joined: If the previous line was also joined,
" line it up with that one, otherwise add two 'shiftwidth'
if getline(a:lnum - 1) =~ '\\$'
if a:lnum > 1 && getline(a:lnum - 2) =~ '\\$'
return indent(a:lnum - 1)
endif
return indent(a:lnum - 1) + (exists("g:pyindent_continue") ? eval(g:pyindent_continue) : (shiftwidth() * 2))
endif
" If the start of the line is in a string don't change the indent.
if has('syntax_items')
\ && synIDattr(synID(a:lnum, 1, 1), "name") =~ "String$"
return -1
endif
" Search backwards for the previous non-empty line.
let plnum = prevnonblank(v:lnum - 1)
if plnum == 0
" This is the first non-empty line, use zero indent.
return 0
endif
call cursor(plnum, 1)
" Identing inside parentheses can be very slow, regardless of the searchpair()
" timeout, so let the user disable this feature if he doesn't need it
let disable_parentheses_indenting = get(g:, "pyindent_disable_parentheses_indenting", 0)
if disable_parentheses_indenting == 1
let plindent = indent(plnum)
let plnumstart = plnum
else
" searchpair() can be slow sometimes, limit the time to 150 msec or what is
" put in g:pyindent_searchpair_timeout
let searchpair_stopline = 0
let searchpair_timeout = get(g:, 'pyindent_searchpair_timeout', 150)
" If the previous line is inside parenthesis, use the indent of the starting
" line.
" Trick: use the non-existing "dummy" variable to break out of the loop when
" going too far back.
let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW',
\ "line('.') < " . (plnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if parlnum > 0
" We may have found the opening brace of a BitBake Python task, e.g. 'python do_task {'
" If so, ignore it here - it will be handled later.
if s:is_bb_python_func_def(parlnum)
let parlnum = 0
let plindent = indent(plnum)
let plnumstart = plnum
else
let plindent = indent(parlnum)
let plnumstart = parlnum
endif
else
let plindent = indent(plnum)
let plnumstart = plnum
endif
" When inside parenthesis: If at the first line below the parenthesis add
" two 'shiftwidth', otherwise same as previous line.
" i = (a
" + b
" + c)
call cursor(a:lnum, 1)
let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if p > 0
if s:is_bb_python_func_def(p)
" Handle first non-empty line inside a BB Python task
if p == plnum
return shiftwidth()
endif
" Handle the user actually trying to close a BitBake Python task
let line = getline(a:lnum)
if line =~ '^\s*}'
return -2
endif
" Otherwise ignore the brace
let p = 0
else
if p == plnum
" When the start is inside parenthesis, only indent one 'shiftwidth'.
let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW',
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
\ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
\ . " =~ '\\(Comment\\|Todo\\|String\\)$'",
\ searchpair_stopline, searchpair_timeout)
if pp > 0
return indent(plnum) + (exists("g:pyindent_nested_paren") ? eval(g:pyindent_nested_paren) : shiftwidth())
endif
return indent(plnum) + (exists("g:pyindent_open_paren") ? eval(g:pyindent_open_paren) : (shiftwidth() * 2))
endif
if plnumstart == p
return indent(plnum)
endif
return plindent
endif
endif
endif
" Get the line and remove a trailing comment.
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "\\(Comment\\|Todo\\)$"
let max = col
else
let min = col + 1
endif
endwhile
let pline = strpart(pline, 0, min - 1)
endif
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'
return plindent + shiftwidth()
endif
" If the previous line was a stop-execution statement...
" TODO: utilize this logic to deindent when ending a bbPyDefRegion
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\|bb\.fatal\)\>'
" See if the user has already dedented
if indent(a:lnum) > indent(plnum) - shiftwidth()
" If not, recommend one dedent
return indent(plnum) - shiftwidth()
endif
" Otherwise, trust the user
return -1
endif
" If the current line begins with a keyword that lines up with "try"
if getline(a:lnum) =~ '^\s*\(except\|finally\)\>'
let lnum = a:lnum - 1
while lnum >= 1
if getline(lnum) =~ '^\s*\(try\|except\)\>'
let ind = indent(lnum)
if ind >= indent(a:lnum)
return -1 " indent is already less than this
endif
return ind " line up with previous try or except
endif
let lnum = lnum - 1
endwhile
return -1 " no matching "try"!
endif
" If the current line begins with a header keyword, dedent
if getline(a:lnum) =~ '^\s*\(elif\|else\)\>'
" Unless the previous line was a one-liner
if getline(plnumstart) =~ '^\s*\(for\|if\|try\)\>'
return plindent
endif
" Or the user has already dedented
if indent(a:lnum) <= plindent - shiftwidth()
return -1
endif
return plindent - shiftwidth()
endif
" When after a () construct we probably want to go back to the start line.
" a = (b
" + c)
" here
if parlnum > 0
return plindent
endif
return -1
endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
""" end of stuff from indent/python.vim
let b:did_indent = 1
setlocal indentkeys+=0\"
function BitbakeIndent(lnum)
if !has('syntax_items')
return -1
endif
let stack = synstack(a:lnum, 1)
if len(stack) == 0
return -1
endif
let name = synIDattr(stack[0], "name")
" TODO: support different styles of indentation for assignments. For now,
" we only support like this:
" VAR = " \
" value1 \
" value2 \
" "
"
" i.e. each value indented by shiftwidth(), with the final quote " completely unindented.
if name == "bbVarValue"
" Quote handling is tricky. kernel.bbclass has this line for instance:
" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" " HOSTCPP="${BUILD_CPP}""
" Instead of trying to handle crazy cases like that, just assume that a
" double-quote on a line by itself (following an assignment) means the
" user is closing the assignment, and de-dent.
if getline(a:lnum) =~ '^\s*"$'
return 0
endif
let prevstack = synstack(a:lnum - 1, 1)
if len(prevstack) == 0
return -1
endif
let prevname = synIDattr(prevstack[0], "name")
" Only indent if there was actually a continuation character on
" the previous line, to avoid misleading indentation.
let prevlinelastchar = synIDattr(synID(a:lnum - 1, col([a:lnum - 1, "$"]) - 1, 1), "name")
let prev_continued = prevlinelastchar == "bbContinue"
" Did the previous line introduce an assignment?
if index(["bbVarDef", "bbVarFlagDef"], prevname) != -1
if prev_continued
return shiftwidth()
endif
endif
if !prev_continued
return 0
endif
" Autoindent can take it from here
return -1
endif
if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
let ret = GetPythonIndent(a:lnum)
" Should normally always be indented by at least one shiftwidth; but allow
" return of -1 (defer to autoindent) or -2 (force indent to 0)
if ret == 0
return shiftwidth()
elseif ret == -2
return 0
endif
return ret
endif
" TODO: GetShIndent doesn't detect tasks prepended with 'fakeroot'
" Need to submit a patch upstream to Vim to provide an extension point.
" Unlike the Python indenter, the Sh indenter is way too large to copy and
" modify here.
if name == "bbShFuncRegion"
return GetShIndent()
endif
" TODO:
" + heuristics for de-denting out of a bbPyDefRegion? e.g. when the user
" types an obvious BB keyword like addhandler or addtask, or starts
" writing a shell task. Maybe too hard to implement...
return -1
endfunction

View File

@@ -0,0 +1,88 @@
" Vim plugin file
" Purpose: Create a template for new bb files
" Author: Ricardo Salveti <rsalveti@gmail.com>
" Copyright: Copyright (C) 2008 Ricardo Salveti <rsalveti@gmail.com>
"
" This file is licensed under the MIT license, see COPYING.MIT in
" this source distribution for the terms.
"
" Based on the gentoo-syntax package
"
" Will try to use git to find the user name and email
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
fun! <SID>GetUserName()
let l:user_name = system("git config --get user.name")
if v:shell_error
return "Unknown User"
else
return substitute(l:user_name, "\n", "", "")
endfun
fun! <SID>GetUserEmail()
let l:user_email = system("git config --get user.email")
if v:shell_error
return "unknown@user.org"
else
return substitute(l:user_email, "\n", "", "")
endfun
fun! BBHeader()
let l:current_year = strftime("%Y")
let l:user_name = <SID>GetUserName()
let l:user_email = <SID>GetUserEmail()
0 put ='# Copyright (C) ' . l:current_year .
\ ' ' . l:user_name . ' <' . l:user_email . '>'
put ='# Released under the MIT license (see COPYING.MIT for the terms)'
$
endfun
fun! NewBBTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
" Get the header
call BBHeader()
" New the bb template
put ='SUMMARY = \"\"'
put ='HOMEPAGE = \"\"'
put ='LICENSE = \"\"'
put ='SECTION = \"\"'
put ='DEPENDS = \"\"'
put =''
put ='SRC_URI = \"\"'
" Go to the first place to edit
0
/^SUMMARY =/
exec "normal 2f\""
if paste == 1
set paste
endif
endfun
if !exists("g:bb_create_on_empty")
let g:bb_create_on_empty = 1
endif
" disable in case of vimdiff
if v:progname =~ "vimdiff"
let g:bb_create_on_empty = 0
endif
augroup NewBB
au BufNewFile,BufReadPost *.bb
\ if g:bb_create_on_empty |
\ call NewBBTemplate() |
\ endif
augroup END

View File

@@ -0,0 +1,46 @@
" Vim plugin file
" Purpose: Create a template for new bbappend file
" Author: Joshua Watt <JPEWhacker@gmail.com>
" Copyright: Copyright (C) 2017 Joshua Watt <JPEWhacker@gmail.com>
"
" This file is licensed under the MIT license, see COPYING.MIT in
" this source distribution for the terms.
"
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
fun! NewBBAppendTemplate()
if line2byte(line('$') + 1) != -1
return
endif
let l:paste = &paste
set nopaste
" New bbappend template
0 put ='FILESEXTRAPATHS:prepend := \"${THISDIR}/${PN}:\"'
2
if paste == 1
set paste
endif
endfun
if !exists("g:bb_create_on_empty")
let g:bb_create_on_empty = 1
endif
" disable in case of vimdiff
if v:progname =~ "vimdiff"
let g:bb_create_on_empty = 0
endif
augroup NewBBAppend
au BufNewFile,BufReadPost *.bbappend
\ if g:bb_create_on_empty |
\ call NewBBAppendTemplate() |
\ endif
augroup END

View File

@@ -0,0 +1,129 @@
" Vim syntax file
" Language: BitBake bb/bbclasses/inc
" Author: Chris Larson <kergoth@handhelds.org>
" Ricardo Salveti <rsalveti@rsalveti.net>
" Copyright: Copyright (C) 2004 Chris Larson <kergoth@handhelds.org>
" Copyright (C) 2008 Ricardo Salveti <rsalveti@rsalveti.net>
"
" This file is licensed under the MIT license, see COPYING.MIT in
" this source distribution for the terms.
"
" Syntax highlighting for bb, bbclasses and inc files.
"
" It's an entirely new type, just has specific syntax in shell and python code
if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin")
finish
endif
if exists("b:current_syntax")
finish
endif
syn include @python syntax/python.vim
if exists("b:current_syntax")
unlet b:current_syntax
endif
" BitBake syntax
" Matching case
syn case match
" Indicates the error when nothing is matched
syn match bbUnmatched "."
" Comments
syn cluster bbCommentGroup contains=bbTodo,@Spell
syn keyword bbTodo COMBAK FIXME TODO XXX contained
syn match bbComment "#.*$" contains=@bbCommentGroup
" String helpers
syn match bbQuote +['"]+ contained
syn match bbDelimiter "[(){}=]" contained
syn match bbArrayBrackets "[\[\]]" contained
" BitBake strings
syn match bbContinue "\\$"
syn region bbString matchgroup=bbQuote start=+"+ skip=+\\$+ end=+"+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ end=+'+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
" Vars definition
syn match bbExport "^export" nextgroup=bbIdentifier skipwhite
syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite
syn match bbIdentifier "[a-zA-Z0-9\-_\.\/\+]\+" display contained
syn match bbVarDeref "${[a-zA-Z0-9\-_:\.\/\+]\+}" contained
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)" contained nextgroup=bbVarValue
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+][${}a-zA-Z0-9\-_:\.\/\+]*\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbOverrideOperator,bbVarDeref nextgroup=bbVarEq
syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue
syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python
" Vars metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
" Includes and requires
syn keyword bbInclude inherit include require contained
syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref
syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
" Add taks and similar
syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
" OE Important Functions
syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
" Generic Functions
syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions
syn keyword bbOverrideOperator append prepend remove contained
" BitBake shell metadata
syn include @shell syntax/sh.vim
if exists("b:current_syntax")
unlet b:current_syntax
endif
syn keyword bbShFakeRootFlag fakeroot contained
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_:${}\-\.]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbOverrideOperator,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell
" Python value inside shell functions
syn region shDeref start=+${@+ skip=+\\$+ excludenl end=+}+ contained contains=@python
" BitBake python metadata
syn keyword bbPyFlag python contained
syn match bbPyFuncDef "^\(fakeroot\s*\)\?\(python\)\(\s\+[0-9A-Za-z_:${}\-\.]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbPyFlag,bbFunction,bbOverrideOperator,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python
" BitBake 'def'd python functions
syn keyword bbPyDef def contained
syn region bbPyDefRegion start='^\(def\s\+\)\([0-9A-Za-z_-]\+\)\(\s*(.*)\s*\):\s*$' end='^\(\s\|$\)\@!' contains=@python
" Highlighting Definitions
hi def link bbUnmatched Error
hi def link bbInclude Include
hi def link bbTodo Todo
hi def link bbComment Comment
hi def link bbQuote String
hi def link bbString String
hi def link bbDelimiter Keyword
hi def link bbArrayBrackets Statement
hi def link bbContinue Special
hi def link bbExport Type
hi def link bbExportFlag Type
hi def link bbIdentifier Identifier
hi def link bbVarDeref PreProc
hi def link bbVarDef Identifier
hi def link bbVarValue String
hi def link bbShFakeRootFlag Type
hi def link bbFunction Function
hi def link bbPyFlag Type
hi def link bbPyDef Statement
hi def link bbStatement Statement
hi def link bbStatementRest Identifier
hi def link bbOEFunctions Special
hi def link bbVarPyValue PreProc
hi def link bbOverrideOperator Operator
let b:current_syntax = "bb"

1
bitbake/doc/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
_build/

339
bitbake/doc/COPYING.GPL Normal file
View File

@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

17
bitbake/doc/COPYING.MIT Normal file
View File

@@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.

35
bitbake/doc/Makefile Normal file
View File

@@ -0,0 +1,35 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?= -W --keep-going -j auto
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
DESTDIR = final
ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0)
$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed")
endif
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile clean publish
publish: Makefile html singlehtml
rm -rf $(BUILDDIR)/$(DESTDIR)/
mkdir -p $(BUILDDIR)/$(DESTDIR)/
cp -r $(BUILDDIR)/html/* $(BUILDDIR)/$(DESTDIR)/
cp $(BUILDDIR)/singlehtml/index.html $(BUILDDIR)/$(DESTDIR)/singleindex.html
sed -i -e 's@index.html#@singleindex.html#@g' $(BUILDDIR)/$(DESTDIR)/singleindex.html
clean:
@rm -rf $(BUILDDIR)
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

55
bitbake/doc/README Normal file
View File

@@ -0,0 +1,55 @@
Documentation
=============
This is the directory that contains the BitBake documentation.
Manual Organization
===================
Folders exist for individual manuals as follows:
* bitbake-user-manual - The BitBake User Manual
Each folder is self-contained regarding content and figures.
If you want to find HTML versions of the BitBake manuals on the web,
go to https://www.openembedded.org/wiki/Documentation.
Sphinx
======
The BitBake documentation was migrated from the original DocBook
format to Sphinx based documentation for the Yocto Project 3.2
release.
Additional information related to the Sphinx migration, and guidelines
for developers willing to contribute to the BitBake documentation can
be found in the Yocto Project Documentation README file:
https://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/tree/documentation/README
How to build the Yocto Project documentation
============================================
Sphinx is written in Python. While it might work with Python2, for
obvious reasons, we will only support building the BitBake
documentation with Python3.
Sphinx might be available in your Linux distro packages repositories,
however it is not recommend using distro packages, as they might be
old versions, especially if you are using an LTS version of your
distro. The recommended method to install Sphinx and all required
dependencies is to use the Python Package Index (pip).
To install all required packages run:
$ pip3 install sphinx sphinx_rtd_theme pyyaml
To build the documentation locally, run:
$ cd documentation
$ make -f Makefile.sphinx html
The resulting HTML index page will be _build/html/index.html, and you
can browse your own copy of the locally generated documentation with
your browser.

14
bitbake/doc/_templates/breadcrumbs.html vendored Normal file
View File

@@ -0,0 +1,14 @@
{% extends "!breadcrumbs.html" %}
{% block breadcrumbs %}
<li>
<span class="doctype_switcher_placeholder">{{ doctype or 'single' }}</span>
<span class="version_switcher_placeholder">{{ release }}</span>
</li>
<li> &raquo;</li>
{% for doc in parents %}
<li><a href="{{ doc.link|e }}">{{ doc.title }}</a> &raquo;</li>
{% endfor %}
<li>{{ title }}</li>
{% endblock %}

7
bitbake/doc/_templates/layout.html vendored Normal file
View File

@@ -0,0 +1,7 @@
{% extends "!layout.html" %}
{% block extrabody %}
<div id="outdated-warning" style="text-align: center; background-color: #FFBABA; color: #6A0E0E;">
</div>
{% endblock %}

View File

@@ -0,0 +1,724 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========
Execution
=========
|
The primary purpose for running BitBake is to produce some kind of
output such as a single installable package, a kernel, a software
development kit, or even a full, board-specific bootable Linux image,
complete with bootloader, kernel, and root filesystem. Of course, you
can execute the ``bitbake`` command with options that cause it to
execute single tasks, compile single recipe files, capture or clear
data, or simply return information about the execution environment.
This chapter describes BitBake's execution process from start to finish
when you use it to create an image. The execution process is launched
using the following command form::
$ bitbake target
For information on
the BitBake command and its options, see ":ref:`The BitBake Command
<bitbake-user-manual-command>`" section.
.. note::
Prior to executing BitBake, you should take advantage of available
parallel thread execution on your build host by setting the
:term:`BB_NUMBER_THREADS` variable in
your project's ``local.conf`` configuration file.
A common method to determine this value for your build host is to run
the following::
$ grep processor /proc/cpuinfo
This command returns
the number of processors, which takes into account hyper-threading.
Thus, a quad-core build host with hyper-threading most likely shows
eight processors, which is the value you would then assign to
:term:`BB_NUMBER_THREADS`.
A possibly simpler solution is that some Linux distributions (e.g.
Debian and Ubuntu) provide the ``ncpus`` command.
Parsing the Base Configuration Metadata
=======================================
The first thing BitBake does is parse base configuration metadata. Base
configuration metadata consists of your project's ``bblayers.conf`` file
to determine what layers BitBake needs to recognize, all necessary
``layer.conf`` files (one from each layer), and ``bitbake.conf``. The
data itself is of various types:
- **Recipes:** Details about particular pieces of software.
- **Class Data:** An abstraction of common build information (e.g. how to
build a Linux kernel).
- **Configuration Data:** Machine-specific settings, policy decisions,
and so forth. Configuration data acts as the glue to bind everything
together.
The ``layer.conf`` files are used to construct key variables such as
:term:`BBPATH` and :term:`BBFILES`.
:term:`BBPATH` is used to search for configuration and class files under the
``conf`` and ``classes`` directories, respectively. :term:`BBFILES` is used
to locate both recipe and recipe append files (``.bb`` and
``.bbappend``). If there is no ``bblayers.conf`` file, it is assumed the
user has set the :term:`BBPATH` and :term:`BBFILES` directly in the environment.
Next, the ``bitbake.conf`` file is located using the :term:`BBPATH` variable
that was just constructed. The ``bitbake.conf`` file may also include
other configuration files using the ``include`` or ``require``
directives.
Prior to parsing configuration files, BitBake looks at certain
variables, including:
- :term:`BB_ENV_WHITELIST`
- :term:`BB_ENV_EXTRAWHITE`
- :term:`BB_PRESERVE_ENV`
- :term:`BB_ORIGENV`
- :term:`BITBAKE_UI`
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution. By default, BitBake cleans
the environment variables and provides tight control over the shell
execution environment. However, through the use of these first four
variables, you can apply your control regarding the environment
variables allowed to be used by BitBake in the shell during execution of
tasks. See the
":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Environment`"
section and the information about these variables in the variable
glossary for more information on how they work and on how to use them.
The base configuration metadata is global and therefore affects all
recipes and tasks that are executed.
BitBake first searches the current working directory for an optional
``conf/bblayers.conf`` configuration file. This file is expected to
contain a :term:`BBLAYERS` variable that is a
space-delimited list of 'layer' directories. Recall that if BitBake
cannot find a ``bblayers.conf`` file, then it is assumed the user has
set the :term:`BBPATH` and :term:`BBFILES` variables directly in the
environment.
For each directory (layer) in this list, a ``conf/layer.conf`` file is
located and parsed with the :term:`LAYERDIR` variable
being set to the directory where the layer was found. The idea is these
files automatically set up :term:`BBPATH` and other
variables correctly for a given build directory.
BitBake then expects to find the ``conf/bitbake.conf`` file somewhere in
the user-specified :term:`BBPATH`. That configuration file generally has
include directives to pull in any other metadata such as files specific
to the architecture, the machine, the local environment, and so forth.
Only variable definitions and include directives are allowed in BitBake
``.conf`` files. Some variables directly influence BitBake's behavior.
These variables might have been set from the environment depending on
the environment variables previously mentioned or set in the
configuration files. The ":ref:`bitbake-user-manual/bitbake-user-manual-ref-variables:Variables Glossary`"
chapter presents a full list of
variables.
After parsing configuration files, BitBake uses its rudimentary
inheritance mechanism, which is through class files, to inherit some
standard classes. BitBake parses a class when the inherit directive
responsible for getting that class is encountered.
The ``base.bbclass`` file is always included. Other classes that are
specified in the configuration using the
:term:`INHERIT` variable are also included. BitBake
searches for class files in a ``classes`` subdirectory under the paths
in :term:`BBPATH` in the same way as configuration files.
A good way to get an idea of the configuration files and the class files
used in your execution environment is to run the following BitBake
command::
$ bitbake -e > mybb.log
Examining the top of the ``mybb.log``
shows you the many configuration files and class files used in your
execution environment.
.. note::
You need to be aware of how BitBake parses curly braces. If a recipe
uses a closing curly brace within the function and the character has
no leading spaces, BitBake produces a parsing error. If you use a
pair of curly braces in a shell function, the closing curly brace
must not be located at the start of the line without leading spaces.
Here is an example that causes BitBake to produce a parsing error::
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" at the start of the line causes a parsing error ######
}
EOF
}
Writing the recipe this way avoids the error:
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
usage()
{
echo "test"
###### The following "}" with a leading space at the start of the line avoids the error ######
}
EOF
}
Locating and Parsing Recipes
============================
During the configuration phase, BitBake will have set
:term:`BBFILES`. BitBake now uses it to construct a
list of recipes to parse, along with any append files (``.bbappend``) to
apply. :term:`BBFILES` is a space-separated list of available files and
supports wildcards. An example would be::
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
BitBake parses each
recipe and append file located with :term:`BBFILES` and stores the values of
various variables into the datastore.
.. note::
Append files are applied in the order they are encountered in BBFILES.
For each file, a fresh copy of the base configuration is made, then the
recipe is parsed line by line. Any inherit statements cause BitBake to
find and then parse class files (``.bbclass``) using
:term:`BBPATH` as the search path. Finally, BitBake
parses in order any append files found in :term:`BBFILES`.
One common convention is to use the recipe filename to define pieces of
metadata. For example, in ``bitbake.conf`` the recipe name and version
are used to set the variables :term:`PN` and
:term:`PV`::
PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
In this example, a recipe called "something_1.2.3.bb" would set
:term:`PN` to "something" and :term:`PV` to "1.2.3".
By the time parsing is complete for a recipe, BitBake has a list of
tasks that the recipe defines and a set of data consisting of keys and
values as well as dependency information about the tasks.
BitBake does not need all of this information. It only needs a small
subset of the information to make decisions about the recipe.
Consequently, BitBake caches the values in which it is interested and
does not store the rest of the information. Experience has shown it is
faster to re-parse the metadata than to try and write it out to the disk
and then reload it.
Where possible, subsequent BitBake commands reuse this cache of recipe
information. The validity of this cache is determined by first computing
a checksum of the base configuration data (see
:term:`BB_HASHCONFIG_WHITELIST`) and
then checking if the checksum matches. If that checksum matches what is
in the cache and the recipe and class files have not changed, BitBake is
able to use the cache. BitBake then reloads the cached information about
the recipe instead of reparsing it from scratch.
Recipe file collections exist to allow the user to have multiple
repositories of ``.bb`` files that contain the same exact package. For
example, one could easily use them to make one's own local copy of an
upstream repository, but with custom modifications that one does not
want upstream. Here is an example::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"
.. note::
The layers mechanism is now the preferred method of collecting code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
.. _bb-bitbake-providers:
Providers
=========
Assuming BitBake has been instructed to execute a target and that all
the recipe files have been parsed, BitBake starts to figure out how to
build the target. BitBake looks through the :term:`PROVIDES` list for each
of the recipes. A :term:`PROVIDES` list is the list of names by which the
recipe can be known. Each recipe's :term:`PROVIDES` list is created
implicitly through the recipe's :term:`PN` variable and
explicitly through the recipe's :term:`PROVIDES`
variable, which is optional.
When a recipe uses :term:`PROVIDES`, that recipe's functionality can be
found under an alternative name or names other than the implicit :term:`PN`
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
contained the following::
PROVIDES += "fullkeyboard"
The :term:`PROVIDES`
list for this recipe becomes "keyboard", which is implicit, and
"fullkeyboard", which is explicit. Consequently, the functionality found
in ``keyboard_1.0.bb`` can be found under two different names.
.. _bb-bitbake-preferences:
Preferences
===========
The :term:`PROVIDES` list is only part of the solution for figuring out a
target's recipes. Because targets might have multiple providers, BitBake
needs to prioritize providers by determining provider preferences.
A common example in which a target has multiple providers is
"virtual/kernel", which is on the :term:`PROVIDES` list for each kernel
recipe. Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file::
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
The default :term:`PREFERRED_PROVIDER` is the provider
with the same name as the target. BitBake iterates through each target
it needs to build and resolves them and their dependencies using this
process.
Understanding how providers are chosen is made complicated by the fact
that multiple versions might exist for a given provider. BitBake
defaults to the highest version of a provider. Version comparisons are
made using the same method as Debian. You can use the
:term:`PREFERRED_VERSION` variable to
specify a particular version. You can influence the order by using the
:term:`DEFAULT_PREFERENCE` variable.
By default, files have a preference of "0". Setting
:term:`DEFAULT_PREFERENCE` to "-1" makes the recipe unlikely to be used
unless it is explicitly referenced. Setting :term:`DEFAULT_PREFERENCE` to
"1" makes it likely the recipe is used. :term:`PREFERRED_VERSION` overrides
any :term:`DEFAULT_PREFERENCE` setting. :term:`DEFAULT_PREFERENCE` is often used
to mark newer and more experimental recipe versions until they have
undergone sufficient testing to be considered stable.
When there are multiple "versions" of a given recipe, BitBake defaults
to selecting the most recent version, unless otherwise specified. If the
recipe in question has a
:term:`DEFAULT_PREFERENCE` set lower than
the other recipes (default is 0), then it will not be selected. This
allows the person or persons maintaining the repository of recipe files
to specify their preference for the default selected version.
Additionally, the user can specify their preferred version.
If the first recipe is named ``a_1.1.bb``, then the
:term:`PN` variable will be set to "a", and the
:term:`PV` variable will be set to 1.1.
Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
default. However, if you define the following variable in a ``.conf``
file that BitBake parses, you can change that preference::
PREFERRED_VERSION_a = "1.1"
.. note::
It is common for a recipe to provide two versions -- a stable,
numbered (and preferred) version, and a version that is automatically
checked out from a source code repository that is considered more
"bleeding edge" but can be selected only explicitly.
For example, in the OpenEmbedded codebase, there is a standard,
versioned recipe file for BusyBox, ``busybox_1.22.1.bb``, but there
is also a Git-based version, ``busybox_git.bb``, which explicitly
contains the line ::
DEFAULT_PREFERENCE = "-1"
to ensure that the
numbered, stable version is always preferred unless the developer
selects otherwise.
.. _bb-bitbake-dependencies:
Dependencies
============
Each target BitBake builds consists of multiple tasks such as ``fetch``,
``unpack``, ``patch``, ``configure``, and ``compile``. For best
performance on multi-core systems, BitBake considers each task as an
independent entity with its own set of dependencies.
Dependencies are defined through several variables. You can find
information about variables BitBake uses in the
:doc:`bitbake-user-manual-ref-variables` near the end of this manual. At a
basic level, it is sufficient to know that BitBake uses the
:term:`DEPENDS` and
:term:`RDEPENDS` variables when calculating
dependencies.
For more information on how BitBake handles dependencies, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:Dependencies`
section.
.. _ref-bitbake-tasklist:
The Task List
=============
Based on the generated list of providers and the dependency information,
BitBake can now calculate exactly what tasks it needs to run and in what
order it needs to run them. The
:ref:`bitbake-user-manual/bitbake-user-manual-execution:executing tasks`
section has more information on how BitBake chooses which task to
execute next.
The build now starts with BitBake forking off threads up to the limit
set in the :term:`BB_NUMBER_THREADS`
variable. BitBake continues to fork threads as long as there are tasks
ready to run, those tasks have all their dependencies met, and the
thread threshold has not been exceeded.
It is worth noting that you can greatly speed up the build time by
properly setting the :term:`BB_NUMBER_THREADS` variable.
As each task completes, a timestamp is written to the directory
specified by the :term:`STAMP` variable. On subsequent
runs, BitBake looks in the build directory within ``tmp/stamps`` and
does not rerun tasks that are already completed unless a timestamp is
found to be invalid. Currently, invalid timestamps are only considered
on a per recipe file basis. So, for example, if the configure stamp has
a timestamp greater than the compile timestamp for a given target, then
the compile task would rerun. Running the compile task again, however,
has no effect on other providers that depend on that target.
The exact format of the stamps is partly configurable. In modern
versions of BitBake, a hash is appended to the stamp so that if the
configuration changes, the stamp becomes invalid and the task is
automatically rerun. This hash, or signature used, is governed by the
signature policy that is configured (see the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:checksums (signatures)`
section for information). It is also
possible to append extra metadata to the stamp using the
``[stamp-extra-info]`` task flag. For example, OpenEmbedded uses this
flag to make some tasks machine-specific.
.. note::
Some tasks are marked as "nostamp" tasks. No timestamp file is
created when these tasks are run. Consequently, "nostamp" tasks are
always rerun.
For more information on tasks, see the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:tasks` section.
Executing Tasks
===============
Tasks can be either a shell task or a Python task. For shell tasks,
BitBake writes a shell script to
``${``\ :term:`T`\ ``}/run.do_taskname.pid`` and then
executes the script. The generated shell script contains all the
exported variables, and the shell functions with all variables expanded.
Output from the shell script goes to the file
``${T}/log.do_taskname.pid``. Looking at the expanded shell functions in
the run file and the output in the log files is a useful debugging
technique.
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal. Future versions of BitBake will
write the functions to files similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
The order in which BitBake runs the tasks is controlled by its task
scheduler. It is possible to configure the scheduler and define custom
implementations for specific use cases. For more information, see these
variables that control the behavior:
- :term:`BB_SCHEDULER`
- :term:`BB_SCHEDULERS`
It is possible to have functions run before and after a task's main
function. This is done using the ``[prefuncs]`` and ``[postfuncs]``
flags of the task that lists the functions to run.
.. _checksums:
Checksums (Signatures)
======================
A checksum is a unique signature of a task's inputs. The signature of a
task can be used to determine if a task needs to be run. Because it is a
change in a task's inputs that triggers running the task, BitBake needs
to detect all the inputs to a given task. For shell tasks, this turns
out to be fairly easy because BitBake generates a "run" shell script for
each task and it is possible to create a checksum that gives you a good
idea of when the task's data changes.
To complicate the problem, some things should not be included in the
checksum. First, there is the actual specific build path of a given task
- the working directory. It does not matter if the working directory
changes because it should not affect the output for target packages. The
simplistic approach for excluding the working directory is to set it to
some fixed value and create the checksum for the "run" script. BitBake
goes one step better and uses the
:term:`BB_HASHBASE_WHITELIST` variable
to define a list of variables that should never be included when
generating the signatures.
Another problem results from the "run" scripts containing functions that
might or might not get called. The incremental build solution contains
code that figures out dependencies between shell functions. This code is
used to prune the "run" scripts down to the minimum set, thereby
alleviating this problem and making the "run" scripts much more readable
as a bonus.
So far we have solutions for shell scripts. What about Python tasks? The
same approach applies even though these tasks are more difficult. The
process needs to figure out what variables a Python function accesses
and what functions it calls. Again, the incremental build solution
contains code that first figures out the variable and function
dependencies, and then creates a checksum for the data used as the input
to the task.
Like the working directory case, situations exist where dependencies
should be ignored. For these cases, you can instruct the build process
to ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
This example ensures that the
``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``,
even if it does reference it.
Equally, there are cases where we need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
This example explicitly
adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies. When running in debug mode (i.e. using
``-DDD``), BitBake produces output when it discovers something for which
it cannot figure out dependencies.
Thus far, this section has limited discussion to the direct inputs into
a task. Information based on direct inputs is referred to as the
"basehash" in the code. However, there is still the question of a task's
indirect inputs - the things that were already built and present in the
build directory. The checksum (or signature) for a particular task needs
to add the hashes of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision. However, the
effect is to generate a master checksum that combines the basehash and
the hashes of the task's dependencies.
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced. Within the BitBake
configuration file, we can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes - variables never
included in any checksum. This example uses variables from OpenEmbedded
to help illustrate the concept::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
The previous example excludes the work directory, which is part of
``TMPDIR``.
The rules for deciding which hashes of dependent tasks to include
through dependency chains are more complex and are generally
accomplished with a Python function. The code in
``meta/lib/oe/sstatesig.py`` shows two examples of this and also
illustrates how you can insert your own policy into the system if so
desired. This file defines the two basic signature generators
OpenEmbedded-Core uses: "OEBasic" and "OEBasicHash". By default, there
is a dummy "noop" signature handler enabled in BitBake. This means that
behavior is unchanged from previous versions. ``OE-Core`` uses the
"OEBasicHash" signature handler by default through this setting in the
``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
The "OEBasicHash" :term:`BB_SIGNATURE_HANDLER` is the same as the "OEBasic"
version but adds the task hash to the stamp files. This results in any
metadata change that changes the task hash, automatically causing the
task to be run again. This removes the need to bump
:term:`PR` values, and changes to metadata automatically
ripple across the build.
It is also worth noting that the end result of these signature
generators is to make some dependency and hash information available to
the build. This information includes:
- ``BB_BASEHASH_task-``\ *taskname*: The base hashes for each task in the
recipe.
- ``BB_BASEHASH_``\ *filename:taskname*: The base hashes for each
dependent task.
- :term:`BB_TASKHASH`: The hash of the currently running task.
It is worth noting that BitBake's "-S" option lets you debug BitBake's
processing of signatures. The options passed to -S allow different
debugging modes to be used, either using BitBake's own debug functions
or possibly those defined in the metadata/signature handler itself. The
simplest parameter to pass is "none", which causes a set of signature
information to be written out into ``STAMPS_DIR`` corresponding to the
targets specified. The other currently available parameter is
"printdiff", which causes BitBake to try to establish the closest
signature match it can (e.g. in the sstate cache) and then run
``bitbake-diffsigs`` over the matches to determine the stamps and delta
where these two stamp trees diverge.
.. note::
It is likely that future versions of BitBake will provide other
signature handlers triggered through additional "-S" parameters.
You can find more information on checksum metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Setscene
========
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake the
luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
BitBake needs to have reliable data indicating whether or not an
artifact is compatible. Signatures, described in the previous section,
provide an ideal way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
If an object can be reused, the problem then becomes how to replace a
given task or set of tasks with the pre-built artifact. BitBake solves
the problem with the "setscene" process.
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets. If cached
information is available, BitBake uses this information instead of
running the main tasks.
BitBake first calls the function defined by the
:term:`BB_HASHCHECK_FUNCTION` variable
with a list of tasks and corresponding hashes it wants to build. This
function is designed to be fast and returns a list of the tasks for
which it believes in can obtain artifacts.
Next, for each of the tasks that were returned as possibilities, BitBake
executes a setscene version of the task that the possible artifact
covers. Setscene versions of a task have the string "_setscene" appended
to the task name. So, for example, the task with the name ``xxx`` has a
setscene task named ``xxx_setscene``. The setscene version of the task
executes and provides the necessary artifacts returning either success
or failure.
As previously mentioned, an artifact can cover more than one task. For
example, it is pointless to obtain a compiler if you already have the
compiled binary. To handle this, BitBake calls the
:term:`BB_SETSCENE_DEPVALID` function for
each successful setscene task to know whether or not it needs to obtain
the dependencies of that task.
You can find more information on setscene metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Logging
=======
In addition to the standard command line option to control how verbose
builds are when execute, bitbake also supports user defined
configuration of the `Python
logging <https://docs.python.org/3/library/logging.html>`__ facilities
through the :term:`BB_LOGCONFIG` variable. This
variable defines a json or yaml `logging
configuration <https://docs.python.org/3/library/logging.config.html>`__
that will be intelligently merged into the default configuration. The
logging configuration is merged using the following rules:
- The user defined configuration will completely replace the default
configuration if top level key ``bitbake_merge`` is set to the value
``False``. In this case, all other rules are ignored.
- The user configuration must have a top level ``version`` which must
match the value of the default configuration.
- Any keys defined in the ``handlers``, ``formatters``, or ``filters``,
will be merged into the same section in the default configuration,
with the user specified keys taking replacing a default one if there
is a conflict. In practice, this means that if both the default
configuration and user configuration specify a handler named
``myhandler``, the user defined one will replace the default. To
prevent the user from inadvertently replacing a default handler,
formatter, or filter, all of the default ones are named with a prefix
of "``BitBake.``"
- If a logger is defined by the user with the key ``bitbake_merge`` set
to ``False``, that logger will be completely replaced by user
configuration. In this case, no other rules will apply to that
logger.
- All user defined ``filter`` and ``handlers`` properties for a given
logger will be merged with corresponding properties from the default
logger. For example, if the user configuration adds a filter called
``myFilter`` to the ``BitBake.SigGen``, and the default configuration
adds a filter called ``BitBake.defaultFilter``, both filters will be
applied to the logger
As an example, consider the following user logging configuration file
which logs all Hash Equivalence related messages of VERBOSE or higher to
a file called ``hashequiv.log`` ::
{
"version": 1,
"handlers": {
"autobuilderlog": {
"class": "logging.FileHandler",
"formatter": "logfileFormatter",
"level": "DEBUG",
"filename": "hashequiv.log",
"mode": "w"
}
},
"formatters": {
"logfileFormatter": {
"format": "%(name)s: %(levelname)s: %(message)s"
}
},
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
}
}
}

View File

@@ -0,0 +1,694 @@
.. SPDX-License-Identifier: CC-BY-2.5
=====================
File Download Support
=====================
|
BitBake's fetch module is a standalone piece of library code that deals
with the intricacies of downloading source code and files from remote
systems. Fetching source code is one of the cornerstones of building
software. As such, this module forms an important part of BitBake.
The current fetch module is called "fetch2" and refers to the fact that
it is the second major version of the API. The original version is
obsolete and has been removed from the codebase. Thus, in all cases,
"fetch" refers to "fetch2" in this manual.
The Download (Fetch)
====================
BitBake takes several steps when fetching source code or files. The
fetcher codebase deals with two distinct processes in order: obtaining
the files from somewhere (cached or otherwise) and then unpacking those
files into a specific location and perhaps in a specific way. Getting
and unpacking the files is often optionally followed by patching.
Patching, however, is not covered by this module.
The code to execute the first part of this process, a fetch, looks
something like the following::
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
This code sets up an instance of the fetch class. The instance uses a
space-separated list of URLs from the :term:`SRC_URI`
variable and then calls the ``download`` method to download the files.
The instantiation of the fetch class is usually followed by::
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
This code unpacks the downloaded files to the specified by ``WORKDIR``.
.. note::
For convenience, the naming in these examples matches the variables
used by OpenEmbedded. If you want to see the above code in action,
examine the OpenEmbedded class file ``base.bbclass``
.
The :term:`SRC_URI` and ``WORKDIR`` variables are not hardcoded into the
fetcher, since those fetcher methods can be (and are) called with
different variable names. In OpenEmbedded for example, the shared state
(sstate) code uses the fetch module to fetch the sstate files.
When the ``download()`` method is called, BitBake tries to resolve the
URLs by looking for source files in a specific search order:
- *Pre-mirror Sites:* BitBake first uses pre-mirrors to try and find
source files. These locations are defined using the
:term:`PREMIRRORS` variable.
- *Source URI:* If pre-mirrors fail, BitBake uses the original URL (e.g
from :term:`SRC_URI`).
- *Mirror Sites:* If fetch failures occur, BitBake next uses mirror
locations as defined by the :term:`MIRRORS` variable.
For each URL passed to the fetcher, the fetcher calls the submodule that
handles that particular URL type. This behavior can be the source of
some confusion when you are providing URLs for the :term:`SRC_URI` variable.
Consider the following two URLs::
https://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
In the former case, the URL is passed to the ``wget`` fetcher, which does not
understand "git". Therefore, the latter case is the correct form since the Git
fetcher does know how to use HTTP as a transport.
Here are some examples that show commonly used mirror definitions::
PREMIRRORS ?= "\
bzr://.*/.\* http://somemirror.org/sources/ \\n \
cvs://.*/.\* http://somemirror.org/sources/ \\n \
git://.*/.\* http://somemirror.org/sources/ \\n \
hg://.*/.\* http://somemirror.org/sources/ \\n \
osc://.*/.\* http://somemirror.org/sources/ \\n \
p4://.*/.\* http://somemirror.org/sources/ \\n \
svn://.*/.\* http://somemirror.org/sources/ \\n"
MIRRORS =+ "\
ftp://.*/.\* http://somemirror.org/sources/ \\n \
http://.*/.\* http://somemirror.org/sources/ \\n \
https://.*/.\* http://somemirror.org/sources/ \\n"
It is useful to note that BitBake
supports cross-URLs. It is possible to mirror a Git repository on an
HTTP server as a tarball. This is what the ``git://`` mapping in the
previous example does.
Since network accesses are slow, BitBake maintains a cache of files
downloaded from the network. Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download directory,
which is specified by the :term:`DL_DIR` variable.
File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the :term:`SRC_URI` variable with the
appropriate varflags as follows::
SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"
You can also specify the checksums as
parameters on the :term:`SRC_URI` as shown below::
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
If multiple URIs exist, you can specify the checksums either directly as
in the previous example, or you can name the URLs. The following syntax
shows how you name the URIs::
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
After a file has been downloaded and
has had its checksum checked, a ".done" stamp is placed in :term:`DL_DIR`.
BitBake uses this stamp during subsequent builds to avoid downloading or
comparing a checksum for the file again.
.. note::
It is assumed that local storage is safe from data corruption. If
this were not the case, there would be bigger issues to worry about.
If :term:`BB_STRICT_CHECKSUM` is set, any
download without a checksum triggers an error message. The
:term:`BB_NO_NETWORK` variable can be used to
make any attempted network access a fatal error, which is useful for
checking that mirrors are complete as well as other things.
If :term:`BB_CHECK_SSL_CERTS` is set to ``0`` then SSL certificate checking will
be disabled. This variable defaults to ``1`` so SSL certificates are normally
checked.
.. _bb-the-unpack:
The Unpack
==========
The unpack process usually immediately follows the download. For all
URLs except Git URLs, BitBake uses the common ``unpack`` method.
A number of parameters exist that you can specify within the URL to
govern the behavior of the unpack stage:
- *unpack:* Controls whether the URL components are unpacked. If set to
"1", which is the default, the components are unpacked. If set to
"0", the unpack stage leaves the file alone. This parameter is useful
when you want an archive to be copied in and not be unpacked.
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
The unpack call automatically decompresses and extracts files with ".Z",
".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm". ".srpm", ".deb" and
".bz2" extensions as well as various combinations of tarball extensions.
As mentioned, the Git fetcher has its own unpack method that is
optimized to work with Git trees. Basically, this method works by
cloning the tree into the final directory. The process is completed
using references so that there is only one central copy of the Git
metadata needed.
.. _bb-fetchers:
Fetchers
========
As mentioned earlier, the URL prefix determines which fetcher submodule
BitBake uses. Each submodule can support different URL parameters, which
are described in the following sections.
.. _local-file-fetcher:
Local file fetcher (``file://``)
--------------------------------
This submodule handles URLs that begin with ``file://``. The filename
you specify within the URL can be either an absolute or relative path to
a file. If the filename is relative, the contents of the
:term:`FILESPATH` variable is used in the same way
``PATH`` is used to find executables. If the file cannot be found, it is
assumed that it is available in :term:`DL_DIR` by the
time the ``download()`` method is called.
If you specify a directory, the entire directory is unpacked.
Here are a couple of example URLs, the first relative and the second
absolute::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
.. _http-ftp-fetcher:
HTTP/FTP wget fetcher (``http://``, ``ftp://``, ``https://``)
-------------------------------------------------------------
This fetcher obtains files from web and FTP servers. Internally, the
fetcher uses the wget utility.
The executable and parameters used are specified by the
``FETCHCMD_wget`` variable, which defaults to sensible values. The
fetcher supports a parameter "downloadfilename" that allows the name of
the downloaded file to be specified. Specifying the name of the
downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
Some example URLs are as follows::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
.. note::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
Such URLs should should be modified by replacing semi-colons with '&'
characters::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
In most cases this should work. Treating semi-colons and '&' in
queries identically is recommended by the World Wide Web Consortium
(W3C). Note that due to the nature of the URL, you may have to
specify the name of the downloaded file as well::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
.. _cvs-fetcher:
CVS fetcher (``(cvs://``)
-------------------------
This submodule handles checking out files from the CVS version control
system. You can configure it using a number of different variables:
- :term:`FETCHCMD_cvs <FETCHCMD>`: The name of the executable to use when running
the ``cvs`` command. This name is usually "cvs".
- :term:`SRCDATE`: The date to use when fetching the CVS source code. A
special value of "now" causes the checkout to be updated on every
build.
- :term:`CVSDIR`: Specifies where a temporary
checkout is saved. The location is often ``DL_DIR/cvs``.
- CVS_PROXY_HOST: The name to use as a "proxy=" parameter to the
``cvs`` command.
- CVS_PROXY_PORT: The port number to use as a "proxyport="
parameter to the ``cvs`` command.
As well as the standard username and password URL syntax, you can also
configure the fetcher with various URL parameters:
The supported parameters are as follows:
- *"method":* The protocol over which to communicate with the CVS
server. By default, this protocol is "pserver". If "method" is set to
"ext", BitBake examines the "rsh" parameter and sets ``CVS_RSH``. You
can use "dir" for local directories.
- *"module":* Specifies the module to check out. You must supply this
parameter.
- *"tag":* Describes which CVS TAG should be used for the checkout. By
default, the TAG is empty.
- *"date":* Specifies a date. If no "date" is specified, the
:term:`SRCDATE` of the configuration is used to
checkout a specific date. The special value of "now" causes the
checkout to be updated on every build.
- *"localdir":* Used to rename the module. Effectively, you are
renaming the output directory to which the module is unpacked. You
are forcing the module into a special directory relative to
:term:`CVSDIR`.
- *"rsh":* Used in conjunction with the "method" parameter.
- *"scmdata":* Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep". The tarball is expanded into
the work directory. By default, the CVS metadata is removed.
- *"fullpath":* Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper paths.
- *"norecurse":* Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
- *"port":* The port to which the CVS server connects.
Some example URLs are as follows::
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
.. _svn-fetcher:
Subversion (SVN) Fetcher (``svn://``)
-------------------------------------
This fetcher submodule fetches code from the Subversion source control
system. The executable used is specified by ``FETCHCMD_svn``, which
defaults to "svn". The fetcher's temporary working directory is set by
:term:`SVNDIR`, which is usually ``DL_DIR/svn``.
The supported parameters are as follows:
- *"module":* The name of the svn module to checkout. You must provide
this parameter. You can think of this parameter as the top-level
directory of the repository data you want.
- *"path_spec":* A specific directory in which to checkout the
specified svn module.
- *"protocol":* The protocol to use, which defaults to "svn". If
"protocol" is set to "svn+ssh", the "ssh" parameter is also used.
- *"rev":* The revision of the source code to checkout.
- *"scmdata":* Causes the ".svn" directories to be available during
compile-time when set to "keep". By default, these directories are
removed.
- *"ssh":* An optional parameter used when "protocol" is set to
"svn+ssh". You can use this parameter to specify the ssh program used
by svn.
- *"transportuser":* When required, sets the username for the
transport. By default, this parameter is empty. The transport
username is different than the username used in the main URL, which
is passed to the subversion command.
Following are three examples using svn::
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
.. _git-fetcher:
Git Fetcher (``git://``)
------------------------
This fetcher submodule fetches code from the Git source control system.
The fetcher works by creating a bare clone of the remote into
:term:`GITDIR`, which is usually ``DL_DIR/git2``. This
bare clone is then cloned into the work directory during the unpack
stage when a specific tree is checked out. This is done using alternates
and by reference to minimize the amount of duplicate data on the disk
and make the unpack process fast. The executable used can be set with
``FETCHCMD_git``.
This fetcher supports the following parameters:
- *"protocol":* The protocol used to fetch the files. The default is
"git" when a hostname is set. If a hostname is not set, the Git
protocol is "file". You can also use "http", "https", "ssh" and
"rsync".
- *"nocheckout":* Tells the fetcher to not checkout source code when
unpacking when set to "1". Set this option for the URL where there is
a custom routine to checkout code. The default is "0".
- *"rebaseable":* Indicates that the upstream Git repository can be
rebased. You should set this parameter to "1" if revisions can become
detached from branches. In this case, the source mirror tarball is
done per revision, which has a loss of efficiency. Rebasing the
upstream Git repository could cause the current revision to disappear
from the upstream repository. This option reminds the fetcher to
preserve the local cache carefully for future use. The default value
for this parameter is "0".
- *"nobranch":* Tells the fetcher to not check the SHA validation for
the branch when set to "1". The default is "0". Set this option for
the recipe that refers to the commit that is valid for a tag instead
of the branch.
- *"bareclone":* Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree. Only the
raw Git metadata is provided. This parameter implies the "nocheckout"
parameter as well.
- *"branch":* The branch(es) of the Git tree to clone. If unset, this
is assumed to be "master". The number of branch parameters much match
the number of name parameters.
- *"rev":* The revision to use for the checkout. The default is
"master".
- *"tag":* Specifies a tag to use for the checkout. To correctly
resolve tags, BitBake must access the network. For that reason, tags
are often not used. As far as Git is concerned, the "tag" parameter
behaves effectively the same as the "rev" parameter.
- *"subpath":* Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
- *"destsuffix":* The name of the path in which to place the checkout.
By default, the path is ``git/``.
- *"usehead":* Enables local ``git://`` URLs to use the current branch
HEAD as the revision for use with ``AUTOREV``. The "usehead"
parameter implies no branch and only works when the transfer protocol
is ``file://``.
Here are some example URLs::
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
.. note::
When using ``git`` as the fetcher of the main source code of your software,
``S`` should be set accordingly::
S = "${WORKDIR}/git"
.. note::
Specifying passwords directly in ``git://`` urls is not supported.
There are several reasons: :term:`SRC_URI` is often written out to logs and
other places, and that could easily leak passwords; it is also all too
easy to share metadata without removing passwords. SSH keys, ``~/.netrc``
and ``~/.ssh/config`` files can be used as alternatives.
.. _gitsm-fetcher:
Git Submodule Fetcher (``gitsm://``)
------------------------------------
This fetcher submodule inherits from the :ref:`Git
fetcher<bitbake-user-manual/bitbake-user-manual-fetching:git fetcher
(\`\`git://\`\`)>` and extends that fetcher's behavior by fetching a
repository's submodules. :term:`SRC_URI` is passed to the Git fetcher as
described in the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:git
fetcher (\`\`git://\`\`)` section.
.. note::
You must clean a recipe when switching between '``git://``' and
'``gitsm://``' URLs.
The Git Submodules fetcher is not a complete fetcher implementation.
The fetcher has known issues where it does not use the normal source
mirroring infrastructure properly. Further, the submodule sources it
fetches are not visible to the licensing and source archiving
infrastructures.
.. _clearcase-fetcher:
ClearCase Fetcher (``ccrc://``)
-------------------------------
This fetcher submodule fetches code from a
`ClearCase <http://en.wikipedia.org/wiki/Rational_ClearCase>`__
repository.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` settings. Here is an example::
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
The fetcher uses the ``rcleartool`` or
``cleartool`` remote client, depending on which one is available.
Following are options for the :term:`SRC_URI` statement:
- *vob*: The name, which must include the prepending "/" character,
of the ClearCase VOB. This option is required.
- *module*: The module, which must include the prepending "/"
character, in the selected VOB.
.. note::
The module and vob options are combined to create the load rule in the
view config spec. As an example, consider the vob and module values from
the SRC_URI statement at the start of this section. Combining those values
results in the following::
load /example_vob/example_module
- *proto*: The protocol, which can be either ``http`` or ``https``.
By default, the fetcher creates a configuration specification. If you
want this specification written to an area other than the default, use
the ``CCASE_CUSTOM_CONFIG_SPEC`` variable in your recipe to define where
the specification is written.
.. note::
the SRCREV loses its functionality if you specify this variable. However,
SRCREV is still used to label the archive after a fetch even though it does
not define what is fetched.
Here are a couple of other behaviors worth mentioning:
- When using ``cleartool``, the login of ``cleartool`` is handled by
the system. The login require no special steps.
- In order to use ``rcleartool`` with authenticated users, an
"rcleartool login" is necessary before using the fetcher.
.. _perforce-fetcher:
Perforce Fetcher (``p4://``)
----------------------------
This fetcher submodule fetches code from the
`Perforce <https://www.perforce.com/>`__ source control system. The
executable used is specified by ``FETCHCMD_p4``, which defaults to "p4".
The fetcher's temporary working directory is set by
:term:`P4DIR`, which defaults to "DL_DIR/p4".
The fetcher does not make use of a perforce client, instead it
relies on ``p4 files`` to retrieve a list of
files and ``p4 print`` to transfer the content
of those files locally.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` values. The p4 executable is able to use the
config file defined by your system's ``P4CONFIG`` environment variable
in order to define the Perforce server URL and port, username, and
password if you do not wish to keep those values in a recipe itself. If
you choose not to use ``P4CONFIG``, or to explicitly set variables that
``P4CONFIG`` can contain, you can specify the ``P4PORT`` value, which is
the server's URL and port number, and you can specify a username and
password directly in your recipe within :term:`SRC_URI`.
Here is an example that relies on ``P4CONFIG`` to specify the server URL
and port, username, and password, and fetches the Head Revision::
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
Here is an example that specifies the server URL and port, username, and
password, and fetches a Revision based on a Label::
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
SRCREV = "release-1.0"
PV = "p4-${SRCPV}"
S = "${WORKDIR}/p4"
.. note::
You should always set S to "${WORKDIR}/p4" in your recipe.
By default, the fetcher strips the depot location from the local file paths. In
the above example, the content of ``example-depot/main/source/`` will be placed
in ``${WORKDIR}/p4``. For situations where preserving parts of the remote depot
paths locally is desirable, the fetcher supports two parameters:
- *"module":*
The top-level depot location or directory to fetch. The value of this
parameter can also point to a single file within the depot, in which case
the local file path will include the module path.
- *"remotepath":*
When used with the value "``keep``", the fetcher will mirror the full depot
paths locally for the specified location, even in combination with the
``module`` parameter.
Here is an example use of the the ``module`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/..."
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, including the directory itself. The top-level directory will
be accesible at ``${P4DIR}/source/``.
Here is an example use of the the ``remotepath`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/...;remotepath=keep"
In this case, the content of the top-level directory ``source/`` will be fetched
to ``${P4DIR}``, but the complete depot paths will be mirrored locally. The
top-level directory will be accessible at
``${P4DIR}/example-depot/main/source/``.
.. _repo-fetcher:
Repo Fetcher (``repo://``)
--------------------------
This fetcher submodule fetches code from ``google-repo`` source control
system. The fetcher works by initiating and syncing sources of the
repository into :term:`REPODIR`, which is usually
``${DL_DIR}/repo``.
This fetcher supports the following parameters:
- *"protocol":* Protocol to fetch the repository manifest (default:
git).
- *"branch":* Branch or tag of repository to get (default: master).
- *"manifest":* Name of the manifest file (default: ``default.xml``).
Here are some example URLs::
SRC_URI = "repo://REPOROOT;protocol=git;branch=some_branch;manifest=my_manifest.xml"
SRC_URI = "repo://REPOROOT;protocol=file;branch=some_branch;manifest=my_manifest.xml"
.. _az-fetcher:
Az Fetcher (``az://``)
--------------------------
This submodule fetches data from an
`Azure Storage account <https://docs.microsoft.com/en-us/azure/storage/>`__ ,
it inherits its functionality from the HTTP wget fetcher, but modifies its
behavior to accomodate the usage of a
`Shared Access Signature (SAS) <https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview>`__
for non-public data.
Such functionality is set by the variable:
- :term:`AZ_SAS`: The Azure Storage Shared Access Signature provides secure
delegate access to resources, if this variable is set, the Az Fetcher will
use it when fetching artifacts from the cloud.
You can specify the AZ_SAS variable as shown below::
AZ_SAS = "se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>"
Here is an example URL::
SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"
It can also be used when setting mirrors definitions using the :term:`PREMIRRORS` variable.
Other Fetchers
--------------
Fetch submodules also exist for the following:
- Bazaar (``bzr://``)
- Mercurial (``hg://``)
- npm (``npm://``)
- OSC (``osc://``)
- Secure FTP (``sftp://``)
- Secure Shell (``ssh://``)
- Trees using Git Annex (``gitannex://``)
No documentation currently exists for these lesser used fetcher
submodules. However, you might find the code helpful and readable.
Auto Revisions
==============
We need to document ``AUTOREV`` and :term:`SRCREV_FORMAT` here.

View File

@@ -0,0 +1,415 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
Hello World Example
===================
BitBake Hello World
===================
The simplest example commonly used to demonstrate any new programming
language or tool is the "`Hello
World <http://en.wikipedia.org/wiki/Hello_world_program>`__" example.
This appendix demonstrates, in tutorial form, Hello World within the
context of BitBake. The tutorial describes how to create a new project
and the applicable metadata files necessary to allow BitBake to build
it.
Obtaining BitBake
=================
See the :ref:`bitbake-user-manual/bitbake-user-manual-hello:obtaining bitbake` section for
information on how to obtain BitBake. Once you have the source code on
your machine, the BitBake directory appears as follows::
$ ls -al
total 100
drwxrwxr-x. 9 wmat wmat 4096 Jan 31 13:44 .
drwxrwxr-x. 3 wmat wmat 4096 Feb 4 10:45 ..
-rw-rw-r--. 1 wmat wmat 365 Nov 26 04:55 AUTHORS
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 bin
drwxrwxr-x. 4 wmat wmat 4096 Jan 31 13:44 build
-rw-rw-r--. 1 wmat wmat 16501 Nov 26 04:55 ChangeLog
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 classes
drwxrwxr-x. 2 wmat wmat 4096 Nov 26 04:55 conf
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 contrib
-rw-rw-r--. 1 wmat wmat 17987 Nov 26 04:55 COPYING
drwxrwxr-x. 3 wmat wmat 4096 Nov 26 04:55 doc
-rw-rw-r--. 1 wmat wmat 69 Nov 26 04:55 .gitignore
-rw-rw-r--. 1 wmat wmat 849 Nov 26 04:55 HEADER
drwxrwxr-x. 5 wmat wmat 4096 Jan 31 13:44 lib
-rw-rw-r--. 1 wmat wmat 195 Nov 26 04:55 MANIFEST.in
-rw-rw-r--. 1 wmat wmat 2887 Nov 26 04:55 TODO
At this point, you should have BitBake cloned to a directory that
matches the previous listing except for dates and user names.
Setting Up the BitBake Environment
==================================
First, you need to be sure that you can run BitBake. Set your working
directory to where your local BitBake files are and run the following
command::
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
The console output tells you what version
you are running.
The recommended method to run BitBake is from a directory of your
choice. To be able to run BitBake from any directory, you need to add
the executable binary to your binary to your shell's environment
``PATH`` variable. First, look at your current ``PATH`` variable by
entering the following::
$ echo $PATH
Next, add the directory location
for the BitBake binary to the ``PATH``. Here is an example that adds the
``/home/scott-lenovo/bitbake/bin`` directory to the front of the
``PATH`` variable::
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
You should now be able to enter the ``bitbake`` command from the command
line while working from any directory.
The Hello World Example
=======================
The overall goal of this exercise is to build a complete "Hello World"
example utilizing task and layer concepts. Because this is how modern
projects such as OpenEmbedded and the Yocto Project utilize BitBake, the
example provides an excellent starting point for understanding BitBake.
To help you understand how to use BitBake to build targets, the example
starts with nothing but the ``bitbake`` command, which causes BitBake to
fail and report problems. The example progresses by adding pieces to the
build to eventually conclude with a working, minimal "Hello World"
example.
While every attempt is made to explain what is happening during the
example, the descriptions cannot cover everything. You can find further
information throughout this manual. Also, you can actively participate
in the :oe_lists:`/g/bitbake-devel`
discussion mailing list about the BitBake build tool.
.. note::
This example was inspired by and drew heavily from
`Mailing List post - The BitBake equivalent of "Hello, World!"
<https://www.mail-archive.com/yocto@yoctoproject.org/msg09379.html>`_.
As stated earlier, the goal of this example is to eventually compile
"Hello World". However, it is unknown what BitBake needs and what you
have to provide in order to achieve that goal. Recall that BitBake
utilizes three types of metadata files:
:ref:`bitbake-user-manual/bitbake-user-manual-intro:configuration files`,
:ref:`bitbake-user-manual/bitbake-user-manual-intro:classes`, and
:ref:`bitbake-user-manual/bitbake-user-manual-intro:recipes`.
But where do they go? How does BitBake find
them? BitBake's error messaging helps you answer these types of
questions and helps you better understand exactly what is going on.
Following is the complete "Hello World" example.
#. **Create a Project Directory:** First, set up a directory for the
"Hello World" project. Here is how you can do so in your home
directory::
$ mkdir ~/hello
$ cd ~/hello
This is the directory that
BitBake will use to do all of its work. You can use this directory
to keep all the metafiles needed by BitBake. Having a project
directory is a good way to isolate your project.
#. **Run BitBake:** At this point, you have nothing but a project
directory. Run the ``bitbake`` command and see what it does::
$ bitbake
The BBPATH variable is not set and bitbake did not
find a conf/bblayers.conf file in the expected location.
Maybe you accidentally invoked bitbake from the wrong directory?
DEBUG: Removed the following variables from the environment:
GNOME_DESKTOP_SESSION_ID, XDG_CURRENT_DESKTOP,
GNOME_KEYRING_CONTROL, DISPLAY, SSH_AGENT_PID, LANG, no_proxy,
XDG_SESSION_PATH, XAUTHORITY, SESSION_MANAGER, SHLVL,
MANDATORY_PATH, COMPIZ_CONFIG_PROFILE, WINDOWID, EDITOR,
GPG_AGENT_INFO, SSH_AUTH_SOCK, GDMSESSION, GNOME_KEYRING_PID,
XDG_SEAT_PATH, XDG_CONFIG_DIRS, LESSOPEN, DBUS_SESSION_BUS_ADDRESS,
_, XDG_SESSION_COOKIE, DESKTOP_SESSION, LESSCLOSE, DEFAULTS_PATH,
UBUNTU_MENUPROXY, OLDPWD, XDG_DATA_DIRS, COLORTERM, LS_COLORS
The majority of this output is specific to environment variables that
are not directly relevant to BitBake. However, the very first
message regarding the :term:`BBPATH` variable and the
``conf/bblayers.conf`` file is relevant.
When you run BitBake, it begins looking for metadata files. The
:term:`BBPATH` variable is what tells BitBake where
to look for those files. :term:`BBPATH` is not set and you need to set
it. Without :term:`BBPATH`, BitBake cannot find any configuration files
(``.conf``) or recipe files (``.bb``) at all. BitBake also cannot
find the ``bitbake.conf`` file.
#. **Setting BBPATH:** For this example, you can set :term:`BBPATH` in
the same manner that you set ``PATH`` earlier in the appendix. You
should realize, though, that it is much more flexible to set the
:term:`BBPATH` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
:term:`BBPATH` variable::
$ BBPATH="projectdirectory"
$ export BBPATH
Use your actual project directory in the command. BitBake uses that
directory to find the metadata it needs for your project.
.. note::
When specifying your project directory, do not use the tilde
("~") character as BitBake does not expand that character as the
shell would.
#. **Run BitBake:** Now that you have :term:`BBPATH` defined, run the
``bitbake`` command again::
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 173, in parse_config_file
return bb.parse.handle(fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 99, in handle
return h['handle'](fn, data, include)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 120, in handle
abs_fn = resolve_file(fn, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/__init__.py", line 117, in resolve_file
raise IOError("file %s not found in %s" % (fn, bbpath))
IOError: file conf/bitbake.conf not found in /home/scott-lenovo/hello
ERROR: Unable to parse conf/bitbake.conf: file conf/bitbake.conf not found in /home/scott-lenovo/hello
This sample output shows that BitBake could not find the
``conf/bitbake.conf`` file in the project directory. This file is
the first thing BitBake must find in order to build a target. And,
since the project directory for this example is empty, you need to
provide a ``conf/bitbake.conf`` file.
#. **Creating conf/bitbake.conf:** The ``conf/bitbake.conf`` includes
a number of configuration variables BitBake uses for metadata and
recipe files. For this example, you need to create the file in your
project directory and define some key BitBake variables. For more
information on the ``bitbake.conf`` file, see
https://git.openembedded.org/bitbake/tree/conf/bitbake.conf.
Use the following commands to create the ``conf`` directory in the
project directory::
$ mkdir conf
From within the ``conf`` directory,
use some editor to create the ``bitbake.conf`` so that it contains
the following::
PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
TMPDIR = "${TOPDIR}/tmp"
CACHE = "${TMPDIR}/cache"
STAMP = "${TMPDIR}/${PN}/stamps"
T = "${TMPDIR}/${PN}/work"
B = "${TMPDIR}/${PN}"
.. note::
Without a value for PN , the variables STAMP , T , and B , prevent more
than one recipe from working. You can fix this by either setting PN to
have a value similar to what OpenEmbedded and BitBake use in the default
bitbake.conf file (see previous example). Or, by manually updating each
recipe to set PN . You will also need to include PN as part of the STAMP
, T , and B variable definitions in the local.conf file.
The ``TMPDIR`` variable establishes a directory that BitBake uses
for build output and intermediate files other than the cached
information used by the
:ref:`bitbake-user-manual/bitbake-user-manual-execution:setscene`
process. Here, the ``TMPDIR`` directory is set to ``hello/tmp``.
.. tip::
You can always safely delete the tmp directory in order to rebuild a
BitBake target. The build process creates the directory for you when you
run BitBake.
For information about each of the other variables defined in this
example, check :term:`PN`, :term:`TOPDIR`, :term:`CACHE`, :term:`STAMP`,
:term:`T` or :term:`B` to take you to the definitions in the
glossary.
#. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file
exists, you can run the ``bitbake`` command again::
$ bitbake
ERROR: Traceback (most recent call last):
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 163, in wrapped
return func(fn, *args)
File "/home/scott-lenovo/bitbake/lib/bb/cookerdata.py", line 177, in _inherit
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/BBHandler.py", line 92, in inherit
include(fn, file, lineno, d, "inherit")
File "/home/scott-lenovo/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 100, in include
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
ParseError: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inherit file classes/base.bbclass
In the sample output,
BitBake could not find the ``classes/base.bbclass`` file. You need
to create that file next.
#. **Creating classes/base.bbclass:** BitBake uses class files to
provide common code and functionality. The minimally required class
for BitBake is the ``classes/base.bbclass`` file. The ``base`` class
is implicitly inherited by every recipe. BitBake looks for the class
in the ``classes`` directory of the project (i.e ``hello/classes``
in this example).
Create the ``classes`` directory as follows::
$ cd $HOME/hello
$ mkdir classes
Move to the ``classes`` directory and then create the
``base.bbclass`` file by inserting this single line: addtask build
The minimal task that BitBake runs is the ``do_build`` task. This is
all the example needs in order to build the project. Of course, the
``base.bbclass`` can have much more depending on which build
environments BitBake is supporting.
#. **Run BitBake:** After making sure that the ``classes/base.bbclass``
file exists, you can run the ``bitbake`` command again::
$ bitbake
Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.
BitBake is finally reporting
no errors. However, you can see that it really does not have
anything to do. You need to create a recipe that gives BitBake
something to do.
#. **Creating a Layer:** While it is not really necessary for such a
small example, it is good practice to create a layer in which to
keep your code separate from the general metadata used by BitBake.
Thus, this example creates and uses a layer called "mylayer".
.. note::
You can find additional information on layers in the
":ref:`bitbake-user-manual/bitbake-user-manual-intro:Layers`" section.
Minimally, you need a recipe file and a layer configuration file in
your layer. The configuration file needs to be in the ``conf``
directory inside the layer. Use these commands to set up the layer
and the ``conf`` directory::
$ cd $HOME
$ mkdir mylayer
$ cd mylayer
$ mkdir conf
Move to the ``conf`` directory and create a ``layer.conf`` file that has the
following::
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/*.bb"
BBFILE_COLLECTIONS += "mylayer"
BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
For information on these variables, click on :term:`BBFILES`,
:term:`LAYERDIR`, :term:`BBFILE_COLLECTIONS` or :term:`BBFILE_PATTERN_mylayer <BBFILE_PATTERN>`
to go to the definitions in the glossary.
You need to create the recipe file next. Inside your layer at the
top-level, use an editor and create a recipe file named
``printhello.bb`` that has the following::
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
PV = '1'
python do_build() {
bb.plain("********************");
bb.plain("* *");
bb.plain("* Hello, World! *");
bb.plain("* *");
bb.plain("********************");
}
The recipe file simply provides
a description of the recipe, the name, version, and the ``do_build``
task, which prints out "Hello World" to the console. For more
information on :term:`DESCRIPTION`, :term:`PN` or :term:`PV`
follow the links to the glossary.
#. **Run BitBake With a Target:** Now that a BitBake target exists, run
the command and provide that target::
$ cd $HOME/hello
$ bitbake printhello
ERROR: no recipe files to build, check your BBPATH and BBFILES?
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
We have created the layer with the recipe and
the layer configuration file but it still seems that BitBake cannot
find the recipe. BitBake needs a ``conf/bblayers.conf`` that lists
the layers for the project. Without this file, BitBake cannot find
the recipe.
#. **Creating conf/bblayers.conf:** BitBake uses the
``conf/bblayers.conf`` file to locate layers needed for the project.
This file must reside in the ``conf`` directory of the project (i.e.
``hello/conf`` for this example).
Set your working directory to the ``hello/conf`` directory and then
create the ``bblayers.conf`` file so that it contains the following::
BBLAYERS ?= " \
/home/<you>/mylayer \
"
You need to provide your own information for ``you`` in the file.
#. **Run BitBake With a Target:** Now that you have supplied the
``bblayers.conf`` file, run the ``bitbake`` command and provide the
target::
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|
Time: 00:00:00
Parsing of 1 .bb files complete (0 cached, 1 parsed). 1 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Executing RunQueue Tasks
********************
* *
* Hello, World! *
* *
********************
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.
.. note::
After the first execution, re-running bitbake printhello again will not
result in a BitBake run that prints the same console output. The reason
for this is that the first time the printhello.bb recipe's do_build task
executes successfully, BitBake writes a stamp file for the task. Thus,
the next time you attempt to run the task using that same bitbake
command, BitBake notices the stamp and therefore determines that the task
does not need to be re-run. If you delete the tmp directory or run
bitbake -c clean printhello and then re-run the build, the "Hello,
World!" message will be printed again.

View File

@@ -0,0 +1,654 @@
.. SPDX-License-Identifier: CC-BY-2.5
========
Overview
========
|
Welcome to the BitBake User Manual. This manual provides information on
the BitBake tool. The information attempts to be as independent as
possible regarding systems that use BitBake, such as OpenEmbedded and
the Yocto Project. In some cases, scenarios or examples within the
context of a build system are used in the manual to help with
understanding. For these cases, the manual clearly states the context.
.. _intro:
Introduction
============
Fundamentally, BitBake is a generic task execution engine that allows
shell and Python tasks to be run efficiently and in parallel while
working within complex inter-task dependency constraints. One of
BitBake's main users, OpenEmbedded, takes this core and builds embedded
Linux software stacks using a task-oriented approach.
Conceptually, BitBake is similar to GNU Make in some regards but has
significant differences:
- BitBake executes tasks according to the provided metadata that builds up
the tasks. Metadata is stored in recipe (``.bb``) and related recipe
"append" (``.bbappend``) files, configuration (``.conf``) and
underlying include (``.inc``) files, and in class (``.bbclass``)
files. The metadata provides BitBake with instructions on what tasks
to run and the dependencies between those tasks.
- BitBake includes a fetcher library for obtaining source code from
various places such as local files, source control systems, or
websites.
- The instructions for each unit to be built (e.g. a piece of software)
are known as "recipe" files and contain all the information about the
unit (dependencies, source file locations, checksums, description and
so on).
- BitBake includes a client/server abstraction and can be used from a
command line or used as a service over XML-RPC and has several
different user interfaces.
History and Goals
=================
BitBake was originally a part of the OpenEmbedded project. It was
inspired by the Portage package management system used by the Gentoo
Linux distribution. On December 7, 2004, OpenEmbedded project team
member Chris Larson split the project into two distinct pieces:
- BitBake, a generic task executor
- OpenEmbedded, a metadata set utilized by BitBake
Today, BitBake is the primary basis of the
`OpenEmbedded <https://www.openembedded.org/>`__ project, which is being
used to build and maintain Linux distributions such as the `Angstrom
Distribution <http://www.angstrom-distribution.org/>`__, and which is
also being used as the build tool for Linux projects such as the `Yocto
Project <https://www.yoctoproject.org>`__.
Prior to BitBake, no other build tool adequately met the needs of an
aspiring embedded Linux distribution. All of the build systems used by
traditional desktop Linux distributions lacked important functionality,
and none of the ad hoc Buildroot-based systems, prevalent in the
embedded space, were scalable or maintainable.
Some important original goals for BitBake were:
- Handle cross-compilation.
- Handle inter-package dependencies (build time on target architecture,
build time on native architecture, and runtime).
- Support running any number of tasks within a given package,
including, but not limited to, fetching upstream sources, unpacking
them, patching them, configuring them, and so forth.
- Be Linux distribution agnostic for both build and target systems.
- Be architecture agnostic.
- Support multiple build and target operating systems (e.g. Cygwin, the
BSDs, and so forth).
- Be self-contained, rather than tightly integrated into the build
machine's root filesystem.
- Handle conditional metadata on the target architecture, operating
system, distribution, and machine.
- Be easy to use the tools to supply local metadata and packages
against which to operate.
- Be easy to use BitBake to collaborate between multiple projects for
their builds.
- Provide an inheritance mechanism to share common metadata between
many packages.
Over time it became apparent that some further requirements were
necessary:
- Handle variants of a base recipe (e.g. native, sdk, and multilib).
- Split metadata into layers and allow layers to enhance or override
other layers.
- Allow representation of a given set of input variables to a task as a
checksum. Based on that checksum, allow acceleration of builds with
prebuilt components.
BitBake satisfies all the original requirements and many more with
extensions being made to the basic functionality to reflect the
additional requirements. Flexibility and power have always been the
priorities. BitBake is highly extensible and supports embedded Python
code and execution of any arbitrary tasks.
.. _Concepts:
Concepts
========
BitBake is a program written in the Python language. At the highest
level, BitBake interprets metadata, decides what tasks are required to
run, and executes those tasks. Similar to GNU Make, BitBake controls how
software is built. GNU Make achieves its control through "makefiles",
while BitBake uses "recipes".
BitBake extends the capabilities of a simple tool like GNU Make by
allowing for the definition of much more complex tasks, such as
assembling entire embedded Linux distributions.
The remainder of this section introduces several concepts that should be
understood in order to better leverage the power of BitBake.
Recipes
-------
BitBake Recipes, which are denoted by the file extension ``.bb``, are
the most basic metadata files. These recipe files provide BitBake with
the following:
- Descriptive information about the package (author, homepage, license,
and so on)
- The version of the recipe
- Existing dependencies (both build and runtime dependencies)
- Where the source code resides and how to fetch it
- Whether the source code requires any patches, where to find them, and
how to apply them
- How to configure and compile the source code
- How to assemble the generated artifacts into one or more installable
packages
- Where on the target machine to install the package or packages
created
Within the context of BitBake, or any project utilizing BitBake as its
build system, files with the ``.bb`` extension are referred to as
recipes.
.. note::
The term "package" is also commonly used to describe recipes.
However, since the same word is used to describe packaged output from
a project, it is best to maintain a single descriptive term -
"recipes". Put another way, a single "recipe" file is quite capable
of generating a number of related but separately installable
"packages". In fact, that ability is fairly common.
Configuration Files
-------------------
Configuration files, which are denoted by the ``.conf`` extension,
define various configuration variables that govern the project's build
process. These files fall into several areas that define machine
configuration, distribution configuration, possible compiler tuning,
general common configuration, and user configuration. The main
configuration file is the sample ``bitbake.conf`` file, which is located
within the BitBake source tree ``conf`` directory.
Classes
-------
Class files, which are denoted by the ``.bbclass`` extension, contain
information that is useful to share between metadata files. The BitBake
source tree currently comes with one class metadata file called
``base.bbclass``. You can find this file in the ``classes`` directory.
The ``base.bbclass`` class files is special since it is always included
automatically for all recipes and classes. This class contains
definitions for standard basic tasks such as fetching, unpacking,
configuring (empty by default), compiling (runs any Makefile present),
installing (empty by default) and packaging (empty by default). These
tasks are often overridden or extended by other classes added during the
project development process.
Layers
------
Layers allow you to isolate different types of customizations from each
other. While you might find it tempting to keep everything in one layer
when working on a single project, the more modular your metadata, the
easier it is to cope with future changes.
To illustrate how you can use layers to keep things modular, consider
customizations you might make to support a specific target machine.
These types of customizations typically reside in a special layer,
rather than a general layer, called a Board Support Package (BSP) layer.
Furthermore, the machine customizations should be isolated from recipes
and metadata that support a new GUI environment, for example. This
situation gives you a couple of layers: one for the machine
configurations and one for the GUI environment. It is important to
understand, however, that the BSP layer can still make machine-specific
additions to recipes within the GUI environment layer without polluting
the GUI layer itself with those machine-specific changes. You can
accomplish this through a recipe that is a BitBake append
(``.bbappend``) file.
.. _append-bbappend-files:
Append Files
------------
Append files, which are files that have the ``.bbappend`` file
extension, extend or override information in an existing recipe file.
BitBake expects every append file to have a corresponding recipe file.
Furthermore, the append file and corresponding recipe file must use the
same root filename. The filenames can differ only in the file type
suffix used (e.g. ``formfactor_0.0.bb`` and
``formfactor_0.0.bbappend``).
Information in append files extends or overrides the information in the
underlying, similarly-named recipe files.
When you name an append file, you can use the "``%``" wildcard character
to allow for matching recipe names. For example, suppose you have an
append file named as follows::
busybox_1.21.%.bbappend
That append file
would match any ``busybox_1.21.``\ x\ ``.bb`` version of the recipe. So,
the append file would match the following recipe names::
busybox_1.21.1.bb
busybox_1.21.2.bb
busybox_1.21.3.bb
.. note::
The use of the " % " character is limited in that it only works directly in
front of the .bbappend portion of the append file's name. You cannot use the
wildcard character in any other location of the name.
If the ``busybox`` recipe was updated to ``busybox_1.3.0.bb``, the
append name would not match. However, if you named the append file
``busybox_1.%.bbappend``, then you would have a match.
In the most general case, you could name the append file something as
simple as ``busybox_%.bbappend`` to be entirely version independent.
Obtaining BitBake
=================
You can obtain BitBake several different ways:
- **Cloning BitBake:** Using Git to clone the BitBake source code
repository is the recommended method for obtaining BitBake. Cloning
the repository makes it easy to get bug fixes and have access to
stable branches and the master branch. Once you have cloned BitBake,
you should use the latest stable branch for development since the
master branch is for BitBake development and might contain less
stable changes.
You usually need a version of BitBake that matches the metadata you
are using. The metadata is generally backwards compatible but not
forward compatible.
Here is an example that clones the BitBake repository::
$ git clone git://git.openembedded.org/bitbake
This command clones the BitBake
Git repository into a directory called ``bitbake``. Alternatively,
you can designate a directory after the ``git clone`` command if you
want to call the new directory something other than ``bitbake``. Here
is an example that names the directory ``bbdev``::
$ git clone git://git.openembedded.org/bitbake bbdev
- **Installation using your Distribution Package Management System:**
This method is not recommended because the BitBake version that is
provided by your distribution, in most cases, is several releases
behind a snapshot of the BitBake repository.
- **Taking a snapshot of BitBake:** Downloading a snapshot of BitBake
from the source code repository gives you access to a known branch or
release of BitBake.
.. note::
Cloning the Git repository, as described earlier, is the preferred
method for getting BitBake. Cloning the repository makes it easier
to update as patches are added to the stable branches.
The following example downloads a snapshot of BitBake version 1.17.0::
$ wget https://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
After extraction of the tarball using
the tar utility, you have a directory entitled ``bitbake-1.17.0``.
- **Using the BitBake that Comes With Your Build Checkout:** A final
possibility for getting a copy of BitBake is that it already comes
with your checkout of a larger BitBake-based build system, such as
Poky. Rather than manually checking out individual layers and gluing
them together yourself, you can check out an entire build system. The
checkout will already include a version of BitBake that has been
thoroughly tested for compatibility with the other components. For
information on how to check out a particular BitBake-based build
system, consult that build system's supporting documentation.
.. _bitbake-user-manual-command:
The BitBake Command
===================
The ``bitbake`` command is the primary interface to the BitBake tool.
This section presents the BitBake command syntax and provides several
execution examples.
Usage and syntax
----------------
Following is the usage and syntax for BitBake::
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-b BUILDFILE, --buildfile=BUILDFILE
Execute tasks from a specific .bb recipe directly.
WARNING: Does not handle any dependencies from other
recipes.
-k, --continue Continue as much as possible after an error. While the
target that failed and anything depending on it cannot
be built, as much as possible will be built before
stopping.
-f, --force Force the specified targets/task to run (invalidating
any existing stamp file).
-c CMD, --cmd=CMD Specify the task to execute. The exact options
available depend on the metadata. Some examples might
be 'compile' or 'populate_sysroot' or 'listtasks' may
give a list of the tasks available.
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified task such as
'compile' and then run the default task for the
specified target(s).
-r PREFILE, --read=PREFILE
Read the specified file before bitbake.conf.
-R POSTFILE, --postread=POSTFILE
Read the specified file after bitbake.conf.
-v, --verbose Enable tracing of shell tasks (with 'set -x'). Also
print bb.note(...) messages to stdout (in addition to
writing them to ${T}/log.do_&lt;task&gt;).
-D, --debug Increase the debug level. You can specify this more
than once. -D sets the debug level to 1, where only
bb.debug(1, ...) messages are printed to stdout; -DD
sets the debug level to 2, where both bb.debug(1, ...)
and bb.debug(2, ...) messages are printed; etc.
Without -D, no debug messages are printed. Note that
-D only affects output to stdout. All debug messages
are written to ${T}/log.do_taskname, regardless of the
debug level.
-q, --quiet Output less log message data to the terminal. You can
specify this more than once.
-n, --dry-run Don't execute, just go through the motions.
-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER
Dump out the signature construction information, with
no task execution. The SIGNATURE_HANDLER parameter is
passed to the handler. Two common values are none and
printdiff but the handler may define more/less. none
means only dump the signature, printdiff means compare
the dumped signature with the cached one.
-p, --parse-only Quit after parsing the BB recipes.
-s, --show-versions Show current and preferred versions of all recipes.
-e, --environment Show the global or per-recipe environment complete
with information about where variables were
set/changed.
-g, --graphviz Save dependency tree information for the specified
targets in the dot syntax.
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
make dependency graphs more appealing
-l DEBUG_DOMAINS, --log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
-P, --profile Profile the command and save reports.
-u UI, --ui=UI The user interface to use (knotty, ncurses, taskexp or
teamcity - default knotty).
--token=XMLRPCTOKEN Specify the connection token to be used when
connecting to a remote server.
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not.
--server-only Run bitbake without a UI, only starting a server
(cooker) process.
-B BIND, --bind=BIND The name/address for the bitbake xmlrpc server to bind
to.
-T SERVER_TIMEOUT, --idle-timeout=SERVER_TIMEOUT
Set timeout to unload bitbake server due to
inactivity, set to -1 means no unload, default:
Environment variable BB_SERVER_TIMEOUT.
--no-setscene Do not run any setscene tasks. sstate will be ignored
and everything needed, built.
--skip-setscene Skip setscene tasks if they would be executed. Tasks
previously restored from sstate will be kept, unlike
--no-setscene
--setscene-only Only run setscene tasks, don't run any real tasks.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
--runall=RUNALL Run the specified task for any recipe in the taskgraph
of the specified target (even if it wouldn't otherwise
have run).
--runonly=RUNONLY Run only the specified task within the taskgraph of
the specified targets (and any task dependencies those
tasks may have).
.. _bitbake-examples:
Examples
--------
This section presents some examples showing how to use BitBake.
.. _example-executing-a-task-against-a-single-recipe:
Executing a Task Against a Single Recipe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Executing tasks for a single recipe file is relatively simple. You
specify the file in question, and BitBake parses it and executes the
specified task. If you do not specify a task, BitBake executes the
default task, which is "build". BitBake obeys inter-task dependencies
when doing so.
The following command runs the build task, which is the default task, on
the ``foo_1.0.bb`` recipe file::
$ bitbake -b foo_1.0.bb
The following command runs the clean task on the ``foo.bb`` recipe file::
$ bitbake -b foo.bb -c clean
.. note::
The "-b" option explicitly does not handle recipe dependencies. Other
than for debugging purposes, it is instead recommended that you use
the syntax presented in the next section.
Executing Tasks Against a Set of Recipe Files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a number of additional complexities introduced when one wants
to manage multiple ``.bb`` files. Clearly there needs to be a way to
tell BitBake what files are available and, of those, which you want to
execute. There also needs to be a way for each recipe to express its
dependencies, both for build-time and runtime. There must be a way for
you to express recipe preferences when multiple recipes provide the same
functionality, or when there are multiple versions of a recipe.
The ``bitbake`` command, when not using "--buildfile" or "-b" only
accepts a "PROVIDES". You cannot provide anything else. By default, a
recipe file generally "PROVIDES" its "packagename" as shown in the
following example::
$ bitbake foo
This next example "PROVIDES" the
package name and also uses the "-c" option to tell BitBake to just
execute the ``do_clean`` task::
$ bitbake -c clean foo
Executing a List of Task and Recipe Combinations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The BitBake command line supports specifying different tasks for
individual targets when you specify multiple targets. For example,
suppose you had two targets (or recipes) ``myfirstrecipe`` and
``mysecondrecipe`` and you needed BitBake to run ``taskA`` for the first
recipe and ``taskB`` for the second recipe::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
Generating Dependency Graphs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to generate dependency graphs using the ``dot`` syntax.
You can convert these graphs into images using the ``dot`` tool from
`Graphviz <http://www.graphviz.org>`__.
When you generate a dependency graph, BitBake writes two files to the
current working directory:
- ``task-depends.dot``: Shows dependencies between tasks. These
dependencies match BitBake's internal task execution list.
- ``pn-buildlist``: Shows a simple list of targets that are to be
built.
To stop depending on common depends, use the "-I" depend option and
BitBake omits them from the graph. Leaving this information out can
produce more readable graphs. This way, you can remove from the graph
:term:`DEPENDS` from inherited classes such as ``base.bbclass``.
Here are two examples that create dependency graphs. The second example
omits depends common in OpenEmbedded from the graph::
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
Executing a Multiple Configuration Build
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to build multiple images or packages using a single
command where the different targets require different configurations
(multiple configuration builds). Each target, in this scenario, is
referred to as a "multiconfig".
To accomplish a multiple configuration build, you must define each
target's configuration separately using a parallel configuration file in
the build directory. The location for these multiconfig configuration
files is specific. They must reside in the current build directory in a
sub-directory of ``conf`` named ``multiconfig``. Following is an example
for two separate targets:
.. image:: figures/bb_multiconfig_files.png
:align: center
The reason for this required file hierarchy is because the :term:`BBPATH`
variable is not constructed until the layers are parsed. Consequently,
using the configuration file as a pre-configuration file is not possible
unless it is located in the current working directory.
Minimally, each configuration file must define the machine and the
temporary directory BitBake uses for the build. Suggested practice
dictates that you do not overlap the temporary directories used during
the builds.
Aside from separate configuration files for each target, you must also
enable BitBake to perform multiple configuration builds. Enabling is
accomplished by setting the
:term:`BBMULTICONFIG` variable in the
``local.conf`` configuration file. As an example, suppose you had
configuration files for ``target1`` and ``target2`` defined in the build
directory. The following statement in the ``local.conf`` file both
enables BitBake to perform multiple configuration builds and specifies
the two extra multiconfigs::
BBMULTICONFIG = "target1 target2"
Once the target configuration files are in place and BitBake has been
enabled to perform multiple configuration builds, use the following
command form to start the builds::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
Here is an example for two extra multiconfigs: ``target1`` and ``target2``::
$ bitbake mc::target mc:target1:target mc:target2:target
.. _bb-enabling-multiple-configuration-build-dependencies:
Enabling Multiple Configuration Build Dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sometimes dependencies can exist between targets (multiconfigs) in a
multiple configuration build. For example, suppose that in order to
build an image for a particular architecture, the root filesystem of
another build for a different architecture needs to exist. In other
words, the image for the first multiconfig depends on the root
filesystem of the second multiconfig. This dependency is essentially
that the task in the recipe that builds one multiconfig is dependent on
the completion of the task in the recipe that builds another
multiconfig.
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
form::
task_or_package[mcdepends] = "mc:from_multiconfig:to_multiconfig:recipe_name:task_on_which_to_depend"
To better show how to use this statement, consider an example with two
multiconfigs: ``target1`` and ``target2``::
image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task"
In this example, the
``from_multiconfig`` is "target1" and the ``to_multiconfig`` is "target2". The
task on which the image whose recipe contains image_task depends on the
completion of the rootfs_task used to build out image2, which is
associated with the "target2" multiconfig.
Once you set up this dependency, you can build the "target1" multiconfig
using a BitBake command as follows::
$ bitbake mc:target1:image1
This command executes all the tasks needed to create ``image1`` for the "target1"
multiconfig. Because of the dependency, BitBake also executes through
the ``rootfs_task`` for the "target2" multiconfig build.
Having a recipe depend on the root filesystem of another build might not
seem that useful. Consider this change to the statement in the image1
recipe::
image_task[mcdepends] = "mc:target1:target2:image2:image_task"
In this case, BitBake must create ``image2`` for the "target2" build since
the "target1" build depends on it.
Because "target1" and "target2" are enabled for multiple configuration
builds and have separate configuration files, BitBake places the
artifacts for each build in the respective temporary build directories.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

142
bitbake/doc/bitbake.1 Normal file
View File

@@ -0,0 +1,142 @@
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH BITBAKE 1 "November 19, 2006"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
BitBake \- simple tool for the execution of tasks
.SH SYNOPSIS
.B bitbake
.RI [ options ] " packagenames"
.br
.SH DESCRIPTION
This manual page documents briefly the
.B bitbake
command.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBbitbake\fP is a program that executes the specified task (default is 'build')
for a given set of BitBake files.
.br
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
.br
Default BBFILES are the .bb files in the current directory.
.SH OPTIONS
This program follow the usual GNU command line syntax, with long
options starting with two dashes (`-').
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-\-version
Show version of program.
.TP
.B \-bBUILDFILE, \-\-buildfile=BUILDFILE
execute the task against this .bb file, rather than a package from BBFILES.
.TP
.B \-k, \-\-continue
continue as much as possible after an error. While the target that failed, and
those that depend on it, cannot be remade, the other dependencies of these
targets can be processed all the same.
.TP
.B \-a, \-\-tryaltconfigs
continue with builds by trying to use alternative providers where possible.
.TP
.B \-f, \-\-force
force run of specified cmd, regardless of stamp status
.TP
.B \-i, \-\-interactive
drop into the interactive mode also called the BitBake shell.
.TP
.B \-cCMD, \-\-cmd=CMD
Specify task to execute. Note that this only executes the specified task for
the providee and the packages it depends on, i.e. 'compile' does not implicitly
call stage for the dependencies (IOW: use only if you know what you are doing).
Depending on the base.bbclass a listtasks task is defined and will show
available tasks.
.TP
.B \-rFILE, \-\-read=FILE
read the specified file before bitbake.conf
.TP
.B \-v, \-\-verbose
output more chit-chat to the terminal
.TP
.B \-D, \-\-debug
Increase the debug level. You can specify this more than once.
.TP
.B \-n, \-\-dry-run
don't execute, just go through the motions
.TP
.B \-p, \-\-parse-only
quit after parsing the BB files (developers only)
.TP
.B \-s, \-\-show-versions
show current and preferred versions of all packages
.TP
.B \-e, \-\-environment
show the global or per-recipe environment (this is what used to be bbread)
.TP
.B \-g, \-\-graphviz
emit the dependency trees of the specified packages in the dot syntax
.TP
.B \-IIGNORED\_DOT\_DEPS, \-\-ignore-deps=IGNORED_DOT_DEPS
Stop processing at the given list of dependencies when generating dependency
graphs. This can help to make the graph more appealing
.TP
.B \-lDEBUG_DOMAINS, \-\-log-domains=DEBUG_DOMAINS
Show debug logging for the specified logging domains
.TP
.B \-P, \-\-profile
profile the command and print a report
.TP
.B \-uUI, \-\-ui=UI
User interface to use. Currently, knotty, taskexp or ncurses can be specified as UI.
.TP
.B \-tSERVERTYPE, \-\-servertype=SERVERTYPE
Choose which server to use, none, process or xmlrpc.
.TP
.B \-\-revisions-changed
Set the exit code depending on whether upstream floating revisions have changed or not.
.TP
.B \-\-server-only
Run bitbake without UI, the frontend can connect with bitbake server itself.
.TP
.B \-BBIND, \-\-bind=BIND
The name/address for the bitbake server to bind to.
.TP
.B \-\-no\-setscene
Do not run any setscene tasks, forces builds.
.SH ENVIRONMENT VARIABLES
bitbake uses the following environment variables to control its
operation:
.TP
.B BITBAKE_UI
The bitbake user interface; overridden by the \fB-u\fP commandline option.
.SH AUTHORS
BitBake was written by
Phil Blundell,
Holger Freyther,
Chris Larson,
Mickey Lauer,
Richard Purdie,
Holger Schurig
.PP
This manual page was written by Marcin Juszkiewicz <marcin@hrw.one.pl>
for the Debian project (but may be used by others).

101
bitbake/doc/conf.py Normal file
View File

@@ -0,0 +1,101 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import sys
import datetime
current_version = "dev"
# String used in sidebar
version = 'Version: ' + current_version
if current_version == 'dev':
version = 'Version: Current Development'
# Version seen in documentation_options.js and hence in js switchers code
release = current_version
# -- Project information -----------------------------------------------------
project = 'Bitbake'
copyright = '2004-%s, Richard Purdie, Chris Larson, and Phil Blundell' \
% datetime.datetime.now().year
author = 'Richard Purdie, Chris Larson, and Phil Blundell'
# external links and substitutions
extlinks = {
'yocto_docs': ('https://docs.yoctoproject.org%s', None),
'oe_lists': ('https://lists.openembedded.org%s', None),
}
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autosectionlabel',
'sphinx.ext.extlinks',
]
autosectionlabel_prefix_document = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# master document name. The default changed from contents to index. so better
# set it ourselves.
master_doc = 'index'
# create substitution for project configuration variables
rst_prolog = """
.. |project_name| replace:: %s
.. |copyright| replace:: %s
.. |author| replace:: %s
""" % (project, copyright, author)
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
try:
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
except ImportError:
sys.stderr.write("The Sphinx sphinx_rtd_theme HTML theme was not found.\
\nPlease make sure to install the sphinx_rtd_theme python package.\n")
sys.exit(1)
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['sphinx-static']
# Add customm CSS and JS files
html_css_files = ['theme_overrides.css']
html_js_files = ['switchers.js']
# Hide 'Created using Sphinx' text
html_show_sphinx = False
# Add 'Last updated' on each page
html_last_updated_fmt = '%b %d, %Y'
# Remove the trailing 'dot' in section numbers
html_secnumber_suffix = " "

3
bitbake/doc/genindex.rst Normal file
View File

@@ -0,0 +1,3 @@
=====
Index
=====

38
bitbake/doc/index.rst Normal file
View File

@@ -0,0 +1,38 @@
.. SPDX-License-Identifier: CC-BY-2.5
===================
BitBake User Manual
===================
|
.. toctree::
:caption: Table of Contents
:numbered:
bitbake-user-manual/bitbake-user-manual-intro
bitbake-user-manual/bitbake-user-manual-execution
bitbake-user-manual/bitbake-user-manual-metadata
bitbake-user-manual/bitbake-user-manual-fetching
bitbake-user-manual/bitbake-user-manual-ref-variables
bitbake-user-manual/bitbake-user-manual-hello
.. toctree::
:maxdepth: 1
:hidden:
genindex
releases
----
.. include:: <xhtml1-lat1.txt>
| BitBake Community
| Copyright |copy| |copyright|
| <bitbake-devel@lists.openembedded.org>
This work is licensed under the Creative Commons Attribution License. To view a
copy of this license, visit http://creativecommons.org/licenses/by/2.5/ or send
a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View,
California 94041, USA.

130
bitbake/doc/releases.rst Normal file
View File

@@ -0,0 +1,130 @@
.. SPDX-License-Identifier: CC-BY-2.5
=========================
Current Release Manuals
=========================
****************************
3.1 'dunfell' Release Series
****************************
- :yocto_docs:`3.1 BitBake User Manual </3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.1 BitBake User Manual </3.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.1.2 BitBake User Manual </3.1.2/bitbake-user-manual/bitbake-user-manual.html>`
==========================
Previous Release Manuals
==========================
*************************
3.0 'zeus' Release Series
*************************
- :yocto_docs:`3.0 BitBake User Manual </3.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.1 BitBake User Manual </3.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.2 BitBake User Manual </3.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`3.0.3 BitBake User Manual </3.0.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
2.7 'warrior' Release Series
****************************
- :yocto_docs:`2.7 BitBake User Manual </2.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.1 BitBake User Manual </2.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.2 BitBake User Manual </2.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.3 BitBake User Manual </2.7.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.7.4 BitBake User Manual </2.7.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.6 'thud' Release Series
*************************
- :yocto_docs:`2.6 BitBake User Manual </2.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.1 BitBake User Manual </2.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.2 BitBake User Manual </2.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.3 BitBake User Manual </2.6.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.6.4 BitBake User Manual </2.6.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.5 'sumo' Release Series
*************************
- :yocto_docs:`2.5 BitBake User Manual </2.5/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.1 BitBake User Manual </2.5.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.2 BitBake User Manual </2.5.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.5.3 BitBake User Manual </2.5.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
2.4 'rocko' Release Series
**************************
- :yocto_docs:`2.4 BitBake User Manual </2.4/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.1 BitBake User Manual </2.4.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.2 BitBake User Manual </2.4.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.3 BitBake User Manual </2.4.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.4.4 BitBake User Manual </2.4.4/bitbake-user-manual/bitbake-user-manual.html>`
*************************
2.3 'pyro' Release Series
*************************
- :yocto_docs:`2.3 BitBake User Manual </2.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.1 BitBake User Manual </2.3.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.2 BitBake User Manual </2.3.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.3 BitBake User Manual </2.3.3/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.3.4 BitBake User Manual </2.3.4/bitbake-user-manual/bitbake-user-manual.html>`
**************************
2.2 'morty' Release Series
**************************
- :yocto_docs:`2.2 BitBake User Manual </2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.1 BitBake User Manual </2.2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.2 BitBake User Manual </2.2.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.2.3 BitBake User Manual </2.2.3/bitbake-user-manual/bitbake-user-manual.html>`
****************************
2.1 'krogoth' Release Series
****************************
- :yocto_docs:`2.1 BitBake User Manual </2.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.1 BitBake User Manual </2.1.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.2 BitBake User Manual </2.1.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.1.3 BitBake User Manual </2.1.3/bitbake-user-manual/bitbake-user-manual.html>`
***************************
2.0 'jethro' Release Series
***************************
- :yocto_docs:`1.9 BitBake User Manual </1.9/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0 BitBake User Manual </2.0/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.1 BitBake User Manual </2.0.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.2 BitBake User Manual </2.0.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`2.0.3 BitBake User Manual </2.0.3/bitbake-user-manual/bitbake-user-manual.html>`
*************************
1.8 'fido' Release Series
*************************
- :yocto_docs:`1.8 BitBake User Manual </1.8/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.1 BitBake User Manual </1.8.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.8.2 BitBake User Manual </1.8.2/bitbake-user-manual/bitbake-user-manual.html>`
**************************
1.7 'dizzy' Release Series
**************************
- :yocto_docs:`1.7 BitBake User Manual </1.7/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.1 BitBake User Manual </1.7.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.2 BitBake User Manual </1.7.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.7.3 BitBake User Manual </1.7.3/bitbake-user-manual/bitbake-user-manual.html>`
**************************
1.6 'daisy' Release Series
**************************
- :yocto_docs:`1.6 BitBake User Manual </1.6/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.1 BitBake User Manual </1.6.1/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.2 BitBake User Manual </1.6.2/bitbake-user-manual/bitbake-user-manual.html>`
- :yocto_docs:`1.6.3 BitBake User Manual </1.6.3/bitbake-user-manual/bitbake-user-manual.html>`

View File

@@ -0,0 +1,233 @@
(function() {
'use strict';
var all_versions = {
'dev': 'dev (3.2)',
'3.1.2': '3.1.2',
'3.0.3': '3.0.3',
'2.7.4': '2.7.4',
};
var all_doctypes = {
'single': 'Individual Webpages',
'mega': "All-in-one 'Mega' Manual",
};
// Simple version comparision
// Return 1 if a > b
// Return -1 if a < b
// Return 0 if a == b
function ver_compare(a, b) {
if (a == "dev") {
return 1;
}
if (a === b) {
return 0;
}
var a_components = a.split(".");
var b_components = b.split(".");
var len = Math.min(a_components.length, b_components.length);
// loop while the components are equal
for (var i = 0; i < len; i++) {
// A bigger than B
if (parseInt(a_components[i]) > parseInt(b_components[i])) {
return 1;
}
// B bigger than A
if (parseInt(a_components[i]) < parseInt(b_components[i])) {
return -1;
}
}
// If one's a prefix of the other, the longer one is greater.
if (a_components.length > b_components.length) {
return 1;
}
if (a_components.length < b_components.length) {
return -1;
}
// Otherwise they are the same.
return 0;
}
function build_version_select(current_series, current_version) {
var buf = ['<select>'];
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series) {
if (version == current_version)
buf.push('<option value="' + version + '" selected="selected">' + title + '</option>');
else
buf.push('<option value="' + version + '">' + title + '</option>');
if (version != current_version)
buf.push('<option value="' + current_version + '" selected="selected">' + current_version + '</option>');
} else {
buf.push('<option value="' + version + '">' + title + '</option>');
}
});
buf.push('</select>');
return buf.join('');
}
function build_doctype_select(current_doctype) {
var buf = ['<select>'];
$.each(all_doctypes, function(doctype, title) {
if (doctype == current_doctype)
buf.push('<option value="' + doctype + '" selected="selected">' +
all_doctypes[current_doctype] + '</option>');
else
buf.push('<option value="' + doctype + '">' + title + '</option>');
});
if (!(current_doctype in all_doctypes)) {
// In case we're browsing a doctype that is not yet in all_doctypes.
buf.push('<option value="' + current_doctype + '" selected="selected">' +
current_doctype + '</option>');
all_doctypes[current_doctype] = current_doctype;
}
buf.push('</select>');
return buf.join('');
}
function navigate_to_first_existing(urls) {
// Navigate to the first existing URL in urls.
var url = urls.shift();
// Web browsers won't redirect file:// urls to file urls using ajax but
// its useful for local testing
if (url.startsWith("file://")) {
window.location.href = url;
return;
}
if (urls.length == 0) {
window.location.href = url;
return;
}
$.ajax({
url: url,
success: function() {
window.location.href = url;
},
error: function() {
navigate_to_first_existing(urls);
}
});
}
function get_docroot_url() {
var url = window.location.href;
var root = DOCUMENTATION_OPTIONS.URL_ROOT;
var urlarray = url.split('/');
// Trim off anything after '/'
urlarray.pop();
var depth = (root.match(/\.\.\//g) || []).length;
for (var i = 0; i < depth; i++) {
urlarray.pop();
}
return urlarray.join('/') + '/';
}
function on_version_switch() {
var selected_version = $(this).children('option:selected').attr('value');
var url = window.location.href;
var current_version = DOCUMENTATION_OPTIONS.VERSION;
var docroot = get_docroot_url()
var new_versionpath = selected_version + '/';
if (selected_version == "dev")
new_versionpath = '';
// dev versions have no version prefix
if (current_version == "dev") {
var new_url = docroot + new_versionpath + url.replace(docroot, "");
var fallback_url = docroot + new_versionpath;
} else {
var new_url = url.replace('/' + current_version + '/', '/' + new_versionpath);
var fallback_url = new_url.replace(url.replace(docroot, ""), "");
}
console.log(get_docroot_url())
console.log(url + " to url " + new_url);
console.log(url + " to fallback " + fallback_url);
if (new_url != url) {
navigate_to_first_existing([
new_url,
fallback_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
function on_doctype_switch() {
var selected_doctype = $(this).children('option:selected').attr('value');
var url = window.location.href;
if (selected_doctype == 'mega') {
var docroot = get_docroot_url()
var current_version = DOCUMENTATION_OPTIONS.VERSION;
// Assume manuals before 3.2 are using old docbook mega-manual
if (ver_compare(current_version, "3.2") < 0) {
var new_url = docroot + "mega-manual/mega-manual.html";
} else {
var new_url = docroot + "singleindex.html";
}
} else {
var new_url = url.replace("singleindex.html", "index.html")
}
if (new_url != url) {
navigate_to_first_existing([
new_url,
'https://www.yoctoproject.org/docs/',
]);
}
}
// Returns the current doctype based upon the url
function doctype_segment_from_url(url) {
if (url.includes("singleindex") || url.includes("mega-manual"))
return "mega";
return "single";
}
$(document).ready(function() {
var release = DOCUMENTATION_OPTIONS.VERSION;
var current_doctype = doctype_segment_from_url(window.location.href);
var current_series = release.substr(0, 3);
var version_select = build_version_select(current_series, release);
$('.version_switcher_placeholder').html(version_select);
$('.version_switcher_placeholder select').bind('change', on_version_switch);
var doctype_select = build_doctype_select(current_doctype);
$('.doctype_switcher_placeholder').html(doctype_select);
$('.doctype_switcher_placeholder select').bind('change', on_doctype_switch);
if (ver_compare(release, "3.1") < 0) {
$('#outdated-warning').html('Version ' + release + ' of the project is now considered obsolete, please select and use a more recent version');
$('#outdated-warning').css('padding', '.5em');
} else if (release != "dev") {
$.each(all_versions, function(version, title) {
var series = version.substr(0, 3);
if (series == current_series && version != release) {
$('#outdated-warning').html('This document is for outdated version ' + release + ', you should select the latest release version in this series, ' + version + '.');
$('#outdated-warning').css('padding', '.5em');
}
});
}
});
})();

View File

@@ -0,0 +1,162 @@
/*
SPDX-License-Identifier: CC-BY-2.0-UK
*/
body {
font-family: Verdana, Sans, sans-serif;
margin: 0em auto;
color: #333;
}
h1,h2,h3,h4,h5,h6,h7 {
font-family: Arial, Sans;
color: #00557D;
clear: both;
}
h1 {
font-size: 2em;
text-align: left;
padding: 0em 0em 0em 0em;
margin: 2em 0em 0em 0em;
}
h2.subtitle {
margin: 0.10em 0em 3.0em 0em;
padding: 0em 0em 0em 0em;
font-size: 1.8em;
padding-left: 20%;
font-weight: normal;
font-style: italic;
}
h2 {
margin: 2em 0em 0.66em 0em;
padding: 0.5em 0em 0em 0em;
font-size: 1.5em;
font-weight: bold;
}
h3.subtitle {
margin: 0em 0em 1em 0em;
padding: 0em 0em 0em 0em;
font-size: 142.14%;
text-align: right;
}
h3 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 140%;
font-weight: bold;
}
h4 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 120%;
font-weight: bold;
}
h5 {
margin: 1em 0em 0.5em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
h6 {
margin: 1em 0em 0em 0em;
padding: 1em 0em 0em 0em;
font-size: 110%;
font-weight: bold;
}
em {
font-weight: bold;
}
.pre {
font-size: medium;
font-family: Courier, monospace;
}
.wy-nav-content a {
text-decoration: underline;
color: #444;
background: transparent;
}
.wy-nav-content a:hover {
text-decoration: underline;
background-color: #dedede;
}
.wy-nav-content a:visited {
color: #444;
}
[alt='Permalink'] { color: #eee; }
[alt='Permalink']:hover { color: black; }
@media screen {
/* content column
*
* RTD theme's default is 800px as max width for the content, but we have
* tables with tons of columns, which need the full width of the view-port.
*/
.wy-nav-content{max-width: none; }
/* inline literal: drop the borderbox, padding and red color */
code, .rst-content tt, .rst-content code {
color: inherit;
border: none;
padding: unset;
background: inherit;
font-size: 85%;
}
.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal {
color: inherit;
}
/* Admonition should be gray, not blue or green */
.rst-content .note .admonition-title,
.rst-content .tip .admonition-title,
.rst-content .warning .admonition-title,
.rst-content .caution .admonition-title,
.rst-content .important .admonition-title {
background: #f0f0f2;
color: #00557D;
}
.rst-content .note,
.rst-content .tip,
.rst-content .important,
.rst-content .warning,
.rst-content .caution {
background: #f0f0f2;
}
/* Remove the icon in front of note/tip element, and before the logo */
.icon-home:before, .rst-content .admonition-title:before {
display: none
}
/* a custom informalexample container is used in some doc */
.informalexample {
border: 1px solid;
border-color: #aaa;
margin: 1em 0em;
padding: 1em;
page-break-inside: avoid;
}
/* Remove the blue background in the top left corner, around the logo */
.wy-side-nav-search {
background: inherit;
}
}

BIN
bitbake/doc/template/Vera.ttf vendored Normal file

Binary file not shown.

BIN
bitbake/doc/template/VeraMoBd.ttf vendored Normal file

Binary file not shown.

BIN
bitbake/doc/template/VeraMono.ttf vendored Normal file

Binary file not shown.

BIN
bitbake/doc/template/draft.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

195
bitbake/lib/bb/COW.py Normal file
View File

@@ -0,0 +1,195 @@
#
# This is a copy on write dictionary and set which abuses classes to try and be nice and fast.
#
# Copyright (C) 2006 Tim Ansell
#
# Please Note:
# Be careful when using mutable types (ie Dict and Lists) - operations involving these are SLOW.
# Assign a file to __warn__ to get warnings about slow operations.
#
import copy
ImmutableTypes = (
bool,
complex,
float,
int,
tuple,
frozenset,
str
)
MUTABLE = "__mutable__"
class COWMeta(type):
pass
class COWDictMeta(COWMeta):
__warn__ = False
__hasmutable__ = False
__marker__ = tuple()
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWDict Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
copy = cow
__call__ = cow
def __setitem__(cls, key, value):
if value is not None and not isinstance(value, ImmutableTypes):
if not isinstance(value, COWMeta):
cls.__hasmutable__ = True
key += MUTABLE
setattr(cls, key, value)
def __getmutable__(cls, key, readonly=False):
nkey = key + MUTABLE
try:
return cls.__dict__[nkey]
except KeyError:
pass
value = getattr(cls, nkey)
if readonly:
return value
if not cls.__warn__ is False and not isinstance(value, COWMeta):
print("Warning: Doing a copy because %s is a mutable type." % key, file=cls.__warn__)
try:
value = value.copy()
except AttributeError as e:
value = copy.copy(value)
setattr(cls, nkey, value)
return value
__getmarker__ = []
def __getreadonly__(cls, key, default=__getmarker__):
"""
Get a value (even if mutable) which you promise not to change.
"""
return cls.__getitem__(key, default, True)
def __getitem__(cls, key, default=__getmarker__, readonly=False):
try:
try:
value = getattr(cls, key)
except AttributeError:
value = cls.__getmutable__(key, readonly)
# This is for values which have been deleted
if value is cls.__marker__:
raise AttributeError("key %s does not exist." % key)
return value
except AttributeError as e:
if not default is cls.__getmarker__:
return default
raise KeyError(str(e))
def __delitem__(cls, key):
cls.__setitem__(key, cls.__marker__)
def __revertitem__(cls, key):
if key not in cls.__dict__:
key += MUTABLE
delattr(cls, key)
def __contains__(cls, key):
return cls.has_key(key)
def has_key(cls, key):
value = cls.__getreadonly__(key, cls.__marker__)
if value is cls.__marker__:
return False
return True
def iter(cls, type, readonly=False):
for key in dir(cls):
if key.startswith("__"):
continue
if key.endswith(MUTABLE):
key = key[:-len(MUTABLE)]
if type == "keys":
yield key
try:
if readonly:
value = cls.__getreadonly__(key)
else:
value = cls[key]
except KeyError:
continue
if type == "values":
yield value
if type == "items":
yield (key, value)
return
def iterkeys(cls):
return cls.iter("keys")
def itervalues(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("values", readonly)
def iteritems(cls, readonly=False):
if not cls.__warn__ is False and cls.__hasmutable__ and readonly is False:
print("Warning: If you aren't going to change any of the values call with True.", file=cls.__warn__)
return cls.iter("items", readonly)
class COWSetMeta(COWDictMeta):
def __str__(cls):
# FIXME: I have magic numbers!
return "<COWSet Level: %i Current Keys: %i>" % (cls.__count__, len(cls.__dict__) - 3)
__repr__ = __str__
def cow(cls):
class C(cls):
__count__ = cls.__count__ + 1
return C
def add(cls, value):
COWDictMeta.__setitem__(cls, repr(hash(value)), value)
def remove(cls, value):
COWDictMeta.__delitem__(cls, repr(hash(value)))
def __in__(cls, value):
return repr(hash(value)) in COWDictMeta
def iterkeys(cls):
raise TypeError("sets don't have keys")
def iteritems(cls):
raise TypeError("sets don't have 'items'")
# These are the actual classes you use!
class COWDictBase(metaclass=COWDictMeta):
__count__ = 0
class COWSetBase(metaclass=COWSetMeta):
__count__ = 0

205
bitbake/lib/bb/__init__.py Normal file
View File

@@ -0,0 +1,205 @@
#
# BitBake Build System Python Library
#
# Copyright (C) 2003 Holger Schurig
# Copyright (C) 2003, 2004 Chris Larson
#
# Based on Gentoo's portage.py.
#
# SPDX-License-Identifier: GPL-2.0-only
#
__version__ = "1.52.0"
import sys
if sys.version_info < (3, 6, 0):
raise RuntimeError("Sorry, python 3.6.0 or later is required for this version of bitbake")
class BBHandledException(Exception):
"""
The big dilemma for generic bitbake code is what information to give the user
when an exception occurs. Any exception inheriting this base exception class
has already provided information to the user via some 'fired' message type such as
an explicitly fired event using bb.fire, or a bb.error message. If bitbake
encounters an exception derived from this class, no backtrace or other information
will be given to the user, its assumed the earlier event provided the relevant information.
"""
pass
import os
import logging
class NullHandler(logging.Handler):
def emit(self, record):
pass
class BBLoggerMixin(object):
def __init__(self, *args, **kwargs):
# Does nothing to allow calling super() from derived classes
pass
def setup_bblogger(self, name):
if name.split(".")[0] == "BitBake":
self.debug = self._debug_helper
def _debug_helper(self, *args, **kwargs):
return self.bbdebug(1, *args, **kwargs)
def debug2(self, *args, **kwargs):
return self.bbdebug(2, *args, **kwargs)
def debug3(self, *args, **kwargs):
return self.bbdebug(3, *args, **kwargs)
def bbdebug(self, level, msg, *args, **kwargs):
loglevel = logging.DEBUG - level + 1
if not bb.event.worker_pid:
if self.name in bb.msg.loggerDefaultDomains and loglevel > (bb.msg.loggerDefaultDomains[self.name]):
return
if loglevel < bb.msg.loggerDefaultLogLevel:
return
return self.log(loglevel, msg, *args, **kwargs)
def plain(self, msg, *args, **kwargs):
return self.log(logging.INFO + 1, msg, *args, **kwargs)
def verbose(self, msg, *args, **kwargs):
return self.log(logging.INFO - 1, msg, *args, **kwargs)
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
Logger = logging.getLoggerClass()
class BBLogger(Logger, BBLoggerMixin):
def __init__(self, name, *args, **kwargs):
self.setup_bblogger(name)
super().__init__(name, *args, **kwargs)
logging.raiseExceptions = False
logging.setLoggerClass(BBLogger)
class BBLoggerAdapter(logging.LoggerAdapter, BBLoggerMixin):
def __init__(self, logger, *args, **kwargs):
self.setup_bblogger(logger.name)
super().__init__(logger, *args, **kwargs)
if sys.version_info < (3, 6):
# These properties were added in Python 3.6. Add them in older versions
# for compatibility
@property
def manager(self):
return self.logger.manager
@manager.setter
def manager(self, value):
self.logger.manager = value
@property
def name(self):
return self.logger.name
def __repr__(self):
logger = self.logger
level = logger.getLevelName(logger.getEffectiveLevel())
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
logging.LoggerAdapter = BBLoggerAdapter
logger = logging.getLogger("BitBake")
logger.addHandler(NullHandler())
logger.setLevel(logging.DEBUG - 2)
mainlogger = logging.getLogger("BitBake.Main")
class PrefixLoggerAdapter(logging.LoggerAdapter):
def __init__(self, prefix, logger):
super().__init__(logger, {})
self.__msg_prefix = prefix
def process(self, msg, kwargs):
return "%s%s" %(self.__msg_prefix, msg), kwargs
# This has to be imported after the setLoggerClass, as the import of bb.msg
# can result in construction of the various loggers.
import bb.msg
from bb import fetch2 as fetch
sys.modules['bb.fetch'] = sys.modules['bb.fetch2']
# Messaging convenience functions
def plain(*args):
mainlogger.plain(''.join(args))
def debug(lvl, *args):
if isinstance(lvl, str):
mainlogger.warning("Passed invalid debug level '%s' to bb.debug", lvl)
args = (lvl,) + args
lvl = 1
mainlogger.bbdebug(lvl, ''.join(args))
def note(*args):
mainlogger.info(''.join(args))
#
# A higher prioity note which will show on the console but isn't a warning
#
# Something is happening the user should be aware of but they probably did
# something to make it happen
#
def verbnote(*args):
mainlogger.verbnote(''.join(args))
#
# Warnings - things the user likely needs to pay attention to and fix
#
def warn(*args):
mainlogger.warning(''.join(args))
def error(*args, **kwargs):
mainlogger.error(''.join(args), extra=kwargs)
def fatal(*args, **kwargs):
mainlogger.critical(''.join(args), extra=kwargs)
raise BBHandledException()
def deprecated(func, name=None, advice=""):
"""This is a decorator which can be used to mark functions
as deprecated. It will result in a warning being emitted
when the function is used."""
import warnings
if advice:
advice = ": %s" % advice
if name is None:
name = func.__name__
def newFunc(*args, **kwargs):
warnings.warn("Call to deprecated function %s%s." % (name,
advice),
category=DeprecationWarning,
stacklevel=2)
return func(*args, **kwargs)
newFunc.__name__ = func.__name__
newFunc.__doc__ = func.__doc__
newFunc.__dict__.update(func.__dict__)
return newFunc
# For compatibility
def deprecate_import(current, modulename, fromlist, renames = None):
"""Import objects from one module into another, wrapping them with a DeprecationWarning"""
import sys
module = __import__(modulename, fromlist = fromlist)
for position, objname in enumerate(fromlist):
obj = getattr(module, objname)
newobj = deprecated(obj, "{0}.{1}".format(current, objname),
"Please use {0}.{1} instead".format(modulename, objname))
if renames:
newname = renames[position]
else:
newname = objname
setattr(sys.modules[current], newname, newobj)

View File

@@ -0,0 +1,31 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import itertools
import json
# The Python async server defaults to a 64K receive buffer, so we hardcode our
# maximum chunk size. It would be better if the client and server reported to
# each other what the maximum chunk sizes were, but that will slow down the
# connection setup with a round trip delay so I'd rather not do that unless it
# is necessary
DEFAULT_MAX_CHUNK = 32 * 1024
def chunkify(msg, max_chunk):
if len(msg) < max_chunk - 1:
yield ''.join((msg, "\n"))
else:
yield ''.join((json.dumps({
'chunk-stream': None
}), "\n"))
args = [iter(msg)] * (max_chunk - 1)
for m in map(''.join, itertools.zip_longest(*args, fillvalue='')):
yield ''.join(itertools.chain(m, "\n"))
yield "\n"
from .client import AsyncClient, Client
from .serv import AsyncServer, AsyncServerConnection

View File

@@ -0,0 +1,172 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import socket
import sys
from . import chunkify, DEFAULT_MAX_CHUNK
class AsyncClient(object):
def __init__(self, proto_name, proto_version, logger, timeout=30):
self.reader = None
self.writer = None
self.max_chunk = DEFAULT_MAX_CHUNK
self.proto_name = proto_name
self.proto_version = proto_version
self.logger = logger
self.timeout = timeout
async def connect_tcp(self, address, port):
async def connect_sock():
return await asyncio.open_connection(address, port)
self._connect_sock = connect_sock
async def connect_unix(self, path):
async def connect_sock():
return await asyncio.open_unix_connection(path)
self._connect_sock = connect_sock
async def setup_connection(self):
s = '%s %s\n\n' % (self.proto_name, self.proto_version)
self.writer.write(s.encode("utf-8"))
await self.writer.drain()
async def connect(self):
if self.reader is None or self.writer is None:
(self.reader, self.writer) = await self._connect_sock()
await self.setup_connection()
async def close(self):
self.reader = None
if self.writer is not None:
self.writer.close()
self.writer = None
async def _send_wrapper(self, proc):
count = 0
while True:
try:
await self.connect()
return await proc()
except (
OSError,
ConnectionError,
json.JSONDecodeError,
UnicodeDecodeError,
) as e:
self.logger.warning("Error talking to server: %s" % e)
if count >= 3:
if not isinstance(e, ConnectionError):
raise ConnectionError(str(e))
raise e
await self.close()
count += 1
async def send_message(self, msg):
async def get_line():
try:
line = await asyncio.wait_for(self.reader.readline(), self.timeout)
except asyncio.TimeoutError:
raise ConnectionError("Timed out waiting for server")
if not line:
raise ConnectionError("Connection closed")
line = line.decode("utf-8")
if not line.endswith("\n"):
raise ConnectionError("Bad message %r" % (line))
return line
async def proc():
for c in chunkify(json.dumps(msg), self.max_chunk):
self.writer.write(c.encode("utf-8"))
await self.writer.drain()
l = await get_line()
m = json.loads(l)
if m and "chunk-stream" in m:
lines = []
while True:
l = (await get_line()).rstrip("\n")
if not l:
break
lines.append(l)
m = json.loads("".join(lines))
return m
return await self._send_wrapper(proc)
async def ping(self):
return await self.send_message(
{'ping': {}}
)
class Client(object):
def __init__(self):
self.client = self._get_async_client()
self.loop = asyncio.new_event_loop()
# Override any pre-existing loop.
# Without this, the PR server export selftest triggers a hang
# when running with Python 3.7. The drawback is that there is
# potential for issues if the PR and hash equiv (or some new)
# clients need to both be instantiated in the same process.
# This should be revisited if/when Python 3.9 becomes the
# minimum required version for BitBake, as it seems not
# required (but harmless) with it.
asyncio.set_event_loop(self.loop)
self._add_methods('connect_tcp', 'ping')
@abc.abstractmethod
def _get_async_client(self):
pass
def _get_downcall_wrapper(self, downcall):
def wrapper(*args, **kwargs):
return self.loop.run_until_complete(downcall(*args, **kwargs))
return wrapper
def _add_methods(self, *methods):
for m in methods:
downcall = getattr(self.client, m)
setattr(self, m, self._get_downcall_wrapper(downcall))
def connect_unix(self, path):
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
try:
os.chdir(os.path.dirname(path))
self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path)))
self.loop.run_until_complete(self.client.connect())
finally:
os.chdir(cwd)
@property
def max_chunk(self):
return self.client.max_chunk
@max_chunk.setter
def max_chunk(self, value):
self.client.max_chunk = value
def close(self):
self.loop.run_until_complete(self.client.close())
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()

View File

@@ -0,0 +1,286 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import signal
import socket
import sys
import multiprocessing
from . import chunkify, DEFAULT_MAX_CHUNK
class ClientError(Exception):
pass
class ServerError(Exception):
pass
class AsyncServerConnection(object):
def __init__(self, reader, writer, proto_name, logger):
self.reader = reader
self.writer = writer
self.proto_name = proto_name
self.max_chunk = DEFAULT_MAX_CHUNK
self.handlers = {
'chunk-stream': self.handle_chunk,
'ping': self.handle_ping,
}
self.logger = logger
async def process_requests(self):
try:
self.addr = self.writer.get_extra_info('peername')
self.logger.debug('Client %r connected' % (self.addr,))
# Read protocol and version
client_protocol = await self.reader.readline()
if client_protocol is None:
return
(client_proto_name, client_proto_version) = client_protocol.decode('utf-8').rstrip().split()
if client_proto_name != self.proto_name:
self.logger.debug('Rejecting invalid protocol %s' % (self.proto_name))
return
self.proto_version = tuple(int(v) for v in client_proto_version.split('.'))
if not self.validate_proto_version():
self.logger.debug('Rejecting invalid protocol version %s' % (client_proto_version))
return
# Read headers. Currently, no headers are implemented, so look for
# an empty line to signal the end of the headers
while True:
line = await self.reader.readline()
if line is None:
return
line = line.decode('utf-8').rstrip()
if not line:
break
# Handle messages
while True:
d = await self.read_message()
if d is None:
break
await self.dispatch_message(d)
await self.writer.drain()
except ClientError as e:
self.logger.error(str(e))
finally:
self.writer.close()
async def dispatch_message(self, msg):
for k in self.handlers.keys():
if k in msg:
self.logger.debug('Handling %s' % k)
await self.handlers[k](msg[k])
return
raise ClientError("Unrecognized command %r" % msg)
def write_message(self, msg):
for c in chunkify(json.dumps(msg), self.max_chunk):
self.writer.write(c.encode('utf-8'))
async def read_message(self):
l = await self.reader.readline()
if not l:
return None
try:
message = l.decode('utf-8')
if not message.endswith('\n'):
return None
return json.loads(message)
except (json.JSONDecodeError, UnicodeDecodeError) as e:
self.logger.error('Bad message from client: %r' % message)
raise e
async def handle_chunk(self, request):
lines = []
try:
while True:
l = await self.reader.readline()
l = l.rstrip(b"\n").decode("utf-8")
if not l:
break
lines.append(l)
msg = json.loads(''.join(lines))
except (json.JSONDecodeError, UnicodeDecodeError) as e:
self.logger.error('Bad message from client: %r' % lines)
raise e
if 'chunk-stream' in msg:
raise ClientError("Nested chunks are not allowed")
await self.dispatch_message(msg)
async def handle_ping(self, request):
response = {'alive': True}
self.write_message(response)
class AsyncServer(object):
def __init__(self, logger):
self._cleanup_socket = None
self.logger = logger
self.start = None
self.address = None
self.loop = None
def start_tcp_server(self, host, port):
def start_tcp():
self.server = self.loop.run_until_complete(
asyncio.start_server(self.handle_client, host, port)
)
for s in self.server.sockets:
self.logger.debug('Listening on %r' % (s.getsockname(),))
# Newer python does this automatically. Do it manually here for
# maximum compatibility
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
name = self.server.sockets[0].getsockname()
if self.server.sockets[0].family == socket.AF_INET6:
self.address = "[%s]:%d" % (name[0], name[1])
else:
self.address = "%s:%d" % (name[0], name[1])
self.start = start_tcp
def start_unix_server(self, path):
def cleanup():
os.unlink(path)
def start_unix():
cwd = os.getcwd()
try:
# Work around path length limits in AF_UNIX
os.chdir(os.path.dirname(path))
self.server = self.loop.run_until_complete(
asyncio.start_unix_server(self.handle_client, os.path.basename(path))
)
finally:
os.chdir(cwd)
self.logger.debug('Listening on %r' % path)
self._cleanup_socket = cleanup
self.address = "unix://%s" % os.path.abspath(path)
self.start = start_unix
@abc.abstractmethod
def accept_client(self, reader, writer):
pass
async def handle_client(self, reader, writer):
# writer.transport.set_write_buffer_limits(0)
try:
client = self.accept_client(reader, writer)
await client.process_requests()
except Exception as e:
import traceback
self.logger.error('Error from client: %s' % str(e), exc_info=True)
traceback.print_exc()
writer.close()
self.logger.debug('Client disconnected')
def run_loop_forever(self):
try:
self.loop.run_forever()
except KeyboardInterrupt:
pass
def signal_handler(self):
self.logger.debug("Got exit signal")
self.loop.stop()
def _serve_forever(self):
try:
self.loop.add_signal_handler(signal.SIGTERM, self.signal_handler)
signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGTERM])
self.run_loop_forever()
self.server.close()
self.loop.run_until_complete(self.server.wait_closed())
self.logger.debug('Server shutting down')
finally:
if self._cleanup_socket is not None:
self._cleanup_socket()
def serve_forever(self):
"""
Serve requests in the current process
"""
# Create loop and override any loop that may have existed in
# a parent process. It is possible that the usecases of
# serve_forever might be constrained enough to allow using
# get_event_loop here, but better safe than sorry for now.
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
self.start()
self._serve_forever()
def serve_as_process(self, *, prefunc=None, args=()):
"""
Serve requests in a child process
"""
def run(queue):
# Create loop and override any loop that may have existed
# in a parent process. Without doing this and instead
# using get_event_loop, at the very minimum the hashserv
# unit tests will hang when running the second test.
# This happens since get_event_loop in the spawned server
# process for the second testcase ends up with the loop
# from the hashserv client created in the unit test process
# when running the first testcase. The problem is somewhat
# more general, though, as any potential use of asyncio in
# Cooker could create a loop that needs to replaced in this
# new process.
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
try:
self.start()
finally:
queue.put(self.address)
queue.close()
if prefunc is not None:
prefunc(self, *args)
self._serve_forever()
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
queue = multiprocessing.Queue()
# Temporarily block SIGTERM. The server process will inherit this
# block which will ensure it doesn't receive the SIGTERM until the
# handler is ready for it
mask = signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGTERM])
try:
self.process = multiprocessing.Process(target=run, args=(queue,))
self.process.start()
self.address = queue.get()
queue.close()
queue.join_thread()
return self.process
finally:
signal.pthread_sigmask(signal.SIG_SETMASK, mask)

1057
bitbake/lib/bb/build.py Normal file

File diff suppressed because it is too large Load Diff

1021
bitbake/lib/bb/cache.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,63 @@
#
# Extra RecipeInfo will be all defined in this file. Currently,
# Only Hob (Image Creator) Requests some extra fields. So
# HobRecipeInfo is defined. It's named HobRecipeInfo because it
# is introduced by 'hob'. Users could also introduce other
# RecipeInfo or simply use those already defined RecipeInfo.
# In the following patch, this newly defined new extra RecipeInfo
# will be dynamically loaded and used for loading/saving the extra
# cache fields
# Copyright (C) 2011, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: GPL-2.0-only
#
from bb.cache import RecipeInfoCommon
class HobRecipeInfo(RecipeInfoCommon):
__slots__ = ()
classname = "HobRecipeInfo"
# please override this member with the correct data cache file
# such as (bb_cache.dat, bb_extracache_hob.dat)
cachefile = "bb_extracache_" + classname +".dat"
# override this member with the list of extra cache fields
# that this class will provide
cachefields = ['summary', 'license', 'section',
'description', 'homepage', 'bugtracker',
'prevision', 'files_info']
def __init__(self, filename, metadata):
self.summary = self.getvar('SUMMARY', metadata)
self.license = self.getvar('LICENSE', metadata)
self.section = self.getvar('SECTION', metadata)
self.description = self.getvar('DESCRIPTION', metadata)
self.homepage = self.getvar('HOMEPAGE', metadata)
self.bugtracker = self.getvar('BUGTRACKER', metadata)
self.prevision = self.getvar('PR', metadata)
self.files_info = self.getvar('FILES_INFO', metadata)
@classmethod
def init_cacheData(cls, cachedata):
# CacheData in Hob RecipeInfo Class
cachedata.summary = {}
cachedata.license = {}
cachedata.section = {}
cachedata.description = {}
cachedata.homepage = {}
cachedata.bugtracker = {}
cachedata.prevision = {}
cachedata.files_info = {}
def add_cacheData(self, cachedata, fn):
cachedata.summary[fn] = self.summary
cachedata.license[fn] = self.license
cachedata.section[fn] = self.section
cachedata.description[fn] = self.description
cachedata.homepage[fn] = self.homepage
cachedata.bugtracker[fn] = self.bugtracker
cachedata.prevision[fn] = self.prevision
cachedata.files_info[fn] = self.files_info

126
bitbake/lib/bb/checksum.py Normal file
View File

@@ -0,0 +1,126 @@
# Local file checksum cache implementation
#
# Copyright (C) 2012 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
#
import glob
import operator
import os
import stat
import bb.utils
import logging
from bb.cache import MultiProcessCache
logger = logging.getLogger("BitBake.Cache")
# mtime cache (non-persistent)
# based upon the assumption that files do not change during bitbake run
class FileMtimeCache(object):
cache = {}
def cached_mtime(self, f):
if f not in self.cache:
self.cache[f] = os.stat(f)[stat.ST_MTIME]
return self.cache[f]
def cached_mtime_noerror(self, f):
if f not in self.cache:
try:
self.cache[f] = os.stat(f)[stat.ST_MTIME]
except OSError:
return 0
return self.cache[f]
def update_mtime(self, f):
self.cache[f] = os.stat(f)[stat.ST_MTIME]
return self.cache[f]
def clear(self):
self.cache.clear()
# Checksum + mtime cache (persistent)
class FileChecksumCache(MultiProcessCache):
cache_file_name = "local_file_checksum_cache.dat"
CACHE_VERSION = 1
def __init__(self):
self.mtime_cache = FileMtimeCache()
MultiProcessCache.__init__(self)
def get_checksum(self, f):
entry = self.cachedata[0].get(f)
cmtime = self.mtime_cache.cached_mtime(f)
if entry:
(mtime, hashval) = entry
if cmtime == mtime:
return hashval
else:
bb.debug(2, "file %s changed mtime, recompute checksum" % f)
hashval = bb.utils.md5_file(f)
self.cachedata_extras[0][f] = (cmtime, hashval)
return hashval
def merge_data(self, source, dest):
for h in source[0]:
if h in dest:
(smtime, _) = source[0][h]
(dmtime, _) = dest[0][h]
if smtime > dmtime:
dest[0][h] = source[0][h]
else:
dest[0][h] = source[0][h]
def get_checksums(self, filelist, pn, localdirsexclude):
"""Get checksums for a list of files"""
def checksum_file(f):
try:
checksum = self.get_checksum(f)
except OSError as e:
bb.warn("Unable to get checksum for %s SRC_URI entry %s: %s" % (pn, os.path.basename(f), e))
return None
return checksum
def checksum_dir(pth):
# Handle directories recursively
if pth == "/":
bb.fatal("Refusing to checksum /")
dirchecksums = []
for root, dirs, files in os.walk(pth, topdown=True):
[dirs.remove(d) for d in list(dirs) if d in localdirsexclude]
for name in files:
fullpth = os.path.join(root, name)
checksum = checksum_file(fullpth)
if checksum:
dirchecksums.append((fullpth, checksum))
return dirchecksums
checksums = []
for pth in filelist.split():
exist = pth.split(":")[1]
if exist == "False":
continue
pth = pth.split(":")[0]
if '*' in pth:
# Handle globs
for f in glob.glob(pth):
if os.path.isdir(f):
if not os.path.islink(f):
checksums.extend(checksum_dir(f))
else:
checksum = checksum_file(f)
if checksum:
checksums.append((f, checksum))
elif os.path.isdir(pth):
if not os.path.islink(pth):
checksums.extend(checksum_dir(pth))
else:
checksum = checksum_file(pth)
if checksum:
checksums.append((pth, checksum))
checksums.sort(key=operator.itemgetter(1))
return checksums

View File

@@ -0,0 +1,459 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
BitBake code parser
Parses actual code (i.e. python and shell) for functions and in-line
expressions. Used mainly to determine dependencies on other functions
and variables within the BitBake metadata. Also provides a cache for
this information in order to speed up processing.
(Not to be confused with the code that parses the metadata itself,
see lib/bb/parse/ for that).
NOTE: if you change how the parsers gather information you will almost
certainly need to increment CodeParserCache.CACHE_VERSION below so that
any existing codeparser cache gets invalidated. Additionally you'll need
to increment __cache_version__ in cache.py in order to ensure that old
recipe caches don't trigger "Taskhash mismatch" errors.
"""
import ast
import sys
import codegen
import logging
import bb.pysh as pysh
import bb.utils, bb.data
import hashlib
from itertools import chain
from bb.pysh import pyshyacc, pyshlex
from bb.cache import MultiProcessCache
logger = logging.getLogger('BitBake.CodeParser')
def bbhash(s):
return hashlib.sha256(s.encode("utf-8")).hexdigest()
def check_indent(codestr):
"""If the code is indented, add a top level piece of code to 'remove' the indentation"""
i = 0
while codestr[i] in ["\n", "\t", " "]:
i = i + 1
if i == 0:
return codestr
if codestr[i-1] == "\t" or codestr[i-1] == " ":
if codestr[0] == "\n":
# Since we're adding a line, we need to remove one line of any empty padding
# to ensure line numbers are correct
codestr = codestr[1:]
return "if 1:\n" + codestr
return codestr
# A custom getstate/setstate using tuples is actually worth 15% cachesize by
# avoiding duplication of the attribute names!
class SetCache(object):
def __init__(self):
self.setcache = {}
def internSet(self, items):
new = []
for i in items:
new.append(sys.intern(i))
s = frozenset(new)
h = hash(s)
if h in self.setcache:
return self.setcache[h]
self.setcache[h] = s
return s
codecache = SetCache()
class pythonCacheLine(object):
def __init__(self, refs, execs, contains):
self.refs = codecache.internSet(refs)
self.execs = codecache.internSet(execs)
self.contains = {}
for c in contains:
self.contains[c] = codecache.internSet(contains[c])
def __getstate__(self):
return (self.refs, self.execs, self.contains)
def __setstate__(self, state):
(refs, execs, contains) = state
self.__init__(refs, execs, contains)
def __hash__(self):
l = (hash(self.refs), hash(self.execs))
for c in sorted(self.contains.keys()):
l = l + (c, hash(self.contains[c]))
return hash(l)
def __repr__(self):
return " ".join([str(self.refs), str(self.execs), str(self.contains)])
class shellCacheLine(object):
def __init__(self, execs):
self.execs = codecache.internSet(execs)
def __getstate__(self):
return (self.execs)
def __setstate__(self, state):
(execs) = state
self.__init__(execs)
def __hash__(self):
return hash(self.execs)
def __repr__(self):
return str(self.execs)
class CodeParserCache(MultiProcessCache):
cache_file_name = "bb_codeparser.dat"
# NOTE: you must increment this if you change how the parsers gather information,
# so that an existing cache gets invalidated. Additionally you'll need
# to increment __cache_version__ in cache.py in order to ensure that old
# recipe caches don't trigger "Taskhash mismatch" errors.
CACHE_VERSION = 11
def __init__(self):
MultiProcessCache.__init__(self)
self.pythoncache = self.cachedata[0]
self.shellcache = self.cachedata[1]
self.pythoncacheextras = self.cachedata_extras[0]
self.shellcacheextras = self.cachedata_extras[1]
# To avoid duplication in the codeparser cache, keep
# a lookup of hashes of objects we already have
self.pythoncachelines = {}
self.shellcachelines = {}
def newPythonCacheLine(self, refs, execs, contains):
cacheline = pythonCacheLine(refs, execs, contains)
h = hash(cacheline)
if h in self.pythoncachelines:
return self.pythoncachelines[h]
self.pythoncachelines[h] = cacheline
return cacheline
def newShellCacheLine(self, execs):
cacheline = shellCacheLine(execs)
h = hash(cacheline)
if h in self.shellcachelines:
return self.shellcachelines[h]
self.shellcachelines[h] = cacheline
return cacheline
def init_cache(self, d):
# Check if we already have the caches
if self.pythoncache:
return
MultiProcessCache.init_cache(self, d)
# cachedata gets re-assigned in the parent
self.pythoncache = self.cachedata[0]
self.shellcache = self.cachedata[1]
def create_cachedata(self):
data = [{}, {}]
return data
codeparsercache = CodeParserCache()
def parser_cache_init(d):
codeparsercache.init_cache(d)
def parser_cache_save():
codeparsercache.save_extras()
def parser_cache_savemerge():
codeparsercache.save_merge()
Logger = logging.getLoggerClass()
class BufferedLogger(Logger):
def __init__(self, name, level=0, target=None):
Logger.__init__(self, name)
self.setLevel(level)
self.buffer = []
self.target = target
def handle(self, record):
self.buffer.append(record)
def flush(self):
for record in self.buffer:
if self.target.isEnabledFor(record.levelno):
self.target.handle(record)
self.buffer = []
class PythonParser():
getvars = (".getVar", ".appendVar", ".prependVar", "oe.utils.conditional")
getvarflags = (".getVarFlag", ".appendVarFlag", ".prependVarFlag")
containsfuncs = ("bb.utils.contains", "base_contains")
containsanyfuncs = ("bb.utils.contains_any", "bb.utils.filter")
execfuncs = ("bb.build.exec_func", "bb.build.exec_task")
def warn(self, func, arg):
"""Warn about calls of bitbake APIs which pass a non-literal
argument for the variable name, as we're not able to track such
a reference.
"""
try:
funcstr = codegen.to_source(func)
argstr = codegen.to_source(arg)
except TypeError:
self.log.debug2('Failed to convert function and argument to source form')
else:
self.log.debug(self.unhandled_message % (funcstr, argstr))
def visit_Call(self, node):
name = self.called_node_name(node.func)
if name and (name.endswith(self.getvars) or name.endswith(self.getvarflags) or name in self.containsfuncs or name in self.containsanyfuncs):
if isinstance(node.args[0], ast.Str):
varname = node.args[0].s
if name in self.containsfuncs and isinstance(node.args[1], ast.Str):
if varname not in self.contains:
self.contains[varname] = set()
self.contains[varname].add(node.args[1].s)
elif name in self.containsanyfuncs and isinstance(node.args[1], ast.Str):
if varname not in self.contains:
self.contains[varname] = set()
self.contains[varname].update(node.args[1].s.split())
elif name.endswith(self.getvarflags):
if isinstance(node.args[1], ast.Str):
self.references.add('%s[%s]' % (varname, node.args[1].s))
else:
self.warn(node.func, node.args[1])
else:
self.references.add(varname)
else:
self.warn(node.func, node.args[0])
elif name and name.endswith(".expand"):
if isinstance(node.args[0], ast.Str):
value = node.args[0].s
d = bb.data.init()
parser = d.expandWithRefs(value, self.name)
self.references |= parser.references
self.execs |= parser.execs
for varname in parser.contains:
if varname not in self.contains:
self.contains[varname] = set()
self.contains[varname] |= parser.contains[varname]
elif name in self.execfuncs:
if isinstance(node.args[0], ast.Str):
self.var_execs.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif name and isinstance(node.func, (ast.Name, ast.Attribute)):
self.execs.add(name)
def called_node_name(self, node):
"""Given a called node, return its original string form"""
components = []
while node:
if isinstance(node, ast.Attribute):
components.append(node.attr)
node = node.value
elif isinstance(node, ast.Name):
components.append(node.id)
return '.'.join(reversed(components))
else:
break
def __init__(self, name, log):
self.name = name
self.var_execs = set()
self.contains = {}
self.execs = set()
self.references = set()
self.log = BufferedLogger('BitBake.Data.PythonParser', logging.DEBUG, log)
self.unhandled_message = "in call of %s, argument '%s' is not a string literal"
self.unhandled_message = "while parsing %s, %s" % (name, self.unhandled_message)
def parse_python(self, node, lineno=0, filename="<string>"):
if not node or not node.strip():
return
h = bbhash(str(node))
if h in codeparsercache.pythoncache:
self.references = set(codeparsercache.pythoncache[h].refs)
self.execs = set(codeparsercache.pythoncache[h].execs)
self.contains = {}
for i in codeparsercache.pythoncache[h].contains:
self.contains[i] = set(codeparsercache.pythoncache[h].contains[i])
return
if h in codeparsercache.pythoncacheextras:
self.references = set(codeparsercache.pythoncacheextras[h].refs)
self.execs = set(codeparsercache.pythoncacheextras[h].execs)
self.contains = {}
for i in codeparsercache.pythoncacheextras[h].contains:
self.contains[i] = set(codeparsercache.pythoncacheextras[h].contains[i])
return
# We can't add to the linenumbers for compile, we can pad to the correct number of blank lines though
node = "\n" * int(lineno) + node
code = compile(check_indent(str(node)), filename, "exec",
ast.PyCF_ONLY_AST)
for n in ast.walk(code):
if n.__class__.__name__ == "Call":
self.visit_Call(n)
self.execs.update(self.var_execs)
codeparsercache.pythoncacheextras[h] = codeparsercache.newPythonCacheLine(self.references, self.execs, self.contains)
class ShellParser():
def __init__(self, name, log):
self.funcdefs = set()
self.allexecs = set()
self.execs = set()
self.log = BufferedLogger('BitBake.Data.%s' % name, logging.DEBUG, log)
self.unhandled_template = "unable to handle non-literal command '%s'"
self.unhandled_template = "while parsing %s, %s" % (name, self.unhandled_template)
def parse_shell(self, value):
"""Parse the supplied shell code in a string, returning the external
commands it executes.
"""
h = bbhash(str(value))
if h in codeparsercache.shellcache:
self.execs = set(codeparsercache.shellcache[h].execs)
return self.execs
if h in codeparsercache.shellcacheextras:
self.execs = set(codeparsercache.shellcacheextras[h].execs)
return self.execs
self._parse_shell(value)
self.execs = set(cmd for cmd in self.allexecs if cmd not in self.funcdefs)
codeparsercache.shellcacheextras[h] = codeparsercache.newShellCacheLine(self.execs)
return self.execs
def _parse_shell(self, value):
try:
tokens, _ = pyshyacc.parse(value, eof=True, debug=False)
except Exception:
bb.error('Error during parse shell code, the last 5 lines are:\n%s' % '\n'.join(value.split('\n')[-5:]))
raise
self.process_tokens(tokens)
def process_tokens(self, tokens):
"""Process a supplied portion of the syntax tree as returned by
pyshyacc.parse.
"""
def function_definition(value):
self.funcdefs.add(value.name)
return [value.body], None
def case_clause(value):
# Element 0 of each item in the case is the list of patterns, and
# Element 1 of each item in the case is the list of commands to be
# executed when that pattern matches.
words = chain(*[item[0] for item in value.items])
cmds = chain(*[item[1] for item in value.items])
return cmds, words
def if_clause(value):
main = chain(value.cond, value.if_cmds)
rest = value.else_cmds
if isinstance(rest, tuple) and rest[0] == "elif":
return chain(main, if_clause(rest[1]))
else:
return chain(main, rest)
def simple_command(value):
return None, chain(value.words, (assign[1] for assign in value.assigns))
token_handlers = {
"and_or": lambda x: ((x.left, x.right), None),
"async": lambda x: ([x], None),
"brace_group": lambda x: (x.cmds, None),
"for_clause": lambda x: (x.cmds, x.items),
"function_definition": function_definition,
"if_clause": lambda x: (if_clause(x), None),
"pipeline": lambda x: (x.commands, None),
"redirect_list": lambda x: ([x.cmd], None),
"subshell": lambda x: (x.cmds, None),
"while_clause": lambda x: (chain(x.condition, x.cmds), None),
"until_clause": lambda x: (chain(x.condition, x.cmds), None),
"simple_command": simple_command,
"case_clause": case_clause,
}
def process_token_list(tokens):
for token in tokens:
if isinstance(token, list):
process_token_list(token)
continue
name, value = token
try:
more_tokens, words = token_handlers[name](value)
except KeyError:
raise NotImplementedError("Unsupported token type " + name)
if more_tokens:
self.process_tokens(more_tokens)
if words:
self.process_words(words)
process_token_list(tokens)
def process_words(self, words):
"""Process a set of 'words' in pyshyacc parlance, which includes
extraction of executed commands from $() blocks, as well as grabbing
the command name argument.
"""
words = list(words)
for word in list(words):
wtree = pyshlex.make_wordtree(word[1])
for part in wtree:
if not isinstance(part, list):
continue
if part[0] in ('`', '$('):
command = pyshlex.wordtree_as_string(part[1:-1])
self._parse_shell(command)
if word[0] in ("cmd_name", "cmd_word"):
if word in words:
words.remove(word)
usetoken = False
for word in words:
if word[0] in ("cmd_name", "cmd_word") or \
(usetoken and word[0] == "TOKEN"):
if "=" in word[1]:
usetoken = True
continue
cmd = word[1]
if cmd.startswith("$"):
self.log.debug(self.unhandled_template % cmd)
elif cmd == "eval":
command = " ".join(word for _, word in words[1:])
self._parse_shell(command)
else:
self.allexecs.add(cmd)
break

774
bitbake/lib/bb/command.py Normal file
View File

@@ -0,0 +1,774 @@
"""
BitBake 'Command' module
Provide an interface to interact with the bitbake server through 'commands'
"""
# Copyright (C) 2006-2007 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
The bitbake server takes 'commands' from its UI/commandline.
Commands are either synchronous or asynchronous.
Async commands return data to the client in the form of events.
Sync commands must only return data through the function return value
and must not trigger events, directly or indirectly.
Commands are queued in a CommandQueue
"""
from collections import OrderedDict, defaultdict
import io
import bb.event
import bb.cooker
import bb.remotedata
class DataStoreConnectionHandle(object):
def __init__(self, dsindex=0):
self.dsindex = dsindex
class CommandCompleted(bb.event.Event):
pass
class CommandExit(bb.event.Event):
def __init__(self, exitcode):
bb.event.Event.__init__(self)
self.exitcode = int(exitcode)
class CommandFailed(CommandExit):
def __init__(self, message):
self.error = message
CommandExit.__init__(self, 1)
def __str__(self):
return "Command execution failed: %s" % self.error
class CommandError(Exception):
pass
class Command:
"""
A queue of asynchronous commands for bitbake
"""
def __init__(self, cooker):
self.cooker = cooker
self.cmds_sync = CommandsSync()
self.cmds_async = CommandsAsync()
self.remotedatastores = None
# FIXME Add lock for this
self.currentAsyncCommand = None
def runCommand(self, commandline, ro_only = False):
command = commandline.pop(0)
# Ensure cooker is ready for commands
if command != "updateConfig" and command != "setFeatures":
try:
self.cooker.init_configdata()
if not self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
except (Exception, SystemExit) as exc:
import traceback
if isinstance(exc, bb.BBHandledException):
# We need to start returning real exceptions here. Until we do, we can't
# tell if an exception is an instance of bb.BBHandledException
return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
if hasattr(CommandsSync, command):
# Can run synchronous commands straight away
command_method = getattr(self.cmds_sync, command)
if ro_only:
if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
self.cooker.process_inotify_updates()
if getattr(command_method, 'needconfig', True):
self.cooker.updateCacheSync()
result = command_method(self, commandline)
except CommandError as exc:
return None, exc.args[0]
except (Exception, SystemExit) as exc:
import traceback
if isinstance(exc, bb.BBHandledException):
# We need to start returning real exceptions here. Until we do, we can't
# tell if an exception is an instance of bb.BBHandledException
return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
else:
return result, None
if self.currentAsyncCommand is not None:
return None, "Busy (%s in progress)" % self.currentAsyncCommand[0]
if command not in CommandsAsync.__dict__:
return None, "No such command"
self.currentAsyncCommand = (command, commandline)
self.cooker.idleCallBackRegister(self.cooker.runCommands, self.cooker)
return True, None
def runAsyncCommand(self):
try:
self.cooker.process_inotify_updates()
if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown):
# updateCache will trigger a shutdown of the parser
# and then raise BBHandledException triggering an exit
self.cooker.updateCache()
return False
if self.currentAsyncCommand is not None:
(command, options) = self.currentAsyncCommand
commandmethod = getattr(CommandsAsync, command)
needcache = getattr( commandmethod, "needcache" )
if needcache and self.cooker.state != bb.cooker.state.running:
self.cooker.updateCache()
return True
else:
commandmethod(self.cmds_async, self, options)
return False
else:
return False
except KeyboardInterrupt as exc:
self.finishAsyncCommand("Interrupted")
return False
except SystemExit as exc:
arg = exc.args[0]
if isinstance(arg, str):
self.finishAsyncCommand(arg)
else:
self.finishAsyncCommand("Exited with %s" % arg)
return False
except Exception as exc:
import traceback
if isinstance(exc, bb.BBHandledException):
self.finishAsyncCommand("")
else:
self.finishAsyncCommand(traceback.format_exc())
return False
def finishAsyncCommand(self, msg=None, code=None):
if msg or msg == "":
bb.event.fire(CommandFailed(msg), self.cooker.data)
elif code:
bb.event.fire(CommandExit(code), self.cooker.data)
else:
bb.event.fire(CommandCompleted(), self.cooker.data)
self.currentAsyncCommand = None
self.cooker.finishcommand()
def reset(self):
if self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
class CommandsSync:
"""
A class of synchronous commands
These should run quickly so as not to hurt interactive performance.
These must not influence any running synchronous command.
"""
def stateShutdown(self, command, params):
"""
Trigger cooker 'shutdown' mode
"""
command.cooker.shutdown(False)
def stateForceShutdown(self, command, params):
"""
Stop the cooker
"""
command.cooker.shutdown(True)
def getAllKeysWithFlags(self, command, params):
"""
Returns a dump of the global state. Call with
variable flags to be retrieved as params.
"""
flaglist = params[0]
return command.cooker.getAllKeysWithFlags(flaglist)
getAllKeysWithFlags.readonly = True
def getVariable(self, command, params):
"""
Read the value of a variable from data
"""
varname = params[0]
expand = True
if len(params) > 1:
expand = (params[1] == "True")
return command.cooker.data.getVar(varname, expand)
getVariable.readonly = True
def setVariable(self, command, params):
"""
Set the value of variable in data
"""
varname = params[0]
value = str(params[1])
command.cooker.extraconfigdata[varname] = value
command.cooker.data.setVar(varname, value)
def getSetVariable(self, command, params):
"""
Read the value of a variable from data and set it into the datastore
which effectively expands and locks the value.
"""
varname = params[0]
result = self.getVariable(command, params)
command.cooker.data.setVar(varname, result)
return result
def setConfig(self, command, params):
"""
Set the value of variable in configuration
"""
varname = params[0]
value = str(params[1])
setattr(command.cooker.configuration, varname, value)
def enableDataTracking(self, command, params):
"""
Enable history tracking for variables
"""
command.cooker.enableDataTracking()
def disableDataTracking(self, command, params):
"""
Disable history tracking for variables
"""
command.cooker.disableDataTracking()
def setPrePostConfFiles(self, command, params):
prefiles = params[0].split()
postfiles = params[1].split()
command.cooker.configuration.prefile = prefiles
command.cooker.configuration.postfile = postfiles
setPrePostConfFiles.needconfig = False
def matchFile(self, command, params):
fMatch = params[0]
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.matchFile(fMatch, mc)
matchFile.needconfig = False
def getUIHandlerNum(self, command, params):
return bb.event.get_uihandler()
getUIHandlerNum.needconfig = False
getUIHandlerNum.readonly = True
def setEventMask(self, command, params):
handlerNum = params[0]
llevel = params[1]
debug_domains = params[2]
mask = params[3]
return bb.event.set_UIHmask(handlerNum, llevel, debug_domains, mask)
setEventMask.needconfig = False
setEventMask.readonly = True
def setFeatures(self, command, params):
"""
Set the cooker features to include the passed list of features
"""
features = params[0]
command.cooker.setFeatures(features)
setFeatures.needconfig = False
# although we change the internal state of the cooker, this is transparent since
# we always take and leave the cooker in state.initial
setFeatures.readonly = True
def updateConfig(self, command, params):
options = params[0]
environment = params[1]
cmdline = params[2]
command.cooker.updateConfigOpts(options, environment, cmdline)
updateConfig.needconfig = False
def parseConfiguration(self, command, params):
"""Instruct bitbake to parse its configuration
NOTE: it is only necessary to call this if you aren't calling any normal action
(otherwise parsing is taken care of automatically)
"""
command.cooker.parseConfiguration()
parseConfiguration.needconfig = False
def getLayerPriorities(self, command, params):
command.cooker.parseConfiguration()
ret = []
# regex objects cannot be marshalled by xmlrpc
for collection, pattern, regex, pri in command.cooker.bbfile_config_priorities:
ret.append((collection, pattern, regex.pattern, pri))
return ret
getLayerPriorities.readonly = True
def getRecipes(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.recipecaches[mc].pkg_pn.items())
getRecipes.readonly = True
def getRecipeDepends(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.recipecaches[mc].deps.items())
getRecipeDepends.readonly = True
def getRecipeVersions(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].pkg_pepvpr
getRecipeVersions.readonly = True
def getRecipeProvides(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].fn_provides
getRecipeProvides.readonly = True
def getRecipePackages(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].packages
getRecipePackages.readonly = True
def getRecipePackagesDynamic(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].packages_dynamic
getRecipePackagesDynamic.readonly = True
def getRProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].rproviders
getRProviders.readonly = True
def getRuntimeDepends(self, command, params):
ret = []
try:
mc = params[0]
except IndexError:
mc = ''
rundeps = command.cooker.recipecaches[mc].rundeps
for key, value in rundeps.items():
if isinstance(value, defaultdict):
value = dict(value)
ret.append((key, value))
return ret
getRuntimeDepends.readonly = True
def getRuntimeRecommends(self, command, params):
ret = []
try:
mc = params[0]
except IndexError:
mc = ''
runrecs = command.cooker.recipecaches[mc].runrecs
for key, value in runrecs.items():
if isinstance(value, defaultdict):
value = dict(value)
ret.append((key, value))
return ret
getRuntimeRecommends.readonly = True
def getRecipeInherits(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].inherits
getRecipeInherits.readonly = True
def getBbFilePriority(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].bbfile_priority
getBbFilePriority.readonly = True
def getDefaultPreference(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.recipecaches[mc].pkg_dp
getDefaultPreference.readonly = True
def getSkippedRecipes(self, command, params):
# Return list sorted by reverse priority order
import bb.cache
def sortkey(x):
vfn, _ = x
realfn, _, mc = bb.cache.virtualfn2realfn(vfn)
return (-command.cooker.collections[mc].calc_bbfile_priority(realfn)[0], vfn)
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(), key=sortkey))
return list(skipdict.items())
getSkippedRecipes.readonly = True
def getOverlayedRecipes(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.collections[mc].overlayed.items())
getOverlayedRecipes.readonly = True
def getFileAppends(self, command, params):
fn = params[0]
try:
mc = params[1]
except IndexError:
mc = ''
return command.cooker.collections[mc].get_file_appends(fn)
getFileAppends.readonly = True
def getAllAppends(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.collections[mc].bbappends
getAllAppends.readonly = True
def findProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.findProviders(mc)
findProviders.readonly = True
def findBestProvider(self, command, params):
(mc, pn) = bb.runqueue.split_mc(params[0])
return command.cooker.findBestProvider(pn, mc)
findBestProvider.readonly = True
def allProviders(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(bb.providers.allProviders(command.cooker.recipecaches[mc]).items())
allProviders.readonly = True
def getRuntimeProviders(self, command, params):
rprovide = params[0]
try:
mc = params[1]
except IndexError:
mc = ''
all_p = bb.providers.getRuntimeProviders(command.cooker.recipecaches[mc], rprovide)
if all_p:
best = bb.providers.filterProvidersRunTime(all_p, rprovide,
command.cooker.data,
command.cooker.recipecaches[mc])[0][0]
else:
best = None
return all_p, best
getRuntimeProviders.readonly = True
def dataStoreConnectorCmd(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
d = command.remotedatastores[dsindex]
ret = getattr(d, method)(*args, **kwargs)
if isinstance(ret, bb.data_smart.DataSmart):
idx = command.remotedatastores.store(ret)
return DataStoreConnectionHandle(idx)
return ret
def dataStoreConnectorVarHistCmd(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
d = command.remotedatastores[dsindex].varhistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorVarHistCmdEmit(self, command, params):
dsindex = params[0]
var = params[1]
oval = params[2]
val = params[3]
d = command.remotedatastores[params[4]]
o = io.StringIO()
command.remotedatastores[dsindex].varhistory.emit(var, oval, val, o, d)
return o.getvalue()
def dataStoreConnectorIncHistCmd(self, command, params):
dsindex = params[0]
method = params[1]
args = params[2]
kwargs = params[3]
d = command.remotedatastores[dsindex].inchistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorRelease(self, command, params):
dsindex = params[0]
if dsindex <= 0:
raise CommandError('dataStoreConnectorRelease: invalid index %d' % dsindex)
command.remotedatastores.release(dsindex)
def parseRecipeFile(self, command, params):
"""
Parse the specified recipe file (with or without bbappends)
and return a datastore object representing the environment
for the recipe.
"""
fn = params[0]
mc = bb.runqueue.mc_from_tid(fn)
appends = params[1]
appendlist = params[2]
if len(params) > 3:
config_data = command.remotedatastores[params[3]]
else:
config_data = None
if appends:
if appendlist is not None:
appendfiles = appendlist
else:
appendfiles = command.cooker.collections[mc].get_file_appends(fn)
else:
appendfiles = []
# We are calling bb.cache locally here rather than on the server,
# but that's OK because it doesn't actually need anything from
# the server barring the global datastore (which we have a remote
# version of)
if config_data:
# We have to use a different function here if we're passing in a datastore
# NOTE: we took a copy above, so we don't do it here again
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles, mc)['']
else:
# Use the standard path
parser = bb.cache.NoCache(command.cooker.databuilder)
envdata = parser.loadDataFull(fn, appendfiles)
idx = command.remotedatastores.store(envdata)
return DataStoreConnectionHandle(idx)
parseRecipeFile.readonly = True
class CommandsAsync:
"""
A class of asynchronous commands
These functions communicate via generated events.
Any function that requires metadata parsing should be here.
"""
def buildFile(self, command, params):
"""
Build a single specified .bb file
"""
bfile = params[0]
task = params[1]
if len(params) > 2:
internal = params[2]
else:
internal = False
if internal:
command.cooker.buildFileInternal(bfile, task, fireevents=False, quietlog=True)
else:
command.cooker.buildFile(bfile, task)
buildFile.needcache = False
def buildTargets(self, command, params):
"""
Build a set of targets
"""
pkgs_to_build = params[0]
task = params[1]
command.cooker.buildTargets(pkgs_to_build, task)
buildTargets.needcache = True
def generateDepTreeEvent(self, command, params):
"""
Generate an event containing the dependency information
"""
pkgs_to_build = params[0]
task = params[1]
command.cooker.generateDepTreeEvent(pkgs_to_build, task)
command.finishAsyncCommand()
generateDepTreeEvent.needcache = True
def generateDotGraph(self, command, params):
"""
Dump dependency information to disk as .dot files
"""
pkgs_to_build = params[0]
task = params[1]
command.cooker.generateDotGraphFiles(pkgs_to_build, task)
command.finishAsyncCommand()
generateDotGraph.needcache = True
def generateTargetsTree(self, command, params):
"""
Generate a tree of buildable targets.
If klass is provided ensure all recipes that inherit the class are
included in the package list.
If pkg_list provided use that list (plus any extras brought in by
klass) rather than generating a tree for all packages.
"""
klass = params[0]
pkg_list = params[1]
command.cooker.generateTargetsTree(klass, pkg_list)
command.finishAsyncCommand()
generateTargetsTree.needcache = True
def findConfigFiles(self, command, params):
"""
Find config files which provide appropriate values
for the passed configuration variable. i.e. MACHINE
"""
varname = params[0]
command.cooker.findConfigFiles(varname)
command.finishAsyncCommand()
findConfigFiles.needcache = False
def findFilesMatchingInDir(self, command, params):
"""
Find implementation files matching the specified pattern
in the requested subdirectory of a BBPATH
"""
pattern = params[0]
directory = params[1]
command.cooker.findFilesMatchingInDir(pattern, directory)
command.finishAsyncCommand()
findFilesMatchingInDir.needcache = False
def testCookerCommandEvent(self, command, params):
"""
Dummy command used by OEQA selftest to test tinfoil without IO
"""
pattern = params[0]
command.cooker.testCookerCommandEvent(pattern)
command.finishAsyncCommand()
testCookerCommandEvent.needcache = False
def findConfigFilePath(self, command, params):
"""
Find the path of the requested configuration file
"""
configfile = params[0]
command.cooker.findConfigFilePath(configfile)
command.finishAsyncCommand()
findConfigFilePath.needcache = False
def showVersions(self, command, params):
"""
Show the currently selected versions
"""
command.cooker.showVersions()
command.finishAsyncCommand()
showVersions.needcache = True
def showEnvironmentTarget(self, command, params):
"""
Print the environment of a target recipe
(needs the cache to work out which recipe to use)
"""
pkg = params[0]
command.cooker.showEnvironment(None, pkg)
command.finishAsyncCommand()
showEnvironmentTarget.needcache = True
def showEnvironment(self, command, params):
"""
Print the standard environment
or if specified the environment for a specified recipe
"""
bfile = params[0]
command.cooker.showEnvironment(bfile)
command.finishAsyncCommand()
showEnvironment.needcache = False
def parseFiles(self, command, params):
"""
Parse the .bb files
"""
command.cooker.updateCache()
command.finishAsyncCommand()
parseFiles.needcache = True
def compareRevisions(self, command, params):
"""
Parse the .bb files
"""
if bb.fetch.fetcher_compare_revisions(command.cooker.data):
command.finishAsyncCommand(code=1)
else:
command.finishAsyncCommand()
compareRevisions.needcache = True
def triggerEvent(self, command, params):
"""
Trigger a certain event
"""
event = params[0]
bb.event.fire(eval(event), command.cooker.data)
command.currentAsyncCommand = None
triggerEvent.needcache = False
def resetCooker(self, command, params):
"""
Reset the cooker to its initial state, thus forcing a reparse for
any async command that has the needcache property set to True
"""
command.cooker.reset()
command.finishAsyncCommand()
resetCooker.needcache = False
def clientComplete(self, command, params):
"""
Do the right thing when the controlling client exits
"""
command.cooker.clientComplete()
command.finishAsyncCommand()
clientComplete.needcache = False
def findSigInfo(self, command, params):
"""
Find signature info files via the signature generator
"""
(mc, pn) = bb.runqueue.split_mc(params[0])
taskname = params[1]
sigs = params[2]
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.databuilder.mcdata[mc])
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.databuilder.mcdata[mc])
command.finishAsyncCommand()
findSigInfo.needcache = False

View File

@@ -0,0 +1,194 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Helper library to implement streaming compression and decompression using an
# external process
#
# This library should be used directly by end users; a wrapper library for the
# specific compression tool should be created
import builtins
import io
import os
import subprocess
def open_wrap(
cls, filename, mode="rb", *, encoding=None, errors=None, newline=None, **kwargs
):
"""
Open a compressed file in binary or text mode.
Users should not call this directly. A specific compression library can use
this helper to provide it's own "open" command
The filename argument can be an actual filename (a str or bytes object), or
an existing file object to read from or write to.
The mode argument can be "r", "rb", "w", "wb", "x", "xb", "a" or "ab" for
binary mode, or "rt", "wt", "xt" or "at" for text mode. The default mode is
"rb".
For binary mode, this function is equivalent to the cls constructor:
cls(filename, mode). In this case, the encoding, errors and newline
arguments must not be provided.
For text mode, a cls object is created, and wrapped in an
io.TextIOWrapper instance with the specified encoding, error handling
behavior, and line ending(s).
"""
if "t" in mode:
if "b" in mode:
raise ValueError("Invalid mode: %r" % (mode,))
else:
if encoding is not None:
raise ValueError("Argument 'encoding' not supported in binary mode")
if errors is not None:
raise ValueError("Argument 'errors' not supported in binary mode")
if newline is not None:
raise ValueError("Argument 'newline' not supported in binary mode")
file_mode = mode.replace("t", "")
if isinstance(filename, (str, bytes, os.PathLike)):
binary_file = cls(filename, file_mode, **kwargs)
elif hasattr(filename, "read") or hasattr(filename, "write"):
binary_file = cls(None, file_mode, fileobj=filename, **kwargs)
else:
raise TypeError("filename must be a str or bytes object, or a file")
if "t" in mode:
return io.TextIOWrapper(
binary_file, encoding, errors, newline, write_through=True
)
else:
return binary_file
class CompressionError(OSError):
pass
class PipeFile(io.RawIOBase):
"""
Class that implements generically piping to/from a compression program
Derived classes should add the function get_compress() and get_decompress()
that return the required commands. Input will be piped into stdin and the
(de)compressed output should be written to stdout, e.g.:
class FooFile(PipeCompressionFile):
def get_decompress(self):
return ["fooc", "--decompress", "--stdout"]
def get_compress(self):
return ["fooc", "--compress", "--stdout"]
"""
READ = 0
WRITE = 1
def __init__(self, filename=None, mode="rb", *, stderr=None, fileobj=None):
if "t" in mode or "U" in mode:
raise ValueError("Invalid mode: {!r}".format(mode))
if not "b" in mode:
mode += "b"
if mode.startswith("r"):
self.mode = self.READ
elif mode.startswith("w"):
self.mode = self.WRITE
else:
raise ValueError("Invalid mode %r" % mode)
if fileobj is not None:
self.fileobj = fileobj
else:
self.fileobj = builtins.open(filename, mode or "rb")
if self.mode == self.READ:
self.p = subprocess.Popen(
self.get_decompress(),
stdin=self.fileobj,
stdout=subprocess.PIPE,
stderr=stderr,
close_fds=True,
)
self.pipe = self.p.stdout
else:
self.p = subprocess.Popen(
self.get_compress(),
stdin=subprocess.PIPE,
stdout=self.fileobj,
stderr=stderr,
close_fds=True,
)
self.pipe = self.p.stdin
self.__closed = False
def _check_process(self):
if self.p is None:
return
returncode = self.p.wait()
if returncode:
raise CompressionError("Process died with %d" % returncode)
self.p = None
def close(self):
if self.closed:
return
self.pipe.close()
if self.p is not None:
self._check_process()
self.fileobj.close()
self.__closed = True
@property
def closed(self):
return self.__closed
def fileno(self):
return self.pipe.fileno()
def flush(self):
self.pipe.flush()
def isatty(self):
return self.pipe.isatty()
def readable(self):
return self.mode == self.READ
def writable(self):
return self.mode == self.WRITE
def readinto(self, b):
if self.mode != self.READ:
import errno
raise OSError(
errno.EBADF, "read() on write-only %s object" % self.__class__.__name__
)
size = self.pipe.readinto(b)
if size == 0:
self._check_process()
return size
def write(self, data):
if self.mode != self.WRITE:
import errno
raise OSError(
errno.EBADF, "write() on read-only %s object" % self.__class__.__name__
)
data = self.pipe.write(data)
if not data:
self._check_process()
return data

View File

@@ -0,0 +1,17 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import bb.compress._pipecompress
def open(*args, **kwargs):
return bb.compress._pipecompress.open_wrap(LZ4File, *args, **kwargs)
class LZ4File(bb.compress._pipecompress.PipeFile):
def get_compress(self):
return ["lz4c", "-z", "-c"]
def get_decompress(self):
return ["lz4c", "-d", "-c"]

View File

@@ -0,0 +1,28 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import bb.compress._pipecompress
import shutil
def open(*args, **kwargs):
return bb.compress._pipecompress.open_wrap(ZstdFile, *args, **kwargs)
class ZstdFile(bb.compress._pipecompress.PipeFile):
def __init__(self, *args, num_threads=1, compresslevel=3, **kwargs):
self.num_threads = num_threads
self.compresslevel = compresslevel
super().__init__(*args, **kwargs)
def _get_zstd(self):
if self.num_threads == 1 or not shutil.which("pzstd"):
return ["zstd"]
return ["pzstd", "-p", "%d" % self.num_threads]
def get_compress(self):
return self._get_zstd() + ["-c", "-%d" % self.compresslevel]
def get_decompress(self):
return self._get_zstd() + ["-d", "-c"]

2322
bitbake/lib/bb/cooker.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,444 @@
#
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2003, 2004 Phil Blundell
# Copyright (C) 2003 - 2005 Michael 'Mickey' Lauer
# Copyright (C) 2005 Holger Hans Peter Freyther
# Copyright (C) 2005 ROAD GmbH
# Copyright (C) 2006 Richard Purdie
#
# SPDX-License-Identifier: GPL-2.0-only
#
import logging
import os
import re
import sys
import hashlib
from functools import wraps
import bb
from bb import data
import bb.parse
logger = logging.getLogger("BitBake")
parselog = logging.getLogger("BitBake.Parsing")
class ConfigParameters(object):
def __init__(self, argv=None):
self.options, targets = self.parseCommandLine(argv or sys.argv)
self.environment = self.parseEnvironment()
self.options.pkgs_to_build = targets or []
for key, val in self.options.__dict__.items():
setattr(self, key, val)
def parseCommandLine(self, argv=sys.argv):
raise Exception("Caller must implement commandline option parsing")
def parseEnvironment(self):
return os.environ.copy()
def updateFromServer(self, server):
if not self.options.cmd:
defaulttask, error = server.runCommand(["getVariable", "BB_DEFAULT_TASK"])
if error:
raise Exception("Unable to get the value of BB_DEFAULT_TASK from the server: %s" % error)
self.options.cmd = defaulttask or "build"
_, error = server.runCommand(["setConfig", "cmd", self.options.cmd])
if error:
raise Exception("Unable to set configuration option 'cmd' on the server: %s" % error)
if not self.options.pkgs_to_build:
bbpkgs, error = server.runCommand(["getVariable", "BBTARGETS"])
if error:
raise Exception("Unable to get the value of BBTARGETS from the server: %s" % error)
if bbpkgs:
self.options.pkgs_to_build.extend(bbpkgs.split())
def updateToServer(self, server, environment):
options = {}
for o in ["abort", "force", "invalidate_stamp",
"dry_run", "dump_signatures",
"extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout",
"nosetscene", "setsceneonly", "skipsetscene",
"runall", "runonly", "writeeventlog"]:
options[o] = getattr(self.options, o)
options['build_verbose_shell'] = self.options.verbose
options['build_verbose_stdout'] = self.options.verbose
options['default_loglevel'] = bb.msg.loggerDefaultLogLevel
options['debug_domains'] = bb.msg.loggerDefaultDomains
ret, error = server.runCommand(["updateConfig", options, environment, sys.argv])
if error:
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
def parseActions(self):
# Parse any commandline into actions
action = {'action':None, 'msg':None}
if self.options.show_environment:
if 'world' in self.options.pkgs_to_build:
action['msg'] = "'world' is not a valid target for --environment."
elif 'universe' in self.options.pkgs_to_build:
action['msg'] = "'universe' is not a valid target for --environment."
elif len(self.options.pkgs_to_build) > 1:
action['msg'] = "Only one target can be used with the --environment option."
elif self.options.buildfile and len(self.options.pkgs_to_build) > 0:
action['msg'] = "No target should be used with the --environment and --buildfile options."
elif len(self.options.pkgs_to_build) > 0:
action['action'] = ["showEnvironmentTarget", self.options.pkgs_to_build]
else:
action['action'] = ["showEnvironment", self.options.buildfile]
elif self.options.buildfile is not None:
action['action'] = ["buildFile", self.options.buildfile, self.options.cmd]
elif self.options.revisions_changed:
action['action'] = ["compareRevisions"]
elif self.options.show_versions:
action['action'] = ["showVersions"]
elif self.options.parse_only:
action['action'] = ["parseFiles"]
elif self.options.dot_graph:
if self.options.pkgs_to_build:
action['action'] = ["generateDotGraph", self.options.pkgs_to_build, self.options.cmd]
else:
action['msg'] = "Please specify a package name for dependency graph generation."
else:
if self.options.pkgs_to_build:
action['action'] = ["buildTargets", self.options.pkgs_to_build, self.options.cmd]
else:
#action['msg'] = "Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information."
action = None
self.options.initialaction = action
return action
class CookerConfiguration(object):
"""
Manages build options and configurations for one run
"""
def __init__(self):
self.debug_domains = bb.msg.loggerDefaultDomains
self.default_loglevel = bb.msg.loggerDefaultLogLevel
self.extra_assume_provided = []
self.prefile = []
self.postfile = []
self.cmd = None
self.abort = True
self.force = False
self.profile = False
self.nosetscene = False
self.setsceneonly = False
self.skipsetscene = False
self.invalidate_stamp = False
self.dump_signatures = []
self.build_verbose_shell = False
self.build_verbose_stdout = False
self.dry_run = False
self.tracking = False
self.writeeventlog = False
self.limited_deps = False
self.runall = []
self.runonly = []
self.env = {}
def __getstate__(self):
state = {}
for key in self.__dict__.keys():
state[key] = getattr(self, key)
return state
def __setstate__(self,state):
for k in state:
setattr(self, k, state[k])
def catch_parse_error(func):
"""Exception handling bits for our parsing"""
@wraps(func)
def wrapped(fn, *args):
try:
return func(fn, *args)
except IOError as exc:
import traceback
parselog.critical(traceback.format_exc())
parselog.critical("Unable to parse %s: %s" % (fn, exc))
raise bb.BBHandledException()
except bb.data_smart.ExpansionError as exc:
import traceback
bbdir = os.path.dirname(__file__) + os.sep
exc_class, exc, tb = sys.exc_info()
for tb in iter(lambda: tb.tb_next, None):
# Skip frames in bitbake itself, we only want the metadata
fn, _, _, _ = traceback.extract_tb(tb, 1)[0]
if not fn.startswith(bbdir):
break
parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb))
raise bb.BBHandledException()
except bb.parse.ParseError as exc:
parselog.critical(str(exc))
raise bb.BBHandledException()
return wrapped
@catch_parse_error
def parse_config_file(fn, data, include=True):
return bb.parse.handle(fn, data, include)
@catch_parse_error
def _inherit(bbclass, data):
bb.parse.BBHandler.inherit(bbclass, "configuration INHERITs", 0, data)
return data
def findConfigFile(configfile, data):
search = []
bbpath = data.getVar("BBPATH")
if bbpath:
for i in bbpath.split(":"):
search.append(os.path.join(i, "conf", configfile))
path = os.getcwd()
while path != "/":
search.append(os.path.join(path, "conf", configfile))
path, _ = os.path.split(path)
for i in search:
if os.path.exists(i):
return i
return None
#
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
#
def findTopdir():
d = bb.data.init()
bbpath = None
if 'BBPATH' in os.environ:
bbpath = os.environ['BBPATH']
d.setVar('BBPATH', bbpath)
layerconf = findConfigFile("bblayers.conf", d)
if layerconf:
return os.path.dirname(os.path.dirname(layerconf))
if bbpath:
bitbakeconf = bb.utils.which(bbpath, "conf/bitbake.conf")
if bitbakeconf:
return os.path.dirname(os.path.dirname(bitbakeconf))
return None
class CookerDataBuilder(object):
def __init__(self, cookercfg, worker = False):
self.prefiles = cookercfg.prefile
self.postfiles = cookercfg.postfile
self.tracking = cookercfg.tracking
bb.utils.set_context(bb.utils.clean_context())
bb.event.set_class_handlers(bb.event.clean_class_handlers())
self.basedata = bb.data.init()
if self.tracking:
self.basedata.enableTracking()
# Keep a datastore of the initial environment variables and their
# values from when BitBake was launched to enable child processes
# to use environment variables which have been cleaned from the
# BitBake processes env
self.savedenv = bb.data.init()
for k in cookercfg.env:
self.savedenv.setVar(k, cookercfg.env[k])
filtered_keys = bb.utils.approved_variables()
bb.data.inheritFromOS(self.basedata, self.savedenv, filtered_keys)
self.basedata.setVar("BB_ORIGENV", self.savedenv)
if worker:
self.basedata.setVar("BB_WORKERCONTEXT", "1")
self.data = self.basedata
self.mcdata = {}
def parseBaseConfiguration(self):
data_hash = hashlib.sha256()
try:
self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
if self.data.getVar("BB_WORKERCONTEXT", False) is None:
bb.fetch.fetcher_init(self.data)
bb.parse.init_parser(self.data)
bb.codeparser.parser_cache_init(self.data)
bb.event.fire(bb.event.ConfigParsed(), self.data)
reparse_cnt = 0
while self.data.getVar("BB_INVALIDCONF", False) is True:
if reparse_cnt > 20:
logger.error("Configuration has been re-parsed over 20 times, "
"breaking out of the loop...")
raise Exception("Too deep config re-parse loop. Check locations where "
"BB_INVALIDCONF is being set (ConfigParsed event handlers)")
self.data.setVar("BB_INVALIDCONF", False)
self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
reparse_cnt += 1
bb.event.fire(bb.event.ConfigParsed(), self.data)
bb.parse.init_parser(self.data)
data_hash.update(self.data.get_hash().encode('utf-8'))
self.mcdata[''] = self.data
multiconfig = (self.data.getVar("BBMULTICONFIG") or "").split()
for config in multiconfig:
if config[0].isdigit():
bb.fatal("Multiconfig name '%s' is invalid as multiconfigs cannot start with a digit" % config)
mcdata = self.parseConfigurationFiles(self.prefiles, self.postfiles, config)
bb.event.fire(bb.event.ConfigParsed(), mcdata)
self.mcdata[config] = mcdata
data_hash.update(mcdata.get_hash().encode('utf-8'))
if multiconfig:
bb.event.fire(bb.event.MultiConfigParsed(self.mcdata), self.data)
self.data_hash = data_hash.hexdigest()
except (SyntaxError, bb.BBHandledException):
raise bb.BBHandledException()
except bb.data_smart.ExpansionError as e:
logger.error(str(e))
raise bb.BBHandledException()
except Exception:
logger.exception("Error parsing configuration files")
raise bb.BBHandledException()
# Create a copy so we can reset at a later date when UIs disconnect
self.origdata = self.data
self.data = bb.data.createCopy(self.origdata)
self.mcdata[''] = self.data
def reset(self):
# We may not have run parseBaseConfiguration() yet
if not hasattr(self, 'origdata'):
return
self.data = bb.data.createCopy(self.origdata)
self.mcdata[''] = self.data
def _findLayerConf(self, data):
return findConfigFile("bblayers.conf", data)
def parseConfigurationFiles(self, prefiles, postfiles, mc = "default"):
data = bb.data.createCopy(self.basedata)
data.setVar("BB_CURRENT_MC", mc)
# Parse files for loading *before* bitbake.conf and any includes
for f in prefiles:
data = parse_config_file(f, data)
layerconf = self._findLayerConf(data)
if layerconf:
parselog.debug(2, "Found bblayers.conf (%s)", layerconf)
# By definition bblayers.conf is in conf/ of TOPDIR.
# We may have been called with cwd somewhere else so reset TOPDIR
data.setVar("TOPDIR", os.path.dirname(os.path.dirname(layerconf)))
data = parse_config_file(layerconf, data)
layers = (data.getVar('BBLAYERS') or "").split()
broken_layers = []
if not layers:
bb.fatal("The bblayers.conf file doesn't contain any BBLAYERS definition")
data = bb.data.createCopy(data)
approved = bb.utils.approved_variables()
# Check whether present layer directories exist
for layer in layers:
if not os.path.isdir(layer):
broken_layers.append(layer)
if broken_layers:
parselog.critical("The following layer directories do not exist:")
for layer in broken_layers:
parselog.critical(" %s", layer)
parselog.critical("Please check BBLAYERS in %s" % (layerconf))
raise bb.BBHandledException()
for layer in layers:
parselog.debug(2, "Adding layer %s", layer)
if 'HOME' in approved and '~' in layer:
layer = os.path.expanduser(layer)
if layer.endswith('/'):
layer = layer.rstrip('/')
data.setVar('LAYERDIR', layer)
data.setVar('LAYERDIR_RE', re.escape(layer))
data = parse_config_file(os.path.join(layer, "conf", "layer.conf"), data)
data.expandVarref('LAYERDIR')
data.expandVarref('LAYERDIR_RE')
data.delVar('LAYERDIR_RE')
data.delVar('LAYERDIR')
bbfiles_dynamic = (data.getVar('BBFILES_DYNAMIC') or "").split()
collections = (data.getVar('BBFILE_COLLECTIONS') or "").split()
invalid = []
for entry in bbfiles_dynamic:
parts = entry.split(":", 1)
if len(parts) != 2:
invalid.append(entry)
continue
l, f = parts
invert = l[0] == "!"
if invert:
l = l[1:]
if (l in collections and not invert) or (l not in collections and invert):
data.appendVar("BBFILES", " " + f)
if invalid:
bb.fatal("BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
layerseries = set((data.getVar("LAYERSERIES_CORENAMES") or "").split())
collections_tmp = collections[:]
for c in collections:
collections_tmp.remove(c)
if c in collections_tmp:
bb.fatal("Found duplicated BBFILE_COLLECTIONS '%s', check bblayers.conf or layer.conf to fix it." % c)
compat = set((data.getVar("LAYERSERIES_COMPAT_%s" % c) or "").split())
if compat and not layerseries:
bb.fatal("No core layer found to work with layer '%s'. Missing entry in bblayers.conf?" % c)
if compat and not (compat & layerseries):
bb.fatal("Layer %s is not compatible with the core layer which only supports these series: %s (layer is compatible with %s)"
% (c, " ".join(layerseries), " ".join(compat)))
elif not compat and not data.getVar("BB_WORKERCONTEXT"):
bb.warn("Layer %s should set LAYERSERIES_COMPAT_%s in its conf/layer.conf file to list the core layer names it is compatible with." % (c, c))
if not data.getVar("BBPATH"):
msg = "The BBPATH variable is not set"
if not layerconf:
msg += (" and bitbake did not find a conf/bblayers.conf file in"
" the expected location.\nMaybe you accidentally"
" invoked bitbake from the wrong directory?")
raise SystemExit(msg)
data = parse_config_file(os.path.join("conf", "bitbake.conf"), data)
# Parse files for loading *after* bitbake.conf and any includes
for p in postfiles:
data = parse_config_file(p, data)
# Handle any INHERITs and inherit the base class
bbclasses = ["base"] + (data.getVar('INHERIT') or "").split()
for bbclass in bbclasses:
data = _inherit(bbclass, data)
# Nomally we only register event handlers at the end of parsing .bb files
# We register any handlers we've found so far here...
for var in data.getVar('__BBHANDLERS', False) or []:
handlerfn = data.getVarFlag(var, "filename", False)
if not handlerfn:
parselog.critical("Undefined event handler function '%s'" % var)
raise bb.BBHandledException()
handlerln = int(data.getVarFlag(var, "lineno", False))
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln, data)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))
return data

View File

@@ -0,0 +1,99 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""
Python Daemonizing helper
Originally based on code Copyright (C) 2005 Chad J. Schroeder but now heavily modified
to allow a function to be daemonized and return for bitbake use by Richard Purdie
"""
import os
import sys
import io
import traceback
import bb
def createDaemon(function, logfile):
"""
Detach a process from the controlling terminal and run it in the
background as a daemon, returning control to the caller.
"""
# Ensure stdout/stderror are flushed before forking to avoid duplicate output
sys.stdout.flush()
sys.stderr.flush()
try:
# Fork a child process so the parent can exit. This returns control to
# the command-line or shell. It also guarantees that the child will not
# be a process group leader, since the child receives a new process ID
# and inherits the parent's process group ID. This step is required
# to insure that the next call to os.setsid is successful.
pid = os.fork()
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
if (pid == 0): # The first child.
# To become the session leader of this new session and the process group
# leader of the new process group, we call os.setsid(). The process is
# also guaranteed not to have a controlling terminal.
os.setsid()
try:
# Fork a second child and exit immediately to prevent zombies. This
# causes the second child process to be orphaned, making the init
# process responsible for its cleanup. And, since the first child is
# a session leader without a controlling terminal, it's possible for
# it to acquire one by opening a terminal in the future (System V-
# based systems). This second fork guarantees that the child is no
# longer a session leader, preventing the daemon from ever acquiring
# a controlling terminal.
pid = os.fork() # Fork a second child.
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
if (pid != 0):
# Parent (the first child) of the second child.
# exit() or _exit()?
# _exit is like exit(), but it doesn't call any functions registered
# with atexit (and on_exit) or any registered signal handlers. It also
# closes any open file descriptors, but doesn't flush any buffered output.
# Using exit() may cause all any temporary files to be unexpectedly
# removed. It's therefore recommended that child branches of a fork()
# and the parent branch(es) of a daemon use _exit().
os._exit(0)
else:
os.waitpid(pid, 0)
return
# The second child.
# Replace standard fds with our own
with open('/dev/null', 'r') as si:
os.dup2(si.fileno(), sys.stdin.fileno())
try:
so = open(logfile, 'a+')
os.dup2(so.fileno(), sys.stdout.fileno())
os.dup2(so.fileno(), sys.stderr.fileno())
except io.UnsupportedOperation:
sys.stdout = open(logfile, 'a+')
# Have stdout and stderr be the same so log output matches chronologically
# and there aren't two seperate buffers
sys.stderr = sys.stdout
try:
function()
except Exception as e:
traceback.print_exc()
finally:
bb.event.print_ui_queue()
# os._exit() doesn't flush open files like os.exit() does. Manually flush
# stdout and stderr so that any logging output will be seen, particularly
# exception tracebacks.
sys.stdout.flush()
sys.stderr.flush()
os._exit(0)

443
bitbake/lib/bb/data.py Normal file
View File

@@ -0,0 +1,443 @@
"""
BitBake 'Data' implementations
Functions for interacting with the data structure used by the
BitBake build tools.
The expandKeys and update_data are the most expensive
operations. At night the cookie monster came by and
suggested 'give me cookies on setting the variables and
things will work out'. Taking this suggestion into account
applying the skills from the not yet passed 'Entwurf und
Analyse von Algorithmen' lecture and the cookie
monster seems to be right. We will track setVar more carefully
to have faster update_data and expandKeys operations.
This is a trade-off between speed and memory again but
the speed is more critical here.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2005 Holger Hans Peter Freyther
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import sys, os, re
import hashlib
if sys.argv[0][-5:] == "pydoc":
path = os.path.dirname(os.path.dirname(sys.argv[1]))
else:
path = os.path.dirname(os.path.dirname(sys.argv[0]))
sys.path.insert(0, path)
from itertools import groupby
from bb import data_smart
from bb import codeparser
import bb
logger = data_smart.logger
_dict_type = data_smart.DataSmart
def init():
"""Return a new object representing the Bitbake data"""
return _dict_type()
def init_db(parent = None):
"""Return a new object representing the Bitbake data,
optionally based on an existing object"""
if parent is not None:
return parent.createCopy()
else:
return _dict_type()
def createCopy(source):
"""Link the source set to the destination
If one does not find the value in the destination set,
search will go on to the source set to get the value.
Value from source are copy-on-write. i.e. any try to
modify one of them will end up putting the modified value
in the destination set.
"""
return source.createCopy()
def initVar(var, d):
"""Non-destructive var init for data structure"""
d.initVar(var)
def keys(d):
"""Return a list of keys in d"""
return d.keys()
__expand_var_regexp__ = re.compile(r"\${[^{}]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
def expand(s, d, varname = None):
"""Variable expansion using the data store"""
return d.expand(s, varname)
def expandKeys(alterdata, readdata = None):
if readdata is None:
readdata = alterdata
todolist = {}
for key in alterdata:
if not '${' in key:
continue
ekey = expand(key, readdata)
if key == ekey:
continue
todolist[key] = ekey
# These two for loops are split for performance to maximise the
# usefulness of the expand cache
for key in sorted(todolist):
ekey = todolist[key]
newval = alterdata.getVar(ekey, False)
if newval is not None:
val = alterdata.getVar(key, False)
if val is not None:
bb.warn("Variable key %s (%s) replaces original key %s (%s)." % (key, val, ekey, newval))
alterdata.renameVar(key, ekey)
def inheritFromOS(d, savedenv, permitted):
"""Inherit variables from the initial environment."""
exportlist = bb.utils.preserved_envvars_exported()
for s in savedenv.keys():
if s in permitted:
try:
d.setVar(s, savedenv.getVar(s), op = 'from env')
if s in exportlist:
d.setVarFlag(s, "export", True, op = 'auto env export')
except TypeError:
pass
def emit_var(var, o=sys.__stdout__, d = init(), all=False):
"""Emit a variable to be sourced by a shell."""
func = d.getVarFlag(var, "func", False)
if d.getVarFlag(var, 'python', False) and func:
return False
export = d.getVarFlag(var, "export", False)
unexport = d.getVarFlag(var, "unexport", False)
if not all and not export and not unexport and not func:
return False
try:
if all:
oval = d.getVar(var, False)
val = d.getVar(var)
except (KeyboardInterrupt):
raise
except Exception as exc:
o.write('# expansion of %s threw %s: %s\n' % (var, exc.__class__.__name__, str(exc)))
return False
if all:
d.varhistory.emit(var, oval, val, o, d)
if (var.find("-") != -1 or var.find(".") != -1 or var.find('{') != -1 or var.find('}') != -1 or var.find('+') != -1) and not all:
return False
varExpanded = d.expand(var)
if unexport:
o.write('unset %s\n' % varExpanded)
return False
if val is None:
return False
val = str(val)
if varExpanded.startswith("BASH_FUNC_"):
varExpanded = varExpanded[10:-2]
val = val[3:] # Strip off "() "
o.write("%s() %s\n" % (varExpanded, val))
o.write("export -f %s\n" % (varExpanded))
return True
if func:
# Write a comment indicating where the shell function came from (line number and filename) to make it easier
# for the user to diagnose task failures. This comment is also used by build.py to determine the metadata
# location of shell functions.
o.write("# line: {0}, file: {1}\n".format(
d.getVarFlag(var, "lineno", False),
d.getVarFlag(var, "filename", False)))
# NOTE: should probably check for unbalanced {} within the var
val = val.rstrip('\n')
o.write("%s() {\n%s\n}\n" % (varExpanded, val))
return 1
if export:
o.write('export ')
# if we're going to output this within doublequotes,
# to a shell, we need to escape the quotes in the var
alter = re.sub('"', '\\"', val)
alter = re.sub('\n', ' \\\n', alter)
alter = re.sub('\\$', '\\\\$', alter)
o.write('%s="%s"\n' % (varExpanded, alter))
return False
def emit_env(o=sys.__stdout__, d = init(), all=False):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
isfunc = lambda key: bool(d.getVarFlag(key, "func", False))
keys = sorted((key for key in d.keys() if not key.startswith("__")), key=isfunc)
grouped = groupby(keys, isfunc)
for isfunc, keys in grouped:
for key in sorted(keys):
emit_var(key, o, d, all and not isfunc) and o.write('\n')
def exported_keys(d):
return (key for key in d.keys() if not key.startswith('__') and
d.getVarFlag(key, 'export', False) and
not d.getVarFlag(key, 'unexport', False))
def exported_vars(d):
k = list(exported_keys(d))
for key in k:
try:
value = d.getVar(key)
except Exception as err:
bb.warn("%s: Unable to export ${%s}: %s" % (d.getVar("FILE"), key, err))
continue
if value is not None:
yield key, str(value)
def emit_func(func, o=sys.__stdout__, d = init()):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
keys = (key for key in d.keys() if not key.startswith("__") and not d.getVarFlag(key, "func", False))
for key in sorted(keys):
emit_var(key, o, d, False)
o.write('\n')
emit_var(func, o, d, False) and o.write('\n')
newdeps = bb.codeparser.ShellParser(func, logger).parse_shell(d.getVar(func))
newdeps |= set((d.getVarFlag(func, "vardeps") or "").split())
seen = set()
while newdeps:
deps = newdeps
seen |= deps
newdeps = set()
for dep in sorted(deps):
if d.getVarFlag(dep, "func", False) and not d.getVarFlag(dep, "python", False):
emit_var(dep, o, d, False) and o.write('\n')
newdeps |= bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep))
newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split())
newdeps -= seen
_functionfmt = """
def {function}(d):
{body}"""
def emit_func_python(func, o=sys.__stdout__, d = init()):
"""Emits all items in the data store in a format such that it can be sourced by a shell."""
def write_func(func, o, call = False):
body = d.getVar(func, False)
if not body.startswith("def"):
body = _functionfmt.format(function=func, body=body)
o.write(body.strip() + "\n\n")
if call:
o.write(func + "(d)" + "\n\n")
write_func(func, o, True)
pp = bb.codeparser.PythonParser(func, logger)
pp.parse_python(d.getVar(func, False))
newdeps = pp.execs
newdeps |= set((d.getVarFlag(func, "vardeps") or "").split())
seen = set()
while newdeps:
deps = newdeps
seen |= deps
newdeps = set()
for dep in deps:
if d.getVarFlag(dep, "func", False) and d.getVarFlag(dep, "python", False):
write_func(dep, o)
pp = bb.codeparser.PythonParser(dep, logger)
pp.parse_python(d.getVar(dep, False))
newdeps |= pp.execs
newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split())
newdeps -= seen
def update_data(d):
"""Performs final steps upon the datastore, including application of overrides"""
d.finalize(parent = True)
def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps = set()
try:
if key[-1] == ']':
vf = key[:-1].split('[')
value, parser = d.getVarFlag(vf[0], vf[1], False, retparser=True)
deps |= parser.references
deps = deps | (keys & parser.execs)
return deps, value
varflags = d.getVarFlags(key, ["vardeps", "vardepvalue", "vardepsexclude", "exports", "postfuncs", "prefuncs", "lineno", "filename"]) or {}
vardeps = varflags.get("vardeps")
def handle_contains(value, contains, d):
newvalue = ""
for k in sorted(contains):
l = (d.getVar(k) or "").split()
for item in sorted(contains[k]):
for word in item.split():
if not word in l:
newvalue += "\n%s{%s} = Unset" % (k, item)
break
else:
newvalue += "\n%s{%s} = Set" % (k, item)
if not newvalue:
return value
if not value:
return newvalue
return value + newvalue
def handle_remove(value, deps, removes, d):
for r in sorted(removes):
r2 = d.expandWithRefs(r, None)
value += "\n_remove of %s" % r
deps |= r2.references
deps = deps | (keys & r2.execs)
return value
if "vardepvalue" in varflags:
value = varflags.get("vardepvalue")
elif varflags.get("func"):
if varflags.get("python"):
value = d.getVarFlag(key, "_content", False)
parser = bb.codeparser.PythonParser(key, logger)
parser.parse_python(value, filename=varflags.get("filename"), lineno=varflags.get("lineno"))
deps = deps | parser.references
deps = deps | (keys & parser.execs)
value = handle_contains(value, parser.contains, d)
else:
value, parsedvar = d.getVarFlag(key, "_content", False, retparser=True)
parser = bb.codeparser.ShellParser(key, logger)
parser.parse_shell(parsedvar.value)
deps = deps | shelldeps
deps = deps | parsedvar.references
deps = deps | (keys & parser.execs) | (keys & parsedvar.execs)
value = handle_contains(value, parsedvar.contains, d)
if hasattr(parsedvar, "removes"):
value = handle_remove(value, deps, parsedvar.removes, d)
if vardeps is None:
parser.log.flush()
if "prefuncs" in varflags:
deps = deps | set(varflags["prefuncs"].split())
if "postfuncs" in varflags:
deps = deps | set(varflags["postfuncs"].split())
if "exports" in varflags:
deps = deps | set(varflags["exports"].split())
else:
value, parser = d.getVarFlag(key, "_content", False, retparser=True)
deps |= parser.references
deps = deps | (keys & parser.execs)
value = handle_contains(value, parser.contains, d)
if hasattr(parser, "removes"):
value = handle_remove(value, deps, parser.removes, d)
if "vardepvalueexclude" in varflags:
exclude = varflags.get("vardepvalueexclude")
for excl in exclude.split('|'):
if excl:
value = value.replace(excl, '')
# Add varflags, assuming an exclusion list is set
if varflagsexcl:
varfdeps = []
for f in varflags:
if f not in varflagsexcl:
varfdeps.append('%s[%s]' % (key, f))
if varfdeps:
deps |= set(varfdeps)
deps |= set((vardeps or "").split())
deps -= set(varflags.get("vardepsexclude", "").split())
except bb.parse.SkipRecipe:
raise
except Exception as e:
bb.warn("Exception during build_dependencies for %s" % key)
raise
return deps, value
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
def generate_dependencies(d, whitelist):
keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export", False) and not d.getVarFlag(key, "unexport", False))
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS')
deps = {}
values = {}
tasklist = d.getVar('__BBTASKS', False) or []
for task in tasklist:
deps[task], values[task] = build_dependencies(task, keys, shelldeps, varflagsexcl, d)
newdeps = deps[task]
seen = set()
while newdeps:
nextdeps = newdeps - whitelist
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
if dep not in deps:
deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, d)
newdeps |= deps[dep]
newdeps -= seen
#print "For %s: %s" % (task, str(deps[task]))
return tasklist, deps, values
def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
taskdeps = {}
basehash = {}
for task in tasklist:
data = lookupcache[task]
if data is None:
bb.error("Task %s from %s seems to be empty?!" % (task, fn))
data = ''
gendeps[task] -= whitelist
newdeps = gendeps[task]
seen = set()
while newdeps:
nextdeps = newdeps
seen |= nextdeps
newdeps = set()
for dep in nextdeps:
if dep in whitelist:
continue
gendeps[dep] -= whitelist
newdeps |= gendeps[dep]
newdeps -= seen
alldeps = sorted(seen)
for dep in alldeps:
data = data + dep
var = lookupcache[dep]
if var is not None:
data = data + str(var)
k = fn + ":" + task
basehash[k] = hashlib.sha256(data.encode("utf-8")).hexdigest()
taskdeps[task] = alldeps
return taskdeps, basehash
def inherits_class(klass, d):
val = d.getVar('__inherit_cache', False) or []
needle = os.path.join('classes', '%s.bbclass' % klass)
for v in val:
if v.endswith(needle):
return True
return False

1045
bitbake/lib/bb/data_smart.py Normal file

File diff suppressed because it is too large Load Diff

847
bitbake/lib/bb/event.py Normal file
View File

@@ -0,0 +1,847 @@
"""
BitBake 'Event' implementation
Classes and functions for manipulating 'events' in the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# SPDX-License-Identifier: GPL-2.0-only
#
import ast
import atexit
import collections
import logging
import pickle
import sys
import threading
import traceback
import bb.exceptions
import bb.utils
# This is the pid for which we should generate the event. This is set when
# the runqueue forks off.
worker_pid = 0
worker_fire = None
logger = logging.getLogger('BitBake.Event')
class Event(object):
"""Base class for events"""
def __init__(self):
self.pid = worker_pid
class HeartbeatEvent(Event):
"""Triggered at regular time intervals of 10 seconds. Other events can fire much more often
(runQueueTaskStarted when there are many short tasks) or not at all for long periods
of time (again runQueueTaskStarted, when there is just one long-running task), so this
event is more suitable for doing some task-independent work occassionally."""
def __init__(self, time):
Event.__init__(self)
self.time = time
Registered = 10
AlreadyRegistered = 14
def get_class_handlers():
return _handlers
def set_class_handlers(h):
global _handlers
_handlers = h
def clean_class_handlers():
return collections.OrderedDict()
# Internal
_handlers = clean_class_handlers()
_ui_handlers = {}
_ui_logfilters = {}
_ui_handler_seq = 0
_event_handler_map = {}
_catchall_handlers = {}
_eventfilter = None
_uiready = False
_thread_lock = threading.Lock()
_thread_lock_enabled = False
if hasattr(__builtins__, '__setitem__'):
builtins = __builtins__
else:
builtins = __builtins__.__dict__
def enable_threadlock():
global _thread_lock_enabled
_thread_lock_enabled = True
def disable_threadlock():
global _thread_lock_enabled
_thread_lock_enabled = False
def execute_handler(name, handler, event, d):
event.data = d
addedd = False
if 'd' not in builtins:
builtins['d'] = d
addedd = True
try:
ret = handler(event)
except (bb.parse.SkipRecipe, bb.BBHandledException):
raise
except Exception:
etype, value, tb = sys.exc_info()
logger.error("Execution of event handler '%s' failed" % name,
exc_info=(etype, value, tb.tb_next))
raise
except SystemExit as exc:
if exc.code != 0:
logger.error("Execution of event handler '%s' failed" % name)
raise
finally:
del event.data
if addedd:
del builtins['d']
def fire_class_handlers(event, d):
if isinstance(event, logging.LogRecord):
return
eid = str(event.__class__)[8:-2]
evt_hmap = _event_handler_map.get(eid, {})
for name, handler in list(_handlers.items()):
if name in _catchall_handlers or name in evt_hmap:
if _eventfilter:
if not _eventfilter(name, handler, event, d):
continue
if d is not None and not name in (d.getVar("__BBHANDLERS_MC") or set()):
continue
execute_handler(name, handler, event, d)
ui_queue = []
@atexit.register
def print_ui_queue():
global ui_queue
"""If we're exiting before a UI has been spawned, display any queued
LogRecords to the console."""
logger = logging.getLogger("BitBake")
if not _uiready:
from bb.msg import BBLogFormatter
# Flush any existing buffered content
sys.stdout.flush()
sys.stderr.flush()
stdout = logging.StreamHandler(sys.stdout)
stderr = logging.StreamHandler(sys.stderr)
formatter = BBLogFormatter("%(levelname)s: %(message)s")
stdout.setFormatter(formatter)
stderr.setFormatter(formatter)
# First check to see if we have any proper messages
msgprint = False
msgerrs = False
# Should we print to stderr?
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord) and event.levelno >= logging.WARNING:
msgerrs = True
break
if msgerrs:
logger.addHandler(stderr)
else:
logger.addHandler(stdout)
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
if event.levelno > logging.DEBUG:
logger.handle(event)
msgprint = True
# Nope, so just print all of the messages we have (including debug messages)
if not msgprint:
for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
logger.handle(event)
if msgerrs:
logger.removeHandler(stderr)
else:
logger.removeHandler(stdout)
ui_queue = []
def fire_ui_handlers(event, d):
global _thread_lock
global _thread_lock_enabled
if not _uiready:
# No UI handlers registered yet, queue up the messages
ui_queue.append(event)
return
if _thread_lock_enabled:
_thread_lock.acquire()
errors = []
for h in _ui_handlers:
#print "Sending event %s" % event
try:
if not _ui_logfilters[h].filter(event):
continue
# We use pickle here since it better handles object instances
# which xmlrpc's marshaller does not. Events *must* be serializable
# by pickle.
if hasattr(_ui_handlers[h].event, "sendpickle"):
_ui_handlers[h].event.sendpickle((pickle.dumps(event)))
else:
_ui_handlers[h].event.send(event)
except:
errors.append(h)
for h in errors:
del _ui_handlers[h]
if _thread_lock_enabled:
_thread_lock.release()
def fire(event, d):
"""Fire off an Event"""
# We can fire class handlers in the worker process context and this is
# desired so they get the task based datastore.
# UI handlers need to be fired in the server context so we defer this. They
# don't have a datastore so the datastore context isn't a problem.
fire_class_handlers(event, d)
if worker_fire:
worker_fire(event, d)
else:
# If messages have been queued up, clear the queue
global _uiready, ui_queue
if _uiready and ui_queue:
for queue_event in ui_queue:
fire_ui_handlers(queue_event, d)
ui_queue = []
fire_ui_handlers(event, d)
def fire_from_worker(event, d):
fire_ui_handlers(event, d)
noop = lambda _: None
def register(name, handler, mask=None, filename=None, lineno=None, data=None):
"""Register an Event handler"""
if data is not None and data.getVar("BB_CURRENT_MC"):
mc = data.getVar("BB_CURRENT_MC")
name = '%s%s' % (mc.replace('-', '_'), name)
# already registered
if name in _handlers:
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
bbhands_mc.add(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
return AlreadyRegistered
if handler is not None:
# handle string containing python code
if isinstance(handler, str):
tmp = "def %s(e):\n%s" % (name, handler)
try:
code = bb.methodpool.compile_cache(tmp)
if not code:
if filename is None:
filename = "%s(e)" % name
code = compile(tmp, filename, "exec", ast.PyCF_ONLY_AST)
if lineno is not None:
ast.increment_lineno(code, lineno-1)
code = compile(code, filename, "exec")
bb.methodpool.compile_cache_add(tmp, code)
except SyntaxError:
logger.error("Unable to register event handler '%s':\n%s", name,
''.join(traceback.format_exc(limit=0)))
_handlers[name] = noop
return
env = {}
bb.utils.better_exec(code, env)
func = bb.utils.better_eval(name, env)
_handlers[name] = func
else:
_handlers[name] = handler
if not mask or '*' in mask:
_catchall_handlers[name] = True
else:
for m in mask:
if _event_handler_map.get(m, None) is None:
_event_handler_map[m] = {}
_event_handler_map[m][name] = True
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
bbhands_mc.add(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
return Registered
def remove(name, handler, data=None):
"""Remove an Event handler"""
if data is not None:
if data.getVar("BB_CURRENT_MC"):
mc = data.getVar("BB_CURRENT_MC")
name = '%s%s' % (mc.replace('-', '_'), name)
_handlers.pop(name)
if name in _catchall_handlers:
_catchall_handlers.pop(name)
for event in _event_handler_map.keys():
if name in _event_handler_map[event]:
_event_handler_map[event].pop(name)
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
if name in bbhands_mc:
bbhands_mc.remove(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
def get_handlers():
return _handlers
def set_handlers(handlers):
global _handlers
_handlers = handlers
def set_eventfilter(func):
global _eventfilter
_eventfilter = func
def register_UIHhandler(handler, mainui=False):
bb.event._ui_handler_seq = bb.event._ui_handler_seq + 1
_ui_handlers[_ui_handler_seq] = handler
level, debug_domains = bb.msg.constructLogOptions()
_ui_logfilters[_ui_handler_seq] = UIEventFilter(level, debug_domains)
if mainui:
global _uiready
_uiready = _ui_handler_seq
return _ui_handler_seq
def unregister_UIHhandler(handlerNum, mainui=False):
if mainui:
global _uiready
_uiready = False
if handlerNum in _ui_handlers:
del _ui_handlers[handlerNum]
return
def get_uihandler():
if _uiready is False:
return None
return _uiready
# Class to allow filtering of events and specific filtering of LogRecords *before* we put them over the IPC
class UIEventFilter(object):
def __init__(self, level, debug_domains):
self.update(None, level, debug_domains)
def update(self, eventmask, level, debug_domains):
self.eventmask = eventmask
self.stdlevel = level
self.debug_domains = debug_domains
def filter(self, event):
if isinstance(event, logging.LogRecord):
if event.levelno >= self.stdlevel:
return True
if event.name in self.debug_domains and event.levelno >= self.debug_domains[event.name]:
return True
return False
eid = str(event.__class__)[8:-2]
if self.eventmask and eid not in self.eventmask:
return False
return True
def set_UIHmask(handlerNum, level, debug_domains, mask):
if not handlerNum in _ui_handlers:
return False
if '*' in mask:
_ui_logfilters[handlerNum].update(None, level, debug_domains)
else:
_ui_logfilters[handlerNum].update(mask, level, debug_domains)
return True
def getName(e):
"""Returns the name of a class or class instance"""
if getattr(e, "__name__", None) is None:
return e.__class__.__name__
else:
return e.__name__
class OperationStarted(Event):
"""An operation has begun"""
def __init__(self, msg = "Operation Started"):
Event.__init__(self)
self.msg = msg
class OperationCompleted(Event):
"""An operation has completed"""
def __init__(self, total, msg = "Operation Completed"):
Event.__init__(self)
self.total = total
self.msg = msg
class OperationProgress(Event):
"""An operation is in progress"""
def __init__(self, current, total, msg = "Operation in Progress"):
Event.__init__(self)
self.current = current
self.total = total
self.msg = msg + ": %s/%s" % (current, total);
class ConfigParsed(Event):
"""Configuration Parsing Complete"""
class MultiConfigParsed(Event):
"""Multi-Config Parsing Complete"""
def __init__(self, mcdata):
self.mcdata = mcdata
Event.__init__(self)
class RecipeEvent(Event):
def __init__(self, fn):
self.fn = fn
Event.__init__(self)
class RecipePreFinalise(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipePostKeyExpansion(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipeTaskPreProcess(RecipeEvent):
"""
Recipe Tasks about to be finalised
The list of tasks should be final at this point and handlers
are only able to change interdependencies
"""
def __init__(self, fn, tasklist):
self.fn = fn
self.tasklist = tasklist
Event.__init__(self)
class RecipeParsed(RecipeEvent):
""" Recipe Parsing Complete """
class BuildBase(Event):
"""Base class for bitbake build events"""
def __init__(self, n, p, failures = 0):
self._name = n
self._pkgs = p
Event.__init__(self)
self._failures = failures
def getPkgs(self):
return self._pkgs
def setPkgs(self, pkgs):
self._pkgs = pkgs
def getName(self):
return self._name
def setName(self, name):
self._name = name
def getFailures(self):
"""
Return the number of failed packages
"""
return self._failures
pkgs = property(getPkgs, setPkgs, None, "pkgs property")
name = property(getName, setName, None, "name property")
class BuildInit(BuildBase):
"""buildFile or buildTargets was invoked"""
def __init__(self, p=[]):
name = None
BuildBase.__init__(self, name, p)
class BuildStarted(BuildBase, OperationStarted):
"""Event when builds start"""
def __init__(self, n, p, failures = 0):
OperationStarted.__init__(self, "Building Started")
BuildBase.__init__(self, n, p, failures)
class BuildCompleted(BuildBase, OperationCompleted):
"""Event when builds have completed"""
def __init__(self, total, n, p, failures=0, interrupted=0):
if not failures:
OperationCompleted.__init__(self, total, "Building Succeeded")
else:
OperationCompleted.__init__(self, total, "Building Failed")
self._interrupted = interrupted
BuildBase.__init__(self, n, p, failures)
class DiskFull(Event):
"""Disk full case build aborted"""
def __init__(self, dev, type, freespace, mountpoint):
Event.__init__(self)
self._dev = dev
self._type = type
self._free = freespace
self._mountpoint = mountpoint
class DiskUsageSample:
def __init__(self, available_bytes, free_bytes, total_bytes):
# Number of bytes available to non-root processes.
self.available_bytes = available_bytes
# Number of bytes available to root processes.
self.free_bytes = free_bytes
# Total capacity of the volume.
self.total_bytes = total_bytes
class MonitorDiskEvent(Event):
"""If BB_DISKMON_DIRS is set, then this event gets triggered each time disk space is checked.
Provides information about devices that are getting monitored."""
def __init__(self, disk_usage):
Event.__init__(self)
# hash of device root path -> DiskUsageSample
self.disk_usage = disk_usage
class NoProvider(Event):
"""No Provider for an Event"""
def __init__(self, item, runtime=False, dependees=None, reasons=None, close_matches=None):
Event.__init__(self)
self._item = item
self._runtime = runtime
self._dependees = dependees
self._reasons = reasons
self._close_matches = close_matches
def getItem(self):
return self._item
def isRuntime(self):
return self._runtime
def __str__(self):
msg = ''
if self._runtime:
r = "R"
else:
r = ""
extra = ''
if not self._reasons:
if self._close_matches:
extra = ". Close matches:\n %s" % '\n '.join(sorted(set(self._close_matches)))
if self._dependees:
msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)%s" % (r, self._item, ", ".join(self._dependees), r, extra)
else:
msg = "Nothing %sPROVIDES '%s'%s" % (r, self._item, extra)
if self._reasons:
for reason in self._reasons:
msg += '\n' + reason
return msg
class MultipleProviders(Event):
"""Multiple Providers"""
def __init__(self, item, candidates, runtime = False):
Event.__init__(self)
self._item = item
self._candidates = candidates
self._is_runtime = runtime
def isRuntime(self):
"""
Is this a runtime issue?
"""
return self._is_runtime
def getItem(self):
"""
The name for the to be build item
"""
return self._item
def getCandidates(self):
"""
Get the possible Candidates for a PROVIDER.
"""
return self._candidates
def __str__(self):
msg = "Multiple providers are available for %s%s (%s)" % (self._is_runtime and "runtime " or "",
self._item,
", ".join(self._candidates))
rtime = ""
if self._is_runtime:
rtime = "R"
msg += "\nConsider defining a PREFERRED_%sPROVIDER entry to match %s" % (rtime, self._item)
return msg
class ParseStarted(OperationStarted):
"""Recipe parsing for the runqueue has begun"""
def __init__(self, total):
OperationStarted.__init__(self, "Recipe parsing Started")
self.total = total
class ParseCompleted(OperationCompleted):
"""Recipe parsing for the runqueue has completed"""
def __init__(self, cached, parsed, skipped, masked, virtuals, errors, total):
OperationCompleted.__init__(self, total, "Recipe parsing Completed")
self.cached = cached
self.parsed = parsed
self.skipped = skipped
self.virtuals = virtuals
self.masked = masked
self.errors = errors
self.sofar = cached + parsed
class ParseProgress(OperationProgress):
"""Recipe parsing progress"""
def __init__(self, current, total):
OperationProgress.__init__(self, current, total, "Recipe parsing")
class CacheLoadStarted(OperationStarted):
"""Loading of the dependency cache has begun"""
def __init__(self, total):
OperationStarted.__init__(self, "Loading cache Started")
self.total = total
class CacheLoadProgress(OperationProgress):
"""Cache loading progress"""
def __init__(self, current, total):
OperationProgress.__init__(self, current, total, "Loading cache")
class CacheLoadCompleted(OperationCompleted):
"""Cache loading is complete"""
def __init__(self, total, num_entries):
OperationCompleted.__init__(self, total, "Loading cache Completed")
self.num_entries = num_entries
class TreeDataPreparationStarted(OperationStarted):
"""Tree data preparation started"""
def __init__(self):
OperationStarted.__init__(self, "Preparing tree data Started")
class TreeDataPreparationProgress(OperationProgress):
"""Tree data preparation is in progress"""
def __init__(self, current, total):
OperationProgress.__init__(self, current, total, "Preparing tree data")
class TreeDataPreparationCompleted(OperationCompleted):
"""Tree data preparation completed"""
def __init__(self, total):
OperationCompleted.__init__(self, total, "Preparing tree data Completed")
class DepTreeGenerated(Event):
"""
Event when a dependency tree has been generated
"""
def __init__(self, depgraph):
Event.__init__(self)
self._depgraph = depgraph
class TargetsTreeGenerated(Event):
"""
Event when a set of buildable targets has been generated
"""
def __init__(self, model):
Event.__init__(self)
self._model = model
class ReachableStamps(Event):
"""
An event listing all stamps reachable after parsing
which the metadata may use to clean up stale data
"""
def __init__(self, stamps):
Event.__init__(self)
self.stamps = stamps
class StaleSetSceneTasks(Event):
"""
An event listing setscene tasks which are 'stale' and will
be rerun. The metadata may use to clean up stale data.
tasks is a mapping of tasks and matching stale stamps.
"""
def __init__(self, tasks):
Event.__init__(self)
self.tasks = tasks
class FilesMatchingFound(Event):
"""
Event when a list of files matching the supplied pattern has
been generated
"""
def __init__(self, pattern, matches):
Event.__init__(self)
self._pattern = pattern
self._matches = matches
class ConfigFilesFound(Event):
"""
Event when a list of appropriate config files has been generated
"""
def __init__(self, variable, values):
Event.__init__(self)
self._variable = variable
self._values = values
class ConfigFilePathFound(Event):
"""
Event when a path for a config file has been found
"""
def __init__(self, path):
Event.__init__(self)
self._path = path
class MsgBase(Event):
"""Base class for messages"""
def __init__(self, msg):
self._message = msg
Event.__init__(self)
class MsgDebug(MsgBase):
"""Debug Message"""
class MsgNote(MsgBase):
"""Note Message"""
class MsgWarn(MsgBase):
"""Warning Message"""
class MsgError(MsgBase):
"""Error Message"""
class MsgFatal(MsgBase):
"""Fatal Message"""
class MsgPlain(MsgBase):
"""General output"""
class LogExecTTY(Event):
"""Send event containing program to spawn on tty of the logger"""
def __init__(self, msg, prog, sleep_delay, retries):
Event.__init__(self)
self.msg = msg
self.prog = prog
self.sleep_delay = sleep_delay
self.retries = retries
class LogHandler(logging.Handler):
"""Dispatch logging messages as bitbake events"""
def emit(self, record):
if record.exc_info:
etype, value, tb = record.exc_info
if hasattr(tb, 'tb_next'):
tb = list(bb.exceptions.extract_traceback(tb, context=3))
# Need to turn the value into something the logging system can pickle
record.bb_exc_info = (etype, value, tb)
record.bb_exc_formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
value = str(value)
record.exc_info = None
fire(record, None)
def filter(self, record):
record.taskpid = worker_pid
return True
class MetadataEvent(Event):
"""
Generic event that target for OE-Core classes
to report information during asynchrous execution
"""
def __init__(self, eventtype, eventdata):
Event.__init__(self)
self.type = eventtype
self._localdata = eventdata
class ProcessStarted(Event):
"""
Generic process started event (usually part of the initial startup)
where further progress events will be delivered
"""
def __init__(self, processname, total):
Event.__init__(self)
self.processname = processname
self.total = total
class ProcessProgress(Event):
"""
Generic process progress event (usually part of the initial startup)
"""
def __init__(self, processname, progress):
Event.__init__(self)
self.processname = processname
self.progress = progress
class ProcessFinished(Event):
"""
Generic process finished event (usually part of the initial startup)
"""
def __init__(self, processname):
Event.__init__(self)
self.processname = processname
class SanityCheck(Event):
"""
Event to run sanity checks, either raise errors or generate events as return status.
"""
def __init__(self, generateevents = True):
Event.__init__(self)
self.generateevents = generateevents
class SanityCheckPassed(Event):
"""
Event to indicate sanity check has passed
"""
class SanityCheckFailed(Event):
"""
Event to indicate sanity check has failed
"""
def __init__(self, msg, network_error=False):
Event.__init__(self)
self._msg = msg
self._network_error = network_error
class NetworkTest(Event):
"""
Event to run network connectivity tests, either raise errors or generate events as return status.
"""
def __init__(self, generateevents = True):
Event.__init__(self)
self.generateevents = generateevents
class NetworkTestPassed(Event):
"""
Event to indicate network test has passed
"""
class NetworkTestFailed(Event):
"""
Event to indicate network test has failed
"""
class FindSigInfoResult(Event):
"""
Event to return results from findSigInfo command
"""
def __init__(self, result):
Event.__init__(self)
self.result = result

View File

@@ -0,0 +1,94 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import inspect
import traceback
import bb.namedtuple_with_abc
from collections import namedtuple
class TracebackEntry(namedtuple.abc):
"""Pickleable representation of a traceback entry"""
_fields = 'filename lineno function args code_context index'
_header = ' File "{0.filename}", line {0.lineno}, in {0.function}{0.args}'
def format(self, formatter=None):
if not self.code_context:
return self._header.format(self) + '\n'
formatted = [self._header.format(self) + ':\n']
for lineindex, line in enumerate(self.code_context):
if formatter:
line = formatter(line)
if lineindex == self.index:
formatted.append(' >%s' % line)
else:
formatted.append(' %s' % line)
return formatted
def __str__(self):
return ''.join(self.format())
def _get_frame_args(frame):
"""Get the formatted arguments and class (if available) for a frame"""
arginfo = inspect.getargvalues(frame)
try:
if not arginfo.args:
return '', None
# There have been reports from the field of python 2.6 which doesn't
# return a namedtuple here but simply a tuple so fallback gracefully if
# args isn't present.
except AttributeError:
return '', None
firstarg = arginfo.args[0]
if firstarg == 'self':
self = arginfo.locals['self']
cls = self.__class__.__name__
arginfo.args.pop(0)
del arginfo.locals['self']
else:
cls = None
formatted = inspect.formatargvalues(*arginfo)
return formatted, cls
def extract_traceback(tb, context=1):
frames = inspect.getinnerframes(tb, context)
for frame, filename, lineno, function, code_context, index in frames:
formatted_args, cls = _get_frame_args(frame)
if cls:
function = '%s.%s' % (cls, function)
yield TracebackEntry(filename, lineno, function, formatted_args,
code_context, index)
def format_extracted(extracted, formatter=None, limit=None):
if limit:
extracted = extracted[-limit:]
formatted = []
for tracebackinfo in extracted:
formatted.extend(tracebackinfo.format(formatter))
return formatted
def format_exception(etype, value, tb, context=1, limit=None, formatter=None):
formatted = ['Traceback (most recent call last):\n']
if hasattr(tb, 'tb_next'):
tb = extract_traceback(tb, context)
formatted.extend(format_extracted(tb, formatter, limit))
formatted.extend(traceback.format_exception_only(etype, value))
return formatted
def to_string(exc):
if isinstance(exc, SystemExit):
if not isinstance(exc.code, str):
return 'Exited with "%d"' % exc.code
return str(exc)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,93 @@
"""
BitBake 'Fetch' Azure Storage implementation
"""
# Copyright (C) 2021 Alejandro Hernandez Samaniego
#
# Based on bb.fetch2.wget:
# Copyright (C) 2003, 2004 Chris Larson
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import shlex
import os
import bb
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2.wget import Wget
class Az(Wget):
def supports(self, ud, d):
"""
Check to see if a given url can be fetched from Azure Storage
"""
return ud.type in ['az']
def checkstatus(self, fetch, ud, d, try_again=True):
# checkstatus discards parameters either way, we need to do this before adding the SAS
ud.url = ud.url.replace('az://','https://').split(';')[0]
az_sas = d.getVar('AZ_SAS')
if az_sas and az_sas not in ud.url:
ud.url += az_sas
return Wget.checkstatus(self, fetch, ud, d, try_again)
# Override download method, include retries
def download(self, ud, d, retries=3):
"""Fetch urls"""
# If were reaching the account transaction limit we might be refused a connection,
# retrying allows us to avoid false negatives since the limit changes over time
fetchcmd = self.basecmd + ' --retry-connrefused --waitretry=5'
# We need to provide a localpath to avoid wget using the SAS
# ud.localfile either has the downloadfilename or ud.path
localpath = os.path.join(d.getVar("DL_DIR"), ud.localfile)
bb.utils.mkdirhier(os.path.dirname(localpath))
fetchcmd += " -O %s" % shlex.quote(localpath)
if ud.user and ud.pswd:
fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
# Check if a Shared Access Signature was given and use it
az_sas = d.getVar('AZ_SAS')
if az_sas:
azuri = '%s%s%s%s' % ('https://', ud.host, ud.path, az_sas)
else:
azuri = '%s%s%s' % ('https://', ud.host, ud.path)
if os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again.
fetchcmd += d.expand(" -c -P ${DL_DIR} '%s'" % azuri)
else:
fetchcmd += d.expand(" -P ${DL_DIR} '%s'" % azuri)
try:
self._runwget(ud, d, fetchcmd, False)
except FetchError as e:
# Azure fails on handshake sometimes when using wget after some stress, producing a
# FetchError from the fetcher, if the artifact exists retyring should succeed
if 'Unable to establish SSL connection' in str(e):
logger.debug2('Unable to establish SSL connection: Retries remaining: %s, Retrying...' % retries)
self.download(ud, d, retries -1)
# Sanity check since wget can pretend it succeed when it didn't
# Also, this used to happen if sourceforge sent us to the mirror page
if not os.path.exists(ud.localpath):
raise FetchError("The fetch command returned success for url %s but %s doesn't exist?!" % (azuri, ud.localpath), azuri)
if os.path.getsize(ud.localpath) == 0:
os.remove(ud.localpath)
raise FetchError("The fetch of %s resulted in a zero size file?! Deleting and failing since this isn't right." % (azuri), azuri)
return True

View File

@@ -0,0 +1,128 @@
"""
BitBake 'Fetch' implementation for bzr.
"""
# Copyright (C) 2007 Ross Burton
# Copyright (C) 2007 Richard Purdie
#
# Classes for obtaining upstream sources for the
# BitBake build tools.
# Copyright (C) 2003, 2004 Chris Larson
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
class Bzr(FetchMethod):
def supports(self, ud, d):
return ud.type in ['bzr']
def urldata_init(self, ud, d):
"""
init bzr specific variable within url data
"""
# Create paths to bzr checkouts
bzrdir = d.getVar("BZRDIR") or (d.getVar("DL_DIR") + "/bzr")
relpath = self._strip_leading_slashes(ud.path)
ud.pkgdir = os.path.join(bzrdir, ud.host, relpath)
ud.setup_revisions(d)
if not ud.revision:
ud.revision = self.latest_revision(ud, d)
ud.localfile = d.expand('bzr_%s_%s_%s.tar.gz' % (ud.host, ud.path.replace('/', '.'), ud.revision))
def _buildbzrcommand(self, ud, d, command):
"""
Build up an bzr commandline based on ud
command is "fetch", "update", "revno"
"""
basecmd = d.getVar("FETCHCMD_bzr") or "/usr/bin/env bzr"
proto = ud.parm.get('protocol', 'http')
bzrroot = ud.host + ud.path
options = []
if command == "revno":
bzrcmd = "%s revno %s %s://%s" % (basecmd, " ".join(options), proto, bzrroot)
else:
if ud.revision:
options.append("-r %s" % ud.revision)
if command == "fetch":
bzrcmd = "%s branch %s %s://%s" % (basecmd, " ".join(options), proto, bzrroot)
elif command == "update":
bzrcmd = "%s pull %s --overwrite" % (basecmd, " ".join(options))
else:
raise FetchError("Invalid bzr command %s" % command, ud.url)
return bzrcmd
def download(self, ud, d):
"""Fetch url"""
if os.access(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir), '.bzr'), os.R_OK):
bzrcmd = self._buildbzrcommand(ud, d, "update")
logger.debug("BZR Update %s", ud.url)
bb.fetch2.check_network_access(d, bzrcmd, ud.url)
runfetchcmd(bzrcmd, d, workdir=os.path.join(ud.pkgdir, os.path.basename(ud.path)))
else:
bb.utils.remove(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir)), True)
bzrcmd = self._buildbzrcommand(ud, d, "fetch")
bb.fetch2.check_network_access(d, bzrcmd, ud.url)
logger.debug("BZR Checkout %s", ud.url)
bb.utils.mkdirhier(ud.pkgdir)
logger.debug("Running %s", bzrcmd)
runfetchcmd(bzrcmd, d, workdir=ud.pkgdir)
scmdata = ud.parm.get("scmdata", "")
if scmdata == "keep":
tar_flags = ""
else:
tar_flags = "--exclude='.bzr' --exclude='.bzrtags'"
# tar them up to a defined filename
runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.basename(ud.pkgdir)),
d, cleanup=[ud.localpath], workdir=ud.pkgdir)
def supports_srcrev(self):
return True
def _revision_key(self, ud, d, name):
"""
Return a unique key for the url
"""
return "bzr:" + ud.pkgdir
def _latest_revision(self, ud, d, name):
"""
Return the latest upstream revision number
"""
logger.debug2("BZR fetcher hitting network for %s", ud.url)
bb.fetch2.check_network_access(d, self._buildbzrcommand(ud, d, "revno"), ud.url)
output = runfetchcmd(self._buildbzrcommand(ud, d, "revno"), d, True)
return output.strip()
def sortable_revision(self, ud, d, name):
"""
Return a sortable revision number which in our case is the revision number
"""
return False, self._build_revision(ud, d)
def _build_revision(self, ud, d):
return ud.revision

View File

@@ -0,0 +1,247 @@
"""
BitBake 'Fetch' clearcase implementation
The clearcase fetcher is used to retrieve files from a ClearCase repository.
Usage in the recipe:
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
PV = "${@d.getVar("SRCREV", False).replace("/", "+")}"
The fetcher uses the rcleartool or cleartool remote client, depending on which one is available.
Supported SRC_URI options are:
- vob
(required) The name of the clearcase VOB (with prepending "/")
- module
The module in the selected VOB (with prepending "/")
The module and vob parameters are combined to create
the following load rule in the view config spec:
load <vob><module>
- proto
http or https
Related variables:
CCASE_CUSTOM_CONFIG_SPEC
Write a config spec to this variable in your recipe to use it instead
of the default config spec generated by this fetcher.
Please note that the SRCREV loses its functionality if you specify
this variable. SRCREV is still used to label the archive after a fetch,
but it doesn't define what's fetched.
User credentials:
cleartool:
The login of cleartool is handled by the system. No special steps needed.
rcleartool:
In order to use rcleartool with authenticated users an `rcleartool login` is
necessary before using the fetcher.
"""
# Copyright (C) 2014 Siemens AG
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
import shutil
import bb
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import MissingParameterError
from bb.fetch2 import ParameterError
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
class ClearCase(FetchMethod):
"""Class to fetch urls via 'clearcase'"""
def init(self, d):
pass
def supports(self, ud, d):
"""
Check to see if a given url can be fetched with Clearcase.
"""
return ud.type in ['ccrc']
def debug(self, msg):
logger.debug("ClearCase: %s", msg)
def urldata_init(self, ud, d):
"""
init ClearCase specific variable within url data
"""
ud.proto = "https"
if 'protocol' in ud.parm:
ud.proto = ud.parm['protocol']
if not ud.proto in ('http', 'https'):
raise ParameterError("Invalid protocol type", ud.url)
ud.vob = ''
if 'vob' in ud.parm:
ud.vob = ud.parm['vob']
else:
msg = ud.url+": vob must be defined so the fetcher knows what to get."
raise MissingParameterError('vob', msg)
if 'module' in ud.parm:
ud.module = ud.parm['module']
else:
ud.module = ""
ud.basecmd = d.getVar("FETCHCMD_ccrc") or "/usr/bin/env cleartool || rcleartool"
if d.getVar("SRCREV") == "INVALID":
raise FetchError("Set a valid SRCREV for the clearcase fetcher in your recipe, e.g. SRCREV = \"/main/LATEST\" or any other label of your choice.")
ud.label = d.getVar("SRCREV", False)
ud.customspec = d.getVar("CCASE_CUSTOM_CONFIG_SPEC")
ud.server = "%s://%s%s" % (ud.proto, ud.host, ud.path)
ud.identifier = "clearcase-%s%s-%s" % ( ud.vob.replace("/", ""),
ud.module.replace("/", "."),
ud.label.replace("/", "."))
ud.viewname = "%s-view%s" % (ud.identifier, d.getVar("DATETIME", d, True))
ud.csname = "%s-config-spec" % (ud.identifier)
ud.ccasedir = os.path.join(d.getVar("DL_DIR"), ud.type)
ud.viewdir = os.path.join(ud.ccasedir, ud.viewname)
ud.configspecfile = os.path.join(ud.ccasedir, ud.csname)
ud.localfile = "%s.tar.gz" % (ud.identifier)
self.debug("host = %s" % ud.host)
self.debug("path = %s" % ud.path)
self.debug("server = %s" % ud.server)
self.debug("proto = %s" % ud.proto)
self.debug("type = %s" % ud.type)
self.debug("vob = %s" % ud.vob)
self.debug("module = %s" % ud.module)
self.debug("basecmd = %s" % ud.basecmd)
self.debug("label = %s" % ud.label)
self.debug("ccasedir = %s" % ud.ccasedir)
self.debug("viewdir = %s" % ud.viewdir)
self.debug("viewname = %s" % ud.viewname)
self.debug("configspecfile = %s" % ud.configspecfile)
self.debug("localfile = %s" % ud.localfile)
ud.localfile = os.path.join(d.getVar("DL_DIR"), ud.localfile)
def _build_ccase_command(self, ud, command):
"""
Build up a commandline based on ud
command is: mkview, setcs, rmview
"""
options = []
if "rcleartool" in ud.basecmd:
options.append("-server %s" % ud.server)
basecmd = "%s %s" % (ud.basecmd, command)
if command == 'mkview':
if not "rcleartool" in ud.basecmd:
# Cleartool needs a -snapshot view
options.append("-snapshot")
options.append("-tag %s" % ud.viewname)
options.append(ud.viewdir)
elif command == 'rmview':
options.append("-force")
options.append("%s" % ud.viewdir)
elif command == 'setcs':
options.append("-overwrite")
options.append(ud.configspecfile)
else:
raise FetchError("Invalid ccase command %s" % command)
ccasecmd = "%s %s" % (basecmd, " ".join(options))
self.debug("ccasecmd = %s" % ccasecmd)
return ccasecmd
def _write_configspec(self, ud, d):
"""
Create config spec file (ud.configspecfile) for ccase view
"""
config_spec = ""
custom_config_spec = d.getVar("CCASE_CUSTOM_CONFIG_SPEC", d)
if custom_config_spec is not None:
for line in custom_config_spec.split("\\n"):
config_spec += line+"\n"
bb.warn("A custom config spec has been set, SRCREV is only relevant for the tarball name.")
else:
config_spec += "element * CHECKEDOUT\n"
config_spec += "element * %s\n" % ud.label
config_spec += "load %s%s\n" % (ud.vob, ud.module)
logger.info("Using config spec: \n%s" % config_spec)
with open(ud.configspecfile, 'w') as f:
f.write(config_spec)
def _remove_view(self, ud, d):
if os.path.exists(ud.viewdir):
cmd = self._build_ccase_command(ud, 'rmview');
logger.info("cleaning up [VOB=%s label=%s view=%s]", ud.vob, ud.label, ud.viewname)
bb.fetch2.check_network_access(d, cmd, ud.url)
output = runfetchcmd(cmd, d, workdir=ud.ccasedir)
logger.info("rmview output: %s", output)
def need_update(self, ud, d):
if ("LATEST" in ud.label) or (ud.customspec and "LATEST" in ud.customspec):
ud.identifier += "-%s" % d.getVar("DATETIME",d, True)
return True
if os.path.exists(ud.localpath):
return False
return True
def supports_srcrev(self):
return True
def sortable_revision(self, ud, d, name):
return False, ud.identifier
def download(self, ud, d):
"""Fetch url"""
# Make a fresh view
bb.utils.mkdirhier(ud.ccasedir)
self._write_configspec(ud, d)
cmd = self._build_ccase_command(ud, 'mkview')
logger.info("creating view [VOB=%s label=%s view=%s]", ud.vob, ud.label, ud.viewname)
bb.fetch2.check_network_access(d, cmd, ud.url)
try:
runfetchcmd(cmd, d)
except FetchError as e:
if "CRCLI2008E" in e.msg:
raise FetchError("%s\n%s\n" % (e.msg, "Call `rcleartool login` in your console to authenticate to the clearcase server before running bitbake."))
else:
raise e
# Set configspec: Setting the configspec effectively fetches the files as defined in the configspec
cmd = self._build_ccase_command(ud, 'setcs');
logger.info("fetching data [VOB=%s label=%s view=%s]", ud.vob, ud.label, ud.viewname)
bb.fetch2.check_network_access(d, cmd, ud.url)
output = runfetchcmd(cmd, d, workdir=ud.viewdir)
logger.info("%s", output)
# Copy the configspec to the viewdir so we have it in our source tarball later
shutil.copyfile(ud.configspecfile, os.path.join(ud.viewdir, ud.csname))
# Clean clearcase meta-data before tar
runfetchcmd('tar -czf "%s" .' % (ud.localpath), d, cleanup = [ud.localpath], workdir = ud.viewdir)
# Clean up so we can create a new view next time
self.clean(ud, d);
def clean(self, ud, d):
self._remove_view(ud, d)
bb.utils.remove(ud.configspecfile)

View File

@@ -0,0 +1,157 @@
"""
BitBake 'Fetch' implementations
Classes for obtaining upstream sources for the
BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
#
import os
import bb
from bb.fetch2 import FetchMethod, FetchError, MissingParameterError, logger
from bb.fetch2 import runfetchcmd
class Cvs(FetchMethod):
"""
Class to fetch a module or modules from cvs repositories
"""
def supports(self, ud, d):
"""
Check to see if a given url can be fetched with cvs.
"""
return ud.type in ['cvs']
def urldata_init(self, ud, d):
if not "module" in ud.parm:
raise MissingParameterError("module", ud.url)
ud.module = ud.parm["module"]
ud.tag = ud.parm.get('tag', "")
# Override the default date in certain cases
if 'date' in ud.parm:
ud.date = ud.parm['date']
elif ud.tag:
ud.date = ""
norecurse = ''
if 'norecurse' in ud.parm:
norecurse = '_norecurse'
fullpath = ''
if 'fullpath' in ud.parm:
fullpath = '_fullpath'
ud.localfile = d.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath))
pkg = d.getVar('PN')
cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
ud.pkgdir = os.path.join(cvsdir, pkg)
def need_update(self, ud, d):
if (ud.date == "now"):
return True
if not os.path.exists(ud.localpath):
return True
return False
def download(self, ud, d):
method = ud.parm.get('method', 'pserver')
localdir = ud.parm.get('localdir', ud.module)
cvs_port = ud.parm.get('port', '')
cvs_rsh = None
if method == "ext":
if "rsh" in ud.parm:
cvs_rsh = ud.parm["rsh"]
if method == "dir":
cvsroot = ud.path
else:
cvsroot = ":" + method
cvsproxyhost = d.getVar('CVS_PROXY_HOST')
if cvsproxyhost:
cvsroot += ";proxy=" + cvsproxyhost
cvsproxyport = d.getVar('CVS_PROXY_PORT')
if cvsproxyport:
cvsroot += ";proxyport=" + cvsproxyport
cvsroot += ":" + ud.user
if ud.pswd:
cvsroot += ":" + ud.pswd
cvsroot += "@" + ud.host + ":" + cvs_port + ud.path
options = []
if 'norecurse' in ud.parm:
options.append("-l")
if ud.date:
# treat YYYYMMDDHHMM specially for CVS
if len(ud.date) == 12:
options.append("-D \"%s %s:%s UTC\"" % (ud.date[0:8], ud.date[8:10], ud.date[10:12]))
else:
options.append("-D \"%s UTC\"" % ud.date)
if ud.tag:
options.append("-r %s" % ud.tag)
cvsbasecmd = d.getVar("FETCHCMD_cvs") or "/usr/bin/env cvs"
cvscmd = cvsbasecmd + " '-d" + cvsroot + "' co " + " ".join(options) + " " + ud.module
cvsupdatecmd = cvsbasecmd + " '-d" + cvsroot + "' update -d -P " + " ".join(options)
if cvs_rsh:
cvscmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvscmd)
cvsupdatecmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvsupdatecmd)
# create module directory
logger.debug2("Fetch: checking for module directory")
moddir = os.path.join(ud.pkgdir, localdir)
workdir = None
if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
logger.info("Update " + ud.url)
bb.fetch2.check_network_access(d, cvsupdatecmd, ud.url)
# update sources there
workdir = moddir
cmd = cvsupdatecmd
else:
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
workdir = ud.pkgdir
logger.debug("Running %s", cvscmd)
bb.fetch2.check_network_access(d, cvscmd, ud.url)
cmd = cvscmd
runfetchcmd(cmd, d, cleanup=[moddir], workdir=workdir)
if not os.access(moddir, os.R_OK):
raise FetchError("Directory %s was not readable despite sucessful fetch?!" % moddir, ud.url)
scmdata = ud.parm.get("scmdata", "")
if scmdata == "keep":
tar_flags = ""
else:
tar_flags = "--exclude='CVS'"
# tar them up to a defined filename
workdir = None
if 'fullpath' in ud.parm:
workdir = ud.pkgdir
cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, localdir)
else:
workdir = os.path.dirname(os.path.realpath(moddir))
cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.basename(moddir))
runfetchcmd(cmd, d, cleanup=[ud.localpath], workdir=workdir)
def clean(self, ud, d):
""" Clean CVS Files and tarballs """
bb.utils.remove(ud.pkgdir, True)
bb.utils.remove(ud.localpath)

Some files were not shown because too many files have changed in this diff Show More