Compare commits

...

612 Commits

Author SHA1 Message Date
Richard Purdie
5fc59beaec build-appliance-image: Update to master head revision
(From OE-Core rev: e068ba7d6b91237f9dabc2050c9473bed311690c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 21:37:25 +01:00
Richard Purdie
06cba9abc4 openssl: Add passthrough variables to work with bitbake
Now that bitbake uses websockets over SSL as hashserv and is correctly
limiting hash equivalence only to things in the orginal SDK, bitbake builds
from buildtools can fail due to broken SSL from buildtools.

The issue is that the relocation variables are being removed from the
environment. This could be fixed within bitbake or it could be fixed
within the SDK environment. This patch does the latter for now. We
really need to improve openssl relocation within the SDK in general.

Fixing this has become more urgent to fix failing builds in automated
testing.

(From OE-Core rev: 6a20667c166fa3d7e2b6e8e8b442dec0fc75f349)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 21:37:13 +01:00
Richard Purdie
424c43070d oeqa/runtime/ltp: Drop groups that were removed in new version
The io, cap_bounds and filecaps groups were removed in latest version
of ltp. Tweak the test class to match.

(From OE-Core rev: d5460f15cbc56e52cbbc09785a777278208da7f7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 13:49:14 +01:00
Yi Zhao
ef28580d82 ltp: upgrade 20240129 -> 20240524
ChangeLog:
https://github.com/linux-test-project/ltp/releases/tag/20240524

Drop backport patches.

(From OE-Core rev: 65013262019b013d88cf7f191b1d9ce6de615347)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 13:49:14 +01:00
Joshua Watt
c88bee1a5e bitbake: asyncrpc: Use client timeout for websocket open timeout
The default connection timeout for websockets is 10 seconds, so use the
provided client timeout instead (which defaults to 30 seconds).

(Bitbake rev: 23681775e5941e54ebead469addf708fca1e6beb)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:05:20 +01:00
Richard Purdie
6a8a554476 nasm: Upgrade 2.16.01 -> 2.16.03
(From OE-Core rev: 4a5b6e8dd315b2281afb232410db585d431be00f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Richard Purdie
277c26d8f0 python3-jinja2: Upgrade 3.1.3 -> 3.1.4
Switch to use flit core since upstream changed.

They also changed the capitalisation under pypi.

The license didn't change but the file was renamed, probably as it wasn't
rst.

(From OE-Core rev: e352680528b18c3cdae26233bef7cddc2771d42d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Martin Hundebøll
c3703889e4 qemu: upgrade 8.2.1 -> 9.0.0
Remove pacthes accepted upstream, and refresh the remaining ones. Remove
patches required by ubuntu 18.04, as those are unmaintainable.

Remove CVE status for CVEs not applicable to the new version.

RP: Remove the hppa-firmware{,64}.img files as they cause strip failures
and SDK relocation errors. We don't support PARISC anyway, if anyone needs
them they can write the changes needed.

(From OE-Core rev: ca2ae68aad88d77cde0670467c4966dbb98d05c0)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Konrad Weihmann
3bb4c6bd18 insane: error out on UNPACKDIR = WORKDIR
as this will clear WORKDIR and create race conditions
across various handling tasks

(From OE-Core rev: 1cf99ce3f79b2c96bdef5aa9b69c2b3ead7e46f1)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Dmitry Baryshkov
6b44e5bfa1 site/x86_64-linux: add ac_cv_func_fnmatch_works
Other arch-specific caches have ac_cv_func_fnmatch_works. Add it to
x86_64 cache too, otherwise cabextract fails to build ([1])

[1] https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3893/steps/14/logs/stdio

(From OE-Core rev: a5aeaf02eff9ddaa95cf53e727c166ac7516ca31)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Yi Zhao
5aba8ca773 libcap: upgrade 2.69 -> 2.70
Release notes for 2.70
* setcap changes to make it harder to set invalid file capabilities
* Lots of documentation fixes
* Fix c89 compilation syntax for the C code in the libraries
* libpam has deprecated providing the _pam_overwrite() function, so use
  memset() instead

(From OE-Core rev: 1117c2c252344c092e4cbf16599699bce55770de)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Bruce Ashfield
86705a293c lttng-modules: update to 2.13.13 and fix for 6.10+
Bumping lttng-modules to 2.13.13, which allows us to drop some
upstream patches.

We also import 4 patches that are required to build against 6.10.

(From OE-Core rev: afca89e93f402f5c17a1b9eb0bc7c7fffdda49a2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Bruce Ashfield
54c6f81ad4 linux-yocto-dev: bump to v6.10
(From OE-Core rev: 51458300559efed13b1a3661d607e3d0404f3612)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Richard Purdie
06af1bdc30 libtool: Drop obsolete configure/compile prepends
The introduction of sstate and recipe specific sysroots made the configure
prepends obsolete and unneeded. The compile prepend has been there for over
a decade and is also likely obsolete. Remove the whole lot, we look into any
issues that arise.

(From OE-Core rev: d6a22998e47bcceee3fc3edc72eb2df2970dabfa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Richard Purdie
f2a5850a80 libtool-native: Drop obsolete systroot config
I can't see any reason this configure like for a sysroot is needed in
the native config and it doesn't make any sense. Drop it as
obsolete/unneeded.

(From OE-Core rev: 67aea7bb485efe6187a255d74c100890333074f6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Richard Purdie
b4e430a42e autotools/libtool: Drop libtool sysroot patch as not needed
libtool auto detects the sysroot from gcc's parameters or configuration so we
don't need to pass in this configuration separately to libtool.

Whilst the option names do conflict with gcc/binutils, that is an issue for those
projects to resolve, not us. Upstream libtool did reject the patch. We can
drop this patch and simplify our code.

(From OE-Core rev: 7c8553f81bccc3e8c2bb1116ee1e89f5f8af4c9e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Richard Purdie
80d4ed954a libtool: 2.4.7 -> 2.5.0
Whilst this is an alpha release, it makes sense for us to
stay close to upstream.

We can drop a lot of merged patches which is great to see.

During testing, one bug showed up, particularly on mip64 due
to an issue with FILECMD being changed to use AC_CHECK_PROG
incorredly. A patch has been added for that and sent upstream.

(From OE-Core rev: d572297c5810fb248af633014eac96f8ea0a739e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Richard Purdie
652e3028d9 sstatesig/populate_sdk_ext: Improve unihash cache handling
Copying in the bb_unihashes cache file was at best a hack and creates a number of
challenges. One is staying in sync with bitbake since it may not have saved the
most recent version of the file. A second is a determinism problem since there may
be more entries in the file than the SDK should have had access to.

To improve the situation, add code to write the data into the locked-sigs.inc file
such that even when locked-sigs aren't used, the right hash mappings are injected
by the get_cached_unihash call.

The functions in copy_buildsystem need to be updated to preserve data they're not
editting.

(From OE-Core rev: 11373def3171e75b3b74ef694da213dd21f3064c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-04 12:04:52 +01:00
Robert Yang
56c578f664 git: 2.44.1 -> 2.45.1
Rebased 0001-config.mak.uname-do-not-force-RHEL-7-specific-build-.patch

(From OE-Core rev: 903cc51746262be4b71261e0ad66cf5a49af2186)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-03 07:47:04 +01:00
Quentin Schulz
0c3d9ff24f kernel-yocto: fix incorrect debug message for defconfig in WORKDIR
Right before this message is printed, the in-tree defconfig is checked
against the one in WORKDIR. If it is different, and therefore either
provided through SRC_URI or patched, then the message is printed.
Therefore, the debug message is incorrect and should say that a patched
defconfig was detected and overwritten.

Fixes: 004da4c6c602 ("kernel-yocto: split meta data gathering into patch and config phases")
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>
(From OE-Core rev: f25717bff291ca225a70e63d3266656d8e643531)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-03 07:47:04 +01:00
Emil Kronborg
93b8b92ba6 insane.bbclass: remove leftover variables and comment
The code that used these variable and the comment was introduced in
commit b44d32ef41 ("insane.bbclass: Portions of code were not running,
fix this and sync with OE.dev. Also add tests for bad sysroot rpaths in
binaries"). Later, in commit 17dae13fabe2 ("insane.bbclass: Fix ELF
bitsize comparison"), some of that code was removed again, but not the
variables and the comment.

(From OE-Core rev: 730d00b0d1d1d617b62900be12fa034bb41fc48b)

Signed-off-by: Emil Kronborg <emil.kronborg@protonmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-03 07:47:04 +01:00
Emil Kronborg
920537c840 insane.bbclass: fix HOST_ variable names
Commit cd25e5544ca3 ("insane: use HOST_ variables, not TARGET_ to
determine the cross system") updated the variables themselves, but not
their names. To prevent confusion, match the Python variable name to the
BitBake variable name.

(From OE-Core rev: f5bebc96580ec74d10bc96b4265357ebc9bcd6ad)

Signed-off-by: Emil Kronborg <emil.kronborg@protonmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-03 07:47:04 +01:00
Emil Kronborg
20c3889573 insane.bbclass: remove skipping of cross-compiled packages
After commit cd25e5544ca3 ("insane: use HOST_ variables, not TARGET_ to
determine the cross system"), this check is no longer necessary. The
introduction of HOST_ variables ensures architecture compatibility is
correctly checked.

(From OE-Core rev: 6e1ddeb05dcd5ff77e0f5526a6e56a484daa4864)

Signed-off-by: Emil Kronborg <emil.kronborg@protonmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-03 07:47:04 +01:00
Lei Maohui
35b139f554 run-postinsts.service: Removed --no-reload to fix reload warning when users execute systemctl in the first boot.
This warning is because after systemd has been upgraded to 255, reloading units operation is needed even when "enable/disable" units by systemctl.

(From OE-Core rev: 28a7064403f2433ef3cb4d52b03dd73437f2d665)

Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-03 07:47:04 +01:00
Joshua Watt
dd148a0a4e lib: package: Replace ":" in file names
The purpose of this translation API is to make sure that the file name
can be used in a bitbake variable without adding special meaning,
therefore the ":" should also be replaced since it is the override
separator

(From OE-Core rev: b87eb329f20e40c1658460af7ff649aa099f0f36)

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>
2024-06-03 07:47:04 +01:00
Joshua Watt
242be0888c lib: package: Add file_reverse_translate
Adds API to reverse the removal of special characters from file names so
it can be correctly done in multiple places without open-coding it.

Replace the translation done in the package_rpm.bbclass with the new API

(From OE-Core rev: 4cb7e93c624987d146aaf626ce8e99568e938a70)

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>
2024-06-03 07:47:04 +01:00
Simone Weiß
af6d28d2b0 sanity: Check if tar is gnutar
In sanity.bbclass the tar version is checked as tar needs to be recent enough
for reproducible builds. Tar could also be provided by other means then gnutar,
but we mean the version of gnutar in the check. Hence we also should ensure
that the installed tar is gnutar.

[YOCTO #14205]

(From OE-Core rev: bdef30bd887cd208d7822dd7853d33e24a6b7a4c)

Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Etienne Cordonnier
afe7a3a384 oeqa/runtime: fix regression in minidebuginfo test
The builtin command "sleep" was getting executed instead of the busybox binary.
Hence "pidof sleep" was empty and the test was failing.

(From OE-Core rev: 3188f3f0718b8a59bc9e3cae4cdf74e82bdb86c3)

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Simone Weiß
e3e7862f0b tzdata: Add tzdata.zi to tzdata-core package
Additionally build and package tzdata.zi info file, as e.g. Systemd expects it
to be present.

[YOCTO #15172]

(From OE-Core rev: a57c7062c9b70361486898974beba4682cf4a76d)

Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Joshua Watt
a8dbfa2739 sstatesig: Drop BB_HASHSERVE_MAX_PARALLEL
Drops support for this variable since bitbake no longer supports
parallel queries to the hash equivalence server

(From OE-Core rev: b0769794ca858baa6e814e81b14cf542c33d3a09)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Bruce Ashfield
9bff1e97c7 linux-yocto/6.6: cfg: introduce Intel NPU fragment
Integrating the following commit(s) to linux-yocto/.:

1/1 [
    Author: Naveen Saini
    Email: naveen.kumar.saini@intel.com
    Subject: features/intel-npu: introduce Intel NPU fragment
    Date: Wed, 15 May 2024 13:44:57 +0800

    Add config fragment for the  system with an 14th generation
    Intel CPU (Meteor Lake) or newer. It will allow users to
    enable Intel NPU (formerly called Intel VPU)
    which is a CPU-integrated inference accelerator for
    Computer Vision and Deep Learning applications.

    Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: d01f4d2d7b95d6e8c65e5c9c5cef4b69cb079859)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Bruce Ashfield
31b7432392 linux-yocto/6.6: update to v6.6.32
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    91de249b6804 Linux 6.6.32
    3ffef551160a block: add a partscan sysfs attribute for disks
    d6b6dfff6cda block: add a disk_has_partscan helper
    fe4549b1d6ac Docs/admin-guide/mm/damon/usage: fix wrong example of DAMOS filter matching sysfs file
    71483049de80 docs: kernel_include.py: Cope with docutils 0.21
    1266e5a8f5bc admin-guide/hw-vuln/core-scheduling: fix return type of PR_SCHED_CORE_GET
    1c652e1e1067 KEYS: trusted: Do not use WARN when encode fails
    26c6d7dc8c6a remoteproc: mediatek: Make sure IPI buffer fits in L2TCM
    642069561ea5 serial: kgdboc: Fix NMI-safety problems from keyboard reset code
    40b963e45cbb usb: typec: tipd: fix event checking for tps6598x
    2f95dfb647a8 usb: typec: ucsi: displayport: Fix potential deadlock
    a202b26d9531 net: usb: ax88179_178a: fix link status when link is set to down/up
    ec96bcf5f96a usb: dwc3: Wait unconditionally after issuing EndXfer command
    71df2cb2869d binder: fix max_thread type inconsistency
    c364e7a34c85 drm/amdgpu: Fix possible NULL dereference in amdgpu_ras_query_error_status_helper()
    f9b877a7ee31 erofs: reliably distinguish block based and fscache mode
    3924179ba933 erofs: get rid of erofs_fs_context
    fcb05fee0006 bpf: Add missing BPF_LINK_TYPE invocations
    f70d849b679b kselftest: Add a ksft_perror() helper
    7b4bd57cf005 mmc: core: Add HS400 tuning in HS400es initialization
    e62835264d03 KEYS: trusted: Fix memory leak in tpm2_key_encode()
    ad3f7986c5a0 Bluetooth: L2CAP: Fix div-by-zero in l2cap_le_flowctl_init()
    cfe560c7050b Bluetooth: L2CAP: Fix slab-use-after-free in l2cap_connect()
    4d29fd53a0cb ice: remove unnecessary duplicate checks for VF VSI ID
    0ca683f921a9 ice: pass VSI pointer into ice_vc_isvalid_q_id
    3a7ac4902917 net: ks8851: Fix another TX stall caused by wrong ISR flag handling
    7e4f50dfc98c drm/amd/display: Fix division by zero in setup_dsc_config
    d4a079d1466d smb: smb2pdu.h: Avoid -Wflex-array-member-not-at-end warnings
    5a65254c4c4a ksmbd: add continuous availability share parameter
    07e76ea1799c cifs: Add tracing for the cifs_tcon struct refcounting
    2004e41cd2c4 smb: client: instantiate when creating SFU files
    01bce099af0f smb: client: fix NULL ptr deref in cifs_mark_open_handles_for_deleted_file()
    dbd2df36cd67 smb3: add trace event for mknod
    8aff8b8b177d smb311: additional compression flag defined in updated protocol spec
    a9aa7a776efc smb311: correct incorrect offset field in compression header
    c1f3c8204e6f cifs: Move some extern decls from .c files to .h
    39bdc4197acf ksmbd: fix potencial out-of-bounds when buffer offset is invalid
    9e4937cbc150 ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16()
    74dc3e5bf6e1 ksmbd: Fix spelling mistake "connction" -> "connection"
    27b40b7bfcd1 ksmbd: fix possible null-deref in smb_lazy_parent_lease_break_close
    8b2326963da7 cifs: remove redundant variable assignment
    1598a015c761 cifs: fixes for get_inode_info
    91cdeb0d4baf cifs: defer close file handles having RH lease
    8df4bcdb0a42 ksmbd: add support for durable handles v1/v2
    665e85883098 ksmbd: mark SMB2_SESSION_EXPIRED to session when destroying previous session
    eb4a05e3c34b smb: common: simplify compression headers
    fdd938b2b468 smb: common: fix fields sizes in compression_pattern_payload_v1
    e8aee4f4d2e3 smb: client: negotiate compression algorithms
    25f3604fcd62 smb3: add dynamic trace point for ioctls
    c057a809e128 smb: client: return reparse type in /proc/mounts
    582524019459 smb: client: set correct d_type for reparse DFS/DFSR and mount point
    97db41604555 smb: client: parse uid, gid, mode and dev from WSL reparse points
    7449d736bbbd smb: client: introduce SMB2_OP_QUERY_WSL_EA
    b93ac66fa236 smb: client: Fix a NULL vs IS_ERR() check in wsl_set_xattrs()
    df0a8a192510 smb: client: add support for WSL reparse points
    831ffbd1c7b5 smb: client: reduce number of parameters in smb2_compound_op()
    84c597f7f98c smb: client: fix potential broken compound request
    db0f1c0770bc smb: client: move most of reparse point handling code to common file
    c1468c7e0ab9 smb: client: introduce reparse mount option
    1e60bc0e9543 smb: client: retry compound request without reusing lease
    b6e27f7fc245 smb: client: do not defer close open handles to deleted files
    f93d145f9002 smb: client: reuse file lease key in compound operations
    cfb8f73da601 smb: client: get rid of smb311_posix_query_path_info()
    a90f37e3d7ac smb: client: parse owner/group when creating reparse points
    e4232010b13a smb3: update allocation size more accurately on write completion
    fff4045e712b smb: client: handle path separator of created SMB symlinks
    1b5f2928cc6b cifs: update the same create_guid on replay
    75417833bb3e ksmbd: Add kernel-doc for ksmbd_extract_sharename() function
    cdd7870a5fd5 cifs: set replay flag for retries of write command
    433042a91f93 cifs: commands that are retried should have replay flag set
    a5df7820310b smb: client: delete "true", "false" defines
    5cf3fddbd368 smb: Fix some kernel-doc comments
    b4ca2942a0a4 cifs: new mount option called retrans
    de2cadf4bffa smb: client: don't clobber ->i_rdev from cached reparse points
    6789c8387676 cifs: new nt status codes from MS-SMB2
    b96ea433fff4 cifs: pick channel for tcon and tdis
    36f8070c9bdb cifs: minor comment cleanup
    8358f46bef22 cifs: remove redundant variable tcon_exist
    67ed045c5f40 ksmbd: vfs: fix all kernel-doc warnings
    d4caa984c971 ksmbd: auth: fix most kernel-doc warnings
    42430638ace6 cifs: remove unneeded return statement
    8e6a3999e6d5 cifs: get rid of dup length check in parse_reparse_point()
    774c6452475e cifs: Pass unbyteswapped eof value into SMB2_set_eof()
    88e07de246fa smb3: Improve exception handling in allocate_mr_list()
    d53fcb485f4b cifs: fix in logging in cifs_chan_update_iface
    304ff3c1b07c smb: client: handle special files and symlinks in SMB3 POSIX
    870c73abef4b smb: client: cleanup smb2_query_reparse_point()
    00ecebcb86d8 smb: client: allow creating symlinks via reparse points
    a158bb66b137 smb: client: optimise reparse point querying
    02bcf865cc53 smb: client: allow creating special files via reparse points
    886b7fb4556d smb: client: extend smb2_compound_op() to accept more commands
    da70c1d3c584 smb: client: Fix minor whitespace errors and warnings
    abea3c9ac8c6 smb: client: introduce cifs_sfu_make_node()
    a7b537b3be9f cifs: fix use after free for iface while disabling secondary channels
    bb536892dadd Missing field not being returned in ioctl CIFS_IOC_GET_MNT_INFO
    210c8b9d496e smb3: minor cleanup of session handling code
    cc3035d092eb smb3: more minor cleanups for session handling routines
    b74c8d9be35a smb3: minor RDMA cleanup
    9c88aae1e44c cifs: print server capabilities in DebugData
    69a1669a6ba1 smb: use crypto_shash_digest() in symlink_hash()
    5b3c76351b49 Add definition for new smb3.1.1 command type
    c5c63108a868 SMB3: clarify some of the unused CreateOption flags
    6bd52f41d804 cifs: Add client version details to NTLM authenticate message
    e3d332aaf898 Linux 6.6.31
    9fd0198f7ef0 md: fix kmemleak of rdev->serial
    b02372814ad6 Revert "selftests/bpf: Add netkit to tc_redirect selftest"
    7e0a32287741 mm/hugetlb: fix DEBUG_LOCKS_WARN_ON(1) when dissolve_free_hugetlb_folio()
    845cf1c76987 btrfs: do not wait for short bulk allocation
    25777f3f4e1f keys: Fix overwrite of key expiration on instantiation
    9fda5aed60a0 dmaengine: idxd: add a write() method for applications to submit work
    8cacaaa47568 dmaengine: idxd: add a new security check to deal with a hardware erratum
    c516453577d0 VFIO: Add the SPR_DSA and SPR_IAX devices to the denylist
    7bcba557d5c3 Bluetooth: qca: fix firmware check error path
    6b63e0ef4d3c Bluetooth: qca: fix info leak when fetching fw build id
    ba307abed5e0 Bluetooth: qca: fix info leak when fetching board id
    9d23305f8610 Bluetooth: qca: generalise device address check
    c3a38d10b9ea Bluetooth: qca: fix NVM configuration parsing
    427281f9498e Bluetooth: qca: add missing firmware sanity checks
    2d8823700413 Bluetooth: qca: fix wcn3991 device address check
    3019a9d3d27b Bluetooth: qca: fix invalid device address check
    cc6f5aa151b3 eventfs: Do not treat events directory different than other directories
    0c56915c042a tracefs: Still use mount point as default permissions for instances
    5f91fc82794d tracefs: Reset permissions on remount if permissions are options
    100117279c1d ksmbd: do not grant v2 lease if parent lease key and epoch are not set
    329081691fc2 ksmbd: avoid to send duplicate lease break notifications
    b2ed54957161 ksmbd: off ipv6only for both ipv4/ipv6 binding
    8a5e88cbde3f spi: microchip-core-qspi: fix setting spi bus clock rate
    e9f867739b41 regulator: core: fix debugfs creation regression
    a2da0e5c516b nvme-pci: Add quirk for broken MSIs
    377f3a9a3d03 mm/userfaultfd: reset ptes when close() for wr-protected ones
    468971c3f4b8 mm: use memalloc_nofs_save() in page_cache_ra_order()
    73b58d9d0c8d selftests/mm: fix powerpc ARCH check
    513f8dc02eec x86/apic: Don't access the APIC when disabling x2APIC
    6555d7c06e7c hwmon: (pmbus/ucd9000) Increase delay from 250 to 500us
    b6dbfd5bcc26 net: fix out-of-bounds access in ops_init
    8d0ab6426189 arm64: dts: qcom: sa8155p-adp: fix SDHC2 CD pin configuration
    af8af93c6a4f drm/amd/display: Fix incorrect DSC instance for MST
    7be093e45215 drm/amd/display: Handle Y carry-over in VCP X.Y calculation
    ca82830e4533 drm/i915/bios: Fix parsing backlight BDB data
    be59b2d3d975 drm/i915/gt: Automate CCS Mode setting during engine resets
    b0624c032a02 drm/i915/audio: Fix audio time stamp programming for DP
    7b5fd3af4a25 drm/vmwgfx: Fix invalid reads in fence signaled events
    e10644f8ada4 drm/vmwgfx: Fix Legacy Display Unit
    306e99777886 drm/ttm: Print the memory decryption status just once
    4b4cff994a27 drm/amdkfd: don't allow mapping the MMIO HDP page with large pages
    1a88c18da464 Revert "drm/nouveau/firmware: Fix SG_DEBUG error with nvkm_firmware_ctor()"
    5e2af67d8445 drm/nouveau/firmware: Fix SG_DEBUG error with nvkm_firmware_ctor()
    636a47adcf74 mei: me: add lunar lake point M DID
    785c2392c51e clk: sunxi-ng: a64: Set minimum and maximum rate for PLL-MIPI
    547263745e15 clk: sunxi-ng: common: Support minimum and maximum rate
    ad066c9b0630 slimbus: qcom-ngd-ctrl: Add timeout for wait operation
    a69e1bdd777c dyndbg: fix old BUG_ON in >control parser
    ca3cb178678b ASoC: ti: davinci-mcasp: Fix race condition during probe
    f811ed9af993 ASoC: tegra: Fix DSPK 16-bit playback
    00d1a1bc1f82 net: bcmgenet: synchronize UMAC_CMD access
    51b72afb0db9 net: bcmgenet: synchronize use of bcmgenet_set_rx_mode()
    8b3845de02f9 net: bcmgenet: synchronize EXT_RGMII_OOB_CTRL access
    ef31b4647ee9 xtensa: fix MAKE_PC_FROM_RA second argument
    ffd4917c1edb tipc: fix UAF in error path
    f8a139656c95 e1000e: change usleep_range to udelay in PHY mdic access
    5d6ad8f8efea kmsan: compiler_types: declare __no_sanitize_or_inline
    5eba2638a28d iio: accel: mxc4005: Interrupt handling fixes
    762da5255680 iio: pressure: Fixes BME280 SPI driver data
    b79fc1882386 iio:imu: adis16475: Fix sync mode setting
    3bd0de0bb87d dt-bindings: iio: health: maxim,max30102: fix compatible check
    c57824d4fe07 workqueue: Fix selection of wake_cpu in kick_pool()
    daad878a509d mptcp: only allow set existing scheduler for net.mptcp.scheduler
    aa0c07c1f20e mptcp: ensure snd_nxt is properly initialized on connect
    ac6cf3ce9b7d mm/slab: make __free(kfree) accept error pointers
    6c9c7c1e63b1 maple_tree: fix mas_empty_area_rev() null pointer dereference
    6a911b8884c0 btrfs: set correct ram_bytes when splitting ordered extent
    e42004fd29e5 btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks()
    5e651695c3c7 firewire: ohci: fulfill timestamp for some local asynchronous transaction
    a34dd17da9d2 ALSA: hda/realtek: Fix mute led of HP Laptop 15-da3001TU
    789326cafbd1 usb: typec: tcpm: Check for port partner validity before consuming it
    b16abab1fb64 usb: typec: tcpm: unregister existing source caps before re-registration
    24e2f570f2c8 usb: typec: tcpm: clear pd_event queue in PORT_RESET
    000f99445553 usb: dwc3: core: Prevent phy suspend during init
    2d8466c9a8bb usb: xhci-plat: Don't include xhci.h
    1a15d6e242bd usb: gadget: f_fs: Fix a race condition when processing setup packets.
    73c05ad46bb4 usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete
    7a54e5052bde usb: gadget: uvc: use correct buffer size when parsing configfs lists
    2f2886aedeec usb: gadget: composite: fix OS descriptors w_value logic
    63533549ff53 USB: core: Fix access violation during port device removal
    7fce5501d7fc usb: ohci: Prevent missed ohci interrupts
    480c3abbba36 usb: Fix regression caused by invalid ep0 maxpacket in virtual SuperSpeed device
    d5f0c5ea3fc3 usb: typec: ucsi: Fix connector check on init
    4184b7d85422 usb: typec: ucsi: Check for notifications after init
    148ed8b4d64f Reapply "drm/qxl: simplify qxl_fence_wait"
    1fe60ee70943 firewire: nosy: ensure user_length is taken into account when fetching packet contents
    0b76a4f72362 btrfs: fix kvcalloc() arguments order in btrfs_ioctl_send()
    0c7ed3ed35ee drm/amdgpu: once more fix the call oder in amdgpu_ttm_move() v2
    52c1af381cb8 drm/amdgpu: Fix comparison in amdgpu_res_cpu_visible
    7e3030774431 drm/amd/display: Atom Integrated System Info v2_2 for DCN35
    883e4bbf06eb gpiolib: cdev: fix uninitialised kfifo
    309364bc3205 gpiolib: cdev: relocate debounce_period_us from struct gpio_desc
    95ca7c90eaf5 gpiolib: cdev: Fix use after free in lineinfo_changed_notify
    6c83a8f236ec dm/amd/pm: Fix problems with reboot/shutdown for some SMU 13.0.4/13.0.11 users
    1b9e8de483bc drm/connector: Add \n to message about demoting connector force-probes
    fa2d2e2d8eae drm/meson: dw-hdmi: add bandgap setting for g12
    dbe2cf9f09ab drm/meson: dw-hdmi: power up phy on device init
    7019a6416518 net: dsa: mv88e6xxx: add phylink_get_caps for the mv88e6320/21 family
    5c623fe05348 net: hns3: fix kernel crash when devlink reload during initialization
    5a0298f5001b net: hns3: fix port vlan filter not disabled issue
    f806911c220b net: hns3: use appropriate barrier function after setting a bit value
    5d73b414a08a net: hns3: release PTP resources if pf initialization failed
    8ed439067001 net: hns3: change type of numa_node_mask as nodemask_t
    06ce87195a05 net: hns3: direct return when receive a unknown mailbox message
    c9a5a9aa7a45 net: hns3: using user configure after hardware reset
    5df93c029a90 net/smc: fix neighbour and rtable leak in smc_ib_find_route()
    e31b25cc2066 ipv6: prevent NULL dereference in ip6_output()
    4b27116882f5 ipv6: annotate data-races around cnf.disable_ipv6
    d183f297cbb5 hsr: Simplify code for announcing HSR nodes timer setup
    1c2b0f0823f8 net-sysfs: convert dev->operstate reads to lockless ones
    8745a8d74ba1 ipv6: fib6_rules: avoid possible NULL dereference in fib6_rule_action()
    f39c49d06596 dt-bindings: net: mediatek: remove wrongly added clocks and SerDes
    1721afe2ad68 rxrpc: Only transmit one ACK per jumbo packet received
    fa6dbe25e211 rxrpc: Fix congestion control algorithm
    59881e57a722 rxrpc: Fix the names of the fields in the ACK trailer struct
    438d7ceb4523 selftests: test_bridge_neigh_suppress.sh: Fix failures due to duplicate MAC
    2ee2fc6786bc selftests/net: convert test_bridge_neigh_suppress.sh to run it in unique namespace
    68c8ba16ab71 ipv6: Fix potential uninit-value access in __ip6_make_skb()
    1ce60741d7e1 net: bridge: fix corrupted ethernet header on multicast-to-unicast
    6900f0ed0321 nfc: nci: Fix kcov check in nci_rx_work()
    ee9e39a6cb3c phonet: fix rtm_phonet_notify() skb allocation
    d4c6b1807ce6 hwmon: (corsair-cpro) Protect ccp->wait_input_report with a spinlock
    d5ad144fd1ef hwmon: (corsair-cpro) Use complete_all() instead of complete() in ccp_raw_event()
    7d1e7803cb1c hwmon: (corsair-cpro) Use a separate buffer for sending commands
    206003c748b8 rtnetlink: Correct nested IFLA_VF_VLAN_LIST attribute validation
    ae87f661f3c1 net: ks8851: Queue RX packets in IRQ handler instead of disabling BHs
    955b5b6c54d9 Bluetooth: l2cap: fix null-ptr-deref in l2cap_chan_timeout
    1f7ebb69c1d6 Bluetooth: HCI: Fix potential null-ptr-deref
    a85a60e62355 Bluetooth: msft: fix slab-use-after-free in msft_do_close()
    012363cb1bec Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout
    6e48faad92be tcp: Use refcount_inc_not_zero() in tcp_twsk_unique().
    f47d0d32fa94 tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets
    ee0ce7573e50 ARM: 9381/1: kasan: clear stale stack poison
    4a9771c0fb5a xfrm: Preserve vlan tags for transport mode software GRO
    db71ca93259d qibfs: fix dentry leak
    9b332c72299f SUNRPC: add a missing rpc_stat for TCP TLS
    1c172ac7afe4 blk-iocost: do not WARN if iocg was already offlined
    8fb763886756 net:usb:qmi_wwan: support Rolling modules
    aff9dba5e8ce drm/radeon: silence UBSAN warning (v3)
    c06575055ea4 platform/x86: ISST: Add Granite Rapids-D to HPM CPU list
    1f4a2c7f4a54 drm/nouveau/dp: Don't probe eDP ports twice harder
    ca6b0d99cda0 gpio: lpc32xx: fix module autoloading
    1f9c976e942b fs/9p: drop inodes immediately on non-.L too
    427ede281390 clk: Don't hold prepare_lock when calling kref_put()
    ac259d3fa3e5 gpio: crystalcove: Use -ENOTSUPP consistently
    d77f56b649fc gpio: wcove: Use -ENOTSUPP consistently
    6a451fc5e6e6 powerpc/crypto/chacha-p10: Fix failure on non Power10
    48cf6a991431 9p: explicitly deny setlease attempts
    d1250e00e1fe fs/9p: fix the cache always being enabled on files with qid flags
    dbf68fd7e392 fs/9p: translate O_TRUNC into OTRUNC
    e55c601af3b1 fs/9p: only translate RWX permissions for plain 9P2000
    055ea43860e6 iommu: mtk: fix module autoloading
    08bedfbc1b50 smb3: fix broken reconnect when password changing on the server by allowing password rotation
    82f9e213b124 Drivers: hv: vmbus: Don't free ring buffers that couldn't be re-encrypted
    6466a0f6d235 uio_hv_generic: Don't free decrypted memory
    a56fe6113263 hv_netvsc: Don't free decrypted memory
    8e62341f5c45 Drivers: hv: vmbus: Track decrypted status in vmbus_gpadl
    6123a4e8e25b Drivers: hv: vmbus: Leak pages if set_memory_encrypted() fails
    dce583c5bdc7 selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior
    b6f6626528fe amd/amdkfd: sync all devices to wait all processes being evicted
    a624829bba27 drm/amdgpu: Fix VCN allocation in CPX partition
    951a498fa993 drm/amd/display: Skip on writeback when it's not applicable
    c0beff4e35af drm/amdgpu: implement IRQ_STATE_ENABLE for SDMA v4.4.2
    1e2c28e74a82 drm/amdgpu: Refine IB schedule error logging
    037e72e7d7d2 tools/power/turbostat: Fix uncore frequency file string
    f91955da8117 MIPS: scall: Save thread_info.syscall unconditionally on entry
    1061afd58184 gpu: host1x: Do not setup DMA for virtual devices
    ce0e99cae00e blk-iocost: avoid out of bounds shift
    2eab8da937db scsi: hisi_sas: Handle the NCQ error returned by D2H frame
    2f35afac2773 scsi: target: Fix SELinux error when systemd-modules loads the target module
    14e731533b39 memblock tests: fix undefined reference to `BIT'
    85907602db5f memblock tests: fix undefined reference to `panic'
    63e58e5aef23 memblock tests: fix undefined reference to `early_pfn_to_nid'
    54403a77c28b btrfs: always clear PERTRANS metadata during commit
    570bff14e740 btrfs: make btrfs_clear_delalloc_extent() free delalloc reserve
    9678a79d1406 tools/power turbostat: Fix warning upon failed /dev/cpu_dma_latency read
    8a91872a547a tools/power turbostat: Print ucode revision only if valid
    77619a7ace53 tools/power turbostat: Fix Bzy_MHz documentation typo
    52b3541b3513 tools/power turbostat: Increase the limit for fd opened
    95973a9b647c tools/power turbostat: Fix added raw MSR output
    5982887de60c firewire: ohci: mask bus reset interrupts between ISR and bottom half
    dec0c371b46a ata: sata_gemini: Check clk_enable() result
    9872ab5b1e0e vboxsf: explicitly deny setlease attempts
    2f11e24abcf7 net: bcmgenet: Reset RBUF on first open
    e1d38cde2b7b block: fix overflow in blk_ioctl_discard()
    c5d5160d7e00 ALSA: line6: Zero-initialize message buffers
    85bb85801910 scsi: ufs: core: Fix MCQ mode dev command timeout
    684500f29f01 scsi: libsas: Align SMP request allocation to ARCH_DMA_MINALIGN
    cf311e2486c7 scsi: ufs: core: WLUN suspend dev/link state error recovery
    47b5b69f4aee regulator: tps65132: Add of_match table
    de2a108def74 ASoC: SOF: Intel: hda-dsp: Skip IMR boot on ACE platforms in case of S3 suspend
    49ce8b629775 kbuild: Disable KCSAN for autogenerated *.mod.c intermediaries
    926e8bc0cfef selftests/ftrace: Fix event filter target_func selection
    608e13706c8b bpf: Check bloom filter map value size
    41dc67915966 drm/amdkfd: range check cp bad op exception interrupts
    d64496242370 drm/amdkfd: Check cgroup when returning DMABuf info
    1ea068f5b69e btrfs: return accurate error code on open failure in open_fs_devices()
    c885ab23206b scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload
    f09318244c6c scsi: mpi3mr: Avoid memcpy field-spanning write WARNING
    845d179992fc net: mark racy access on sk->sk_rcvbuf
    94f80a8ec15e wifi: iwlwifi: mvm: guard against invalid STA ID on removal
    b83db8e756de wifi: iwlwifi: read txq->read_ptr under lock
    99046794a617 wifi: mac80211: fix prep_connection error path
    ff9580efb5da wifi: cfg80211: fix rdev_dump_mpp() arguments order
    954a654a3377 wifi: mac80211: fix ieee80211_bss_*_flags kernel-doc
    6eb0d6e6d38c gfs2: Fix invalid metadata access in punch_hole
    e29758e73ef3 scsi: lpfc: Use a dedicated lock for ras_fwlog state
    e8bf2c05e8ad scsi: lpfc: Release hbalock before calling lpfc_worker_wake_up()
    8a1d8deaa40e scsi: lpfc: Replace hbalock with ndlp lock in lpfc_nvme_unregister_port()
    4aba3ca53ba4 scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic
    5e6079164922 scsi: lpfc: Remove IRQF_ONESHOT flag from threaded IRQ handling
    76337eb8daee scsi: lpfc: Move NPIV's transport unregistration to after resource clean up
    ff54c87f32f2 scsi: ufs: core: Fix MCQ MAC configuration
    8d6a1c8e3de3 KVM: arm64: vgic-v2: Check for non-NULL vCPU in vgic_v2_parse_attr()
    d082321d0d73 KVM: arm64: vgic-v2: Use cpuid from userspace as vcpu_id
    f2a6b3ed20f2 swiotlb: initialise restricted pool list_head when SWIOTLB_DYNAMIC=y
    802b13b79ab1 powerpc/pseries/iommu: LPAR panics during boot up with a frozen PE
    3b59a759436a powerpc/pseries: make max polling consistent for longer H_CALLs
    0b82eb134d29 clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change
    a6df6bd30458 clk: qcom: smd-rpm: Restore msm8976 num_clk
    78b6092d7834 net: gro: add flush check in udp_gro_receive_segment
    af276a5ac8e9 net: gro: fix udp bad offset in socket lookup by adding {inner_}network_offset to napi_gro_cb
    7f7b0ebb37af net: gro: parse ipv6 ext headers without frag0 invalidation
    5db08343ddb1 ipv4: Fix uninit-value access in __ip_make_skb()
    fa695db33417 drm/panel: ili9341: Use predefined error codes
    1055cdd5750e drm/panel: ili9341: Respect deferred probe
    c6be5383fb83 drm/panel: ili9341: Correct use of device property APIs
    e28dd1e1bf3e s390/qeth: Fix kernel panic after setting hsuid
    935bcb52ec10 vxlan: Pull inner IP header in vxlan_rcv().
    614c5a5ae45a tipc: fix a possible memleak in tipc_buf_append
    73f81e5a2203 rxrpc: Clients must accept conn from any address
    cfe34d86ef97 net: core: reject skb_copy(_expand) for fraglist GSO skbs
    65fbc7a11d06 net: bridge: fix multicast-to-unicast with fraglist GSO
    a30659f1576d spi: fix null pointer dereference within spi_sync
    4fd8cd4154a2 drm/amdgpu: fix doorbell regression
    6cc5dde9bb95 net: dsa: mv88e6xxx: Fix number of databases for 88E6141 / 88E6341
    6792e5b48323 cxgb4: Properly lock TX queue for the selftest.
    84b38f488366 s390/cio: Ensure the copied buf is NUL terminated
    7db626d2730d ALSA: hda: intel-sdw-acpi: fix usage of device_get_named_child_node()
    76ae951d94e7 ASoC: meson: cards: select SND_DYNAMIC_MINORS
    8ad705b120ce ASoC: meson: axg-tdm-interface: manage formatters in trigger
    52a31a05c1c2 ASoC: meson: axg-card: make links nonatomic
    d7801bd9c89e ASoC: meson: axg-fifo: use threaded irq to check periods
    af8e6bbf66da ASoC: meson: axg-fifo: use FIELD helpers
    0ba4fd45991a vxlan: Add missing VNI filter counter update in arp_reduce().
    843210300967 vxlan: Fix racy device stats updates.
    a89e4db53569 net: qede: use return from qede_parse_actions()
    40fbad8885a0 net: qede: use return from qede_parse_flow_attr() for flow_spec
    b633de6ae98b net: qede: use return from qede_parse_flow_attr() for flower
    c1b9c6be4793 net: qede: sanitize 'rc' in qede_add_tc_flower_fltr()
    32ac5cac5de9 ALSA: emu10k1: fix E-MU dock initialization
    9fc627064211 ALSA: emu10k1: move the whole GPIO event handling to the workqueue
    d4b9262fb93e ALSA: emu10k1: factor out snd_emu1010_load_dock_firmware()
    8db345cfb6c6 ALSA: emu10k1: fix E-MU card dock presence monitoring
    c698e482457e Fix a potential infinite loop in extract_user_to_sg()
    53163e2adb93 s390/vdso: Add CFI for RA register to asm macro vdso_func
    23e25d2fc777 net l2tp: drop flow hash on forward
    696d18bb5972 nsh: Restore skb->{protocol,data,mac_header} for outer header in nsh_gso_segment().
    0a0285cee11c octeontx2-af: avoid off-by-one read from userspace
    e19478763154 bna: ensure the copied buf is NUL terminated
    e22e25820fa0 xdp: use flags field to disambiguate broadcast redirect
    487c4e9a553f s390/mm: Fix clearing storage keys for huge pages
    819c33d7751f s390/mm: Fix storage key clearing for guest huge pages
    27f69caa62aa ASoC: codecs: wsa881x: set clk_stop_mode1 flag
    6f85e9b7151a ASoC: Intel: avs: Set name of control as in topology
    54bfc9ef60c6 riscv, bpf: Fix incorrect runtime stats
    a554fef56c0b bpf, arm64: Fix incorrect runtime stats
    f75a57065570 spi: hisi-kunpeng: Delete the dump interface of data registers in debugfs
    9072aab6e8d6 spi: axi-spi-engine: fix version format string
    deccbe39b56f spi: axi-spi-engine: use common AXI macros
    3915124910c5 spi: axi-spi-engine: move msg state to new struct
    0174c1c4384c spi: axi-spi-engine: use devm_spi_alloc_host()
    03a7d3cf0496 spi: axi-spi-engine: simplify driver data allocation
    ab7722458e8c spi: spi-axi-spi-engine: Use helper function devm_clk_get_enabled()
    fe4bfff1cd72 bpf: Fix a verifier verbose message
    57b736fcbb0e nvme: fix warn output about shared namespaces without CONFIG_NVME_MULTIPATH
    0d34c688b00d ASoC: SOF: Intel: add default firmware library path for LNL
    180ffe229325 ASoC: SOF: Introduce generic names for IPC types
    b5a291e5591e regmap: Add regmap_read_bypassed()
    b397a0ab8582 bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue
    2166cb2e21f2 bpf, kconfig: Fix DEBUG_INFO_BTF_MODULES Kconfig definition
    79b9afd95e28 regulator: change devm_regulator_get_enable_optional() stub to return Ok
    bdeb1b446df0 regulator: change stubbed devm_regulator_get_enable to return Ok
    83fdf050ef03 regulator: mt6360: De-capitalize devicetree regulator subnodes
    026e24cf3173 pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map()
    109b9ecdcb04 power: supply: mt6360_charger: Fix of_match for usb-otg-vbus regulator
    48e52633d519 power: rt9455: hide unused rt9455_boost_voltage_values
    fc8cbe3a58a0 pinctrl: baytrail: Fix selecting gpio pinctrl state
    8a1f89c98dcc nfs: Handle error of rpc_proc_register() in nfs_net_init().
    260333221cf0 nfs: make the rpc_stat per net namespace
    53a0365c9f9f nfs: expose /proc/net/sunrpc/nfs in net namespaces
    c4d324c414c2 sunrpc: add a struct rpc_stats arg to rpc_create_args
    30287d2018b4 pinctrl: mediatek: paris: Rework support for PIN_CONFIG_{INPUT,OUTPUT}_ENABLE
    d02587173690 pinctrl: mediatek: paris: Fix PIN_CONFIG_INPUT_SCHMITT_ENABLE readback
    558c8039fdf5 pinctrl: core: delete incorrect free in pinctrl_enable()
    70b145d68e27 pinctrl/meson: fix typo in PDM's pin name
    4b1357a2770e pinctrl: pinctrl-aspeed-g6: Fix register offset for pinconf of GPIOR-T
    a381ee26d7c7 Bluetooth: qca: add support for QCA2066
    2af84c46b9b8 eeprom: at24: fix memory corruption race condition
    4d5ace787273 eeprom: at24: Probe for DDR3 thermal sensor in the SPD case
    00d2715aaa8c rust: kernel: require `Send` for `Module` implementations
    244822c09b4f wifi: nl80211: don't free NULL coalescing rule
    a4dec33d27fb rust: macros: fix soundness issue in `module!` macro
    738ea6d9ca0a rust: module: place generated init_module() function in .init.text
    cce311f8bbbf mtd: limit OTP NVMEM cell parse to non-NAND devices
    26e2fe4cab10 nvmem: add explicit config option to read old syntax fixed OF cells
    ed56e266d3c6 dmaengine: Revert "dmaengine: pl330: issue_pending waits until WFP state"
    867818dd132e dmaengine: pl330: issue_pending waits until WFP state
    7c76aad68f6d kselftest: Add a ksft_perror() helper
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: e904fb7891b4020e7820d0a21f666fc2dbd9b8b0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Bruce Ashfield
9f3bbeacad linux-libc-headers: bump to v6.9
(From OE-Core rev: 78dac2c1f037921c58ccc6efcbf540a92d0fcfcf)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Bruce Ashfield
a9990e11d7 linux-yocto/6.6: intel configuration changes
Integrating the following commit(s) to linux-yocto/.:

1/2 [
    Author: Naveen Saini
    Email: naveen.kumar.saini@intel.com
    Subject: features/intel-pinctrl: add pinctrl driver for Intel Meteor Lake
    Date: Thu, 9 May 2024 13:01:25 +0800

    Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

2/2 [
    Author: Naveen Saini
    Email: naveen.kumar.saini@intel.com
    Subject: bsp/intel-corei7-64: enable Intel IOMMU support
    Date: Thu, 9 May 2024 13:01:38 +0800

    Enable Intel IOMMU driver for intel-corei7-64 machine.

    Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: 1bf24b687f0cd4952eb75b95dd596aa3f11867d2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Bruce Ashfield
0a0fcabb15 linux-yocto/6.6: update to v6.6.30
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    7c76aad68f6d kselftest: Add a ksft_perror() helper
    5697d159afef Linux 6.6.30
    15aa09d6d846 bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS
    57c34bf73128 net/mlx5e: Advertise mlx5 ethernet driver updates sk_buff md_dst for MACsec
    6c3020dc817f macsec: Detect if Rx skb is macsec-related for offloading devices that update md_dst
    ee5dde3aa2fd macsec: Enable devices to advertise whether they update sk_buff md_dst during offloads
    bbc8486eb230 Revert "riscv: kdump: fix crashkernel reserving problem on RISC-V"
    be9857a4d280 ovl: fix memory leak in ovl_parse_param()
    3caf7f49f10f phy: qcom: qmp-combo: fix VCO div offset on v5_5nm and v6
    e3425674ff68 i2c: smbus: fix NULL function pointer dereference
    470d347b14b0 sched/eevdf: Prevent vlag from going out of bounds in reweight_eevdf()
    2cf53d801da7 sched/eevdf: Fix miscalculation in reweight_entity() when se is not curr
    dc21662b5b34 sched/eevdf: Always update V if se->on_rq when reweighting
    73224a5d2180 phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered
    b008e327fa57 riscv: Fix loading 64-bit NOMMU kernels past the start of RAM
    a0f0dbbb1bc4 riscv: Fix TASK_SIZE on 64-bit NOMMU
    e4c881d2127c riscv: fix VMALLOC_START definition
    f976eca36cdf dmaengine: idxd: Fix oops during rmmod on single-CPU platforms
    8e3c94767cad dma: xilinx_dpdma: Fix locking
    758071a35d9f dmaengine: idxd: Convert spinlock to mutex to lock evl workqueue
    0e532b993a05 phy: qcom: m31: match requested regulator name with dt schema
    1da7f6abd3ba phy: rockchip: naneng-combphy: Fix mux on rk3588
    743cf2f19d96 phy: rockchip-snps-pcie3: fix clearing PHP_GRF_PCIESEL_CON bits
    d3d3723d70c1 phy: rockchip-snps-pcie3: fix bifurcation on rk3588
    78fe49bd4259 phy: freescale: imx8m-pcie: fix pcie link-up instability
    73e4d4f6f7e2 phy: marvell: a3700-comphy: Fix hardcoded array size
    610f175d2e16 phy: marvell: a3700-comphy: Fix out of bounds read
    935d4c7cdc56 soundwire: amd: fix for wake interrupt handling for clockstop mode
    4b80c0260bde idma64: Don't try to serve interrupts when device is powered off
    6e98921f6f2f dmaengine: tegra186: Fix residual calculation
    3053b681b678 dmaengine: owl: fix register access functions
    2431b5f2650d mm: turn folio_test_hugetlb into a PageType
    25c5f2e05e8e x86/tdx: Preserve shared bit on mprotect()
    2b56188d9bfb phy: qcom: qmp-combo: Fix VCO div offset on v3
    c219ef43672d phy: qcom: qmp-combo: Fix register base for QSERDES_DP_PHY_MODE
    db4ecbf8ee43 mtd: diskonchip: work around ubsan link failure
    1d2809e5d918 udp: preserve the connected status if only UDP cmsg
    8986ea353956 fbdev: fix incorrect address computation in deferred IO
    b2916e14bd5c stackdepot: respect __GFP_NOLOCKDEP allocation flag
    fefe98d3afc4 net: b44: set pause params only when interface is up
    ca958a1b1552 ethernet: Add helper for assigning packet type when dest address does not match device address
    3ecf2249e6e4 ACPI: CPPC: Fix access width used for PCC registers
    6a8fda8a7339 ACPI: CPPC: Fix bit_offset shift in MASK_VAL() macro
    1b890ae474d1 ACPI: CPPC: Use access_width over bit_width for system memory accesses
    03170e657f62 irqchip/gic-v3-its: Prevent double free on error
    d7d7284c2a7c drm/amdgpu: Fix leak when GPU memory allocation fails
    65356a1cc496 drm/amdgpu: Assign correct bits for SDMA HDP flush
    b33d7aaa2d3d drm/amdgpu/sdma5.2: use legacy HDP flush for SDMA2/3
    9b338b25b388 arm64: dts: rockchip: enable internal pull-up for Q7_THRM# on RK3399 Puma
    e64c81111fe9 arm64: dts: qcom: sm8450: Fix the msi-map entries
    93cf1e2e32d2 arm64: dts: qcom: sc8280xp: add missing PCIe minimum OPP
    c15b5c6fabcb LoongArch: Fix access error when read fault on a write-only VMA
    2c733bb795dd LoongArch: Fix callchain parse error with kernel tracepoint events
    8292f4f8dd1b cpu: Re-enable CPU mitigations by default for !X86 architectures
    3a63cee1a5e1 btrfs: fix information leak in btrfs_ioctl_logical_to_ino()
    e498cc00e6b7 btrfs: scrub: run relocation repair when/only needed
    73aa8ea03ac9 btrfs: fix wrong block_start calculation for btrfs_drop_extent_map_range()
    5e2239fef688 btrfs: fallback if compressed IO fails for ENOSPC
    29e94f295bad HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up
    699f8958dece smb3: fix lock ordering potential deadlock in cifs_sync_mid_result
    0fcf7e219448 smb3: missing lock when picking channel
    39ad3d61d23e smb: client: Fix struct_group() usage in __packed structs
    92abee9c4201 mm: support page_mapcount() on page_has_type() pages
    1eb691e806e7 mm: create FOLIO_FLAG_FALSE and FOLIO_TYPE_OPS macros
    56b99a52229d mmc: sdhci-msm: pervent access to suspended controller
    f6c5d21db16a mm/hugetlb: fix missing hugetlb_lock for resv uncharge
    87fc30db0a2b mtd: rawnand: qcom: Fix broken OP_RESET_DEVICE command in qcom_misc_cmd_type_exec()
    67459f1a707a Bluetooth: qca: fix NULL-deref on non-serdev setup
    6b47cdeb786c Bluetooth: qca: fix NULL-deref on non-serdev suspend
    e0813f22c30b Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853
    4eb706b1b443 Bluetooth: Fix type of len in {l2cap,sco}_sock_getsockopt_old()
    ece94c74e4bf rust: remove `params` from `module` macro example
    4805d764f904 kbuild: rust: force `alloc` extern to allow "empty" Rust files
    2eed4381ee41 kbuild: rust: remove unneeded `@rustc_cfg` to avoid ICE
    3a9337459645 rust: make mutually exclusive with CFI_CLANG
    c34a8052afe5 rust: init: remove impl Zeroable for Infallible
    37ca196aa4d8 rust: don't select CONSTRUCTORS
    3b1ce482e2e6 x86/cpu: Fix check for RDPKRU in __show_regs()
    cec11fa2eb51 fork: defer linking file vma until vma is fully initialized
    612fbf658803 selftests/seccomp: Handle EINVAL on unshare(CLONE_NEWPID)
    f4b1e2cc9fd4 selftests/seccomp: Change the syscall used in KILL_THREAD test
    003af8c23fca selftests/seccomp: user_notification_addfd check nextfd is available
    be383effaee3 Squashfs: check the inode number is not the invalid value of zero
    331b6339c485 squashfs: convert to new timestamp accessors
    ab65b0cf0324 drm/ttm: stop pooling cached NUMA pages v2
    ded1ffea5213 mm, treewide: introduce NR_PAGE_ORDERS
    4c5eaf0cad27 drm/amdgpu: fix visible VRAM handling during faults
    f85a55fb87c2 drm/amdgpu: add shared fdinfo stats
    a4ae24cd04a8 drm: add drm_gem_object_is_shared_for_memory_stats() helper
    9e898211704c mm/madvise: make MADV_POPULATE_(READ|WRITE) handle VM_FAULT_RETRY properly
    49db746d3988 mm/gup: explicitly define and check internal GUP flags, disallow FOLL_TOUCH
    67d2212b6b89 KVM: x86/pmu: Set enable bits for GP counters in PERF_GLOBAL_CTRL at "RESET"
    6393087d931d KVM: x86/pmu: Zero out PMU metadata on AMD if PMU is disabled
    753a277ea086 af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc().
    4e40e624961a tls: fix lockless read of strp->msg_ready in ->poll
    77df3da37d42 net: ethernet: ti: am65-cpts: Fix PTPv1 message type on TX packets
    740717774dc3 ice: fix LAG and VF lock dependency in ice_reset_vf()
    2f7cc2dfc159 iavf: Fix TC config comparison with existing adapter TC config
    a91892696f58 i40e: Report MFS in decimal base instead of hex
    8d6105f63788 i40e: Do not use WQ_MEM_RECLAIM flag for workqueue
    94b00cd6b89b net: ti: icssg-prueth: Fix signedness bug in prueth_init_rx_chns()
    9dfe29373391 net: phy: dp83869: Fix MII mode failure
    8260c980aee7 netfilter: nf_tables: honor table dormant flag from netdev release event path
    cf1a368d190a ARM: dts: imx6ull-tarragon: fix USB over-current polarity
    62041d20f92e eth: bnxt: fix counting packets discarded due to OOM and netpoll
    de1aaefa75be mlxsw: spectrum_acl_tcam: Fix memory leak when canceling rehash work
    ab4ecfb62733 mlxsw: spectrum_acl_tcam: Fix incorrect list API usage
    e890456051fe mlxsw: spectrum_acl_tcam: Fix warning during rehash
    0ae8ff7b6d42 mlxsw: spectrum_acl_tcam: Fix memory leak during rehash
    3da432f3a3d3 mlxsw: spectrum_acl_tcam: Rate limit error message
    311eeaa7b9e2 mlxsw: spectrum_acl_tcam: Fix possible use-after-free during rehash
    feabdac2057e mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update
    136fc524eccd mlxsw: spectrum_acl_tcam: Fix race during rehash delayed work
    79736f57da3c mlxsw: spectrum_acl_tcam: Fix race in region ID allocation
    99a9e7fbaf7f mlxsw: Use refcount_t for reference counting
    eaa5e164a211 net: openvswitch: Fix Use-After-Free in ovs_ct_exit
    36054132dfb0 ipvs: Fix checksumming on GSO of SCTP packets
    cd212ca265b3 Bluetooth: qca: set power_ctrl_enabled on NULL returned by gpiod_get_optional()
    1e9a69f247f9 Bluetooth: hci_sync: Using hci_cmd_sync_submit when removing Adv Monitor
    80dfef128cb9 Bluetooth: btusb: mediatek: Fix double free of skb in coredump
    882d614ac6bf Bluetooth: MGMT: Fix failing to MGMT_OP_ADD_UUID/MGMT_OP_REMOVE_UUID
    62e3a7cbd8e6 Bluetooth: hci_event: Fix sending HCI_OP_READ_ENC_KEY_SIZE
    190d33b0a634 Bluetooth: btusb: Fix triggering coredump implementation for QCA
    e4ce6ebc6ea1 gpio: tegra186: Fix tegra186_gpio_is_accessible() check
    2497bebf3110 net: phy: mediatek-ge-soc: follow netdev LED trigger semantics
    2aacd4de4547 net: gtp: Fix Use-After-Free in gtp_dellink
    209967f5f06e net: usb: ax88179_178a: stop lying about skb->truesize
    8240c7308c94 ipv4: check for NULL idev in ip_route_use_hint()
    5e53816d0f87 net: fix sk_memory_allocated_{add|sub} vs softirqs
    fe1e83811c4f net: make SK_MEMORY_PCPU_RESERV tunable
    6a65f015ee48 tools: ynl: don't ignore errors in NLMSG_DONE messages
    4fee8fa86a15 ax25: Fix netdev refcount issue
    cffee39d3615 NFC: trf7970a: disable all regulators on removal
    0142cbb87cf6 net: dsa: mv88e6xx: fix supported_interfaces setup in mv88e6250_phylink_get_caps()
    b50bb5039223 cxl/core: Fix potential payload size confusion in cxl_mem_get_poison()
    e33625b9b598 bnxt_en: Fix the PCI-AER routines
    96ef6582223a bnxt_en: refactor reset close code
    7e8e0e0ea4a2 bridge/br_netlink.c: no need to return void function
    d68dc711d84f icmp: prevent possible NULL dereferences from icmp_build_probe()
    1fb855ae29c0 ARM: dts: microchip: at91-sama7g5ek: Replace regulator-suspend-voltage with the valid property
    94346efd78e8 mlxsw: core_env: Fix driver initialization with old firmware
    ac60e9041177 mlxsw: core: Unregister EMAD trap using FORWARD action
    09040baf8779 net: bcmasp: fix memory leak when bringing down interface
    b5fa073ae9da vxlan: drop packets from invalid src-address
    3ccbec645deb net: libwx: fix alloc msix vectors failed
    21221985378d wifi: mac80211: fix unaligned le16 access
    83a137e6a273 wifi: mac80211: remove link before AP
    115cd0965446 wifi: mac80211_hwsim: init peer measurement result
    1960e9e9c215 drm/gma500: Remove lid code
    bd7e8e5f3031 wifi: iwlwifi: mvm: return uid from iwl_mvm_build_scan_cmd
    2565820d72ee wifi: iwlwifi: mvm: remove old PASN station when adding a new one
    154be74e589c wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded
    1ba4d2adf1aa wifi: mac80211: clean up assignments to pointer cache.
    80ea4ee9f99c ARC: [plat-hsdk]: Remove misplaced interrupt-cells property
    37e204285732 gpio: tangier: Use correct type for the IRQ chip data
    4de13788ee60 arm64: dts: qcom: sc8180x: Fix ss_phy_irq for secondary USB controller
    9f9d12a8153a arm64: dts: rockchip: regulator for sd needs to be always on for BPI-R2Pro
    ff3e2ca62bd7 arm64: dts: mediatek: mt2712: fix validation errors
    ed427ce58d44 arm64: dts: mediatek: mt7986: prefix BPI-R3 cooling maps with "map-"
    81559c9de353 arm64: dts: mediatek: mt7986: drop invalid thermal block clock
    5a3aa5df8663 arm64: dts: mediatek: mt7986: reorder nodes
    76bb245892ce arm64: dts: mediatek: mt7986: drop "#reset-cells" from Ethernet controller
    b42af715c014 arm64: dts: mediatek: mt7986: drop invalid properties from ethsys
    b626cfb65159 arm64: dts: mediatek: mt7986: reorder properties
    7327c4f0884c arm64: dts: mediatek: mt7622: drop "reset-names" from thermal block
    847afa33a2be arm64: dts: mediatek: mt7622: fix ethernet controller "compatible"
    999d7695d85e arm64: dts: mediatek: mt7622: fix IR nodename
    837f0b9ae29e arm64: dts: mediatek: mt7622: fix clock controllers
    13f40798f1a7 arm64: dts: mediatek: mt8183-kukui: Use default min voltage for MT6358
    a594104da204 arm64: dts: mediatek: mt8195-cherry: Update min voltage constraint for MT6315
    9d0b70b5b2b5 arm64: dts: mediatek: mt8192-asurada: Update min voltage constraint for MT6315
    0c29f85ad1d7 arm64: dts: mediatek: cherry: Describe CPU supplies
    a61f1a579960 arm64: dts: mediatek: cherry: Add platform thermal configuration
    2928d2baf24e arm64: dts: mediatek: mt8195: Add missing gce-client-reg to mutex1
    49785030e34f arm64: dts: mediatek: mt8195: Add missing gce-client-reg to mutex
    346ffd2d39c8 arm64: dts: mediatek: mt8195: Add missing gce-client-reg to vpp/vdosys
    550ad9aa3ac9 arm64: dts: mediatek: mt8192: Add missing gce-client-reg to mutex
    88b162518b86 arm64: dts: mediatek: mt8183: Add power-domains properity to mfgcfg
    4142a160b08c arm64: dts: rockchip: Remove unsupported node from the Pinebook Pro dts
    11c51d2944df arm64: dts: rockchip: enable internal pull-up on PCIE_WAKE# for RK3399 Puma
    6eb4c12f1152 arm64: dts: rockchip: fix alphabetical ordering RK3399 puma
    5fa8b9f97b9c arm64: dts: rockchip: enable internal pull-up on Q7_USB_ID for RK3399 Puma
    82fe6445df8b arm64: dts: rockchip: set PHY address of MT7531 switch to 0x1f
    4fb8d6e8e26c HID: logitech-dj: allow mice to use all types of reports
    b7e3f0cbe1d7 HID: intel-ish-hid: ipc: Fix dev_err usage with uninitialized dev->devc
    fc1860a1bf6c cifs: reinstate original behavior again for forceuid/forcegid
    551496743a57 smb: client: fix rename(2) regression against samba
    4a5c16d06593 cifs: Fix reacquisition of volume cookie on still-live connection
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: 94bc5c798ea701332575cb66a546a4f1e1224d90)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Martin Jansa
31b4ec9fd6 db: ignore implicit-int and implicit-function-declaration issues fatal with gcc-14
* many configure tests (which might not fail before) are failing with gcc-14:
  # grep implicit build/config.log
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
  conftest.c:50:17: error: implicit declaration of function 'exit' [-Wimplicit-function-declaration]
  conftest.c:50:17: warning: incompatible implicit declaration of built-in function 'exit' [-Wbuiltin-declaration-mismatch]
  conftest.c:53:9: error: implicit declaration of function 'msem_init' [-Wimplicit-function-declaration]
  conftest.c:54:9: error: implicit declaration of function 'msem_lock' [-Wimplicit-function-declaration]
  conftest.c:55:9: error: implicit declaration of function 'msem_unlock' [-Wimplicit-function-declaration]
  conftest.c:56:9: error: implicit declaration of function 'exit' [-Wimplicit-function-declaration]
  conftest.c:56:9: warning: incompatible implicit declaration of built-in function 'exit' [-Wbuiltin-declaration-mismatch]
  conftest.c:50:9: error: implicit declaration of function '_spin_lock_try' [-Wimplicit-function-declaration]
  conftest.c:51:9: error: implicit declaration of function '_spin_unlock' [-Wimplicit-function-declaration]

* I have noticed this on db-native build on host with gcc-14
  where it caused fatal do_configure error:
  http://errors.yoctoproject.org/Errors/Details/784164/

  checking for mutexes... UNIX/fcntl
  configure: error: Support for FCNTL mutexes was removed in BDB 4.8.

  the config.log confirms it's because implicit-int:

  configure:22798: checking for mutexes
  configure:22925: gcc  -o conftest -isystem/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/usr/include -O2 -pipe  -isystem/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/usr/include -D_GNU_SOURCE -D_REENTRANT -L/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/usr/lib                         -L/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/lib                         -Wl,--enable-new-dtags                         -Wl,-rpath-link,/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/usr/lib                         -Wl,-rpath-link,/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/lib                         -Wl,-rpath,/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/usr/lib                         -Wl,-rpath,/OE/build/oe-core/tmp-glibc/work/x86_64-linux/db-native/5.3.28/recipe-sysroot-native/lib                         -Wl,-O1 conftest.c  -lpthread >&5
  conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
     47 | main() {
        | ^~~~
  configure:22925: $? = 1
  configure: program exited with status 1

* comparing target db with and without this change shows following diff
  in log.do_configure:

  db $ diff 5.3.28*/temp/log.do_configure
  268c268
  < checking for mutexes... POSIX/pthreads/library
  ---
  > checking for mutexes... POSIX/pthreads/library/x86_64/gcc-assembly
  271c271
  < checking for atomic operations... no
  ---
  > checking for atomic operations... x86/gcc-assembly

(From OE-Core rev: 6108da955e7c553247ff5356cf1c990b3d334edf)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Richard Purdie
2feb9e20e4 sstate/buildhistory: Fix plaindirs handling to occur before SSTATEPOSTINSTFUNCS
buildhistory is showing issues where plaindirs installed files (such as package
listings) are not reliably being handled with installs from sstate.

The reason is that plaindirs is being handled after SSTATEPOSTINSTFUNCS
instead of before it, meaning the files visible in a non-sstate accelerated
code run are different to show from an accelerated run.

This can be observed by the missing files lists for packages in buildhistory, both
in from scratch builds and in builds from sstate. In builds where sstate is installed
over an existing build directory, the files are present though, so there is a
determinism problem.

Fix this by moving the code into sstate_install, this is the only call
site for the funciton.

Since the move needs prepdir, move that as well as it's call site,
being careful to handle the two different definitions of SSTATE_INSTDIR. The
version originally in the function was obsolete and was causing the postinstfuncs
to run in an incorrect directory. The only user is buildhistory and it wasn't
sensitive to cwd however so this happened not to cause a problem. Fix the
code to use the correct location.

(From OE-Core rev: 62ee349cf18532dac8736488752c00e89de78fcd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Richard Purdie
3220a20b98 sstate: Drop intercept functions support
The only user was siteconfig which has been removed. The API was horrible
and we don't want to encourage this kind of usage.

(From OE-Core rev: cfbfd0b2e89eb71783c55a1be4a7e63e6cd82c2f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Richard Purdie
6b9eb4e9f0 siteconfig: Drop siteconfig class/code/support
The siteconfig code was only used for 5 cache values. The complexity added to sstate
to support this code was considerable and the runtime much more significant than
any benefit the cache files would have added. Drop the support for this which
was only used minimally for ncurses and zlib.

(From OE-Core rev: f3766dc038f7ba9780ddaf5eb8d27385ea31d7d0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:58:36 +01:00
Richard Purdie
8fc598580e busybox: Disable CONFIG_TC for poky-tiny
It fails to build with 6.8 kernel headers onwards and is disabled in
our standard builds so match those.

(From meta-yocto rev: f1d9f4d8d6f6d0c1937f690ed184b4334ab7c1fe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:57:42 +01:00
Richard Purdie
f24ffc087b bitbake: tests/fetch: Tweak to work on Fedora40
On Fedora40, "localhost" sometimes resolves to ::1 and sometimes to 127.0.0.1
and python only binds to one of the addresses, leading to test failures.

Use 127.0.0.1 explicitly to avoid problems of the name resolution, we're trying
to test things other than the host networking.

(Bitbake rev: 9adc6da42618f41bf0d6b558d62b2f3c13bedd61)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Richard Purdie
f81127b619 bitbake: fetch2/wget: Fix failure path for files that are empty or don't exist
When we intercepted the file download to a temp file, we broke the
exist/size checks which need to happen before the rename. Correct
the ordering.

For some reason, python 3.12 exposes this problem in the selftests
differently to previous versions.

(Bitbake rev: c56bd9a9280378bc64c6a7fe6d7b70847e0b9e6d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Joshua Watt
c2d2ae7b1d bitbake: hashserv: client: Fix changing stream modes
When switching from normal mode to stream mode, skip calling
self._set_mode() again because this will cause a recursion into the
_set_mode() function and causes problems.

Also cleanup some of the error checking during this process

This bug affected when a client would attempt to switch from one stream
mode to another, and meant that the server would get an invalid message
from the client. This would cause the server to disconnect the client,
and the client would then reconnect in normal mode which was the mode it
wanted anyway and thus it would carry on without any errors. This made
the bug not visible on the client side, but resulting in a lot of
backtrace JSON decoding exceptions in the server logs.

(Bitbake rev: 1826bc41ab3369ac40034c5eaf698748b769b881)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Joshua Watt
5a308474c2 bitbake: siggen: Batch unihash_exists checks
Similar to looking up unihashes, use the batch API when checking if a
unihash exists to speed up lookups

(Bitbake rev: 0ac521ff37b578f7487bca0eccc7dc9e5974991b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Joshua Watt
247d08ae07 bitbake: asyncrpc: Remove ClientPool
Batching support on the client side has proven to be a much more
effective way of dealing with server latency than multiple client
connections and is also much nicer on the server, so drop the client
pool support from asyncrpc and the hash server

(Bitbake rev: 6f80560f1c7010d09fe5448fdde616aef8468102)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Joshua Watt
f618d1dfd7 bitbake: siggen: Drop client pool support
Drops support for client pools, since batching support in the client
code has proven to be much more effective

(Bitbake rev: 85dafaf8e070459f7de7bfb37300d8b60a27002e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Richard Purdie
2ff7af74bc bitbake: bitbake: Drop older python version compatibility code
cooker: We can call multiprocessing close() unconditionally and tweak a
comment give 3.8 is now the minimum version.

lib/bb: We can drop the logger addition code only needed before 3.6

asyncrpc/hashserv: Since the minimum version is 3.8, we can drop the
conditional code.

(Bitbake rev: 16f4386400f88ba50605307961c248bef09895c1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Richard Purdie
277e07d1cc bitbake: cooker: Improve handling errors during parsing when profiling
We've seeing profiling tracebacks when parse errors occur during
profiling. Try and avoid these but not processing invalid profiles.

(Bitbake rev: 171bd9dd575307fbd61b5179ad86131d76add067)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 16:56:25 +01:00
Richard Purdie
eacebfc169 bitbake: lib/bs4: Avoid soupsieve warning
(Bitbake rev: 8e444cd9913d1ee0672b5583e263e5927c3221df)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 13:09:54 +01:00
Richard Purdie
12fa81e8d6 bs4: Update to 4.12.3 from 4.4.1
It makes sense to switch to a more recent version and keep up to date
with upstream changes and things like new python version support.

(Bitbake rev: f5462156036e71911c66d07dbf3303cde862785b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-31 12:43:18 +01:00
Changqing Li
99ff46cc9b gettext: fix a parallel build issue
Occasionally, gettext will build failed with error:
In file included from ../../../gettext-0.22.5/gettext-runtime/intl/gettextP.h:71,
                 from ../../../gettext-0.22.5/gettext-runtime/intl/log.c:24:
./libgnuintl.h:98:1: error: unterminated comment
   98 | /* The user can define _INTL_RE
      | ^
./libgnuintl.h:17: error: unterminated #ifndef
   17 | #ifndef _LIBINTL_H

In file included from ../../../gettext-0.22.5/gettext-runtime/intl/gettextP.h:71,
                 from ../../../gettext-0.22.5/gettext-runtime/intl/langprefs.c:25:
./libgnuintl.h:98:1: error: unterminated comment
   98 | /* The user can define _INTL_RE
      | ^
./libgnuintl.h:17: error: unterminated #ifndef
   17 | #ifndef _LIBINTL_H

It is a parallel build issue caused by missing dependencies, backport
patch to fix it.

(From OE-Core rev: e18fc96f9d4c0a0525c21371d3f36e8dfe008b35)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Markus Volk
e034d3ff56 libadwaita: update 1.5.0 -> 1.5.1
=============
Version 1.5.1
=============

- AdwAboutDialog/Window
  - Fix an outdated appstream reference in docs
- AdwActionRow
  - Mention .property in docs
- AdwAlertDialog
  - Fix the accessible role
  - Fix initial focus
- AdwAvatar
  - Fix portrait avatars on hidpi
- AdwBin
  - Fix a potential focus issue
- AdwBreakpoint
  - Fix add_setter() annotations
- AdwCarousel
  - Fix a build warning
- AdwComboRow
  - Fix initial checkmark
  - Handle model changes properly
- AdwDialog
  - Fix accessibility warnings
  - Make shortcuts work when there are no focusable widgets
  - Correctly restore focus when opening a dialog from a menu
  - Fix GtkWindow:deletable=false hiding close buttons in dialogs
- AdwExpanderRow
  - Fix get_title_lines() and get_subtitle_lines() return types
  - Fix remove() docs
- AdwOverlaySplitView
  - Unmap sidebar when it's hidden
- AdwPreferencesGroup
  - Fix a potential focus issue
  - Fix :header-group annotations and notifications
- AdwPreferencesPage
  - Fix a potential focus issue
- AdwTabView
  - Document :close-page return value
  - Fix a leak when closing the last page
- AdwViewStack
  - Fix a typo in docs
- Docs
  - Update screenshots
- Stylesheet
  - Fix entry progress bars
- Add missing return annotations
- Translation updates
  - Brazilian Portuguese
  - Hindi
  - Kabyle
  - Portuguese
  - Slovak

(From OE-Core rev: 301470de9a1a6a44de9a3d7c815e86dba162da68)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
653b03a5a9 cmake: upgrade 3.28.3 -> 3.29.3
License-update: copyright years

(From OE-Core rev: 7fc1826d28732cab39def3216764671c24d2dcb5)

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>
2024-05-30 09:04:14 +01:00
Mark Hatle
293cb9b25b binutils: Fix aarch64 disassembly abort
Code backported from binutils development tree.

  aarch64: Remove asserts from operand qualifier decoders [PR31595]

  Given that the disassembler should never abort when decoding
  (potentially random) data, assertion statements in the
  `get_*reg_qualifier_from_value' function family prove problematic.

  ...

(From OE-Core rev: 00f3d8495a1d8fe44336b53c5a9d9a5f8a8d5664)

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Robert Joslyn
b33dcf1123 libgloss: Do not apply non-existent patch
When newlib and libgloss were updated to 4.3.0, SRC_URI was updated to
append a fix-rs6000-cflags.patch file when building on PowerPC, but this
file was not added to the repo.

Remove appending the missing patch.

(From OE-Core rev: 64561d8b81233a19df5f51d26dfbcd15835bec1f)

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
b29ae5ebe9 libomxil: remove the recipe
Now-removed gstreamer omx plugin was the only consumer, and it's all very obsolete and
hasn't seen development in years.

(From OE-Core rev: 63535ce55141e7d4184a1f19efc3f49946f506ae)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
46a8430b9e gstreamer1.0: update 1.22.11 -> 1.24.3
Drop gstreamer1.0-omx recipe as upstream has removed it:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976

kate plugin dropped from bad.

amrnb/amrwb moved from ugly to good.

(From OE-Core rev: 9c21815339afb85f558d8a1e0365614320cdc7d7)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
cd83165cf4 gtk-doc: upgrade 1.33.2 -> 1.34.0
Drop merged patch.

(From OE-Core rev: 98ff632754a1c230623c825e187c78741a2f9d8b)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
4acc13e88a meson: upgrade 1.3.1 -> 1.4.0
(From OE-Core rev: 697ab91da6cae370af5269f32cdfc14e88f2b37b)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
907f8a2461 xserver-xorg: upgrade 21.1.12 -> 21.1.13
(From OE-Core rev: 78dc14599a65075a40c26df4bf9d2bb33a237ca9)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
5bdebccd39 libxcb: upgrade 1.16.1 -> 1.17.0
(From OE-Core rev: 47f6da4a9a10e9607d458665baf5cf83451e7b66)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
0a5d7ba4a0 icu: upgrade 74-2 -> 75-1
License-update: copyright years

(From OE-Core rev: 828b25dd17cd148ff0c1f852d6581359e5b6ee20)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
79f67e4b8f zstd: upgrade 1.5.5 -> 1.5.6
Drop patch that was merged upstream.

(From OE-Core rev: eeed9f6a8e83eb29da8cb69a25dd690712e3ac1b)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
0cb8e7cfc2 mobile-broadband-provider-info: upgrade 20230416 -> 20240407
Convert to meson.

(From OE-Core rev: 643c7c2219886253857fdc7618d5db12ddc0e9de)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
49868698b3 pinentry: update 1.2.1 -> 1.3.0
License-update: formatting, FSF address

(From OE-Core rev: 7e2b529fff1aee883d95c3cf97300c8d8b5830d3)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
90d169ff48 libgit2: update 1.7.2 -> 1.8.1
License-update: additional MIT-licensed components

(From OE-Core rev: 2981033469d2a4e97fbe691f97c582771841c56e)

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>
2024-05-30 09:04:14 +01:00
Alexander Kanavin
ab0b75eeda boost: update 1.84.0 -> 1.85.0
(From OE-Core rev: cac4bf50f900d226e07bd0bf96002796e0c8d383)

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>
2024-05-30 09:04:14 +01:00
Martin Hundeb?ll
622d2b57f5 classes: image_types: quote variable assignment needed by dash
The change in commit 39fc503036
("classes: image_types: apply EXTRA_IMAGECMD:squashfs* in oe_mksquashfs()")
assigns $@ to a local variable without quoting it. While this works with
bash, it fails with dash. Here, only the first token of $@ is assigned
to the variable, and the reamining tokens are passed as arguments to the
"local" keyword.

Fix it by adding the missing quotes.

(From OE-Core rev: 14ca134f9f72d518c9180156a8efac19f8bb3ab0)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Changqing Li
8f741e6237 ghostscript: upgrade 10.03.0 -> 10.03.1
Patch release to address security bugs:
CVE-2024-33869
CVE-2023-52722
CVE-2024-33870
CVE-2024-33871
CVE-2024-29510

(From OE-Core rev: 9a424fbcdc0c792ff3b99bf0e8a5e380582f53bc)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Robert Joslyn
73d029e1d2 curl: Update to 8.8.0
Remove backported patch that is upsteam in this version. Disable test
1481 since it requires --libcurl option that is disabled by default.
Remove --disable-ntlm-wb option since support for ntlm_wb was removed in
this version

(From OE-Core rev: f193e89cd957f0f0f7d8e9450b59061bf2e800c7)

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Chen Qi
f12859b0e8 libnl: change HOMEPAGE
http://www.infradead.org/~tgr/libnl/ stops at 2014, the
current official home page should be the github one.

(From OE-Core rev: cfe7659e4c553c51d39322b378ac7fb2891c2dc6)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Chen Qi
b79a8eb7c9 kmod: upgrade from 31 to 32
kmod now installs symlinks in 'make install'.
https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/commit/?
id=e98cef6f3f8cd6f8bfb26d147b2c209297453cca

Changes are made in do_install to ensure that we can to continue to
use sbin. This is because our kernel has: CONFIG_MODPROBE_PATH='/sbin/modprobe'.
We'll need to sync our kmod path settings with our kernel config. Otherwise,
things would fail. For example, libnl's some ptest cases fail.

(From OE-Core rev: 99e0a6ed8a08faa86116fbb8989bbb234bd7fc53)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Robert Yang
071db3ae8e strace: upgrade 6.8 -> 6.9
This patch is made by AUH and rebased the following patches:
0001-configure-Use-autoconf-macro-to-detect-largefile-sup.patch
0001-strace-fix-reproducibilty-issues.patch
0002-tests-Replace-off64_t-with-off_t.patch
Makefile-ptest.patch
ptest-spacesave.patch
skip-load.patch
update-gawk-paths.patch

(From OE-Core rev: 5efe057e6cf0b5f217d9a5af0cec93b92435ad62)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Joshua Watt
e16d690e77 bitbake: hashserv: server: Add support for SO_REUSEPORT
SO_REUSEPORT is a socket option that allows multiple servers to listen
on the same TCP port, and the kernel will automatically load balance the
connections between them. This is particularly helpful for the hash
server since it runs in a single thread. To take advantage of a
multi-core server, multiple servers can be started in parallel with this
option (up to 1 per CPU) and the kernel will load balance between them.

(Bitbake rev: d72d5a7decb489e2af0ebc43cfea0ca3e4353e9b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 07:38:10 +01:00
Joshua Watt
76a63bd031 bitbake: siggen: Enable batching of unihash queries
Uses the batching API of the client to reduce the effect of latency when
making multiple queries to the server

(Bitbake rev: a54734b4ac2ddb3bce004e576cf74d6ad6caf62a)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 07:38:10 +01:00
Joshua Watt
29c2cd4d54 bitbake: hashserv: client: Add batch stream API
Changes the stream mode to do "batch" processing. This means that the
sending and reciving of messages is done simultaneously so that messages
can be sent as fast as possible without having to wait for each reply.
This allows multiple messages to be in flight at once, reducing the
effect of the round trip latency from the server.

(Bitbake rev: e768d0f17bdb97f6ff013ec3a41f182fecd47a55)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 07:38:10 +01:00
Yoann Congal
8fc967d0c7 migration-5.1: add the recommended pattern for S/UNPACKDIR definition
(From yocto-docs rev: 9fb708986cb9019062078f8a34288c44f2667dbd)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Lee Chee Yang
cad8556566 migration-notes: add release notes for 5.0.1
add release notes for 5.0.1

(From yocto-docs rev: 9ca8ae1aae8d98ca2c9d2e67b3e07b49de9c20f6)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Andrew Murray <amurray@thegoodpenguin.co.uk>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Michael Opdenacker
bebe947dd5 migration-5.1.rst: preliminary description of UNPACKDIR changes
(From yocto-docs rev: ac7a35edbd20ba2d1789ff77b53484ad34cc0850)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Michael Opdenacker
c3d154813b ref-manual: introduce UNPACKDIR variable
Note that this doesn't touch the "Source Fetching" section
in overview-manual/concepts.rst yet, as the unpack implementation
may not be finalized yet.

(From yocto-docs rev: 2c892663c3e2d72493ee29898e99335a1e45c01f)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reviewed-by: Andrew Murray <amurray@thegoodpenguin.co.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Michael Opdenacker
90e510aee7 migration-guides: placeholder files for 5.1
(From yocto-docs rev: f3ab2c5ec975683383cd8129a607c3e1e8c68053)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Trevor Gamblin
e35c8d53fb ref-manual: variables: document PYPI_PACKAGE_EXT, PYPI_SRC_URI
These are variables that some Python recipes are starting to use, but
there is no documentation for them currently in the reference manual.

(From yocto-docs rev: 78cde86cc31f238b8b31569ac9df2eeb15ef5e33)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Noe Galea
66aac2588d manuals: document NVDCVE_API_KEY variable
Add brief documentation of NVDCVE_API_KEY variable, that was added
in 4.2.3, and emphasize that its use results in lower NVD API request
times.

(From yocto-docs rev: 9c7b452441bad2d7c929383d4665dfddb8f7ea72)

Signed-off-by: Noe Galea <ngalea@thegoodpenguin.co.uk>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reviewed-by: Andrew Murray <amurray@thegoodpenguin.co.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Lee Chee Yang
b392401b46 release-notes-4.0.18: specify backported license
Align with finalized text-based release notes.

(From yocto-docs rev: 0ee5078d1f042d3dc57e7b3b15174398c574b8a5)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-29 20:58:49 +01:00
Joshua Watt
d31c64296d bitbake: bb: Use namedtuple for Task data
Task dependency data is becoming unwieldy with the number of indices it
contains. Convert it to use a named tuple instead, which allows members
to be indexed by a named property or an index (which allows it to retain
backward compatibility).

(Bitbake rev: 26446cca4d22734c3f1b328a205c169dadb7e494)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 23:46:21 +01:00
Joshua Watt
e598b2d135 bitbake: bitbake-hashclient: Improve ping command line options
Adds a --quiet option to suppress the message for each ping, and report
the median ping time.

(Bitbake rev: 3c85b5e2d9b9c39507ed362aaa115b7f6f155966)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 23:46:21 +01:00
Richard Purdie
e9400f091c bitbake: runqueue: Improve rehash get_unihash parallelism
Improve the rehash code to query unihashes in parallel since this is more
efficient on slower links.

(Bitbake rev: c1949d5350342eaaf6ab988d7bfba99496d55523)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 23:46:21 +01:00
Richard Purdie
6a0a2c4618 bitbake: runqueue: Process unihashes in parallel at init
Improve the runqueue init code to call unihash queries in parallel since
this is faster and more efficient, particularly on slower links with longer
round trip times.

The call to the function from cooker is unneeded since that function calls
prepare() and hence this functionality will already have run, so drop
that obsolete call.

(Bitbake rev: 721c97a115a7a4bf21955be79391bd6e0099f40e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 23:46:21 +01:00
Richard Purdie
d89b436835 bitbake: runqueue: Allow rehash loop to exit in case of interrupts
The initial hash serve loop exits in the case where interrupts are present
but probably checks a bit too often. Tweak that and also allow the slow
rehash loop to break on interrupt, improving bitbake Ctrl+C response.

(Bitbake rev: 4534365591fd17bcc2b684900863b67bc69519ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 23:46:21 +01:00
Richard Purdie
2824b5e667 bitbake: runqueue: Add timing warnings around slow loops
With hashserve enabled, there are two slow paths/loops, one at initial runqueue
generation and also during the rehash process when new outhashes are found.

Add timing information at the hashserve log level for when these loops
take longer than 30s or 60s overall. This will leave evidence in the logs when
things are running particularly slowly.

(Bitbake rev: 6c357ede08e0b2a93bdaad2c1d631994faf2b784)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 23:46:21 +01:00
Alexander Kanavin
c7a5673e2d selftest/rust: correctly form the PATH environment variable
There were two issues here:

- the path to native python was not included, so the test
suite was running with host python, causing failures due to
host python being given native libraries:
https://autobuilder.yoctoproject.org/typhoon/#/builders/148/builds/1711/steps/12/logs/stdio
(rust recipe uses native python throughout)

- tmp/hosttools was listead ahead of native-sysroot/usr/bin

(From OE-Core rev: aec96b5aec8d6b4a5ae8a719ca05bb727a6197cb)

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>
2024-05-28 15:09:01 +01:00
Alexander Kanavin
3f69d525d8 rust: build the default set of tools
Setting it explicitly replaces rust's default choice which is rustdoc
(needed for example in selftests and otherwise expected to be present
in typical rust installations):

https://github.com/rust-lang/rust/blob/master/config.example.toml#L320

This addresses some of the rust selftest failures but not all. Help
is appreciate to restore the selftest.

Unfortunately, this also breaks rust reproducibility (or rather exposes
that it was never properly fixed, as explained here:
https://lists.openembedded.org/g/openembedded-core/message/199288
)

(From OE-Core rev: 58eaf2ee6c0809bf0a0d3c1d177e62bda7241651)

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>
2024-05-28 15:09:01 +01:00
Alexander Kanavin
a7bf118441 rust: use rust-snapshot binaries only in rust-native
Otherwise, use rust-native and cargo-native binaries as that allows
our native tweaks in them to be used for target/nativesdk rust -
same as for everything else written in rust.

In particular, this allows building target rust with
cargo-native that includes important reproducibility tweaks.

Unfortunately, this also breaks rust selftest, and that
is partially addressed by the following commit.

[YOCTO #15185]

(From OE-Core rev: 8f2230cb51fe22ef4711a56fecfab4858c04e35b)

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>
2024-05-28 15:09:01 +01:00
Alexander Kanavin
d419566eda rust: add reproducibility patch to eliminate host leakage
[YOCTO #15185]

(From OE-Core rev: 924df18b47e9a69fa295bafe37bdb39d8eaea2bb)

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>
2024-05-28 15:09:01 +01:00
Marlon Rodriguez Garcia
1d86845c41 bitbake: ui/buildinfohelper: Add exception treatment to fix missing target_file
Based on the discution on  https://lists.yoctoproject.org/g/toaster/message/6157
in some cases the value for Target_file could be missing and is needed to bypass
it to finish build.

(Bitbake rev: c60f6d20911632b41473f7c8577949be2f99ad80)

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:43:51 +01:00
Richard Purdie
ae589a1e37 pseudo: Update to pull in python 3.12+ fix
Pull in a fix which avoids syntax warnings with python 3.12.

(From OE-Core rev: 51aa0217e595939f15bd3ffd7625907aef142c05)

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>
2024-05-28 09:38:24 +01:00
Richard Purdie
7ec8dcfcef layer.conf: Add os-release to SIGGEN_EXCLUDERECIPES_ABISAFE
This rebuilds whenever DISTRO_VERSION changes (i.e. any commit is made)
and systemd depends upon it so lots of things end up rebuilding which
isn't necessary,

(From OE-Core rev: 002a2a9d977ed5b86138333c567d25616d38c60b)

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>
2024-05-28 09:38:24 +01:00
Tim Orling
5dce3a34b0 pythonn3-rpds-py: enable ptest
* Add RDEPENDS for ptest from tests/requirements.txt
* Tests take ~14 seconds, so add to PTEST_FAST

(From OE-Core rev: 6a1c551629defd3c241b30452496c580501dc781)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Tim Orling
09c7337ea2 python3-rpds-py: upgrade 0.18.0 -> 0.18.1
https://github.com/crate-py/rpds/compare/v0.18.0...v0.18.1

* Refresh -crates.inc

(From OE-Core rev: f476c2d986ff4a2b89348fe1e5628300ff212f3a)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Khem Raj
f57addd5e1 systemd.bbclass: Clarify error message
When this error is triggered, its a bit vague in specifying where the
issue is e.g.

ERROR: nbd-3.26.1-r0 do_package: nbd does not appear in package list, please add it

Some packages may intentionally remove PN from packages and find it
confusing as to why the system is still asking this to be in PACKAGES

(From OE-Core rev: 025a5e4529dff37a6423d305b12b7a51ceedd9e5)

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>
2024-05-28 09:38:24 +01:00
Tim Orling
992659911b python3-bcrypt: upgrade 4.1.2 -> 4.1.3
https://github.com/pyca/bcrypt/compare/4.1.2...4.1.3

Upstream release notes:
Bump Rust dependency versions

* Drop 0001-Bump-pyo3-from-0.20.0-to-0.20.3-in-src-_bcrypt-746.patch -- merged
* Refresh -crates.inc

(From OE-Core rev: d2404135fd263947bcfd448657d3d0312e12122a)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Quentin Schulz
7a28f7d717 mmc-utils: fix URL
The current mmc-utils git URL still (for now?) redirects to the URL in
this patch, but the homepage doesn't, so let's just migrate both to the
new URL.

(From OE-Core rev: 59870f6d87bb516d74081fde1c670e4838e6e134)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Victor Kamensky
d3d266dec9 systemtap: upgrade 5.0 -> 5.1
removed all backported patches

(From OE-Core rev: 322cab17151bbc8ce05ca8a14cb34d600d1bb934)

Signed-off-by: Victor Kamensky <victor.kamensky7@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Ross Burton
306337e035 oeqa/manual: remove obsolete CROPS and Eclipse manually testing scripts
The Eclipse plugin is very dead, we don't need to carry the manual test
guide for it.

CROPS has its own automated testing, nobody is doing the testing by hand.

(From OE-Core rev: f74a634f199782ce5fa3023d02079c1534bc4aeb)

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>
2024-05-28 09:38:24 +01:00
Khem Raj
71f3468f80 systemd-bootchart: Fix build on musl
(From OE-Core rev: 8243183f807d0f50d2cbd2add41d32ffc47857b3)

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>
2024-05-28 09:38:24 +01:00
Khem Raj
d79dfb7579 kexec-tools: Fix build with GCC-14 on musl
(From OE-Core rev: 704f51f72c301bd081a635dbe94e52aa97ffb827)

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>
2024-05-28 09:38:24 +01:00
Wang Mingyu
6327a50e03 xwayland: upgrade 23.2.6 -> 24.1.0
(From OE-Core rev: 04ccb375e6ff6f01b842818fa130bd5cb2be7e18)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
db2dca7a2a wireless-regdb: upgrade 2024.01.23 -> 2024.05.08
(From OE-Core rev: 0823e8ea83ac907b37bc9eb0ec7dc32862997eff)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
036624701a shaderc: upgrade 2024.0 -> 2024.1
Changelog:
===========
- Update dependencies
- Propagate test/install options to Glslang

(From OE-Core rev: 3410d8864429ca8cd9e63775b0f6e788b6a0405b)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
19eb32540b python3-zipp: upgrade 3.18.1 -> 3.18.2
(From OE-Core rev: b1565222ac6d59af2c395207d82af5cf289d0629)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
e5aef53b1a python3-mako: upgrade 1.3.3 -> 1.3.5
Changelog:
- Reverted the fix for #400 as it caused new issues when traversing
  some bracketed situations.

(From OE-Core rev: 3f840ff8f3ff4b25077e788f94995c9982f667f2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
673de9f5b2 python3-lxml: upgrade 5.2.1 -> 5.2.2
Changelog:
===========
- The test_feed_parser test could fail if lxml_html_clean was not installed.
- The minimum CPU architecture for the Linux x86 binary wheels was set back to
  "core2", without SSE 4.2.
- If libxml2 uses iconv, the compile time version is available as etree.ICONV_COMPILED_VERSION.

(From OE-Core rev: 322de0498af81fb8cd62be1d517d3269e7ed1f9b)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
e5fc4e7cb9 python3-jsonschema: upgrade 4.21.1 -> 4.22.0
Changelog:
============
- Improve best_match (and thereby error messages from jsonschema.validate) in
  cases where there are multiple sibling errors from applying anyOf / allOf
- (Micro-)optimize equality checks when comparing for JSON Schema equality by
  first checking for object identity, as == would.

(From OE-Core rev: 4143346f3975504895a568569927af9884797231)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
026d372bf8 ninja: upgrade 1.12.0 -> 1.12.1
Changelog:
===========
- Screen updates extremely slow on Windows
- Dry run error if the build directory does not exist
- New critical path scheduler performance improvements

(From OE-Core rev: ac98c4850b8bf3eb6c87fbace1f038a52a6162e9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
9512264e87 nghttp2: upgrade 1.61.0 -> 1.62.0
Changelog:
 https://github.com/nghttp2/nghttp2/releases/tag/v1.62.0

(From OE-Core rev: 3401e3ce13b9148d00f75331c90ec4555a55545e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:24 +01:00
Wang Mingyu
644987f072 msmtp: upgrade 1.8.25 -> 1.8.26
Changelog:
===========
- Add support for SCRAM-SHA-256-PLUS and SCRAM-SHA-1-PLUS authentication, and
  prefer SCRAM methods over the PLAIN method because of their superior
  properties.
- With --read-envelope-from, a Resent-From header is now used if it is present
  and appears before any From header

(From OE-Core rev: 10057cd37f0216f1963474a149e9d3bdd8d99ede)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
84b596c208 mesa: upgrade 24.0.5 -> 24.0.7
Changelog:
 https://docs.mesa3d.org/relnotes/24.0.7.html

(From OE-Core rev: 55d962ff7e3475d2c46e1a76d9efa55e1de6e940)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
9c4eba504f llvm: upgrade 18.1.5 -> 18.1.6
Changelog:
==========
- Fixes issues where LLVM is either generating the incorrect thunk for a
  function with aligned parameters or didn't correctly pass through the
  return value when StructRet was used.
- -Xclang -target-feature -Xclang +unaligned-scalar-mem can be used to enable
  unaligned scalar memory accesses for CPUs that do not support unaligned
  vector accesses. -mno-strict-align will enable unaligned scalar and vector
  memory accesses.
- Don't replace an aliasee with an alias that has weak linkage. This avoids
  incorrect linkage that can lead to using the wrong symbols during linking time.
- This patch fixes build failures when compiling AVX512 code using
  -march=native on machines without AVX512.
- Fixes crash in AArch64 backend when having true or false as operand for a
  fcmp instruction on IR level.
- Fixes compiler crash when user specifies -mno-evex512 with AVX512 features
  but no AVX512VL.
- Fixes a bug that tries to do VBROADCAST_LOAD for f16 without AVX2.

(From OE-Core rev: 3cd5c40f5736506b2cfc23b180fa915b01d8220c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
5753640959 libxmlb: upgrade 0.3.18 -> 0.3.19
Changelog:
============
- Add xb_version_string() to get the runtime ABI version
- Add the runtime version as the default XMLb invalidation GUID

(From OE-Core rev: 1d304dd55ca9c306346a058f60810828b78aaaba)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
26c28238cc libxml2: upgrade 2.12.6 -> 2.12.7
Changelog:
=========
- Fix buffer overread with 'xmllint --htmlout'
- xmllint: Fix --pedantic option
- save: Handle invalid parent pointers in xhtmlNodeDumpOutput

(From OE-Core rev: 64e16e2ca71a4dcf285f3dc36789077aa3beaf50)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
29f307088c libslirp: upgrade 4.7.0 -> 4.8.0
(From OE-Core rev: c1e109eac0c7fa729ca8751c351306cba5f58564)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
240d3cd7a9 libgpg-error: upgrade 1.48 -> 1.49
Changelog:
============
* Two new functions to improve the logging interface.
* Add a "trunc" keyword to gpgrt_log_printhex.
* Avoid an endless loop in the argparser due to a conf file read error.

(From OE-Core rev: ca95c0731056bf1299e6a0cb293c904da643f887)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
c333aed69f libedit: upgrade 20230828-3.1 -> 20240517-3.1
(From OE-Core rev: 661d9e84e3236870126f9d6a3bc67376b2a1c696)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
368ebc1b3b iw: upgrade 6.7 -> 6.9
(From OE-Core rev: 27261cda1232ef1a84d1b0d8ba52dc9eb578db81)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
ef77c07b6e iproute2: upgrade 6.8.0 -> 6.9.0
(From OE-Core rev: f516215f213d809cf89bc8e2e3b36119a80bee63)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
051e1bd593 gtk+3: upgrade 3.24.41 -> 3.24.42
Changelog:
===========
* GtkFileChooser:
 - Avoid warnings about floating refs
 - Improve performance of recursive search
 - Populate search model in an idle

* GtkGLArea:
 - Fix a regression in transparency handling

* Printing:
 - Avoid accessing freed printers

* Accessibility:
 - Drop support for the deprecated atk_focus_tracker

* Wayland:
 - Fix monitor sizes
 - Fix a crash related to tablet removal
 - Infer resizable edges for tiled windows
 - Always commit soon after acking a configure

* Windows:
 - Avoid committing NULL strings to IME

* gdk:
 - Use css cursor names as far as possible
 - Sync DND cursor use with GTK4

* macOs:
 - Fix cocoa pasteboard constants

* build:
 - Allow building against sysprof-capture-4

* Translation updates:
 Georgian
 Hebrew
 Kabyle
 Persian

(From OE-Core rev: 2f4cdc1ef16f1b86f5632fded21792d71d58de16)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
fb0f9a5a28 ed: upgrade 1.20.1 -> 1.20.2
Changelog:
=============
- main_loop.c (command_s): Fix g/x/s/x/x, which failed to skip the
  final newline, printing lines twice.

(From OE-Core rev: d726710f7b1d707a55777d486bf06b0021f9dcfb)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
66952b26d3 dnf: upgrade 4.19.2 -> 4.20.0
Changelog:
==========
- Prepare man pages for switch to dnf5 as the default package manager
- Do not add user site-packages directory to sys.path
- Remove --duplicates and --oldinstallonly exit with 0 when nothing to remove
- repoquery: Fix loading filelists when -f is used
- Prepare for switch of dnf5 in Rawhide

(From OE-Core rev: 07bd7732e5d4b08f43956dc58d3d457a6707ecdc)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
815b14fc13 dmidecode: upgrade 3.5 -> 3.6
Changelog:
============
- Use -DALIGNMENT_WORKAROUND on arm.
- Read SMBIOS entry point via kenv on DragonFly BSD.
- Support for SMBIOS 3.6.0. This includes new memory device types, new
  processor upgrades, and Loongarch support.
- Support for SMBIOS 3.7.0. This includes new port types, new processor
  upgrades, new slot characteristics and new fields for memory modules.
- Add bash completion.
- Decode HPE OEM records 197, 239 and 245.
- Implement options --list-strings and --list-types.
- Update HPE OEM records 203, 212, 216, 221, 233, 236, 237, 238 and 242.
- Update Redfish support.
- Bug fixes:
  Fix option --from-dump for user root
  Fix enabled slot characteristics not being printed
- Minor improvements:
  Print slot width on its own line
  Use standard strings for slot width

(From OE-Core rev: 8f4a5c380e9c0400e9c8a6a0ea4203358fd3b2e8)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
0753f11241 diffoscope: upgrade 265 -> 267
Changelog:
===========
* Use "xz --list" to supplement the output when comparing .xz archives;
  essential when some underlying metadata differs.
* Actually append the xz --list after the container differences, as it
  simplifies tests and the output.
* Add 7zip to <!nocheck> Build-Depends in debian/control.
* Update copyright years.
* Maintain an in-header boolean state to determine whether to drop
  from-file/to-file lines. This fixes an issue where HTML differences were
  being inadvertendly neglected.
* Include "xz --verbose --verbose" (ie. double --verbose) output, not just
  the single --verbose.
* Only include "xz --list" output if the xz has no other differences.

(From OE-Core rev: 577d2f29c4bbeb182d45331dbe77b15758746d00)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
99ee302777 createrepo-c: upgrade 1.1.0 -> 1.1.1
Changelog:
===========
* Add detection of %posttrans and %pretrans scriptlet from rpm header
* Onboard packit tests
* Build ARM packages for all Python versions
* Fix minor bug w/ new API

(From OE-Core rev: 66c422c2c5c21d32664666bdf50964078e57bd14)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
317913076d btrfs-tools: upgrade 6.8 -> 6.8.1
Changelog:
===========
* mkfs: fix writing on zoned device when block-group-tree is selected
* tune: fix writing on zoned device with option --convert-to-block-group-tree
* check:
   * more progress and error messages
   * unify handling of unknown command line options with other commands
* subvolume delete: remove options --delete-qgroup and --no-delete-qgroup
  (added in 6.6.3), qgroup deletion does not always work due to delayed
  background processing of subvolume or set value in
  sysfs:ggroup/drop_subtree_threshold
* other:
   * misc refactoring
   * error handling fixes reported by gcc -fanalyzer
   * documentation updates
   * new and updated tests

(From OE-Core rev: 8fd6322166d9e7d9e1ba61e18dd0b28db1fb95a7)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
abe4176108 bind: upgrade 9.18.26 -> 9.18.27
Changelog:
=========
* Skip to next RRSIG if signature has expired or is in
  the future rather than failing immediately.
* Implement signature jitter for dnssec-policy.

(From OE-Core rev: ccf45d3cbd06abd48ca2c82a790587457021e6e3)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
1e54869f05 bash-completion: upgrade 2.13.0 -> 2.14.0
Changelog:
=============
* _comp_{compgen,xfunc}:** use 'declare -F --' for arbitrary funcs
* _comp_{load,realcommand}:** handle option-like command name
* available_interfaces:** strip only trailing colon from entries
* bash_completion,conftest:** use 'complete -p --' for arbitrary cmds
* fio:** engines completion
* ip:** Complete link change as well as set
* ip:** Don't stop at proxy and nomaster in neigh
* scp remote_files:** do not filter generated paths with "$cur"
* scp remote_files:** localize variable 'cur'
* ssh-keygen:** handling of bundled short options
* ssh-keygen:** make work with custom IFS
* ssh-keygen:** suggest -O arg completions depending on mode
* use -- to pass arbitrary cmdnames to '_comp_load'
* use 'pathcmd=$(type -P -- "$1")' for arbitrary cmds

(From OE-Core rev: 90b365f307dcb952e744c44e44198142266d2d70)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Wang Mingyu
a639023d64 appstream: upgrade 1.0.2 -> 1.0.3
Changelog:
===========
 * qt: Fix relocation of Config.cmake files
 * cli: check-syscompat: Recognize available required controls as available
 * validator: Guard issue emission functions with G_GNUC_PRINTF
 * validator: Always use secure string formatting for issue emit function
 * utils: Explicitly set format style when installing catalog metadata
 * Suppress static-analyzer drawing wrong conclusions on GCC 14

(From OE-Core rev: be566cf0fecba34f1f792cbf060143be710970ee)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Martin Hundeb?ll
d5123a2564 ofono: upgrade 2.4 -> 2.7
Remove 0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch as
TEMP_FAILURE_RETRY usage has been removed in upstream commit 765c6655
("treewide: Use L_TFR macro").

Remove 0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch
as likely()/unlikely() has been removed in upstream commit dbbbebf9
("mbimmodem: Remove usage of likely and unlikely").

Remove the do_configure:prepend() that purges the bundled ell directory,
as it isn't needed when passing --enable-external-ell in EXTRA_OECONF.

(From OE-Core rev: 9e018a52ab325dd15f129666fcf8a728fc7c7ec0)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Martin Hundeb?ll
ddc22a9a56 ell: upgrade 0.64 -> 0.65
Remove do_configure:prepend() that creates build-aux, as that isn't
needed.

(From OE-Core rev: ada7c35c17866d4f22918dd75c5fd75a2fad2b88)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Igor Opaniuk
024205238e initramfs-framework: support force reboot if fatal error occurs
Add support for force reboot in the case of fatal error. In some cases
it's better to force reboot (especially when hw watchdog is not
engaged) instead of waiting for 3600 seconds, for example in order to
trigger some recovery procedure during next boot procedure
(after unsuccessful OTA update etc).

ALso fix indendation issues in the fatal() function implementation.

(From OE-Core rev: 6990855e91f2d5891e95995f3f4a1c3b5891c619)

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Alejandro Hernandez Samaniego
40d1877faf newlib: Use mcmodel=medany for RISCV64
It was previously discovered that mcmodel=medany should be used for RISCV64,
however this was only being set for the applications themselves, but not for
newlib, this meant that we ended up with C library that used a code model and
an application that used another one which is not something we want.

Pass mcmodel=medany when building newlib for RISCV64 as well.

Also, s/CFLAGS/TARGET_CFLAGS to standarize across recipes, the variable
expansion provides no functional difference at this point.

(From OE-Core rev: 3ed0a2fab5dbc37dd352ead8846da6aae5de5c20)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Sundeep KOKKONDA
09b5bafd0d glibc: stable 2.39 branch updates.
Below commits on glibc-2.39 stable branch are updated.
c7c3f5bf80 LoongArch: Fix undefined `__memset_aligned` reference in ld.so linking.
32969a2b36 socket: Add new test for connect
2db79c96ba libsupport: Add xgetpeername
ab4ef4421f x86_64: Fix missing wcsncat function definition without multiarch (x86-64-v4)
97bb89668d Force DT_RPATH for --enable-hardcoded-path-in-tests
71149c2a2e elf: Only process multiple tunable once (BZ 31686)
f8e4623421 Add a test to check for duplicate definitions in the static library
8b005d7869 i686: Fix multiple definitions of __memmove_chk and __memset_chk
8323a83abd i586: Fix multiple definitions of __memcpy_chk and __mempcpy_chk
5141d4d83c Revert "i586: Fix multiple definitions of __memcpy_chk and __mempcpy_chk"
c16871e662 Revert "i686: Fix multiple definitions of __memmove_chk and __memset_chk"
fa616ea373 Revert "Add a test to check for duplicate definitions in the static library"
ff110b2591 Add a test to check for duplicate definitions in the static library
ad92c483a4 i686: Fix multiple definitions of __memmove_chk and __memset_chk
3148714ab6 i586: Fix multiple definitions of __memcpy_chk and __mempcpy_chk

(From OE-Core rev: b33b29cc6a41ce5ce8c8648bbb6799e323c77b8b)

Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Sundeep KOKKONDA
e3dfeabee3 binutils: stable 2.42 branch updates.
Below commits on binutils-2.42 stable branch are updated.
6224493e457 Re: PR26978, Inconsistency for strong foo@v1 and weak foo@@v1
d125f967537 hppa: Implement PA 2.0 symbolic relocations for long displacements
884fb5373a1 x86/APX: Remove KEYLOCKER and SHA promotions from EVEX MAP4
d816fda3cbd aarch64: Remove B16B16, SVE2p1 and SME2p1
cb11047e34a Re: Move bfd_init to bfd.c
818bcf40efb print cached error messages using _bfd_error_handler
831be495ef1 aarch64: Fix the 2nd operand in gcsstr and gcssttr instructions.

(From OE-Core rev: 09ffa1dc5311e4d8a6765f50045999e34131ca9f)

Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Ola x Nilsson
02f6d0793a oeqa/selftest/devtool: add test for modifying recipes using go.bbclass
go.bbclass uses a special do_unpack function that causes the git root
to be different from S.  Verify that it unpacks as expected.

[ YOCTO #15483 ]

(From OE-Core rev: fab0c737b95b8d0c0bbf58336bc308776c956406)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Yogita Urade
4a43386905 libarchive: upgrade 3.7.3 -> 3.7.4
Changelog:
=========
   rar: Fix OOB in rar e8 filter
   zip: Fix out of boundary access
   7zip: Limit amount of properties
   bsdtar: Fix error handling around strtol() usages
   passphrase: Improve newline handling on Windows
   passphrase: Never allow empty passwords
   rar: Fix "File CRC Error" when extracting specific rar4 archives
   xar: Avoid infinite link loop
   zip: Update AppleDouble support for directories
   zstd: Implement core detection

(From OE-Core rev: 7aa9d2e94dd05de51384a4f5d05118c2b4308cbd)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Soumya Sambu
2e91950f78 git: upgrade 2.44.0 -> 2.44.1
Addresses the security issues - CVE-2024-32002, CVE-2024-32004,
CVE-2024-32020,CVE-2024-32021 and CVE-2024-32465

Changelog:
==========
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.44.1.txt

(From OE-Core rev: 767f9515013790c9a6b945fae9de03c9e5b89b80)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
13fadb36f6 glib-2.0: remove obsolete 0001-Set-host_machine-correctly-when-building-with-mingw3.patch
This as well has been solved via
https://git.yoctoproject.org/poky/commit/?id=f6a35934540e910794b8729ecc278189a39b710f

(From OE-Core rev: a140f108eca447ea708bad80ece953adb2d6aa78)

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>
2024-05-28 09:38:23 +01:00
Yi Zhao
86a297c631 gnu-efi: upgrade 3.0.17 -> 3.0.18
* Drop backport patches.
* Refresh patches.

(From OE-Core rev: 89088a504052f7b748d12a37372aea5ceeb790da)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Yi Zhao
e0d8072636 libsdl2: upgrade 2.30.2 -> 2.30.3
Changelog:
https://github.com/libsdl-org/SDL/releases/tag/release-2.30.3

This is a stable bugfix release, with the following changes:
 - Fixed Win+V handling (pasting from clipboard history) on Windows
 - Fixed Caps Lock and Backspace key mapping for the Colemak keyboard layout on Windows
 - Fixed mouse warp on XWayland
 - Reduced startup time when scanning for game controllers on Linux
 - Fixed building with C89 compilers
 - Fixed building with the GDK SDK on Windows

(From OE-Core rev: 9411077494934a2baac8872fc17268d49b6f9a45)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Yi Zhao
0e26265e2c dropbear: upgrade 2024.84 -> 2024.85
Changelog:
https://matt.ucc.asn.au/dropbear/CHANGES

This release fixes build regressions in 2024.84:
 - Fix build failure when SHA1 is disabled
 - Fix build failure when DROPBEAR_CLI_PUBKEY_AUTH disabled
 - Update debian/ directory with changed paths

(From OE-Core rev: 62ad8e8217548d7f9aab506a3611ef41f4881cf3)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
2b5b15886b elfutils: remove unneeded 0006-Fix-build-on-aarch64-musl.patch
Verified on qemuarm64/musl (as the patch says).

(From OE-Core rev: b5744391c128afe91aac78bbfedc04cb0ebe342d)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
edce7b6ee5 x264: update to latest revision on official git
The mirror was out of date; meanwhile x264 remains in active development.

Drop unsuitable x32 patch and declare x264 incompatible with the target
(by every sign it's an extinct target; if not so please work with upstream
to develop a solution there).

Replace don-t-default-to-cortex-a9-with-neon.patch with a configure
option passing in target compiler options so that configure can make
correct decisions and we don't have to patch it.

(From OE-Core rev: 1018619f1b18f8045ae84d65d16becf3fe21ffe0)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
c0c78a4cd1 iptables: correctly enable libnetfilter_conntrack support
This is done via configure option, and makes
0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch
unnecessary, as both libnetfilter_conntrack and libnfnetlink
are enabled in lockstep.

(From OE-Core rev: 04ffb341864b443544e9f594248c0c785f601a55)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
640dafd0c4 iptables: remove unneeded 0002-iptables-xshared.h-add-missing-sys.types.h-include.patch
Somewhere on the way it ceased to be necessary.

(From OE-Core rev: b5a32b5744b4ebb1bdc8937e5ebbc35dced0b1a7)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
854429b571 iptables: submit 0001-configure-Add-option-to-enable-disable-libnfnetlink.patch upstream
(From OE-Core rev: 67f6c3534a18520f3b7c5eed27dc2744c5bf44c2)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
0ed1fc4417 perl: submit the rest of determinism.patch upstream
(From OE-Core rev: 5c00500618fa50eeb5e3e956e1fb5f4af562c1a7)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
afe0ae0afc gdb: remove unneeded 0006-resolve-restrict-keyword-conflict.patch
Somewhere on the way the issue solved itself.

(From OE-Core rev: 541e31bcadaf08579109b332ad760d9924bb6ac5)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
b09396f08f grub: remove unneeded 0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch
Verified on qemux86 and qemux86-64 with grub and grub-efi.

(From OE-Core rev: d06ee594e1bbe15b3a45c9efaaddb1e869a69cb3)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
e896d87b0f grub: mark grub-module-explicitly-keeps-symbole-.module_license.patch as a workaround
(From OE-Core rev: 6307adb5b0644845f4062c21ac5717eb62a61dd3)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
058b6d735b vorbis: mark patch as Inactive-Upstream
(From OE-Core rev: 618bb8994d66d7d24cca2fb6885a510d69406437)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
5b79ba0148 kexec-tools: submit 0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch upstream
(From OE-Core rev: d28861326dd8d23914571dc0be8e70899927deea)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
fedcea900e mesa: remove obsolete 0001-meson.build-check-for-all-linux-host_os-combinations.patch
The patch was submitted upstream
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28895
but further investigation revealed that the problem had been solved properly
in meson.class:
https://git.yoctoproject.org/poky/commit/?id=6bf674374d568b2419a4c6eef00d893028878881

(From OE-Core rev: 020345d63f0ffd3ed2b046bbb5e09b5359b24dd6)

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>
2024-05-28 09:38:23 +01:00
Ross Burton
21435c2199 fribidi: upgrade 1.0.13 -> 1.0.14
* Updated Unicode tables to version 15.1

(From OE-Core rev: 332276679c9a004158929e03d9263e9ef66816e9)

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>
2024-05-28 09:38:23 +01:00
Ross Burton
3547b54783 gdk-pixbuf: upgrade 2.42.11 -> 2.42.12
- Fix a build failure (Christian Heusel)
- Fix occasional build failures (Benjamin Gilbert)
- ani: Reject files with multiple INA or IART chunks (Benjamin Gilbert)
- ani: Reject files with multiple anih chunks (Benjamin Gilbert, CVE-2022-48622)
- ani: validate chunk size (Benjamin Gilbert)
- Translation updates

(From OE-Core rev: c5b202b0aef56ecf7982887c54b4ecbc4bbe73ae)

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>
2024-05-28 09:38:23 +01:00
Ross Burton
9c96fa8b1e python3-hatchling: upgrade 1.24.1 -> 1.24.2
* Add .venv to the list of directories that cannot be traversed
* Output from the core Application utility now writes to stderr

(From OE-Core rev: 52a5247c9da9ff15c5e7e700c3a8e719d0ae763d)

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>
2024-05-28 09:38:23 +01:00
Jose Quaresma
65d1e79019 go: upgrade 1.22.2 -> 1.22.3
Upgrade to latest 1.22.x release [1]:

$ git --no-pager log --oneline go1.22.2..go1.22.3
adbfb672ba (tag: go1.22.3) [release-branch.go1.22] go1.22.3
fa0292d252 [release-branch.go1.22] cmd/go: disallow -lto_library in LDFLAGS
947e43e371 [release-branch.go1.22] Revert "cmd/compile: don't combine loads in generated equality functions"
9d2e28501c [release-branch.go1.22] cmd/compile: don't combine loads in generated equality functions
93d8777d24 [release-branch.go1.22] net: check SkipAdditional error result
3f4af1ff0e [release-branch.go1.22] runtime: use bootstrapRand to initialize hashkey
a7ff78d585 [release-branch.go1.22] cmd/compile: bail PGO method lookup on interface types
12c1177045 [release-branch.go1.22] cmd/internal/obj/ppc64: fix incorrect int to int64 conversion when checking MOVD opcodes
d6c972ad41 [release-branch.go1.22] net/http: update bundled golang.org/x/net/http2
a65a2bbd8e [release-branch.go1.22] all: tidy dependency versioning after release

[1] https://github.com/golang/go/compare/go1.22.2...go1.22.3

(From OE-Core rev: 18062def5b65e02d6dc0570734055c100445b6f2)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Philip Lorenz
e51697ef90 package_manager: Share more common DEB / IPK code
Avoid code duplication by making `extract` a shared method (and
retrieving the package manager specific input via an abstract method).
Additionally, follow Python conventions and prefix class internal
methods with "_" to indicate that they shouldn't be called externally.

(From OE-Core rev: c4b126e216dfe8251ec55074be78188fcc3fcea8)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Philip Lorenz
f7e9eb03d2 package_manager: Move OpkgDpkgPM into common module
The OpkgDpkgPM class was introduced to share common functionality
between the Opkg and Debian package manager implementations. However,
for unknown reasons , the refactoring done in
5bc67f5502 duplicated the common class
into the deb and ipk modules. Undo this part of the change by moving the
common base class into a newly created module.

The two variants did not diverge a lot (next to the payload name
generalization, the Debian variant missed
17e2eaed03) and as such no regressions
should be expected.

(From OE-Core rev: c7830c5879f6fa68fa9f47ee59b7bf7f2d276c81)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Philip Lorenz
b2a59134dc ipk: Fix clean up of extracted IPK payload
It turns out that the IPK payload tarball was actually cleaned up in the
concrete package manager implementation (most likely because at some
point Debian and IPK packages used different compression algorithms).

Globbing removes this ambiguity so move the removal of the payload into
the common extract method.

(From OE-Core rev: 1e2b02a54f482159e21902eeb997b21e00e9588e)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Ricardo Simoes
e414b34e5d libusb1: Set CVE_PRODUCT
This commit sets the CVE_PRODUCT variable to "libusb" to match the
product name used in the NIST CPE database [1].

[1]: https://nvd.nist.gov/products/cpe/search

(From OE-Core rev: 1cb4efdb0fd67167005c1d0c5de89559a4ffabdf)

Signed-off-by: Ricardo Simoes <ricardo.simoes@pt.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Naveen Saini
ef938f1bd6 gstreamer1.0-plugins-bad: rename onevpl-intel-gpu -> vpl-gpu-rt
Upstream has been renamed to vpl-gpu-rt.

(From OE-Core rev: 54c144e467f34936cbdf6edef78db66460ff2bc5)

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
f4663a02e5 selftest/sstatetests: move exception list for cache objects to the parent class
This is useful not just in cdn/local cache tests, but also in the build bundle test,
and so should be applied by default.

(From OE-Core rev: 37f0ba71868ef1907883ab751c82ba222fbc87da)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
c149c74605 selftest/sstatetests: separate sstate presence check into its own class
This allows reusing the check function in tests other than CDN/local mirror
ones, such as sstate bundle testing.

(From OE-Core rev: 8a4ab4c063f307b480d98c6aac1e76cde0b9e99e)

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>
2024-05-28 09:38:23 +01:00
Alexander Kanavin
11762e4dc3 bblayers/makesetup: move check for existence of git remotes to oe-setup-layers plugin
This helps when making a local copy of all the layers: it's fine to
not have any remotes configured in that case.

Also correct the mistake in accessing 'contains_this_file' property:
it may not necessarily exist, and if so, it should default to False.

(From OE-Core rev: 639df31e57b7f3da2d475cbae9a79d45755dede6)

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>
2024-05-28 09:38:22 +01:00
Alexander Kanavin
8332fd532f bblayers/makesetup: include local repository paths in discovered layer repo data
This can be useful when the caller needs to know where the repos actually
are on local disk (for example to make a local copy of them or obtain
additional information about them).

This field however should be removed from the json output in oe-setup-layers
plugin, as it is host-specific and not part of the schema.

(From OE-Core rev: ee33ebf6140ad13e401c2cccbb106a22043be356)

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>
2024-05-28 09:38:22 +01:00
Alexander Kanavin
f82c933a4b bblayers/makesetup: raise exceptions when errors happen
Otherwise the calling code can only issue a generic, unhelpful
erorr message, and it's difficult to tell what went wrong
if logger.error output is obscured or redirected.

(From OE-Core rev: 155fe6bda2d715aa616fa8db922dbaa11ebb8080)

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>
2024-05-28 09:38:22 +01:00
Zoltan Boszormenyi
2490d0c12c cdrtools-native: Fix build with GCC 14
Add a patch to fix do_configure with GCC 14.
Disable building cdda2wav because it doesn't build with GCC 14.

(From OE-Core rev: 0fbe1766abb00edeb8ec9a0c8bdb4e723be4f352)

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:22 +01:00
Ninette Adhikari
f66f8fa9f6 oe-build-perf-report: Add commit hash link to chart tooltip
Update tooltip to include the commit hash link to the poky repository

(From OE-Core rev: 1187a460c2608369df8de08fe52a5542e4ab6ecd)

Signed-off-by: Ninette Adhikari <ninette@thehoodiefirm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-24 16:59:31 +01:00
Joshua Watt
5f602c1bd5 bitbake: bitbake-hashclient: Improve stress statistics reporting
Improves the way statistics are reported for the stress test. This makes
it easier to compare them to the ping test

(Bitbake rev: ce166ae25793c11b0a190c531bef0c296fd74497)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:27:08 +01:00
Joshua Watt
76421d5742 bitbake: bitbake-hashclient: Add ping command
Adds a ping subcommand to bitbake-hashclient which can be useful to
measure connection latency

(Bitbake rev: 337487fdffae92091fc33b2346d46c39db5a130f)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:27:08 +01:00
Richard Purdie
7812f104db bitbake: fetch/npmsw: The fetcher shouldn't have any knowledge of S
I don't know why there is hardcoded knowledge of S in the fetcher but there
shouldn't be and the OE unpack changes highlight this doing things it
shouldn't.

Drop the S reference and use rootdir which is the only place it should
be touching.

(Bitbake rev: 84f102954e10a3390fca9c26d5c3c639e952a2c9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:27:08 +01:00
Richard Purdie
d7748e6390 useradd-example: Fix S = WORKDIR reference
Update not to use S = WORKDIR after that was no longer allowed.

(From OE-Core rev: 50f78cb9de68cd4317f34321dfdb06d72ce5d3c6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Guðni Már Gilbert
dfa482f199 python3-requests: cleanup RDEPENDS
Drop the following dependencies from RDEPENDS:
- python3-ndg-httpsclient
- python3-pyasn1
- python3-pyopenssl

Add a missing dependency into RDEPENDS:
- python3-certifi

Additional fix HOMEPAGE, the old link doesn't work

(From OE-Core rev: 44183892cdfeb8d0231b90bd6990dabe77da7473)

Signed-off-by: Guðni Már Gilbert <gudni.m.g@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Yi Zhao
4125ad9a2d libcap-ng-python: upgrade 0.8.4 -> 0.8.5
Changelog:
https://people.redhat.com/sgrubb/libcap-ng/ChangeLog

 - Remove python global exception handler since it's deprecated
 - Make the utilities link against just built libraries
 - Remove unused macro in cap-ng.h

(From OE-Core rev: 98151fbd4864fb5c6728b7faed0ad83723f962ef)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Yi Zhao
f96001fd4f libcap-ng: upgrade 0.8.4 -> 0.8.5
Changelog:
https://people.redhat.com/sgrubb/libcap-ng/ChangeLog

 - Remove python global exception handler since it's deprecated
 - Make the utilities link against just built libraries
 - Remove unused macro in cap-ng.h

Drop backport patch fix-issues-with-swig-4-2.patch.
Backport a patch to fix build for libcap-ng-python.

(From OE-Core rev: 0263fd8193e51e54a4598ea3811c3c0a6e781f85)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Khem Raj
a1d4f0b105 openssl: Fix build on riscv
GCC-14 unearths this bug which is already fixed upstream so backport it

(From OE-Core rev: 0d5c61a1f5099639acf58b33288f466ce47847b5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Thomas Perrot
c7e81b8067 maintainers.inc: maintainer for opensbi
(From OE-Core rev: 3f5ed2e76f8fdf8c5aa35601f45b215820f79c5a)

Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Changqing Li
e2a2a6432f ptest-runner: Bump to 2.4.4 (95f528c)
Changes in 2.4.4:
95f528c utils.c: run_ptests improve error handling on ptests iteration
c48e5fc utils.c: run-ptests improve pseudo-terminal handling

(From OE-Core rev: 48b30dc6237c952020d70976199d7f87545b6189)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Tim Orling
b31f7fd4ae python3-cryptography: upgrade 42.0.5 -> 42.0.7
Also upgrade python3-cryptography-vectors
Refresh python3-cryptography-crates.inc

42.0.7 - 2024-05-06
Restored Windows 7 compatibility for our pre-built wheels. Note that we
do not test on Windows 7 and wheels for our next release will not support
it. Microsoft no longer provides support for Windows 7 and users are
encouraged to upgrade.

42.0.6 - 2024-05-04
Fixed compilation when using LibreSSL 3.9.1.

https://cryptography.io/en/latest/changelog/#v42-0-7
https://cryptography.io/en/latest/changelog/#v42-0-6
https://github.com/pyca/cryptography/compare/42.0.5...42.0.7

(From OE-Core rev: e4b16965cea57f72554c2e71ec07091afeeec9d8)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
d80224d83b maintainers.inc: transfer some python recipes to tgamblin
Change maintainer for the following recipes to tgamblin:

python3-hypothesis
python3-pygments
python3-pytest
python3-referencing
python3-pyproject-metadata
python3-setuptools-scm
python3-sphinx

(From OE-Core rev: 3eb971975a369a1b46070e4d063c0c8cfc0d3885)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
90e97c5442 python3-trove-classifiers: upgrade 2024.4.10 -> 2024.5.17
PYPI_PACKAGE is added since the upstream now uses an underscore in the
package name.

Changelog (https://github.com/pypa/trove-classifiers/releases):

- Add Trove classifier for Python 3.14 (#178)

(From OE-Core rev: bc27e247cf169cb3f91b953f4741f6af3fc25499)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
2cd0e0b17c python3-sphinx: upgrade 7.2.6 -> 7.3.7
License-Update: Update copyright year, add .rst extension

There are many changes brought in by this uprev, in particular with the
major release 7.3.0, which contains many bugfixes and new features. Changelog:
https://www.sphinx-doc.org/en/master/changes.html#release-7-3-7-released-apr-19-2024

(From OE-Core rev: f864348e57bfc47b92f80ab7eba977d126f52d66)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
7a1be7ee51 python3-setuptools-scm: upgrade 8.0.4 -> 8.1.0
PYPI_PACKAGE is updated since the upstream now uses an underscore in the
package name.

Changelog: https://github.com/pypa/setuptools_scm/releases/tag/v8.1.0

(From OE-Core rev: fa1cd6b172233615a6346b6fa777cfb141a4962b)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
94597191f3 python3-pyproject-metadata: upgrade 0.7.1 -> 0.8.0
PYPI_PACKAGE is updated since the upstream now uses an underscore in the
package name.

Changelog (https://pep621.readthedocs.io/en/stable/changelog.html#id1):

  - Support specifying the metadata_version as 2.1, 2.2, or 2.3
  - Always normalize extras following PEP 685
  - Preserve the user-specified name style in the metadata. .canonical_name added to get the normalized name
  - Require “version” in the dynamic table if unset (following PEP 621)
  - Support extras using markers containing “or”
  - Support empty extras
  - Using .as_rfc822() no longer modifies the metadata object
  - Fix email-author listing for names containing commas
  - Separate core metadata keywords with commas, following the (modified) spec
  - An error message reported project.license instead of project.readme
  - Produce slightly cleaner tracebacks Fix a typo in an exception message
  - Subclasses now type check correctly
  - The build backend is now flit-core

(From OE-Core rev: 1379db3fd060a0407919fde680922045443913e0)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
7b7ffde50d python3-requests: upgrade 2.31.0 -> 2.32.1
Also transition to using python_setuptools_build_meta.

Changelog: https://requests.readthedocs.io/en/latest/community/updates/#release-history

(From OE-Core rev: 5c64da0ac62e780d0525c1a373aed706496a9a19)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
d6c11c404b python3-referencing: upgrade 0.34.0 -> 0.35.1
Changelog: https://referencing.readthedocs.io/en/stable/changes/#v0-35-1

- Ensure that Registry.contents() also raises NoSuchResource exceptions
  for nonexistent resources, not KeyError (which is an implementation
  detail).

(From OE-Core rev: 476216e965dd5aa848183cff597dbd40490efbcf)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
b63b86e140 python3-pytest: upgrade 8.2.0 -> 8.2.1
Changelog: https://docs.pytest.org/en/stable/changelog.html#pytest-8-2-1-2024-05-19

- Improvements
    #12334: Support for Python 3.13 (beta1 at the time of writing).
- Bug Fixes
    #12120: Fix PermissionError crashes arising from directories which are not
            selected on the command-line.
    #12191: Keyboard interrupts and system exits are now properly handled during
            the test collection.
    #12300: Fixed handling of ‘Function not implemented’ error under squashfuse_ll,
            which is a different way to say that the mountpoint is read-only.
    #12308: Fix a regression in pytest 8.2.0 where the permissions of
            automatically-created .pytest_cache directories became rwx------ instead
	    of the expected rwxr-xr-x.
- Trivial/Internal Changes
    #12333: pytest releases are now attested using the recent Artifact Attestation
	    <https://github.blog/2024-05-02-introducing-artifact-attestations-now-in-public-beta/>
	    support from GitHub, allowing users to verify the provenance of pytest’s
	    sdist and wheel artifacts.

(From OE-Core rev: c30dceacaa4c502bf52885e37ef049dc8839f211)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
07d6e23e0d python3-pygments: upgrade 2.17.2 -> 2.18.0
2.18.0 offers new/updated lexers and various other improvements.
Changelog:

https://pygments.org/docs/changelog/

(From OE-Core rev: 58ce774d6899e3bd7f3f67c81830caca7f596d70)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Trevor Gamblin
a6dcd48922 python3-hypothesis: upgrade 6.100.1 -> 6.102.4
Changelog: https://hypothesis.readthedocs.io/en/latest/changes.html

(From OE-Core rev: 4f7e18dca8dacd5cfa206b01bb27f27bada3806c)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Richard Purdie
bde5c8d7bc base/insane: Move S/B checks to more logical place in insane class
(From OE-Core rev: f8f3315d58f9ec7824961d1f6f96d39c449b9578)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Richard Purdie
29d6993b14 base/bitbake.conf: Move S/B to PSEUDO_IGNORE_PATHS unconditionally
Now S and B can't be set to WORKDIR, add to PSEUDO_IGNORE_PATHS unconditionally
and simplify the code.

(From OE-Core rev: 26cd2d56261827ad8d07e2145e95f82422accac2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Richard Purdie
5ef61d10d3 insane: Add error for B = WORKDIR
This was never a good idea and would have mostly happened from S = WORKDIR
however explictly disallow it and error if anyone tries.

(From OE-Core rev: e3c2c1fac904bb518d85e10a2ac0177c81cbf7e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Richard Purdie
7033add161 usbinit: Drop recipe
This recipe is poorly named, it is a gadget ethernet driver. Gadget ethernet
is of questionable use now and usbinit isn't referenced/used anywhere within
OE-Core. Drop it.

(From OE-Core rev: 1ffd62b6198ba7967793f7fa3d5a31380c3d5d96)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-23 11:26:39 +01:00
Richard Purdie
c174208db9 insane: Error for S == WORKDIR
Where a recipe uses WORKDIR as S, exit with a fatal error since the
code is no longer safe for this layout.

(From OE-Core rev: 32cba1cc916ad530c5e6630a927e74ca6f06289b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 22:26:30 +01:00
Richard Purdie
569f8e09f0 recipetool/devtool: Update to work correctly with UNPACKDIR
Tweak recipetool and devtool to correctly use UNPACKDIR. This allows some
simplification of the code. This patch makes things basically work but there
are likely deeper improvements that can be made now that WORKDIR != UNPACKDIR.

(From OE-Core rev: d2eeaa88b27a2875c419591d1d91bcc85d7b129c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 22:26:30 +01:00
Richard Purdie
d24a7d0fb1 base: Switch UNPACKDIR to a subdir of WORKDIR
Change do_unpack to unpack files to a subdirectory of WORKDIR instead of WORKDIR
itself. There are several good reasons for this but it is mainly about being able
to isolate the output of the unpack task and tell the files apart from other things
which are created in workdir (logs, sysroots, temp dirs and more).

This means that when the do_unpack task reruns, we can clean UNPACKDIR and know
we have a standard point to start builds from.

It also makes code in tools like devtool and recipetool easier.

To reduce the impact to users, if a subdirectory under UNPACKDIR matches
the first subdirectory under WORKDIR of S, that directory is moved into position
inside WORKDIR. This preserves the behaviour of S = "${WORKDIR}/git",
S = "${WORKDIR}/${BPN}" and other commonly used source directory setups.

The directory is moved since sadly many autotools based projects can't cope with
symlinks in their paths.

The patch also updates reproducible and SOURCE_DATE_EPOCH handling to
match the new potential source locations. We can get rid of the horrible
list of hardcoded directories in WORKDIR to ignore from that code.

(From OE-Core rev: b84eec5c4cbf4b39d6712800dd0d2fe5337721cb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 22:26:29 +01:00
Martin Jansa
94168037a1 cdrtools-native: fix build with gcc-14
Fixes:
http://errors.yoctoproject.org/Errors/Details/770525/
| checking whether the C compiler (gcc  -isystem/OE/build/oe-core/tmp-glibc/work/x86_64-linux/cdrtools-native/3.01/recipe-sysroot-native/usr/include -O2 -pipe ) works... no
| configure: error: installation or configuration problem: C compiler cannot create executables.
| RULES/rules.cnf:70: incs/amd-ryzen-threadripper-3970x-32-core-processor-linux-cc/rules.cnf: No such file or directory
| make: *** [RULES/rules.cnf:59: incs/amd-ryzen-threadripper-3970x-32-core-processor-linux-cc/rules.cnf] Error 1
| make: *** Waiting for unfinished jobs....

where config.log show it's caused by gcc-14:

configure:1189: checking whether the C compiler (gcc  -isystem/OE/build/oe-core/tmp-glibc/work/x86_64-linux/cdrtools-native/3.01/recipe-sysroot-native/usr/include -O2 -pipe ) works
configure:1211: gcc  -o conftest -isystem/OE/build/oe-core/tmp-glibc/work/x86_64-linux/cdrtools-native/3.01/recipe-sysroot-native/usr/include -O2 -pipe  -D_GNU_SOURCE  conftest.c   1>&5
configure:1208:1: error: return type defaults to 'int' [-Wimplicit-int]
configure: failed program was:

main(){return(0);}

(From OE-Core rev: 094273bd7d1768e14fbdcd2f239bee14c630a625)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Michael Halstead
b77236fdeb yocto-uninative: Update to 4.5 for gcc 14
(From OE-Core rev: f5638681cef7e250ac64832dbe791418d97f05ba)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Ross Burton
3d2ade560b gawk: fix readline detection
The code fragment used to detect readline in cross builds doesn't compile
cleanly with GCC 14.1, so readline is never enabled.

Add missing includes so the test works, and readline can be enabled.

(From OE-Core rev: a6e7c3ce700b82c57f1102187fea6b387339eca3)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Ross Burton
73da265381 curl: skip FTP tests in run-ptest
It looks like something related to FTP in curl, be it the protocol itself
or the harness, is unstable under load.  We've been seeing random failures
in automated QA, and Debian does too.

Until this issue is resolved, disable all of the FTP tests on the hope
that this is the underlying common factor.

(From OE-Core rev: 28035987fad5a673e35b346e043e66d04f64ef5d)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
3bc1f08392 vulkan-volk: upgrade to 1.3.283.0
https://github.com/zeux/volk/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

(From OE-Core rev: 3c047d9c78bc25d491eb7683cfd84291e96282fe)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
fece04c86a vulkan-utility-libraries: upgrade to 1.3.283.0
https://github.com/KhronosGroup/Vulkan-Utility-Libraries/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

(From OE-Core rev: 1478fc03f302e650aa5363710fd209b8e6f61c07)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
08725c5ca9 vulkan-validation-layers: upgrade to 1.3.283.0
branch=vulkan-sdk-1.3.283

https://github.com/KhronosGroup/Vulkan-ValidationLayers/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

(From OE-Core rev: 6fe89df4cbc0dd23e1b412c93a59d3e2c50d45bb)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
bd1f761d20 spirv-tools: upgrade to 1.3.283.0
https://github.com/KhronosGroup/SPIRV-Tools/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

(From OE-Core rev: 7fc9e8bd171a2208f20de9ba31cfa05bc2b29761)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
3f45ab67bd spirv-headers: upgrade to 1.3.283.0
https://github.com/KhronosGroup/SPIRV-Headers/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

(From OE-Core rev: 2f76b544f0679d95a1a1f4b8870a82bbd185746e)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
92be871fa9 vulkan-tools: upgrade to 1.3.283.0
https://github.com/KhronosGroup/Vulkan-Tools/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

[RP: fix branch]
(From OE-Core rev: 8e697a8fd9272420d2975b6e923a52fb0584c251)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
58396952e3 vulkan-loader: upgrade to 1.3.283.0
https://github.com/KhronosGroup/Vulkan-Loader/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

[RP: fix branch]
(From OE-Core rev: c5af929b0f6df24b3dde1ee9159e0ab630727173)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
e17a2151e1 vulkan-headers: upgrade to 1.3.283.0
https://github.com/KhronosGroup/Vulkan-Headers/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283

(From OE-Core rev: 36bdffee982b94c7f6b437e65ee504dfe7017a74)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Tim Orling
48f0e1c321 glslang: upgrade to 1.3.283.0
https://github.com/KhronosGroup/glslang/compare/vulkan-sdk-1.3.280.0...vulkan-sdk-1.3.283.0

(From OE-Core rev: d20f96e6026b7851439a52e25f2837c40ced5863)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:27 +01:00
Ross Burton
e1fa32477d toolchain-scripts: export the target endianism and word size
Some build systems (notably, Meson) like to be told when cross-compiling
what the target endian and word size is.  We don't have these exported
via the variables, so add them using siteinfo as a source of data.

(From OE-Core rev: c2fee816cae6dbedcb40f15be4a1b9ee91757a64)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Ross Burton
b53b198840 meson: don't use deprecated pkgconfig variable
As with a previous change to the class[1], the "pkgconfig" entry is now
deprecated and "pkg-config" should be used instead.

[1] oe-core d64b307891422e290bbe821d4303b3af526bbe17

(From OE-Core rev: 3e441544f1aa7258718a1cadd6836d9cd9dc65ab)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Ross Burton
d2e7656f4f oeqa/sdk: remove unused imports from test cases
Remove redundant imports.

(From OE-Core rev: b6223259458578d8b967aff11d3263dfed496708)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Ross Burton
fd2714953d oeqa/sdk: rename test cases
Instead of having a test called eg "assimp", rename it to "cmake" as the
point of the test is to verify that CMake works.  This should make it
clearer what the tests are actually exercising.

(From OE-Core rev: ccf7fdc0e5b6df218b319f972cd5ba142c06c243)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Felix Nilsson
4b62fa0f52 base-files: profile: fix error sh: 1: unknown operand
Handle errors when SHLVL isn't set.

(From OE-Core rev: 5df53fcfe3b70a5312fced3fcc1ba6290f2ee794)

Signed-off-by: Felix Nilsson <felixn@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Chen Qi
857f34eb49 cups: upgrade from 2.4.7 to 2.4.8
(From OE-Core rev: ce1319344cc64b2ffcccba27423e61c93a3c6a36)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Chen Qi
bdf0866eef shadow: upgrade from 4.15.0 to 4.15.1
0001-lib-copydir-copy_entry-use-temporary-stat-buffer.patch is dropped
as it has been merged and is in this new release.

(From OE-Core rev: 921b010e6e4b3a61779d8c10eb38966560f665f5)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Chen Qi
060bc9d4d4 pciutils: upgrade from 3.11.1 to 3.12.0
configure.patch is rebased against the new version.

(From OE-Core rev: 88ab0efeda625892f393576fbcc87e9b517103f5)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Chen Qi
679387aedf systemd/systemd-boot: upgrade from 255.4 to 255.6
musl patches are refreshed to avoid 'patch-fuzz' error.

(From OE-Core rev: 6bc5e3f3cd882c81c972dbd27aacc1ce00e5e59a)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Alejandro Hernandez Samaniego
775530999a tclibc-newlib: update security cflags override
It appears that it is no longer necessary to disable security cflags for
newlib targets, with the exception of RISCV architectures where the linker
does not support PIE

(From OE-Core rev: 94a3459c77ad48caab42ca816d984fe467042ce3)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Anuj Mittal
4f8c553cdb glib-2.0: upgrade 2.80.0 -> 2.80.2
(From OE-Core rev: edd83b608c2e86b3c0e7d2ce864786efeb1d0540)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Anuj Mittal
78220bd161 stress-ng: upgrade 0.17.07 -> 0.17.08
(From OE-Core rev: 88c553c0d2d646a3bfc6a5ffd3fb32bd66f3d319)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Anuj Mittal
d283021fbf harfbuzz: upgrade 8.4.0 -> 8.5.0
(From OE-Core rev: 6bebbf2ac30b7f6fb6bb540eaf183ecc81cc86b7)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Alexander Kanavin
8240d506fc rust: correctly link rust-snapshot into build/stage0
This does not seem to be used in regular builds, but is beneficial
in rust selftest, where it allows dropping a custom patch
that is unsuitable for upstream (and was rejected by them).

Also remove an obsolete comment that seems related to the code
but describes something that was resolved long time ago.

I have confirmed that the rust selftest continues to pass with just
this one commit on top of master (as the following changes do break
the selftest).

(From OE-Core rev: bf5732e2b235ce06fa1f24fe8f0dbcbc068500e3)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Peter Marko
95e812313f ncurses: Upgrade 6.4 -> 6.5
Removed 4 backported patched included in this release.
Updated patches by devtool.

License-Update: copyright years refreshed

(From OE-Core rev: e9962f7033f717591a168e694311523c82c67608)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Peter Marko
d803a25c82 ncurses: switch to new mirror
github.com/mirror/ncurses is not updated for over a year.
Switch to new mirror from Thomas Dickey (ncurses maintainer).

Sources are identical.

Updated upstream check regex by:
* changed dot to underscore as this repo is tagged like this
* added v prefix to not propose updates to some old tags
* removed third part to not propose updates to development snapshots

(From OE-Core rev: ea801be31d051b558fde52f7d6dccf2cd416afb9)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Peter Marko
962d8eebb7 openssl: patch CVE-2024-4603
Advisory: https://github.com/advisories/GHSA-85xr-ghj6-6m46

(From OE-Core rev: f136006676750ac653cd7804396614210d1e5120)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Michael Opdenacker
fa9689923f bitbake: prserv: add bitbake selftests
Run them with "bitbake-selftest prserv.tests"

(Bitbake rev: 34287fbf3d6be813aa5b767f540e4662f0d8d18d)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
ae0725577d bitbake: prserv: import simplification
Simplify the importone() hook:
- to make it independent from the "history" mode which is
  client specific.
- remove the "history" parameter
- we want all values to be imported for binary
  reproducibility purposes.
- using the store_value() function (which warrants
  you don't save the same value twice and doesn't write
  when you're using a read-only server) is enough.

(Bitbake rev: 000704a53470ab1ead840403b5531f22ebf1fd49)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
3be2201de5 bitbake: prserv: store_value() improvements
Add a test_checksum_value() to test whether
a (version, pkgarch, checksum, value) entry already
exists in the database.

This is used to protect the store_value() function from
an error when trying to store a duplicate entry in the database.

Also check whether the current database is open in read-only mode.

(Bitbake rev: b7f6c085a7cf8ac83695242a0299e2d5f7abc69a)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
0d6dd343de bitbake: prserv: avoid possible race condition in database code
Remove a possible race condition by allowing a read-only
server to create the PR table anyway. This avoids a failure
if both a read-only and read-write server try to access
an empty database at the same time.

(Bitbake rev: b171caec5ebbe579bf4b8b2005930240ae5c8ce2)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Suggested-by: Joshua Watt <jpewhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
65757c9e20 bitbake: prserv: enable database sharing
sqlite3 can allow multiple processes to access the database
simultaneously, but it must be opened correctly. The key change is that
the database is no longer opened in "exclusive" mode (defaulting to
shared mode). In addition, the journal is set to "WAL" mode, as this is
the most efficient for dealing with simultaneous access between
different processes. In order to keep the database performance,
synchronous mode is set to "off". The WAL journal will protect against
incomplete transactions in any given client, however the database will
not be protected against unexpected power loss from the OS (which is a
fine trade off for performance, and also the same as the previous
implementation).

The use of a database cursor enabled to remove the _execute() wrapper.
The cursor automatically makes sure that the query happens in an atomic
transaction and commits when finished.

This also removes the need for a "dirty" flag for the database and
for explicit database syncing, which simplifies the code.

(Bitbake rev: 385833243c495dc68ec26a963136c1ced3f272d0)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
4cbce9cdf7 bitbake: prserv: add "upstream" server support
Introduce a PRSERVER_UPSTREAM variable that makes the
local PR server connect to an "upstream" one.

This makes it possible to implement local fixes to an
upstream package (revision "x", in a way that gives the local
update priority (revision "x.y").

Update the calculation of the new revisions to support the
case when prior revisions are not integers, but have
an "x.y..." format."

Set the comments in the handle_get_pr() function in serv.py
for details about the calculation of the local revision.

This is done by going on supporting the "history" mode that
wasn't used so far (revisions can return to a previous historical value),
in addition to the default "no history" mode (revisions can never decrease).

Rather than storing the history mode in the database table
itself (i.e. "PRMAIN_hist" and "PRMAIN_nohist"), the history mode
is now passed through the client requests. As a consequence, the
table name is now "PRMAIN", which is incompatible with what
was generated before, but avoids confusion if we kept the "PRMAIN_nohist"
name for both "history" and "no history" modes.

Update the server version to "2.0.0".

(Bitbake rev: 48857ec3e075791bd73d92747c609a0a4fda0e0c)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
5f99010e41 bitbake: prserv: move code from __init__ to bitbake-prserv
This script was the only user of this code.

(Bitbake rev: 19a5595e3f70d61fd6fa414f9fd5b413a02de37b)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Michael Opdenacker
48d38aef22 bitbake: prserv: declare "max_package_pr" client hook
Add missing declaration for the max_package_pr client hook

(Bitbake rev: 0d4443359ec38ff98b7fbae0b0948d14f74523ce)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:23:43 +01:00
Antonin Godard
1aa8276c64 bitbake: tests.codeparser: add tests for shell expansions
Tests quotes around `` and $() expansions, nested and multiple
expansions, and that escaped quotes are treated as characters by the
parser.

(Bitbake rev: d98130cb4d500c495bc692c56dde3e019f36320a)

Signed-off-by: Antonin Godard <antoningodard@pm.me>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:14:41 +01:00
Antonin Godard
dd98d156ca bitbake: codeparser: remove redundant list conversion
(Bitbake rev: 89712949de9476e4674864a8dcd6862fefe92eae)

Signed-off-by: Antonin Godard <antoningodard@pm.me>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:14:41 +01:00
Antonin Godard
03742d7cb3 bitbake: codeparser: support shell substitutions in quotes
The current shell substitution mechanism only works without quotes. For
example:

  var1=$(cmd1 ...)

Will work and add `cmd1` to the correspondind `run.do_*` file.

However, although quite common, this syntax is not supported:

  var1="$(cmd1 ...)"

This commit adds this feature by adding a step to process_words() to
check whether we are dealing with quotes first, and by iterating on
what's between them to detect new shell substitution candidates. These
candidates are tested and parsed like before in the next step. The
original `part` being part of the candidates means the syntax
var1=$(cmd1 ...) is still valid.

(Bitbake rev: f56e1a37b2ba1773ed308043d7eb073cc2e6c06e)

Signed-off-by: Antonin Godard <antoningodard@pm.me>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 14:14:41 +01:00
Ross Burton
98471a91e8 genericarm64: depend on u-boot in testimage
genericarm64 supports runqemu, so testimage should work. However, out of
the box it does not:

runqemu - ERROR - BIOS .../tmp/deploy/images/genericarm64/u-boot.bin not found

That is because we make the user explicitly build the qemu-targetting u-boot
to avoid the confusing situation where they have real hardware but the
deploy directory contains a u-boot for qemu.

In automated testing situations, however, we can be a bit more helpful
and make testimage depend on u-boot. This will lead to u-boot binaries
being in deploy, but at this point the user is already running the images
inside a qemu.

Reported-by: James McGregor <James.McGregor2@arm.com>
(From meta-yocto rev: 90b45c62d34396a20078b55d7d36f66b4e2177f7)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:09:05 +01:00
Richard Purdie
62c5172036 tiny-init: Stop using S == WORKDIR
(From meta-yocto rev: 48fbd32e201667de886b9d5c14807d3958152482)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:09:05 +01:00
Emil Kronborg
2f3dafe8aa gtk+3: add gtk+ to CVE_PRODUCT
While the plus in GTK+ was dropped in GTK4 and onwards [1], it is still
necessary for GTK3. This is also reflected upstream where two versions
exist: http://ftp.gnome.org/pub/gnome/sources/gtk+ and
http://ftp.gnome.org/pub/gnome/sources/gtk.

[1]: https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg00000.html

(From OE-Core rev: 378e1f415855feabe88b168e14f8d367f388e4bc)

Signed-off-by: Emil Kronborg <emil.kronborg@protonmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:05 +01:00
Rasmus Villemoes
5d535e9e27 git: set --with-gitconfig=/etc/gitconfig for -native builds
Commit 6c2ae2346db0 (kern-tools: depend on git-replacement-native)
broke our kernel builds. For saving space and time, we have a DL_DIR
shared between multiple users/buildbots, not all of which run with the
same uid (and with appropriate sticky bits set so that files
downloaded by one user become owned by a common group and are readable
by others). This works fine also for git sources because the docker
images we use all have a /etc/gitconfig with

  [safe]
    directory = *

But with the mentioned commit, the host's git is no longer used for
do_unpack (nor for do_fetch if re-building and sysroot has already
been populated by a previous build), causing spurious "fatal: detected
dubious ownership..." failures.

Currently, the path where the git-native binary searches for system
gitconfig is the sysroot from it was built, which obviously doesn't
contain a /etc/gitconfig. As for the nativesdk variant, respect the
host's /etc/gitconfig if present.

(From OE-Core rev: 572f511f7ff02fb559ac42d2d5dbd09fec478d97)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:05 +01:00
Richard Purdie
2b56108d0d gcc-runtime: libgomp fix for gcc 14 warnings with mandb selftest
ERROR: gcc-runtime-14.1.0-r0 do_package: QA Issue: gcc-runtime: Files/directories were installed but not shipped in any package:
  /usr/share/info
  /usr/share/info/libgomp.info-2
  /usr/share/info/libgomp.info-1

(From OE-Core rev: 4f73ddd6c276dcd579d2113db1974d446dbf7751)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:05 +01:00
Richard Purdie
41eb98ac61 oeqa/sdk/assimp: Upgrade and fix for gcc 14
To enable this test to work with gcc 14, pass the option to make
warnings non-fatal. Also upgrade to version 5.4.1 from 5.3.1.

(From OE-Core rev: c3df6287ae26dc9d7f11eb7e26fdbcaefe4dfead)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:05 +01:00
Ross Burton
4eac8c0c0e oeqa/sdkext/devtool: replace use of librdfa
librdfa hasn't had a commit for a decade now and as such has problems
with modern compilers (specifically gcc 14.1).  Switch the recipe
creation test to something much simpler that we also control: dbus-wait.

(From OE-Core rev: d801de1f702d8d0def55011b5b6ad39d85f978f1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Khem Raj
d21c857d5b gcc: Upgrade to GCC 14.1 release
This is major release upgrade. major changes are listed in [1]
and it has a list of bugs [2] fixed as well

This release may differ in significant ways from prior gcc releases
where it may require port the code to gcc 14, there is a porting guide [3]
available.

[1] https://gcc.gnu.org/gcc-14/changes.html
[2] https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=14.0
[3] https://gcc.gnu.org/gcc-14/porting_to.html

(From OE-Core rev: fc48aa30e91ffe94f1012fe108fb1db5233a0bc0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Bruce Ashfield
0bd4acbdd4 systemd: fix build against 6.9 libc-headers
When building against the 6.9 linux-libc-headrs the following build
issue was hit:

  | Program check-filesystems.sh found: YES (build/tmp/work/cortexa57-poky-linux/systemd/255.4/git/src/basic/check-filesystems.sh)
  |
  | ../git/src/basic/meson.build:238:8: ERROR: Problem encountered: Unknown filesystems defined in kernel headers:
  |
  | Filesystem found in kernel header but not in filesystems-gperf.gperf: PID_FS_MAGIC

Upstream already has this fixed, so we backport the commit.

(From OE-Core rev: 5a8a116b270d26ce50429aa32f2883a9d2fd1206)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
1cd1698fbe linux-yocto: Avoid QA check
The kernel has special handling of ${S} and it is therefore expected to be empty
at do_unpack time. For now, ignore this QA check until the kernel unpack process
can be more standardised.

(From OE-Core rev: f2f3f965d6d5fc19b357891e8c55473782124662)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
8e071ad43f go: Drop fork of unpack code, mandate GO_SRCURI_DESTSUFFIX
The go class has its own fork of the base unpack code. At the time I was
told this was fine, it now isn't as that code is changing.

Rather than have a fork, put the path magic into a variable and then go
recipes can just set SRC_URI appropriately, e.g.:

git://go.googlesource.com/example;branch=master;protocol=https;destsuffix=${GO_SRCURI_DESTSUFFIX}

This avoids having special case hacks in the class and makes everything
a little more obvious.

(From OE-Core rev: cc4ec43a2b657fb4c58429ab14f1edc2473c1327)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
510daf16bc build-appliance-image: Remove warning about S not existing
Disable the qe checks the cause a warning about S not existing as this
recipe is special case where that doens't matter.

(From OE-Core rev: 99db8d07c74e1580242add9fd9b6f77f1b893b27)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
a5cea4c0b4 recipes: Ensure S is set to a valid directory
Several recipes have S pointing at a directory that does not exist.
Set S in these cases to somethig valid making the metadata and
recipe behaviour more consistent.

Tweak one of the QA test diff offsets to match the changed recipe.

(From OE-Core rev: 22f1f5849a9a3bf287dbe8933546e52e39ddc86e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
992a5dd04c systemd-conf: Convert to use a dedicated UNPACKDIR
Avoid:

WARNING: systemd-conf-1_1.0-r0 do_unpack: systemd-conf: the directory ${WORKDIR}/${BP}
(tmp/work/genericarm64-poky-linux/systemd-conf/1.0/systemd-conf-1.0) pointed to by
the S variable doesn't exist - please set S within the recipe to point to where the
source has been unpacked to

by using a dedicated unpack directory for sources.

(From OE-Core rev: 7804eb02bccc5f7f9f84f41ce782bfcfd94bfcc7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
6d77296d83 devtool: Drop oe-local-files and simplify
The only real reason for oe-local-files was to support S = WORKDIR. With changes to
drop support for that, it makes sense to simplify devtool and to try and make both
the code and the processes/workflows simpler.

This patch drops support for S = WORKDIR, removes oe-local-files and then updates
the test cases to match this new situation.

At the code level, we assume we can always now track code changes using git and
that things committed into git are handled as patches (as before) but delta against
HEAD is saved as specific file level changes to the recipe.

One test is disabled as it is no longer approproate. It is being keped until we can
make WORKDIR != UNPACKDIR at which point it should be revisited.

(From OE-Core rev: ce8190c519052fed10b5233697b69a75868db45a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
d6ae8d2004 recipes: Switch away from S = WORKDIR
Where recipes use S = ${WORKDIR}, change them to set UNPACKDIR to
a subdir of WORKDIR and make S point at this instead.

I've chosen not to force S into any standard UNPACKDIR we may pick in
future just so the S = UNPACKDIR case is clearly visible by the
directory naming under WORKDIR as that should aid usability.

(From OE-Core rev: d9328e3b0b062f0621de3d114584b44f384a1c02)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
71c6db8e65 recipes: Start WORKDIR -> UNPACKDIR transition
Replace references of WORKDIR with UNPACKDIR where it makes sense to do
so in preparation for changing the default value of UNPACKDIR.

(From OE-Core rev: 1f18b9a512800860d5153d89eb82b56388efad6f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
c6c1ed6ba0 dwarfsrcfiles: Switch to S = UNPACKDIR
Since the recipe uses a single source file, use UNPACKDIR = ${S}.

(From OE-Core rev: e302088dc08b230fe841a3447348f4dd7eff964d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:04 +01:00
Richard Purdie
4758e1c43a bitbake: cooker: Ensure generateTaskDepTreeData fails for NoProvider
If an invalid provider is requested, error out early rather than trying
to build partial runqueue data structures as the taskdep UI will have
exited after seeing the bad provider.

(Bitbake rev: a478087998cb794cc4e31189b3ce07973d3949bc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-17 11:56:40 +01:00
Richard Purdie
d0ea89b312 selftest/cases/runtime_test: Exclude centos-9 from virgl tests
Similarly to centos 8, centos 9 doesn't support the render device we need
for this test.

(From OE-Core rev: c2be3afabf84f287c90b61ae2509728a6634fb8f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-17 08:54:22 +01:00
Richard Purdie
92d8c7c553 bitbake: parse: Improve/fix cache invalidation via mtime
We have been seeing obscure failures in devtool, particularly on newer
autobuilder workers where it appears the cache is assumed to be valid
when it shouldn't be.

We're using the 'seconds' granulation mtime field which is not really
a good way of telling if a file has changed. We can switch to the "ns"
version which is better however also add in inode number and size as
precautions. We already have all this data and tuples are fast so there
isn't really any cost to do so.

This hopefully fixes [YOCTO #15318].

(Bitbake rev: d9e5d313c79500e3c70ab9c3239b6b2180194f67)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-16 23:25:55 +01:00
Richard Purdie
4144a12c26 at: Tweak UNPACKDIR reference
${UNPACKDIR}/${BP} is ${S} so use the correct variable.

(From OE-Core rev: 57a4eb564446721fde05d7d619e2dc9bf5b79c5b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-16 11:06:01 +01:00
Richard Purdie
229951e1da bitbake: asyncrpc/client: Fix websockets minimum version for python 3.10
python 3.10 support is only available in websockets 10.0 and later:

08d8011132

Update the version for this case. This avoids failures on Ubuntu 22.04.

(Bitbake rev: 0e4767c4a880408750e1a6855270c5a4eef8383d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-16 10:52:43 +01:00
Ross Burton
8a04f529f2 oeqa/selftest/debuginfod: use localpkgfeed to speed server startup
Sometimes the debuginfod selftest fails due to a timeout, because it
spends too long scanning a huge deploy directory that due to what tests
were ran previously can contain 30K packages.

The test only needs a subset of the feed, so use the new localpkgfeed
class to construct a minimal feed before running the test.

[ YOCTO #14937 ]

(From OE-Core rev: 855376f518b28248ccd82ef5b2e89e6a8c970542)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ross Burton
41e59c53c5 selftest/classes: add localpkgfeed class
This class can be used to construct a subset of a deployed package feed
for use in tests which iterate the deploy directory, and as such a huge
feed of 30K+ packages can result in very slow tests.

(From OE-Core rev: c5486d6ad32457f09c104d5dd31314bd570912d3)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ross Burton
6582436a1d lib/oe/package-manager: allow including self in create_packages_dir
This function is typically used to construct a limited feed for image
creation, but there are other cases when you might want a limited feed
and include the current recipe's packages in it.

To ensure that existing behaviour is preserved, add a boolean to control
this behaviour and default it to False.

(From OE-Core rev: aada7fda2b118152d82b1ab295d92b8251afe4ac)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ross Burton
a9dd9f92ba enchant2: upgrade to 2.7.3
Upstream NEWS:

  This release is made with Vala 0.56.17 (previous versions were made with
  0.56.0). This works around a bug in `valac` that generates code which causes
  an error in GCC >=14 and Clang >= 16.

(From OE-Core rev: 6eca600a402d20ac1905681f344e8f1a70cdb5b9)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Anton Almqvist
9a894dac19 devtool: modify: Catch git submodule error for go code
One of the git submodule commands failed for source extracted for
recipes using go.bbclass.  The root cause is probably the path set up
by go_do_unpack which makes S and gitroot not match.

This patch does not fix the root problem, but at least it is no worse
than before the git submodule support.

The extracted source will still have two .git folders, one in S
created by devtool and one in the go path which will contain the tru
git history.

[ YOCTO #15483 ]

(From OE-Core rev: fe242408af40dd1f6e47d9b2b232bdc76756c80a)

Signed-off-by: Anton Almqvist <antonal@axis.com>
Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Guðni Már Gilbert
7c211b1803 python3-pycparser: cleanup RDEPENDS
- Drop python3-pprint, the source code no longer imports this module
- Drop python3-ply, ply package is bunled into pycparser, making the external python3-ply
dependency not useful. This seems to have been changed a long time ago in version 2.09 (2012.12.27)

Note about python3-netclient: It can be removed at a later date. There is one 'unused' import
for base64 in the ply source. Once that is cleaned up, python3-netclient can be removed.

(From OE-Core rev: 03de1f0b8fa810fc9fe8d66db1614ff1b3f9be0f)

Signed-off-by: Guðni Már Gilbert <gudnimar@noxmedical.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Khem Raj
b7a9250590 valgrind: Upgrade to 3.23.0
Drop backports already available in this release

This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
and ARM64/FreeBSD  There is also preliminary support for X86/macOS 10.13,
AMD64/macOS 10.13 and nanoMIPS/Linux.

* ==================== CORE CHANGES ===================

* --track-fds=yes will now also warn about double closing of file
  descriptors. Printing the context where the file descriptor was
  originally opened and where it was previously closed.

* --track-fds=yes also produces "real" errors now which can be
  suppressed and work with --error-exitcode. When combined with
  --xml the xml-output now also includes FdBadClose and FdNotClosed
  error kinds (see docs/internals/xml-output-protocol5.txt).

* The option --show-error-list=no|yes now accepts a new value all.
  This indicates to also print the suppressed errors.
  This is useful to analyse which errors are suppressed by which
  suppression entries.
  The valgrind monitor command 'v.info all_errors' similarly now
  accepts a new optional argument 'also_suppressed' to show
  all errors including the suppressed errors.

* ================== PLATFORM CHANGES =================

* Added ARM64 support for FreeBSD.

* ARM64 now supports dotprod instructions (sdot/udot).

* AMD64 better supports code build with -march=x86-64-v3.
  fused-multiple-add instructions (fma) are now emulated more
  accurately. And memcheck now handles __builtin_strcmp using 128/256
  bit vectors with sse4.1, avx/avx2.

* S390X added support for NNPA (neural network processing assist)
  facility vector instructions VCNF, VCLFNH, VCFN, VCLFNL, VCRNF and
  NNPA (z16/arch14).

* X86 recognizes new binutils-2.42 nop patterns.

* ==================== TOOL CHANGES ===================

* The none tool now also supports xml output.

* ==================== FIXED BUGS ====================

The following bugs have been fixed or resolved.  Note that "n-i-bz"
stands for "not in bugzilla" -- that is, a bug that was reported to us
but never got a bugzilla entry.  We encourage you to file bugs in
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
than mailing the developers (or mailing lists) directly -- bugs that
are not entered into bugzilla tend to get forgotten about or ignored.

283429  ARM leak checking needs CLEAR_CALLER_SAVED_REGS
281059  Cannot connect to Oracle using valgrind
328563  make track-fds support xml output
362680  --error-exitcode not honored when file descriptor leaks are found
369723  __builtin_longjmp not supported in clang/llvm on Android arm64 target
390269  unhandled amd64-darwin syscall: unix:464 (openat_nocancel)
401284  False positive "Source and destination overlap in strncat"
428364  Signals inside io_uring_enter not handled
437790  valgrind reports "Conditional jump or move depends on uninitialised
        value" in memchr of macOS 10.12-10.15
460616  disInstr(arm64): unhandled instruction 0x4E819402 (dotprod/ASIMDDP)
463458  memcheck/tests/vcpu_fnfns fails when glibc is built for x86-64-v3
463463  none/tests/amd64/fma fails when executed on a x86-64-v3 system
466762  Add redirs for C23 free_sized() and free_aligned_sized()
466884  Missing writev uninit padding suppression for _XSend
471036  disInstr_AMD64: disInstr miscalculated next %rip on RORX imm8, m32/64, r32/6
471222  support tracking of file descriptors being double closed
474160  If errors-for-leak-kinds is specified, exit-on-first-error should only exit
        on one of the listed errors.
475498  Add reallocarray wrapper
476025  Vbit expected test results for Iop_CmpGT64Ux2 are wrong
476320  Build failure with GCC
476331  clean up generated/distributed filter scripts
476535  Difference in allocation size for massif/tests/overloaded-new between
        clang++/libc++ and g++/libstdc++
476548  valgrind 3.22.0 fails on assertion when loading debuginfo file
        produced by mold
476708  valgrind-monitor.py regular expressions should use raw strings
476780  Extend strlcat and strlcpy wrappers to GNU libc
476787  Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is
        defined
476887  WARNING: unhandled amd64-freebsd syscall: 578
477198  Add fchmodat2 syscall on linux
477628  Add mremap support for Solaris
477630  Include ucontext.h rather than sys/ucontext.h in Solaris sources
477719  vgdb incorrectly replies to qRcmd packet
478211  Redundant code for vgdb.c and Valgrind core tools
478624  Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns
        (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26
478837  valgrind fails to read debug info for rust binaries
479041  Executables without RW sections do not trigger debuginfo reading
480052  WARNING: unhandled amd64-freebsd syscall: 580
480126  Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8
480405  valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):
        Assertion '!sr_isError(sr)' failed."
480488  Add support for FreeBSD 13.3
480706  Unhandled syscall 325 (mlock2)
481127  amd64: Implement VFMADD213 for Iop_MAddF32
481131  [PATCH] x86 regtest: fix clobber lists in generated asm statements
481676  Build failure on Raspberry Pi 5 Ubuntu 23.10 with clang
481874  Add arm64 support for FreeBSD
483786  Incorrect parameter indexing in FreeBSD clock_nanosleep syscall wrapper
484002  Add suppression for invalid read in glibc's __wcpncpy_avx2() via wcsxfrm()
484426  aarch64: 0.5 gets rounded to 0
484480  False positives when using sem_trywait
484935  [patch] Valgrind reports false "Conditional jump or move depends on
        uninitialised value" errors for aarch64 signal handlers
485148  vfmadd213ss instruction is instrumented incorrectly (the remaining
        part of the register is cleared instead of kept unmodified)
485487  glibc built with -march=x86-64-v3 does not work due to ld.so strcmp
485778  Crash with --track-fds=all and --gen-suppressions=all
n-i-bz  Add redirect for memccpy

To see details of a given bug, visit
  https://bugs.kde.org/show_bug.cgi?id=XXXXXX
where XXXXXX is the bug number as listed above.

(From OE-Core rev: faf48ef489ef3c4d0b2ee3a6aa9ef8911523db90)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ninette Adhikari
cf0c866b51 oe-build-perf-report: Add dark mode
Update css to add dark mode when window prefers-color-scheme is dark.

(From OE-Core rev: ed02a235d42202279ad5e4e3153247f9e5e2bba8)

Signed-off-by: Ninette Adhikari <ninette@thehoodiefirm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ninette Adhikari
20fafa0854 oe-build-perf-report: Update chart tooltip and chart type
- Update chart tooltip format to show value as size in MB for 'rootfs size'
and timestamp for 'tmpdir size'
- Add commit number to tooltip
- Update chart type to 'step chart' instead of 'line chart'

(From OE-Core rev: fb41cbbe6008e442b6eac77308eadeae327eed7d)

Signed-off-by: Ninette Adhikari <ninette@thehoodiefirm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ninette Adhikari
314a220280 oe-build-perf-report: Improve report styling and add descriptions
Styling updates are added including page margin, labels for x and y axis, tooltip, and section descriptions.

(From OE-Core rev: 2a2568fcf1a3f8e467bd814f4fb13dffae8ec61d)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ninette Adhikari
99861c17e7 oe-build-perf-report: Display more than 300 commits and date instead of commit number
- This commit updates measurement statistics data to include start_time so that time can be displayed instead of commit numbers on the chart.
- It also updates default commit history length to 300.

(From OE-Core rev: 64275a41c37130aaaacc5e592f94a1afe057119b)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ninette Adhikari
836b4b57d6 oe-build-perf-report: Add apache echarts to make report interactive
- Add Apache echarts (https://echarts.apache.org/en/index.html) library to create build performance charts.
- Restructure data to time and value array format so that it can be used by echarts.
- This commit also converts test duration to minutes to map against the values axis.
- Zoom is added to the line charts.

(From OE-Core rev: 63c9321832aae79d20a4ddd199a4a1385f81de53)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-15 16:39:19 +01:00
Ross Burton
79ab2413e0 cpio: mark CVE-2023-7216 as disputed
Upstream consider the behaviour described in this CVE as intentional,
and provide an option to stop it.

(From OE-Core rev: 6c99147037ba8ca424ee42520183bd2bd55c7056)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-14 12:43:23 +01:00
Robert Kovacsics
ec478262ac sdk: Fix path length limit to match reserved size
There were two different interpreter lengths in use, make them match.

(From OE-Core rev: b175f9cdc3d87bef5c89cc337c2a7e2674732b29)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-14 12:43:23 +01:00
Jookia
136f0ee780 populate_sdk_ext.bbclass: Fix undefined variable error
The variable uninative_checksum is returned without being set, causing a
build error. Set it to None by default instead.

(From OE-Core rev: 69ead1f2d403e6a0e5365ce4e89288f846d3ef33)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-14 12:12:45 +01:00
Richard Purdie
12ea266a92 oeqa/systemd_boot: Ensure ssh-pregen-hostkeys are available for the test
Since ssh-pregen-hostkeys is now restricted to qemu machines, add in configuration
allowing it to become available for this test on genericx86-64.

(From meta-yocto rev: b65a1e39dea6d215221f400709f7f3f4c110a948)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:53 +01:00
Khem Raj
194a365a6b linux-yocto: Enable team net driver
Its needed to run libteam ptests

(From OE-Core rev: 7cd8e04b23b562746665577174799d42ded45d93)

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>
2024-05-13 16:28:35 +01:00
Richard Purdie
29debb80ea ssh-pregen-hostkeys: Limit to qemu machines by default
There are potential security issues from using pre-generated host keys. We made
the recipe available for autobuilder testing purposes but concerns remain about
how easily this could end up in production.

I thought we'd already done this, but limit the recipe to qemu* machines,
which means any real hardware trying to use it will need to be a bit more
explicit about it and specifically enable it.

(From OE-Core rev: b0405972d4fd6fa12f90afea5ecb9a50c01c21c6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Trevor Gamblin
cec77d941e patchtest: utils: remove unused functions
Specifically, remove four things:

- get_subject_prefix(): This function is only being used once (in the next
function found in the module), so remove it for easier
comprehension/maintenance.
- exec_cmd: the backend for executing a custom command
- exec_cmds: for running multiple calls to exec_cmd
- CmdException: A custom exception class specifically for exec_cmd

These are only used to execute git commands, but GitPython can be used
to handle all of that more efficiently, so remove them.

(From OE-Core rev: e2fabdd6d53ee30a67992bd966961f423f18a388)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Trevor Gamblin
9c4e350797 patchtest: tests: update bugzilla_entry_format.fail testfile
Update the test file to target a more stable README file.

(From OE-Core rev: 3d0649ea8ca9dde982ee67aa866170ea4297ef4c)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Trevor Gamblin
9132e3904a patchtest: repo: refactor to use GitPython
The repo module currently uses a custom _exec() function in order to run
various git commands as part of the patchtest setup/test process. These
can more efficiently be done with the GitPython module, so use that
instead and reduce the amount of custom code to be maintained for
patchtest in the process. Some specifics replaced using GitPython:

- get branch list
- use repo.active_branch to determine current branch
- use execute() for checkout, merge check, abort, rev-parse, reset

The _exec() function is removed entirely with this change.

(From OE-Core rev: 8ab3a0d7cb68746d7b7e1c7ff8bdf9a84a4d075d)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Trevor Gamblin
e73ea1a868 patchtest: requirements.txt: add GitPython
GitPython provides some simple utilities for retrieving repo
configurations that can replace the manual work that patchtest currently
does. Add it to the requirements so that the source can make use of it.

(From OE-Core rev: dd4e4adfe91333fbd52d1441e2864a570e0dd073)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Alexander Kanavin
6090e1fc7d glib-2.0: correct deprecated man/gtk-doc options
(From OE-Core rev: f5caef60b4e85134eef1f8398fa240f52d845770)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Alexander Kanavin
393ff34301 glib/gobject-introspection: update 2.78.4 -> 2.80.0, 1.78.1 -> 1.80.0
With these versions, which need to be updated in lockstep, upstream has
relocated glib introspection data from g-i tree to glib tree and made
its generation a part of the overall glib build. This creates a circular
dependency, where g-i tools are linked with glib, but glib needs the tools
to build its g-i data. (I don't know why the two source trees
couldn't be simply merged into one, or g-i data for glib couldn't be generated
inside g-i build against sysroot glib).

Upstream is suggesting building glib twice, first without building g-i data,
then building g-i and linking it with that version, then building
the final glib, and that's what is being done here (via the new
glib-initial recipe, which is sysroot-only, and is not pulled in
via indirect dependencies either).

Other glib changes:
0001-Do-not-write-bindir-into-pkg-config-files.patch restores
writing bindir variable into glib.pc file (meson only writes
it out if other variables depend on it, and this custom patch
removes that dependency).

0001-girepository-introspection-correctly-install-.gir-fi.patch
ensures correct installation of .gir into something else
than $datadir (useful in multilib).

Merge previous glib .bb into .inc, so that glib and glib-initial
recipes could be cleanly separated with no duplication.

Convert from gtk-doc to gi-docgen, and manpages from xmlto to
docutils.

(From OE-Core rev: 57c307536f67dcfb5d4a5488ca1e77a943ba1368)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Richard Purdie
521a3f727c insane: Fix case where S doesn't exist
If S doesn't exist, do_qa_patch would fail. Fix the code to not fail
in this situation.

(From OE-Core rev: 4041d91b63ff2315657499e22c74ec90adbf9e19)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 16:28:35 +01:00
Ross Burton
45e819b4d4 libportal: fix rare build race
There is a build race where the libportal.vapi is not always generated
before it is needed to build libportal-gtk*.vapi. Backport the fix from
upstream.

[ YOCTO #15479 ]

(From OE-Core rev: 2d984e52cded09647b210bd79cfec9deb4b7b589)

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>
2024-05-13 15:42:27 +01:00
Philip Lorenz
f0b560e0a5 lib/package_manager/ipk: Do not hardcode payload compression algorithm
The chosen payload compression algorithm can be changed by overriding
`OPKGBUILDCMD`. Ensure that package extraction deals with this by
globbing for "data.tar.*" to select the actual payload tarball.

(From OE-Core rev: 2ad05635a6da403b4fadcc126fe7734067c12c73)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 15:42:27 +01:00
Khem Raj
8dac1e9777 zip: Fix build with gcc-14
zip's configure fails to link this piece of test code:

  int main() { return closedir(opendir(".")); }

with GCC-14 because it now treats implicit declaration of function
as error, unline older GCC version where it was just a warning
and this test would build fine.

Remove 0002-unix.c-Do-not-redefine-DIR-as-FILE.patch which
is now unnecessary.

(From OE-Core rev: 3422411eb750c7e960b81676637cfb321dbadefb)

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
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>
2024-05-13 15:42:27 +01:00
Khem Raj
82929750a6 strace: Use locale-base-en-us for locale
locale-base-en-us is available on musl as well therefore, not need
to make it glibc specific anymore.

(From OE-Core rev: 123ea0953346a5dd209818827021ffe4bcc95392)

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>
2024-05-13 15:42:27 +01:00
Khem Raj
ad5140064e iproute2: Fix build with GCC-14
(From OE-Core rev: 127df0ac9b55fa2a7f3269934854f805843d01cc)

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>
2024-05-13 15:42:27 +01:00
Khem Raj
fe46b49809 ltp: Fix build with GCC-14
(From OE-Core rev: 5d3bea7f817aee6eb053eccc22f5c35f8a3d3668)

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>
2024-05-13 15:42:27 +01:00
Martin Jansa
c629ee6b92 lrzsz connman-gnome libfm: ignore various issues fatal with gcc-14
work arounds for:
oe-core/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb:do_compile
oe-core/meta/recipes-connectivity/connman/connman-gnome_0.7.bb:do_compile
oe-core/meta/recipes-support/libfm/libfm_1.3.2.bb:do_compile

http://errors.yoctoproject.org/Errors/Build/183127/

More fixes on ML (especially for -native with gcc-14 on host)
cdrtools: https://lists.openembedded.org/g/openembedded-core/message/198899
syslinux: https://lists.openembedded.org/g/openembedded-core/message/198901

(From OE-Core rev: 856ffc7d0893c1dc549baf401899947f70d31896)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
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>
2024-05-13 15:42:27 +01:00
Khem Raj
20845b0066 python3: Treat UID/GID overflow as failure
This fixes ptest failures on 32bit architectures

AssertionError:
Failed ptests:
{'python3': ['test_extractall_none_gid',
             'test_extractall_none_gname',
             'test_extractall_none_mode',
             'test_extractall_none_mtime',
             'test_extractall_none_uid',
             'test_extractall_none_uname',
             'setUpClass',
             'python3']}

(From OE-Core rev: 43104b547cb79693c83df0882773ae8dd74b1d35)

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>
2024-05-13 15:42:27 +01:00
Markus Volk
613928bbb5 gtk4: update 4.14.2 -> 4.14.4
Overview of Changes in 4.14.4, 02-05-2024
=========================================

* GtkGraphicsOffload:
 - Don't crash without a child

* Icontheme:
 - Make symbolic svg loading more efficient
 - Handle color-free symbolics more efficiently

* Accessibility:
 - Make the gtk-demo sidebar search more accessible
 - Stop emitting focus events

* GDK:
 - Support XDG_ACTIVATION_TOKEN
 - dmabuf: Be more defensive when importing unknown formats to G
 - dmabuf: Use narrow range for YUV

* GSK:
 - gpu: Handle  tiny offscreens correctl

* Build:
 - Fix many ubsan warning

* macOS
 - Fix problems with events handed back to the OS
 - Respect GDK_DEBUG=default-settings

* Translation updates:
 German
 Indonesian
 Kabyle
 Korean
 Lithuanian
 Russian

Overview of Changes in 4.14.3, 18-04-2024
=========================================

* GtkShortcutManager:
 - Track the propagation phase of added controllers

* Accessibility:
 - Implement GtkAccessibleRange for scrollbars

* X11:
 - Fix some confusing debug messages
 - Drop a no-longer-relevant optimization that was interfering with
   getting the current window manager capabilities

* Tools:
 - Support generating pdf in gtk4-rendernode-tool

* Translation updates:
 Basque
 Brazilian Portuguese
 Georgian
 Hebrew
 Kabyle
 Persian
 Polish
 Slovenian
 Swedish
 Ukrainian

(From OE-Core rev: 142346d5e420e2ea17826c9951b443849a535a31)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 15:42:27 +01:00
Khem Raj
397870f8dd llvm: Switch to using release tarballs
git checkouts are in excess of 3G, which is not
ideal for everyone to download/clone, instead switch to
fetching release tarball which is ~126M as of 18.1.5 release

(From OE-Core rev: 800e6576e4f3af10846af13c2f217f986c1afdb4)

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>
2024-05-13 15:42:27 +01:00
Archana Polampalli
3f96e1a734 xserver-xorg: upgrade 21.1.11 -> 21.1.12
This release contains security fixes for

* CVE-2024-31080
* CVE-2024-31081
* CVE-2024-31082
* CVE-2024-31083

Changelog:
===========
101caa1b0 (tag: xorg-server-21.1.12) xserver 21.1.12
117315640 render: fix refcounting of glyphs during ProcRenderAddGlyphs
0e34d8ebc Xquartz: ProcAppleDRICreatePixmap needs to use unswapped length to send reply
cea92ca78 Xi: ProcXIPassiveGrabDevice needs to use unswapped length to send reply
8a7cd0e3e Xi: ProcXIGetSelectedEvents needs to use unswapped length to send reply
5ca3a9513 Xext: SProcSyncCreateFence needs to swap drawable id too
5d7272f05 Allow disabling byte-swapped clients
8a46a463f Initialize Mode->name in xf86CVTMode()
f653d9a0a hw/xfree86: fix NULL pointer refrence to mode name
8b75ec34d dix: Fix use after free in input device shutdown

https://lists.x.org/archives/xorg-announce/2024-April/003497.html

(From OE-Core rev: 12dfa6889a1c322d0e20fd9b7638dcb861e032f2)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 15:42:27 +01:00
Ross Burton
ee2c48fe3e gstreamer1.0: skip another known flaky test
The baseparse:parser_pull_short_read test is known to be unreliable,
according to the list of known bad tests in gst-devtools.

Also clean up an incorrect comment.

(From OE-Core rev: be58657b3ee32af5a00f6bfecb9264751915dabd)

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>
2024-05-13 15:42:27 +01:00
Ross Burton
f911076708 curl: locale-base-en-us isn't glibc-specific
The musl-locales package provides this too, so we can depend without a
libc override.

(From OE-Core rev: c8f1d51f4eb6df6c041707d38f60549d13ddab7f)

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>
2024-05-13 15:42:27 +01:00
Guðni Már Gilbert
a23cf50510 python3-pyopenssl: drop python3-six from RDEPENDS
Python 2.7 support was dropped in version 22.0.0
python3-six was dropped as a dependency in 22.0.0

(From OE-Core rev: 6eab37a0cdcc6071f79aa5c8198df0b2ba23dd7a)

Signed-off-by: Guðni Már Gilbert <gudnimar@noxmedical.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 15:42:27 +01:00
Guðni Már Gilbert
6ea457052c python3-bcrypt: drop python3-six from RDEPENDS
Python 2.7 support was dropped in version 3.2.0 and
python3-six dependency was subsequently dropped in version 3.2.1

(From OE-Core rev: 50757cc95b3062f11a7455af33e7a7e74ea1d0f7)

Signed-off-by: Guðni Már Gilbert <gudnimar@noxmedical.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-13 15:42:27 +01:00
Quentin Schulz
13078ea23f docs: brief-yoctoprojectqs: explicit version dependency on websockets python module
We now check that the websockets module version is at least 9.1 in
bitbake itself so we can specify more precisely what "recent version"
means.

While at it, list which distributions have a recent enough websockets
python module in their package feed and give some hint at how to support
other distributions.

Cc: Quentin Schulz <foss+yocto@0leil.net>
(From yocto-docs rev: 9a14157c4d723da0970cfd4bbb2c9500d3e692e0)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 11:57:14 +01:00
Michael Opdenacker
5df41be683 ref-manual: update releases.svg
- Make Scarthgap a current release
- Add Styhead

(From yocto-docs rev: 4ff729c58d462cf8513e6339a5518e1c5b56f54a)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 11:57:14 +01:00
Lee Chee Yang
639104796b release-notes-5.0: update Repositories / Downloads section
(From yocto-docs rev: de7f379b3950c0d345a798fff417e0004c0dbc27)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 11:57:14 +01:00
Lee Chee Yang
730072c7cf migration-notes: add release notes for 4.0.18
add release notes for 4.0.18 (rc1).

(From yocto-docs rev: 88ba51a40a2672288096d0de784c4dd51a99d7d3)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 11:57:14 +01:00
Alexander Kanavin
fd1ea6a600 documentation/poky.yaml.in: drop mesa/sdl from essential host packages
They used to be required for qemu graphics support, but neither is being
for anything anymore.

(From yocto-docs rev: 96e96382cecb4928f49d37bf870335fa6aeb4dd1)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 11:57:14 +01:00
Jordan Crouse
9867b9e7a6 libxcrypt-compat: Rename libcrypto.so.1 -> libcrypt.so.1
The comment in libxcrypt-cmpat incorrectly mentions libcrypto instead of
libcrypt which could be misleading to the unsuspecting grep user.

(From OE-Core rev: 3400945ac94c37f335b1e500bdd91e6187ed20b1)

Signed-off-by: Jordan Crouse <jorcrous@amazon.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:56:36 +01:00
joshua Watt
3bf65ca15f classes/create-spdx-2.2: Fix SPDX dependencies for ABI Safe recipes
SPDX Documents can currently get into a state where they reference SPDX
IDs that do not exist (locally). The reason for this is that some
tasks/recipes are marked as ABI safe, and thus are excluded from
taskhash. This means that when SPDX creates a document, it will refer to
the SPDX ID in the dependency at the time when the document is created,
but if the dependency changes and gets a new SPDX ID, the document will
not rebuild to reference the new SPDX ID, causing it to be dangling.

Fix this by using the new field in BB_TASKDEPDATA to skip dependencies
that are not part of the taskhash calculation.

(From OE-Core rev: 8393557b5229c7a0cea18a586848384bff1d7424)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:55:27 +01:00
Trevor Gamblin
c17d11189c python3: skip test_concurrent_futures/test_shutdown
These tests are causing hangs on the Autobuilder, so disable them for
now.

(From OE-Core rev: fe22c66f4da87e7dca62dfbeec2185e4efcc31a9)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:55:27 +01:00
Bruce Ashfield
8919e2c3eb linux-yocto/6.6: fix kselftest failures
Integrating the following commit(s) to linux-yocto/6.6:

1/1 [
    Author: Mark Brown
    Email: broonie@kernel.org
    Subject: kselftest: Add a ksft_perror() helper
    Date: Thu, 28 Sep 2023 16:38:11 +0200

    The standard library perror() function provides a convenient way to print
    an error message based on the current errno but this doesn't play nicely
    with KTAP output. Provide a helper which does an equivalent thing in a KTAP
    compatible format.

    nolibc doesn't have a strerror() and adding the table of strings required
    doesn't seem like a good fit for what it's trying to do so when we're using
    that only print the errno.

    Signed-off-by: Mark Brown <broonie@kernel.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: 3d747dabd7bf59b653730f245d134931d143f60f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Richard Purdie
ee432c5172 oeqa/selftest/devtool: Fix for usrmerge in DISTRO_FEATURES
If usrmerge is in DISTRO_FEATURES, assumptions in one of the tests would
fail. Improve the test so it works in both cases.

(From OE-Core rev: afa211746a2aa1993a54cc5a5e1937679341da8e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Richard Purdie
ead42232e7 oeqa/selftest/recipetool: Fix for usrmerge in DISTRO_FEATURES
If usrmerge is in DISTRO_FEATURES, assumptions in one of the tests would
fail. Improve the test so it works in both cases.

(From OE-Core rev: 68a27d307a7042e242c49cf3d069469f40e09902)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Khem Raj
8876fe9587 llvm: Upgrade to 18.1.5
Brings

617a15a9eac9 [clang codegen] Fix MS ABI detection of user-provided constructors. (#90151)
20b9ed64ea07 [RISCV][ISel] Fix types in tryFoldSelectIntoOp (#90659)
ece9d35f1a70 [GlobalISel] Fix store merging incorrectly classifying an unknown index expr as 0. (#90375)
a7b8b890600a [X86] Enable EVEX512 when host CPU has AVX512 (#90479)
4da5b1417493 [GlobalISel] Don't form anyextending atomic loads.
a96b04442c9f [AArch64] Remove invalid uabdl patterns. (#89272)
aea091b70eda [clang][CoverageMapping] do not emit a gap region when either end doesn't have valid source locations (#89564)
58648f334d62 [X86][EVEX512] Check hasEVEX512 for canExtendTo512DQ (#90390)
6350acdb134d [CGP] Drop poison-generating flags after hoisting (#90382)
f341c76b9461 [Clang] Handle structs with inner structs and no fields (#89126)
abf6b13085fb [IRCE] Skip icmp ptr in InductiveRangeCheck::parseRangeCheckICmp (#89967)
ee5bb0c95667 Fix Objective-C++ Sret of non-trivial data types on Windows ARM64 (#88671)
6dbaa89433f7 [clang-format] Fix a regression in ContinuationIndenter (#88414)
51ff7f38b633 [clang-format] Fix a regression in annotating TrailingReturnArrow (#86624)
b544217fb31f [AMDGPU] Fix setting nontemporal in memory legalizer (#83815)
78b99c73ee4b [DAGCombiner] Fix miscompile bug in combineShiftOfShiftedLogic (#89616)
1aa91720cc4f [DAGCombiner] Pre-commit test case for miscompile bug in combineShiftOfShiftedLogic
35fea1032741 release/18.x: [clang-format] Correctly annotate braces in macros (#87953)
b9b73814ad8a [libcxx] [modules] Add _LIBCPP_USING_IF_EXISTS on aligned_alloc (#89827)
c0b48372d82a release/18.x: [clang-format] Revert breaking stream operators to previous default (#89016)
3b4ba7277bd7 [analyzer] Fix performance of getTaintedSymbolsImpl() (#89606)
7699b341b763 release/18.x: [clang-format] Fix a regression in annotating BK_BracedInit (#87450)
fb865928c8e0 [GlobalISel] Fix fewerElementsVectorPhi to insert after G_PHIs (#87927)
111ae4509c96 [X86] Fix miscompile in combineShiftRightArithmetic
76cbd417af50 [X86] Pre-commit tests (NFC)
e7c816b3cd3e [InstCombine] Fix unexpected overwriting in foldSelectWithSRem (#89539)
3685a599c866 ReleaseNote: Mention SpecialCaseList change (#89141)
a981a4f7653c [X86] Always use 64-bit relocations in no-PIC large code model (#89101)
4ddac856c55f [analyzer] Fix a security.cert.env.InvalidPtr crash
c6d63d4fc555 Bump version to 18.1.5 (#89291)

(From OE-Core rev: 02df2fc6241ac8fb0e78f2fdff97a04e5c561d54)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Alexander Kanavin
e140c26a9a wayland: fix upstream version check
(From OE-Core rev: e98a02fed1fec3596727316837526a6d1420aed4)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Alexander Kanavin
6a5e7ff873 python3-pyproject-hooks: fix upstream version check
(From OE-Core rev: d19b85c66c6b88a4545ce9b9b67f74169c9fdcec)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Ross Burton
2b963cb51e openssl: fix pkgconfig path problems
OpenSSL 3.3.0 introduced new pkgconfig generators which interact badly
with our incorrect setting of --libdir, which is documented as being
the name of the directory _under $prefix_, not an absolute path.  This
resulted in the pkgconfig files have libdir=/usr which mostly works as
the actual library directory is on the search path, but can break other
recipes (such as tpm2-openssl).

Pass the correct value for --libdir, and also remove the odd handling of
an empty ${prefix} which is very historical[1] and can't happen anymore
as all build variations have a prefix.

[1] Added in oe-classic f725a81c, 2009

(From OE-Core rev: f5e931c5e5932e35113d13ba053419283f472f43)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Markus Volk
de15b89080 wayland-protocols: update 1.35 -> 1.36
(From OE-Core rev: 53bedae6d7a724ffe62f6ece90a56323304225d2)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Peter Marko
1a91dba13f glibc: Update to latest on stable 2.39 branch
Adresses CVEs: CVE-2024-33599, CVE-2024-33600, CVE-2024-33601, CVE-2024-33602

Changes:
273a835fe7 time: Allow later version licensing.
acc56074b0 nscd: Use time_t for return type of addgetnetgrentX
836d43b989 login: structs utmp, utmpx, lastlog _TIME_BITS independence (bug 30701)
9831f98c26 login: Check default sizes of structs utmp, utmpx, lastlog
fd658f026f elf: Also compile dl-misc.os with $(rtld-early-cflags)
a9a8d3eebb CVE-2024-33601, CVE-2024-33602: nscd: netgroup: Use two buffers in addgetnetgrentX (bug 31680)
c99f886de5 CVE-2024-33600: nscd: Avoid null pointer crashes after notfound response (bug 31678)
5a508e0b50 CVE-2024-33600: nscd: Do not send missing not-found response in addgetnetgrentX (bug 31678)
1263d583d2 CVE-2024-33599: nscd: Stack-based buffer overflow in netgroup cache (bug 31677)
2f8f157eb0 x86: Define MINIMUM_X86_ISA_LEVEL in config.h [BZ #31676]
e701c7d761 i386: ulp update for SSE2 --disable-multi-arch configurations
e828914cf9 nptl: Fix tst-cancel30 on kernels without ppoll_time64 support

Since glibc introduced file sysdeps/arm/bits/wordsize.h
our multilib patch needed to be updated.

(From OE-Core rev: 8df8dcc37fd05551dcf89ff2ab5d73d7679cf6b6)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Soumya Sambu
d0fc704e40 ncurses: Fix CVE-2023-45918
ncurses 6.4-20230610 has a NULL pointer dereference in tgetstr in tinfo/lib_termcap.c.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-45918

(From OE-Core rev: 6573995adf4cfd48b036f8463b39f3864fcfd85b)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Antonin Godard
12c447b38a devtool: ide-sdk: correct help typo
(From OE-Core rev: 50e043387a2f0f9a5c2f7a5f914c465c830d329b)

Signed-off-by: Antonin Godard <antoningodard@pm.me>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Martin Hundeb?ll
70a857b8f3 classes: image_types: apply EXTRA_IMAGECMD:squashfs* in oe_mksquashfs()
Since commit c991f9d6031 ("image_types: Set SOURCE_DATE_EPOCH for squashfs"),
I assume, the EXTRA_IMAGECMD:squashfs* variable(s) has been ignored.
This is due to the override magic, which isn't applied to functions
called by IMAGE_CMD:<type>, but only to the IMAGE_CMD:<type> itself.

Other image types (e.g. ext*) works around this by passing the
EXTRA_IMAGECMD variable as an argument to the called function.

To do the same for oe_mksquashfs(), the number of mandatory arguments is
fixed to one (with a little logic to handle the zstd filename). This
allows passing ${EXTRA_IMAGECMD} as an argument to oe_mksquashfs(),
which makes the variable functional again.

(From OE-Core rev: e6c1e3a65c3672473dcd01e4a950f89b70121d6b)

Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Adriaan Schmidt
d0f677d1e3 libcgroup_3.1.0: fix build on non-systemd systems
backport upstream commit 592dcdcf243576bd2517d3da9bc18990de08e37e
to fix packaging when building with --enable-systemd=no

(From OE-Core rev: bc91a95ad96faa644241833a883cc63608dd59c2)

Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Peter Marko
df8aaff67e glibc: correct license
The license per [1] is LGPL-2.1-or-later and
[2] converted last LGPL-2.1-only references.

License-Update: corrected from LGPL-2.1-only to LGPL-2.1-or-later based on [1] and [2]

[1] https://www.gnu.org/software/libc/
[2] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=273a835fe7c685cc54266bb8b502787bad5e9bae

(From OE-Core rev: b7ad15a59d048ca7561a03cb0fc8e2c24680ce5c)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Ralph Siemsen
ed7cd56a8a uboot-sign: fix loop in do_uboot_assemble_fitimage
When using multiple u-boot configurations in UBOOT_CONFIG, the helper
function uboot_assemble_fitimage_helper() was not called with all
combinations of type & binary, due to a copy-n-paste indexing error.

(From OE-Core rev: 2d338548a4b745a71eaf6c29231adc93c4165778)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Khem Raj
f1f7b599b8 gtk4: Disable int-conversion warning as error
This helps builds on 32bit machines when using GCC-14
there is a bug filed for fixing this in code [1]

[1] https://gitlab.gnome.org/GNOME/gtk/-/issues/6033
(From OE-Core rev: 3735b5566c7e0e1a36171523e7b553497f4da1a4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Khem Raj
98d3ddc943 consolekit: Disable incompatible-pointer-types warning as error
Fixes build with gcc-14

(From OE-Core rev: d4fb4007cbaf545e023b0cb55b80fb5c70cf5b57)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Khem Raj
58acfe5c0a kea: Remove -fvisibility-inlines-hidden from C++ flags
This fixes build with gcc-14, where default visibility is extended to
inline functions and getAll() function now falls into this category
and functions are marked hidden resulting in linking errors

Fixes
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/kea/2.5.8/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/14.0.1/ld: ./.libs/libdhcp4.a(dhcp4_srv.o): in function `isc::dhcp::Dhcpv4Srv::appendRequestedVendorOptions(isc::dhcp::Dhcpv4Exchange&)':
/usr/src/debug/kea/2.5.8/src/bin/dhcp4/dhcp4_srv.cc:2356:(.text+0xaac2): undefined reference to `isc::dhcp::CfgOption::getAll(unsigned int) const'
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/kea/2.5.8/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/14.0.1/ld: ./.libs/libdhcp4.a(dhcp4_srv.o): in function `isc::dhcp::OptionDescriptor isc::dhcp::CfgOption::get<unsigned int>(unsigned int const&, unsigned short) const':
/usr/src/debug/kea/2.5.8/src/lib/dhcpsrv/cfg_option.h:609:(.text+0xb288): undefined reference to `isc::dhcp::CfgOption::getAll(unsigned int) const'
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/kea/2.5.8/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/14.0.1/ld: ./.libs/libdhcp4.a(dhcp4_srv.o): in function `isc::dhcp::Dhcpv4Srv::appendRequestedOptions(isc::dhcp::Dhcpv4Exchange&)':
/usr/src/debug/kea/2.5.8/src/bin/dhcp4/dhcp4_srv.cc:2128:(.text+0xc556): undefined reference to `isc::dhcp::CfgOption::getAll(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/kea/2.5.8/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/14.0.1/ld: ./.libs/libdhcp4.a(dhcp4_srv.o): in function `std::vector<isc::dhcp::OptionDescriptor, std::allocator<isc::dhcp::OptionDescriptor> > isc::dhcp::CfgOption::getList<char [6]>(char const (&) [6], unsigned short) const':
/usr/src/debug/kea/2.5.8/src/lib/dhcpsrv/cfg_option.h:641:(.text._ZNK3isc4dhcp9CfgOption7getListIA6_cEESt6vectorINS0_16OptionDescriptorESaIS5_EERKT_t[_ZNK3isc4dhcp9CfgOption7getListIA6_cEESt6vectorINS0_16OptionDescriptorESaIS5_EERKT_t]+0x86): undefined reference to `isc::dhcp::CfgOption::getAll(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/kea/2.5.8/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/14.0.1/ld: ./.libs/libdhcp4.a(dhcp4_srv.o): in function `isc::dhcp::OptionDescriptor isc::dhcp::CfgOption::get<char [6]>(char const (&) [6], unsigned short) const':
/usr/src/debug/kea/2.5.8/src/lib/dhcpsrv/cfg_option.h:609:(.text._ZNK3isc4dhcp9CfgOption3getIA6_cEENS0_16OptionDescriptorERKT_t[_ZNK3isc4dhcp9CfgOption3getIA6_cEENS0_16OptionDescriptorERKT_t]+0x77): undefined reference to `isc::dhcp::CfgOption::getAll(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
collect2: error: ld returned 1 exit status
make[5]: *** [Makefile:651: kea-dhcp4] Error 1

(From OE-Core rev: 584940c2f3234bfaf579429e162e683934e86538)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Khem Raj
b48004a055 pcmanfm: Disable incompatible-pointer-types warning as error
(From OE-Core rev: af1290104b58693df69457454ac2a0d35a7e8c60)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Martin Jansa
41570975ed p11-kit: ignore various issues fatal with gcc-14 (for 32bit MACHINEs)
* these are reproducible only with 32bit MACHINEs and probably related
  to time64.inc

* http://errors.yoctoproject.org/Errors/Build/183154/

(From OE-Core rev: fa2b8a494e641faab095487af90c5b78d9e33868)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Martin Jansa
2d70c349d5 libunwind: ignore various issues now fatal with gcc-14
http://gecko.lge.com:8000/Errors/Details/821679
(From OE-Core rev: 20b9e9980c6675906ed154df968008f8c9140a9c)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Martin Jansa
585b4bb740 expect: ignore various issues now fatal with gcc-14
(From OE-Core rev: 83e9790fe27c310a4f5a66fedb29b232d23a22e5)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Martin Jansa
a0be430f59 rng-tools: ignore incompatible-pointer-types errors for now
* causes libargp test to fail:

http://errors.yoctoproject.org/Errors/Details/766951/

| configure: error: in '/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/build':
| configure: error: libargp disabled and libc does not have argp

config.log shows:

configure:8424: x86_64-webos-linux-gcc  -m64 -march=nehalem -mtune=generic -mfpmath=sse -msse4.2 --sysroot=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot -o conftest  -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map  -fmacro-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/git=/usr/src/debug/rng-tools/6.16  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/git=/usr/src/debug/rng-tools/6.16  -fmacro-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/build=/usr/src/debug/rng-tools/6.16  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/build=/usr/src/debug/rng-tools/6.16  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot=  -fmacro-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot=  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot-native=   -DJENT_CONF_ENABLE_INTERNAL_TIMER   -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fcanon-prefix-map  -fmacro-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/git=/usr/src/debug/rng-tools/6.16  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/git=/usr/src/debug/rng-tools/6.16  -fmacro-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/build=/usr/src/debug/rng-tools/6.16  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/build=/usr/src/debug/rng-tools/6.16  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot=  -fmacro-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot=  -fdebug-prefix-map=/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot-native=  conftest.c -ljitterentropy  >&5
conftest.c: In function 'main':
conftest.c:51:52: error: passing argument 3 of 'argp_parse' from incompatible pointer type [-Wincompatible-pointer-types]
   51 | int argc=1; char *argv={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;
      |                                                    ^~~~
      |                                                    |
      |                                                    char *
In file included from conftest.c:47:
/OE/build/luneos-styhead/tmp-glibc/work/qemux86_64-webos-linux/rng-tools/6.16/recipe-sysroot/usr/include/argp.h:371:58: note: expected 'char ** restrict' but argument is of type 'char *'
  371 |                            int __argc, char **__restrict __argv,
      |                                        ~~~~~~~~~~~~~~~~~~^~~~~~

(From OE-Core rev: 78d9cad294f335f6e5b18b0ca790a9e5723f0c41)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Anuj Mittal
88118890bb sqlite3: upgrade 3.45.1 -> 3.45.3
(From OE-Core rev: a5c24e05e8397e2e353d2d27d9da98375f6ec036)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Anuj Mittal
3623451e76 mmc-utils: upgrade to latest revision
(From OE-Core rev: 04f76edd211cde73069b24b5ae65d1f7732872ff)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Anuj Mittal
92fe350044 libsolv: upgrade 0.7.28 -> 0.7.29
(From OE-Core rev: 96422591580ab92d2d0e79551229852246f64acb)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Anuj Mittal
3b63f0ba86 libproxy: upgrade 0.5.4 -> 0.5.6
(From OE-Core rev: 6d215478a0711ca9f7475e9f16c1dd0907fbe14c)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Anuj Mittal
7f9ce742a3 harfbuzz: upgrade 8.3.1 -> 8.4.0
(From OE-Core rev: 3d6033cc841b3a74d97caeec6d9482e6fd5e79ca)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Anuj Mittal
b035f79ca4 enchant2: upgrade 2.6.9 -> 2.7.2
(From OE-Core rev: b383bd8780fe6b0b49519683718e549220cf20fd)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-09 09:48:58 +01:00
Richard Purdie
93a6e5d32c sanity.conf: Require bitbake 2.9.1
We need a recent siggen change in bitbake to allow SPDX to work
better.

(From OE-Core rev: 3d501e4b496be86b0089167af2f49cb750fc7ea2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:57:51 +01:00
Richard Purdie
f4885e97a6 bitbake: bitbake: update to version 2.9.1
This allow the use of new siggen API

(Bitbake rev: e53503546990adeab67b6d044fcce59dc5a3f455)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:53:01 +01:00
joshua Watt
23c5058707 bitbake: asyncrpc: Check websockets version
Checks that the minimum version of the websockets module is present, and
if not raises an ImportError. This allows the user to get earlier
feedback if using websockets is going to succeed

(Bitbake rev: 330ea6914aad65dc8b34c986c44779820c392f03)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:44 +01:00
joshua Watt
aff8b07334 bitbake: cooker: Handle ImportError for websockets
Handles ImportError when creating a hash equivalence to ping the server.
This notifies user earlier with a more precise error if websockets can't
be used, and also prevents passing a known bad upstream value to the
local server

(Bitbake rev: aa80b3cfc5d16dfba13ca7fb9b78bae179ce3b74)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:44 +01:00
joshua Watt
8364aa5baa bitbake: siggen/runqueue: Report which dependencies affect the taskhash
Report which task dependencies in BB_TASKDEPDATA are included in the
taskhash. This allows tasks to identify which tasks dependencies may
change without the task re-running. Knowing this information is
important for tasks that want to transfer information from dependencies
(such as SPDX)

(Bitbake rev: a313b4f07727e8187526157ba039911c3f73dd46)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:43 +01:00
Kari Sivonen
9925db0c4f bitbake: fetch2/svn: Fix mirroring issue with svn
Add return false to supports_checksum for svn fetcher which fhis
fixes MIRROR usage for svn uris. Also add a testcase.

[YOCTO #15473]

(Bitbake rev: 21cfc7ae9a19f39ac8904e1c3466e7e499ac523f)

Signed-off-by: Kari Sivonen <kari.sivonen@live.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:43 +01:00
Richard Purdie
ead0ff2210 bitbake: build: Handle conflict between cwd and cleandirs
If the cwd of the task is also a cleandirs, you would see warnings from bitbake
about being unable to obtain cwd during the task execution. Tweak the code
to detect this and avoid the warnings.

(Bitbake rev: 6c7fd60c10955b0f23f64b25b5b4e154eb22a8f8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:43 +01:00
Alexander Kanavin
551fdabc54 bitbake: fetch2/crate: add upstream latest version check function
This is actually rather easy: crate web API provides a json
with all the versions, for example:
https://crates.io/api/v1/crates/cargo-c/versions

(Bitbake rev: f6c2755db9a1f88c8534193b420fa31d135945e6)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:43 +01:00
Simone Weiß
f6de2b033d bitbake: bitbake-layers: adapt force option to not use tinfoil
Fixes [YOCTO #15417]

When a layer adds a new dependency after it was added to a conf, it can not be
removed w/o this dependency in the setup. Even the dependent layer can not be
added, as the tinfoil setup will fail.
Adapt --force to not perform the tinfoil at all, the use will be at own risk,
i.e. the added layers might not parse properly afterwards.
This is not merged into the force option with -F as it even changes the loading of
plugins from other layers and is hence even more invasive as force. Instead
force can now be speciefied multiple times and is counted.

(Bitbake rev: 541fa7f582133949563e65f2d43c4b16e873e5c1)

Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-08 14:51:43 +01:00
Richard Purdie
7eebbdb6c4 linux-yocto-custom: Fix comment override syntax
The override format in a comment is incorrect, fix it.

(From OE-Core rev: df5875cb22585f10a2e8782c0534ae4625e85bb0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
d92815d670 linux-yocto/6.6: update CVE exclusions (6.6.29)
Data pulled from: https://github.com/nluedtke/linux_kernel_cves

    1/1 [
        Author: Nicholas Luedtke
        Email: nicholas.luedtke@uwalumni.com
        Subject: Update 8Apr24
        Date: Tue, 9 Apr 2024 18:19:11 -0400

    ]

(From OE-Core rev: a6660bc4980ad8161522075e3964fa400817f27f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
78a2cff281 linux-yocto/6.6: update to v6.6.29
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    a3463f081046 Linux 6.6.29
    63cc4f14bb03 selftests: kselftest: Fix build failure with NOLIBC
    c67f926ec870 thunderbolt: Reset only non-USB4 host routers in resume
    b0f4478838be PCI/ASPM: Fix deadlock when enabling ASPM
    3b629239773b ksmbd: common: use struct_group_attr instead of struct_group for network_open_info
    4cbb88351b55 ksmbd: clear RENAME_NOREPLACE before calling vfs_rename
    5c20b242d4fe ksmbd: validate request buffer size in smb2_allocate_rsp_buf()
    3160d9734453 ksmbd: fix slab-out-of-bounds in smb2_allocate_rsp_buf
    6355b468e2a7 powerpc/ftrace: Ignore ftrace locations in exit text sections
    43a71c1b4b3a virtio_net: Do not send RSS key if it is not supported
    bd41ee1efd47 net: dsa: mt7530: fix enabling EEE on MT7531 switch on all boards
    21b9d89d9342 net: dsa: mt7530: fix improper frames on all 25MHz and 40MHz XTAL MT7530
    2382eae66b19 nilfs2: fix OOB in nilfs_set_de_type
    e46d3be714ad bootconfig: use memblock_free_late to free xbc memory to buddy
    a019b44b1bc6 nouveau: fix instmem race condition around ptr stores
    5d2f587aef37 drm/vmwgfx: Fix crtc's atomic check conditional
    f1769cb2c912 drm/vmwgfx: Sort primary plane formats by order of preference
    65674218b43f drm/vmwgfx: Fix prime import/export
    db74904a93a3 drm/amdgpu: remove invalid resource->start check v2
    aa02d43367a9 drm/amdkfd: Fix memory leak in create_process failure
    ef13eeca7c79 drm/amdgpu: validate the parameters of bo mapping operations more clearly
    885d4c31a432 fuse: fix leaked ENOSYS error on first statx call
    cc10db003033 mm/shmem: inline shmem_is_huge() for disabled transparent hugepages
    882e1180c83f mm/memory-failure: fix deadlock when hugetlb_optimize_vmemmap is enabled
    c85106fb08f4 mm,swapops: update check in is_pfn_swap_entry for hwpoison entries
    db01bfbdddd8 mm/userfaultfd: allow hugetlb change protection upon poison entry
    81cf85ae4f2d init/main.c: Fix potential static_command_line memory overflow
    31f815cb4360 arm64: hibernate: Fix level3 translation fault in swsusp_save()
    e972b6a70126 arm64/head: Disable MMU at EL2 before clearing HCR_EL2.E2H
    cdf811a93747 KVM: x86/mmu: Write-protect L2 SPTEs in TDP MMU when clearing dirty status
    947d518e0daf KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms
    037e48ceccf1 KVM: x86/pmu: Disable support for adaptive PEBS
    bdda0c17fe90 KVM: x86: Snapshot if a vCPU's vendor model is AMD vs. Intel compatible
    7fce9f0f4810 sched: Add missing memory barrier in switch_mm_cid
    ac107356aabc fs: sysfs: Fix reference leak in sysfs_break_active_protection()
    8defb1d22ba0 speakup: Avoid crash on very long word
    2a19c2a5caf0 mei: me: disable RPL-S on SPS and IGN firmwares
    f356fd0cbd9c usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error
    aa61f87fd18b usb: Disable USB3 LPM at shutdown
    8a139fa44870 usb: dwc2: host: Fix dereference issue in DDMA completion flow.
    2ff436b63998 Revert "usb: cdc-wdm: close race between read and workqueue"
    d841a93b5a24 USB: serial: option: add Telit FN920C04 rmnet compositions
    0772a60994ee USB: serial: option: add Rolling RW101-GL and RW135-GL support
    b39ecc8c97ab USB: serial: option: support Quectel EM060K sub-models
    aeb7de0a3840 USB: serial: option: add Lonsung U8300/U9300 product
    f91606d71fab USB: serial: option: add support for Fibocom FM650/FG650
    590d0e130757 USB: serial: option: add Fibocom FM135-GL variants
    83290f9f0719 serial: core: Fix missing shutdown and startup for serial base port
    7ae7104d5434 serial: core: Clearing the circular buffer before NULLifying it
    12e9459ddaea serial: stm32: Reset .throttled state in .startup()
    9f9be0ec3130 serial: stm32: Return IRQ_NONE in the ISR if no handling happend
    52aaf1ff1462 serial/pmac_zilog: Remove flawed mitigation for rx irq flood
    5f40fd6ca2cf serial: mxs-auart: add spinlock around changing cts state
    59f33af97961 comedi: vmk80xx: fix incomplete endpoint checking
    9954c514424f thunderbolt: Fix wake configurations after device unplug
    3238b23e661e thunderbolt: Avoid notify PM core about runtime PM resume
    1d7f1049035b binder: check offset alignment in binder_get_object()
    ce2ec45c7817 ALSA: hda/realtek - Enable audio jacks of Haier Boyue G42 with ALC269VC
    90782cf17e9c ALSA: hda/realtek: Add quirks for Huawei Matebook D14 NBLB-WAX9N
    05e6bfd31b06 ALSA: hda/tas2781: Add new vendor_id and subsystem_id to support ThinkPad ICE-1
    1da8f46f1332 ALSA: hda/tas2781: correct the register for pow calibrated data
    02d32d5acb13 ALSA: seq: ump: Fix conversion from MIDI2 to MIDI1 UMP messages
    388a7302beda net/mlx5: E-switch, store eswitch pointer before registering devlink_param
    00cf046afe34 x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ
    5facc0428bd2 x86/bugs: Fix BHI retpoline check
    c0dcd5c072e2 clk: mediatek: Do a runtime PM get on controllers during probe
    2c077fdfd09d clk: Get runtime PM before walking tree for clk_summary
    888a44f261ae clk: Show active consumers of clocks in debugfs
    60ff482c4205 clk: Get runtime PM before walking tree during disable_unused
    731ffd8dea1c clk: Initialize struct clk_core kref earlier
    02a516cbda04 clk: Remove prepare_lock hold assertion in __clk_release()
    d0d04efa2e36 interconnect: Don't access req_list while it's being manipulated
    d7cc1d721564 platform/x86/amd/pmc: Extend Framework 13 quirk to more BIOSes
    3adcbec4dc62 usb: new quirk to reduce the SET_ADDRESS request timeout
    26cc5cb00310 usb: xhci: Add timeout argument in address_device USB HCD callback
    ac1ddbed5b2e drm: panel-orientation-quirks: Add quirk for Lenovo Legion Go
    771ad4dfbdbb ALSA: scarlett2: Rename scarlett_gen2 to scarlett2
    4afc65cf78bd PCI: Simplify pcie_capability_clear_and_set_word() to ..._clear_word()
    d9a28916ff35 PCI/DPC: Use FIELD_GET()
    4ef929059230 ALSA: scarlett2: Add Focusrite Clarett 2Pre and 4Pre USB support
    92088c488e20 ALSA: scarlett2: Add Focusrite Clarett+ 2Pre and 4Pre support
    2c57a5c68f49 ALSA: scarlett2: Add correct product series name to messages
    9c48e24cb71b ALSA: scarlett2: Default mixer driver to enabled
    3c1d704d9266 thunderbolt: Reset topology created by the boot firmware
    90cdb98254ef thunderbolt: Make tb_switch_reset() support Thunderbolt 2, 3 and USB4 routers
    dc32d754d7cc thunderbolt: Introduce tb_path_deactivate_hop()
    6c24584aface thunderbolt: Introduce tb_port_reset()
    ac630fb8dbb5 ASoC: ti: Convert Pandora ASoC to GPIO descriptors
    a95f279ecd33 ALSA: scarlett2: Add support for Clarett 8Pre USB
    a299e0bf4d2d ALSA: scarlett2: Move USB IDs out from device_info struct
    259486b5bdc6 drm/radeon: make -fstrict-flex-arrays=3 happy
    158010bf1a84 drm/panel: visionox-rm69299: don't unregister DSI device
    6690cc2732e2 drm: nv04: Fix out of bounds access
    2df56f4ea769 s390/cio: fix race condition during online processing
    e43c12451a7d s390/qdio: handle deferred cc1
    c418d7a675d8 perf lock contention: Add a missing NULL check
    910be4f9f805 RDMA/mlx5: Fix port number for counter query in multi-port configuration
    b42852826323 RDMA/cm: Print the old state when cm_destroy_id gets timeout
    99a7ccc4e038 RDMA/rxe: Fix the problem "mutex_destroy missing"
    75170320459a drm/i915/mst: Limit MST+DSC to TGL+
    7ba7f7074006 net: ethernet: ti: am65-cpsw-nuss: cleanup DMA Channels before using them
    6855f724f196 net: ethernet: mtk_eth_soc: fix WED + wifi reset
    cd81184797a0 gpiolib: swnode: Remove wrong header inclusion
    121fb75414ab s390/ism: Properly fix receive message buffer allocation
    f8de1b6208bf net: dsa: mt7530: fix port mirroring for MT7988 SoC switch
    d1be39605392 net: dsa: mt7530: fix mirroring frames received on local port
    40f4ced305c6 tun: limit printing rate when illegal packet received by tun dev
    0ada9981cdfe ice: Fix checking for unsupported keys on non-tunnel device
    8d2e34e4e20e ice: tc: allow zero flags in parsing tc flower
    91efeadfa20e ice: tc: check src_vsi in case of traffic from VF
    93d565ebe41f net: stmmac: Fix IP-cores specific MAC capabilities
    178856bf1f50 net: stmmac: Fix max-speed being ignored on queue re-init
    0580dcc53a7f net: stmmac: Apply half-duplex-less constraint for DW QoS Eth only
    447e00fb04f7 octeontx2-pf: fix FLOW_DIS_IS_FRAGMENT implementation
    622479d10047 net: change maximum number of UDP segments to 128
    48c4bb81df19 net/mlx5e: Prevent deadlock while disabling aRFS
    c7fbc7bb48fc net/mlx5: Lag, restore buckets number to default after hash LAG deactivation
    ff928d7bb1d8 net: sparx5: flower: fix fragment flags handling
    022d81a709cd af_unix: Don't peek OOB data without MSG_OOB.
    aea3cb8cfb30 af_unix: Call manage_oob() for every skb in unix_stream_read_generic().
    4ed82dd368ad netfilter: flowtable: incorrect pppoe tuple
    a2471d271042 netfilter: flowtable: validate pppoe header
    ebf7c9746f07 netfilter: nft_set_pipapo: do not free live element
    3f59ac29dea0 netfilter: br_netfilter: skip conntrack input hook for promisc packets
    ad333578f736 netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get()
    a9ebf340d123 netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get()
    5562a51c6e4e scsi: ufs: qcom: Add missing interconnect bandwidth values for Gear 5
    ac4ad513de4f arm64: tlb: Fix TLBI RANGE operand
    663f72cf95ed arm64/mm: Modify range-based tlbi to decrement scale
    bc835b838999 net: usb: ax88179_178a: avoid writing the mac address before first reading
    37e14dbe8c8f scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING
    998f52a86055 random: handle creditable entropy from atomic process context
    9f39e9e367b3 selftests/ftrace: Limit length in subsystem-enable tests
    5b84dab87cdb SUNRPC: Fix rpcgss_context trace event acceptor field
    5e3eb862df9f drm/i915/vma: Fix UAF on destroy against retire race
    63fb4af8a069 io_uring: Fix io_cqring_wait() not restoring sigmask on get_timespec64() failure
    390a71e361f4 media: videobuf2: request more buffers for vb2_read
    bef71390ac37 drm/msm/dpu: populate SSPP scaler block version
    fe09b8d26e1a selftests: timers: Fix posix_timers ksft_print_msg() warning
    dbfb5232bd83 ceph: redirty page before returning AOP_WRITEPAGE_ACTIVATE
    985b9ee8a2cf ceph: rename _to_client() to _to_fs_client()
    2e2023e9a4c2 ceph: pass the mdsc to several helpers
    a17236f99f49 drm/amd/display: Do not recursively call manual trigger programming
    c626db7151bf selftests/timers/posix_timers: Reimplement check_timer_distribution()
    b04cae49a5e7 selftests: timers: Convert posix_timers test to generate KTAP output
    9d106175b7a0 drm/i915: Disable live M/N updates when using bigjoiner
    ccb0934aeb3f drm/i915: Adjust seamless_m_n flag behaviour
    deaeb5b64c5b drm/i915: Enable VRR later during fastsets
    7e50ac4203d6 drm/i915: Extract intel_crtc_vblank_evade_scanlines()
    e19dc8c49e97 drm/i915: Change intel_pipe_update_{start,end}() calling convention
    51cc733fb48e drm/i915/cdclk: Fix voltage_level programming edge case
    6711b0817a38 drm/i915/mst: Reject FEC+MST on ICL
    6b625d2743b4 drm/i915: Fix FEC pipe A vs. DDI A mixup
    488d4cbc6f28 smb: client: refresh referral without acquiring refpath_lock
    645f332c6b63 smb: client: guarantee refcounted children from parent session
    441786be0c19 smb3: show beginning time for per share stats
    6202996a1c18 smb: client: fix UAF in smb2_reconnect_server()
    fe1bad73d35f smb: client: remove extra @chan_count check in __cifs_put_smb_ses()
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: 639536f032d4cdd18a01611c2c5a6d630d2a9b79)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
c9e3ee8817 linux-yocto/6.6: update CVE exclusions (6.6.28)
Data pulled from: https://github.com/nluedtke/linux_kernel_cves

    1/1 [
        Author: Nicholas Luedtke
        Email: nicholas.luedtke@uwalumni.com
        Subject: Update 8Apr24
        Date: Tue, 9 Apr 2024 18:19:11 -0400

    ]

(From OE-Core rev: f0683a02772e83ef1c54a60664f68364079540f7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
1eca3c7e44 linux-yocto/6.6: update to v6.6.28
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    ba151416051a Linux 6.6.28
    50971570ba79 drm/amd/display: fix disable otg wa logic in DCN316
    5ca6cbd8adbe drm/amd/display: Set VSC SDP Colorimetry same way for MST and SST
    b12c3cfd8265 drm/amd/display: Program VSC SDP colorimetry for all DP sinks >= 1.4
    bd3105a71d1c drm/amdgpu: fix incorrect number of active RBs for gfx11
    fa2df4aa3e3a drm/amdgpu: always force full reset for SOC21
    1520bf605d2f drm/amdgpu: Reset dGPU if suspend got aborted
    2708354ffb70 drm/i915: Disable port sync when bigjoiner is used
    d1742f77bdf2 drm/i915/cdclk: Fix CDCLK programming order when pipes are active
    09e6cbe98c10 x86/bugs: Replace CONFIG_SPECTRE_BHI_{ON,OFF} with CONFIG_MITIGATION_SPECTRE_BHI
    a823da65dce8 x86/bugs: Remove CONFIG_BHI_MITIGATION_AUTO and spectre_bhi=auto
    9c9cd014d048 x86/bugs: Clarify that syscall hardening isn't a BHI mitigation
    7497589a96bc x86/bugs: Fix BHI handling of RRSBA
    c83e35f47595 x86/bugs: Rename various 'ia32_cap' variables to 'x86_arch_cap_msr'
    bdbbe95b536c x86/bugs: Cache the value of MSR_IA32_ARCH_CAPABILITIES
    39053a34963a x86/bugs: Fix BHI documentation
    2d003904b934 x86/bugs: Fix return type of spectre_bhi_state()
    548af6102c8e irqflags: Explicitly ignore lockdep_hrtimer_exit() argument
    052d73ca9435 x86/apic: Force native_apic_mem_read() to use the MOV instruction
    5c5fb5057933 selftests: timers: Fix abs() warning in posix_timers test
    2978ee7c973c x86/cpu: Actually turn off mitigations by default for SPECULATION_MITIGATIONS=n
    d4a2a965d630 perf/x86: Fix out of range data
    d619651ae6e3 vhost: Add smp_rmb() in vhost_enable_notify()
    8a05b6630be0 vhost: Add smp_rmb() in vhost_vq_avail_empty()
    a156f37b8e3c arm64: dts: imx8-ss-dma: fix spi lpcg indices
    e9e44fc88aba arm64: dts: imx8-ss-lsio: fix pwm lpcg indices
    16c2dd96e479 arm64: dts: imx8-ss-conn: fix usb lpcg indices
    7c4285471c03 arm64: dts: imx8-ss-dma: fix adc lpcg indices
    19a8492473b0 arm64: dts: imx8-ss-dma: fix can lpcg indices
    20ceb2b50fd5 arm64: dts: imx8qm-ss-dma: fix can lpcg indices
    04e018bd913d drm/client: Fully protect modes[] with dev->mode_config.mutex
    31806711e8a4 drm/panfrost: Fix the error path in panfrost_mmu_map_fault_addr()
    a81b2acd43e2 drm/ast: Fix soft lockup
    4d87f08eb755 drm/amdkfd: Reset GPU on queue preemption failure
    f9b31dfdc0b5 drm/i915/vrr: Disable VRR when using bigjoiner
    88685c3e7d24 drm/vmwgfx: Enable DMA mappings with SEV
    d43e11d9c7fc accel/ivpu: Fix deadlock in context_xa
    2704f4833550 scsi: sg: Avoid race in error handling & drop bogus warn
    46af9047523e scsi: sg: Avoid sg device teardown race
    d15023fb4073 kprobes: Fix possible use-after-free issue on kprobe registration
    96b7b0934a34 io_uring/net: restore msg_control on sendzc retry
    585c5732caaa btrfs: qgroup: convert PREALLOC to PERTRANS after record_root_in_trans
    363be24c010a btrfs: record delayed inode root in transaction
    14431815a4ae btrfs: qgroup: fix qgroup prealloc rsv leak in subvolume operations
    03cca8fe300f btrfs: qgroup: correctly model root qgroup rsv in convert
    732752bac3bd selftests: mptcp: use += operator to append strings
    4c6d2f453970 iommu/vt-d: Allocate local memory for page request queue
    f3ccbb6b6d52 iommu/vt-d: Fix wrong use of pasid config
    e3e1e80b692c tracing: hide unused ftrace_event_id_fops
    2fc4d53ff055 net: ena: Set tx_info->xdpf value to NULL
    354627f92679 net: ena: Use tx_ring instead of xdp_ring for XDP channel TX
    bc0ad6857c86 net: ena: Pass ena_adapter instead of net_device to ena_xmit_common()
    c891d7678f44 net: ena: Move XDP code to its new files
    5c7f2240d983 net: ena: Fix incorrect descriptor free behavior
    dc1d1e35c8fd net: ena: Wrong missing IO completions check order
    4d142dda057a net: ena: Fix potential sign extension issue
    507cc232ffe5 af_unix: Fix garbage collector racing against connect()
    301fdbaa0bba af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
    8b6c4b625826 net: dsa: mt7530: trap link-local frames regardless of ST Port State
    785510c91be3 Revert "s390/ism: fix receive message buffer allocation"
    54541e18ca9d net: sparx5: fix wrong config being used when reconfiguring PCS
    292a76473334 net/mlx5e: Do not produce metadata freelist entries in Tx port ts WQE xmit
    8777d6ad7b8a net/mlx5e: HTB, Fix inconsistencies with QoS SQs number
    f9ac93b6f3de net/mlx5e: Fix mlx5e_priv_init() cleanup flow
    690e3d91c5b1 net/mlx5: Correctly compare pkt reformat ids
    5cf5337ef701 net/mlx5: Properly link new fs rules into the tree
    cbe5852d3d8d net/mlx5: offset comp irq index in name by one
    8c91c6085847 net/mlx5: Register devlink first under devlink lock
    7a836736b653 net/mlx5: SF, Stop waiting for FW as teardown was called
    89242d9584c3 netfilter: complete validation of user input
    e2c680fce985 Bluetooth: l2cap: Don't double set the HCI_CONN_MGMT_CONNECTED bit
    72473db90900 Bluetooth: SCO: Fix not validating setsockopt user input
    cc950d584610 Bluetooth: hci_sync: Fix using the same interval and window for Coded PHY
    de3c85d321bf Bluetooth: hci_sync: Use QoS to determine which PHY to scan
    a39cc8d08270 Bluetooth: ISO: Don't reject BT_ISO_QOS if parameters are unset
    c832164549f8 Bluetooth: ISO: Align broadcast sync_timeout with connection timeout
    01b11a056667 ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr
    5fd0b8b48696 ipv4/route: avoid unused-but-set-variable warning
    8a18d2f0c214 ipv6: fib: hide unused 'pn' variable
    cc10d3eadb58 octeontx2-af: Fix NIX SQ mode and BP config
    601a89ea24d0 af_unix: Clear stale u->oob_skb.
    cba376eb036c net: ks8851: Handle softirqs at the end of IRQ thread to fix hang
    e454abe5cc17 net: ks8851: Inline ks8851_rx_skb()
    499c993ca7cc bnxt_en: Reset PTP tx_avail after possible firmware reset
    4cbcf8cffa01 bnxt_en: Fix error recovery for RoCE ulp client
    c60ed825530b bnxt_en: Fix possible memory leak in bnxt_rdma_aux_device_init()
    1e91775286f2 s390/ism: fix receive message buffer allocation
    190d9efa5773 geneve: fix header validation in geneve[6]_xmit_skb
    740ffad95ca8 block: fix q->blkg_list corruption during disk rebind
    7af5582ea672 octeontx2-pf: Fix transmit scheduler resource leak
    b143e19dc28c xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING
    80fa4fb27303 u64_stats: fix u64_stats_init() for lockdep when used repeatedly in one file
    bdce65f2a95e net: openvswitch: fix unwanted error log on timeout policy probing
    60b87b5ecbe0 scsi: qla2xxx: Fix off by one in qla_edif_app_getstats()
    8a1821645708 scsi: hisi_sas: Modify the deadline for ata_wait_after_reset()
    aebbe59bd6a7 nouveau: fix function cast warning
    42cbe04a5c77 Revert "drm/qxl: simplify qxl_fence_wait"
    9bd1891cac32 cxl/core: Fix initialization of mbox_cmd.size_out in get event
    ea16e637e868 arm64: dts: imx8-ss-conn: fix usdhc wrong lpcg clock order
    f7ef9a437950 drm/msm/dpu: don't allow overriding data from catalog
    eb0ef4118693 cxl/core/regs: Fix usage of map->reg_type in cxl_decode_regblock() before assigned
    645cef136e47 cxl/mem: Fix for the index of Clear Event Record Handle
    c0781d6898dc firmware: arm_scmi: Make raw debugfs entries non-seekable
    6f9a8a54bb8e ARM: OMAP2+: fix USB regression on Nokia N8x0
    ff75f9f74975 mmc: omap: restore original power up/down steps
    f6c34c9bb3d1 mmc: omap: fix deferred probe
    267bcd2213ac mmc: omap: fix broken slot switch lookup
    086426dc64e0 ARM: OMAP2+: fix N810 MMC gpiod table
    d73e7fb9d7c8 ARM: OMAP2+: fix bogus MMC GPIO labels on Nokia N8x0
    7611722dc5dd media: cec: core: remove length check of Timer Status
    9fdfeef4c541 PM: s2idle: Make sure CPUs will wakeup directly on resume
    3860152c104f ACPI: scan: Do not increase dep_unmet for already met dependencies
    cfd758041d8b platform/chrome: cros_ec_uart: properly fix race condition
    1e3b8874d55c drm/amd/pm: fixes a random hang in S4 for SMU v13.0.4/11
    9ab5e44b9bac Bluetooth: Fix memory leak in hci_req_sync_complete()
    a9cd92bc051f ring-buffer: Only update pages_touched when a new page is touched
    3f28d49a328f raid1: fix use-after-free for original bio in raid1_write_request()
    1808b991c790 ARM: dts: imx7s-warp: Pass OV2680 link-frequencies
    4ca2a5fb54ea batman-adv: Avoid infinite loop trying to resize local TT
    341b5e1016cf ata: libata-scsi: Fix ata_scsi_dev_rescan() error path
    99618f8a7216 ata: libata-core: Allow command duration limits detection for ACS-4 drives
    05eedb5abc07 smb3: fix Open files on server counter going negative
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: 31bf8234f80d19323f5200c3a2a3b1ba9cb30991)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
c530e42b95 linux-yocto/6.6: cfg: drop obselete options
Integrating the following commit(s) to linux-yocto/.:

1/2 [
    Author: Paul Gortmaker
    Email: paulg@kernel.org
    Subject: cgl: drop SELINUX_DISABLE option
    Date: Tue, 16 Apr 2024 12:28:43 -0400

    It was removed from mainline in v6.4 in commit f22f9aaf6c3d ("selinux:
    remove the runtime disable functionality").

    Signed-off-by: Paul Gortmaker <paulg@kernel.org>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

2/2 [
    Author: Paul Gortmaker
    Email: paulg@kernel.org
    Subject: full_nohz: remove RCU_FAST_NO_HZ gone from upstream
    Date: Tue, 16 Apr 2024 14:56:42 -0400

    In commit e2c73a6860bd ("rcu: Remove the RCU_FAST_NO_HZ Kconfig option")
    the so named option was removed from the v5.17 kernel.

    We should get it out of our active branches to prevent a warning.

    Signed-off-by: Paul Gortmaker <paulg@kernel.org>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: 8980da85dc1a55be4fcf2cb92859cc6066433531)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
84e146f626 linux-yocto/6.6: update CVE exclusions (6.6.27)
Data pulled from: https://github.com/nluedtke/linux_kernel_cves

    1/1 [
        Author: Nicholas Luedtke
        Email: nicholas.luedtke@uwalumni.com
        Subject: Update 8Apr24
        Date: Tue, 9 Apr 2024 18:19:11 -0400

    ]

(From OE-Core rev: d690b99cb05cc2f2b009083361fe0eec105b9a32)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
0c8174e4fe linux-yocto/6.6: update to v6.6.27
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    5e828009c8b3 Linux 6.6.27
    5c1dc516f52a drm: Check polling initialized before enabling in drm_helper_probe_single_connector_modes
    14ac934db851 Revert "drm/amd/amdgpu: Fix potential ioremap() memory leaks in amdgpu_device_init()"
    91fb03cea0d5 VMCI: Fix possible memcpy() run-time warning in vmci_datagram_invoke_guest_handler()
    b456cb98cbad net: mpls: error out if inner headers are not set
    83890a450378 Bluetooth: btintel: Fixe build regression
    ce64c26ba842 platform/x86: intel-vbtn: Update tablet mode switch at end of probe
    300a2b9c2b28 randomize_kstack: Improve entropy diffusion
    41671f0c0182 media: mediatek: vcodec: adding lock to protect encoder context list
    0a2dc707aa42 media: mediatek: vcodec: adding lock to protect decoder context list
    ec25fc3c2c1e media: mediatek: vcodec: Fix oops when HEVC init fails
    a445eb1f630f selftests: mptcp: display simult in extra_msg
    9dff96b8b3a4 gcc-plugins/stackleak: Avoid .head.text section
    7365444cbd8f ALSA: hda/realtek: Add quirks for some Clevo laptops
    3d4b909704bf fbmon: prevent division by zero in fb_videomode_from_videomode()
    5e11bacff08b drivers/nvme: Add quirks for device 126f:2262
    19e525ebbb88 modpost: fix null pointer dereference
    21162ad2de74 io_uring: clear opcode specific data for an early failure
    89f0cf6ac620 fbdev: viafb: fix typo in hw_bitblt_1 and hw_bitblt_2
    4cd44fd34545 x86/xen: attempt to inflate the memory balloon on PVH
    9afc9fde538b ASoC: soc-core.c: Skip dummy codec when adding platforms
    d009236a37ae thermal/of: Assume polling-delay(-passive) 0 when absent
    6712b758698b ASoC: amd: yc: Fix non-functional mic on ASUS M7600RE
    fa5c8f2c88a9 usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined
    55b724b8f7ee usb: typec: tcpci: add generic tcpci fallback compatible
    d8518f05ee82 thunderbolt: Keep the domain powered when USB4 port is in redrive mode
    266f403ec475 usb: typec: ucsi: Limit read size on v1.2
    0d52e1853bc1 usb: gadget: uvc: mark incomplete frames with UVC_STREAM_ERR
    4b1f991bad56 kernfs: RCU protect kernfs_nodes and avoid kernfs_idr_lock in kernfs_find_and_get_node_by_id()
    ac191bcb0fe0 bus: mhi: host: Add MHI_PM_SYS_ERR_FAIL state
    bb72eb818d07 tools: iio: replace seekdir() in iio_generic_buffer
    fb8579acacd0 ring-buffer: use READ_ONCE() to read cpu_buffer->commit_page in concurrent environment
    80f175d0f352 Input: xpad - add support for Snakebyte GAMEPADs
    fd067c8b3f86 ktest: force $buildonly = 1 for 'make_warnings_file' test type
    60668872cca8 ALSA: hda/realtek: Add quirk for Lenovo Yoga 9 14IMH9
    08aba129f542 perf/x86/amd/lbr: Discard erroneous branch entries
    a9852cf5d7a1 platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet
    ed2f8b713a45 Input: allocate keycode for Display refresh rate toggle
    dddc9f40ac8e Input: imagis - use FIELD_GET where applicable
    2e90774fbbe0 RDMA/cm: add timeout to cm_destroy_id wait
    5f7fd6aa4c48 block: prevent division by zero in blk_rq_stat_sum()
    0662deae8bb8 drivers/perf: hisi: Enable HiSilicon Erratum 162700402 quirk for HIP09
    44723bd493cd input/touchscreen: imagis: Correct the maximum touch area value
    d0e2f7ae04bb libperf evlist: Avoid out-of-bounds access
    a822f30afada Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default"
    846611299931 PCI: Disable D3cold on Asus B1400 PCI-NVMe bridge
    73bdf8d41cb5 SUNRPC: increase size of rpc_wait_queue.qlen from unsigned short to unsigned int
    3d1b47e3a935 drm: Check output polling initialized before disabling
    09d4600b9e99 drm/amd/amdgpu: Fix potential ioremap() memory leaks in amdgpu_device_init()
    0f09e89e667e HID: input: avoid polling stylus battery on Chromebook Pompom
    30930f0f4674 i2c: designware: Fix RX FIFO depth define on Wangxun 10Gb NIC
    cd0a1835bf84 accel/habanalabs: increase HL_MAX_STR to 64 bytes to avoid warnings
    953fee8160f1 drm/amd/display: Fix nanosec stat overflow
    a5e76867714b ext4: forbid commit inconsistent quota data when errors=remount-ro
    58546b2aa263 ext4: add a hint for block bitmap corrupt state in mb_groups
    bd6b1c418bd6 ASoC: Intel: avs: Populate board selection with new I2S entries
    f4a345e0aaf4 ALSA: firewire-lib: handle quirk to calculate payload quadlets as data block counter
    cb9420142e50 media: sta2x11: fix irq handler cast
    214a6c4a28c1 Julia Lawall reported this null pointer dereference, this should fix it.
    24e5e1eff8ba rcu-tasks: Repair RCU Tasks Trace quiescence check
    4d58c9fb45c7 rcu/nocb: Fix WARN_ON_ONCE() in the rcu_nocb_bypass_lock()
    f4b6caeb3cfe ASoC: Intel: common: DMI remap for rebranded Intel NUC M15 (LAPRC710) laptops
    d43a90294afe isofs: handle CDs with bad root inode but good Joliet root directory
    07a2aa674fca scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc()
    89e8524135a3 sysv: don't call sb_bread() with pointers_lock held
    56f5e36dace6 pinctrl: renesas: checker: Limit cfg reg enum checks to provided IDs
    852ad6a4f55c drm/ttm: return ENOSPC from ttm_bo_mem_space v3
    02a3b0d58217 ASoC: SOF: amd: Optimize quirk for Valve Galileo
    f19ad40352a8 drm: panel-orientation-quirks: Add quirk for GPD Win Mini
    eafaec40d00f Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails
    d6b2fe2db1d0 drm/vc4: don't check if plane->state->fb == state->fb
    8677a14a8821 Bluetooth: Add new quirk for broken read key length on ATS2851
    6d0950cf4313 Bluetooth: btmtk: Add MODULE_FIRMWARE() for MT7922
    ffdca0a62aba Bluetooth: btintel: Fix null ptr deref in btintel_read_version
    a2e6bffc0388 net/smc: reduce rtnl pressure in smc_pnet_create_pnetids_list()
    c926393dc344 ice: use relative VSI index for VFs instead of PF VSI number
    c1363ed8867b btrfs: send: handle path ref underflow in header iterate_inode_ref()
    30237d6764fe btrfs: export: handle invalid inode or root reference in btrfs_get_parent()
    0d23b34c68c4 btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks()
    5d7a8585fbb3 wifi: cfg80211: check A-MSDU format more carefully
    95eec168c288 wifi: iwlwifi: Add missing MODULE_FIRMWARE() for *.pnvm
    2618ab102c80 overflow: Allow non-type arg to type_max() and type_min()
    3ba4aceb68f0 cpufreq: Don't unregister cpufreq cooling on CPU hotplug
    138fdeac75fb wifi: ath11k: decrease MHI channel buffer length to 8KB
    4031b72ca747 dma-direct: Leak pages on dma_set_decrypted() failure
    9470114dfaf4 net: pcs: xpcs: Return EINVAL in the internal methods
    cf21eb6a9fc2 tools/power x86_energy_perf_policy: Fix file leak in get_pkg_num()
    ec7256887d07 pstore/zone: Add a null pointer check to the psz_kmsg_read
    a217b6135dab ACPI: x86: Move acpi_quirk_skip_serdev_enumeration() out of CONFIG_X86_ANDROID_TABLETS
    1feb6fcfbac3 wifi: mt76: mt7996: add locking for accessing mapped registers
    1152c2cd38e4 wifi: mt76: mt7996: disable AMSDU for non-data frames
    891fd07da87b wifi: mt76: mt7915: add locking for accessing mapped registers
    c39e75fae05c wifi: brcmfmac: Add DMI nvram filename quirk for ACEPC W5 Pro
    5dc5f8c705c3 firmware: tegra: bpmp: Return directly after a failed kzalloc() in get_filename()
    1b2b26595bb0 net: skbuff: add overflow debug check to pull/push helpers
    b8dccb25c5dc ionic: set adminq irq affinity
    9d3f959b4266 pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix domain
    ce666cecc09c pmdomain: ti: Add a null pointer check to the omap_prm_domain_init
    a7b862abe484 net: add netdev_lockdep_set_classes() to virtual drivers
    fc1d1ca46d01 arm64: dts: rockchip: fix rk3399 hdmi ports node
    5c014f039544 arm64: dts: rockchip: fix rk3328 hdmi ports node
    bb8ca341f889 ARM: dts: rockchip: fix rk322x hdmi ports node
    c795042eea78 ARM: dts: rockchip: fix rk3288 hdmi ports node
    3f0a74728170 cpuidle: Avoid potential overflow in integer multiplication
    750d44684a95 panic: Flush kernel log buffer at the end
    a2e14cc2da40 printk: For @suppress_panic_printk check for other CPU in panic
    dbd3c05d71e1 wifi: iwlwifi: pcie: Add the PCI device id for new hardware
    dae70a575656 VMCI: Fix memcpy() run-time warning in dg_dispatch_as_host()
    0a6def05767c wifi: rtw89: pci: enlarge RX DMA buffer to consider size of RX descriptor
    7a71f61ebf95 net: phy: phy_device: Prevent nullptr exceptions on ISR
    2485beea14b3 net: stmmac: dwmac-starfive: Add support for JH7100 SoC
    3dac6ab4d977 bnx2x: Fix firmware version string character counts
    b34d64e9aa55 wifi: rtw89: fix null pointer access when abort scan
    15df1981f0ed wifi: ath9k: fix LNA selection in ath_ant_try_scan()
    315eb3c2df7e amdkfd: use calloc instead of kzalloc to avoid integer overflow
    0ccfb8e07e79 Linux 6.6.26
    6d9ef0c36980 x86: set SPECTRE_BHI_ON as default
    cb238e95ee72 KVM: x86: Add BHI_NO
    1c42ff893a8f x86/bhi: Mitigate KVM by default
    d414b401f953 x86/bhi: Add BHI mitigation knob
    118794d0a572 x86/bhi: Enumerate Branch History Injection (BHI) bug
    c6e3d590d051 x86/bhi: Define SPEC_CTRL_BHI_DIS_S
    eb36b0dce213 x86/bhi: Add support for clearing branch history at syscall entry
    eb0f175b3428 x86/syscall: Don't force use of indirect calls for system calls
    108feca9e47d x86/bugs: Change commas to semicolons in 'spectre_v2' sysfs file
    046545314c79 x86/boot: Move mem_encrypt= parsing to the decompressor
    ccde70aa54c4 x86/efistub: Remap kernel text read-only before dropping NX attribute
    56408ed92903 x86/sev: Move early startup code into .head.text section
    af90ced75242 x86/sme: Move early SME kernel encryption handling into .head.text
    dc4cbf9e2df4 efi/libstub: Add generic support for parsing mem_encrypt=
    5447cb97e9b2 x86/head/64: Move the __head definition to <asm/init.h>
    876941f533e7 bpf: support deferring bpf_link dealloc to after RCU grace period
    771690b7c31d bpf: put uprobe link's path and task in release callback
    43eca11b7c73 mptcp: don't account accept() of non-MPC client as fallback to TCP
    12f353fac65d mptcp: don't overwrite sock_ops in mptcp_is_tcpsk()
    5b5ff82491a1 selftests: mptcp: connect: fix shellcheck warnings
    e4a449368a2c of: module: prevent NULL pointer dereference in vsnprintf()
    37b81aed6468 Revert "x86/mpparse: Register APIC address only once"
    a7ff84a6fe5a drm/i915/gt: Enable only one CCS for compute workload
    726ff623869d drm/i915/gt: Do not generate the command streamer for all the CCS
    c1f7ce2a11a9 drm/i915/gt: Disable HW load balancing for CCS
    2cfff2173213 smb: client: fix potential UAF in cifs_signal_cifsd_for_reconnect()
    aa582b33f944 smb: client: fix potential UAF in smb2_is_network_name_deleted()
    0a15ba88a32f smb: client: fix potential UAF in is_valid_oplock_break()
    f92739fdd452 smb: client: fix potential UAF in smb2_is_valid_lease_break()
    21fed37d2bdc smb: client: fix potential UAF in smb2_is_valid_oplock_break()
    10e17ca4000e smb: client: fix potential UAF in cifs_dump_full_key()
    c3cf8b74c579 smb: client: fix potential UAF in cifs_stats_proc_show()
    cf03020c56d3 smb: client: fix potential UAF in cifs_stats_proc_write()
    a65f2b56334b smb: client: fix potential UAF in cifs_debug_files_proc_show()
    6f17163b9339 smb3: retrying on failed server close
    ba55f8a995f6 smb: client: serialise cifs_construct_tcon() with cifs_mount_mutex
    9b2ee27e8de5 smb: client: handle DFS tcons in cifs_construct_tcon()
    00effef72c98 riscv: process: Fix kernel gp leakage
    7a82963245eb riscv: Fix spurious errors from __get/put_kernel_nofault
    3dcb2223b973 s390/entry: align system call table on 8 bytes
    782baf52e7cb selftests/mm: include strings.h for ffsl
    43fad1d0284d mm/secretmem: fix GUP-fast succeeding on secretmem folios
    8a44119ca445 arm64/ptrace: Use saved floating point state type to determine SVE layout
    92f32f108693 perf/x86/intel/ds: Don't clear ->pebs_data_cfg for the last PEBS event
    453b5f2dec27 x86/coco: Require seeding RNG with RDRAND on CoCo systems
    5a02df3e9247 x86/mce: Make sure to grab mce_sysfs_mutex in set_bank()
    51b7841f3fe8 x86/mm/pat: fix VM_PAT handling in COW mappings
    801c8b8ec5bf of: dynamic: Synchronize of_changeset_destroy() with the devlink removals
    dfa655727688 driver core: Introduce device_link_wait_removal()
    65938e81df21 io_uring/kbuf: hold io_buffer_list reference over mmap
    6b9d49bcd97b io_uring: use private workqueue for exit work
    b392402d29ab io_uring/kbuf: protect io_buffer_list teardown with a reference
    4c0a5da0e70e io_uring/kbuf: get rid of bl->is_ready
    d6e03f6d8bcc io_uring/kbuf: get rid of lower BGID lists
    781477d729be ALSA: hda/realtek: Update Panasonic CF-SZ6 quirk to support headset with microphone
    04d78aa05ae4 ALSA: hda/realtek - Fix inactive headset mic jack
    67c477f3201c ksmbd: do not set SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1
    a637fabac554 ksmbd: validate payload size in ipc response
    a06562fd4ce2 ksmbd: don't send oplock break if rename fails
    2f0262ac3a8c gpio: cdev: fix missed label sanitizing in debounce_setup()
    d9f0804ab0b8 gpio: cdev: check for NULL labels when sanitizing them for irqs
    63bd08629aee x86/retpoline: Add NOENDBR annotation to the SRSO dummy return thunk
    ac522af8db5c ice: fix typo in assignment
    9d60e8ec996f nfsd: hold a lighter-weight client reference over CB_RECALL_ANY
    6e307a6d9eb4 riscv: Disable preemption when using patch_map()
    1ba1291172f9 SUNRPC: Fix a slow server-side memory leak with RPC-over-TCP
    e12149dd9ba2 ASoC: SOF: amd: fix for false dsp interrupts
    cbd080c30834 ata: sata_mv: Fix PCI device ID table declaration compilation warning
    4b31a226097c spi: mchp-pci1xxx: Fix a possible null pointer dereference in pci1xxx_spi_probe
    0fdada1ef5b1 cifs: Fix caching to try to do open O_WRONLY as rdwr on server
    0f28afed9f9d Revert "ALSA: emu10k1: fix synthesizer sample playback position and caching"
    f3e692c8c24a scsi: sd: Unregister device if device_add_disk() failed in sd_probe()
    56de23eac65f scsi: mylex: Fix sysfs buffer lengths
    4cad40d93665 ata: sata_sx4: fix pdc20621_get_from_dimm() on 64-bit
    fce7a547b9c8 regmap: maple: Fix uninitialized symbol 'ret' warnings
    04b52388c46d ASoC: amd: acp: fix for acp_init function error handling
    3d3e148c7576 spi: s3c64xx: Use DMA mode from fifo size
    5448a99c8096 spi: s3c64xx: determine the fifo depth only once
    f8a6edd44903 spi: s3c64xx: allow full FIFO masks
    6f9d907bee2a spi: s3c64xx: define a magic value
    3fa0085f1052 spi: s3c64xx: remove else after return
    56aeaed8c822 spi: s3c64xx: explicitly include <linux/bits.h>
    0df4616ef533 spi: s3c64xx: sort headers alphabetically
    bb3ee5fddac1 spi: s3c64xx: Extract FIFO depth calculation to a dedicated macro
    80ca762f1bdd ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw
    229c761b198e ASoC: rt722-sdca-sdw: fix locking sequence
    1064108334bb ASoC: rt712-sdca-sdw: fix locking sequence
    3bfbc530a658 ASoC: rt711-sdw: fix locking sequence
    53c8045621c1 ASoC: rt711-sdca: fix locking sequence
    8eea5ae23bab ASoC: rt5682-sdw: fix locking sequence
    cc4d9f0597ee drm/prime: Unbreak virtgpu dma-buf export
    692a51bebf45 nouveau/uvmm: fix addr/range calcs for remap operations
    9e3941c90e46 drm/panfrost: fix power transition timeout warnings
    4930d7a414c1 ALSA: hda: cs35l56: Add ACPI device match tables
    3af6c5ac72dc regmap: maple: Fix cache corruption in regcache_maple_drop()
    4e73748d5954 RISC-V: Update AT_VECTOR_SIZE_ARCH for new AT_MINSIGSTKSZ
    b2ddeb7fb322 drivers/perf: riscv: Disable PERF_SAMPLE_BRANCH_* while not supported
    3e1a29fb81c2 ASoC: wm_adsp: Fix missing mutex_lock in wm_adsp_write_ctl()
    40613ea1d5ea 9p: Fix read/write debug statements to report server reply
    f4a192cd7b25 fs/pipe: Fix lockdep false-positive in watchqueue pipe_write()
    ab7a6fe9c1b5 KVM: SVM: Add support for allowing zero SEV ASIDs
    79b79ea2b3bf KVM: SVM: Use unsigned integers when dealing with ASIDs
    0a583b7ebb6f net: ravb: Always update error counters
    1dd9204143d1 net: ravb: Always process TX descriptor ring
    a9fb2f7463cd net: ravb: Let IP-specific receive function to interrogate descriptors
    199a1314ef78 e1000e: move force SMBUS from enable ulp function to avoid PHY loss issue
    eb96a5c02553 e1000e: Minor flow correction in e1000_shutdown function
    1d16cd91cd31 e1000e: Workaround for sporadic MDI error on Meteor Lake systems
    d5752c7bb1b2 intel: legacy: field get conversion
    e383353b7992 intel: add bit macro includes where needed
    e77220eec3ee i40e: Remove circular header dependencies and fix headers
    59a9de1a9430 i40e: Split i40e_osdep.h
    2ee5326d32c5 i40e: Move memory allocation structures to i40e_alloc.h
    0ed115020ac4 i40e: Simplify memory allocation functions
    0c52a50aec50 virtchnl: Add header dependencies
    45116a7c2138 i40e: Refactor I40E_MDIO_CLAUSE* macros
    f629cf15dcde i40e: Remove back pointer from i40e_hw structure
    66ca011a5df5 i40e: Enforce software interrupt during busy-poll exit
    e6d25dbd9243 i40e: Remove _t suffix from enum type names
    3da10e91ecd2 drm/amd: Flush GFXOFF requests in prepare stage
    da67a1139f05 drm/amd: Add concept of running prepare_suspend() sequence for IP blocks
    8b5f720486ca drm/amd: Evict resources during PM ops prepare() callback
    4356a2c3f296 drm/amd/display: Prevent crash when disable stream
    8dc9a27589a9 drm/amd/display: Fix DPSTREAM CLK on and off sequence
    113b12e16488 usb: typec: ucsi: Fix race between typec_switch and role_switch
    0dcf573f9977 i40e: fix vf may be used uninitialized in this function warning
    89e29416cf6b i40e: fix i40e_count_filters() to count only active/new filters
    76c39cf84cd2 octeontx2-af: Add array index check
    43b69da260af octeontx2-pf: check negative error code in otx2_open()
    b08b0c7a66c9 octeontx2-af: Fix issue with loading coalesced KPU profiles
    03b6f3692bae udp: prevent local UDP tunnel packets from being GROed
    2a1b61d0cb9b udp: do not transition UDP GRO fraglist partial checksums to unnecessary
    3001e7aa43d6 udp: do not accept non-tunnel GSO skbs landing in a tunnel
    a5eae74f39c0 r8169: skip DASH fw status checks when DASH is disabled
    36a1cb0371aa mlxbf_gige: stop interface during shutdown
    f2dd75e57285 ipv6: Fix infinite recursion in fib6_dump_done().
    74204bf9050f ax25: fix use-after-free bugs caused by ax25_ds_del_timer
    8b88752d2b12 tcp: Fix bind() regression for v6-only wildcard and v4(-mapped-v6) non-wildcard addresses.
    690e877ca2b6 selftests: reuseaddr_conflict: add missing new line at the end of the output
    4e3fdeecec57 erspan: make sure erspan_base_hdr is present in skb->head
    a03e138da771 i40e: Fix VF MAC filter removal
    b9bd1498cdce ice: fix enabling RX VLAN filtering
    fc126c1d51e9 gro: fix ownership transfer
    39864092cff3 selftests: net: gro fwd: update vxlan GRO test expectations
    23e1c6866e22 net: dsa: mv88e6xxx: fix usable ports on 88e6020
    95c1016a2d92 net: phy: micrel: Fix potential null pointer dereference
    f996e5ecf07f net: fec: Set mac_managed_pm during probe
    22a44eeef781 net: txgbe: fix i2c dev name cannot match clkdev
    1e304328d9c3 net: phy: micrel: lan8814: Fix when enabling/disabling 1-step timestamping
    784a65669720 net: stmmac: fix rx queue priority assignment
    c040b99461a5 net/sched: fix lockdep splat in qdisc_tree_reduce_backlog()
    f4d1fa512b2a net: dsa: sja1105: Fix parameters order in sja1110_pcs_mdio_write_c45()
    729ad2ac2a2c net/sched: act_skbmod: prevent kernel-infoleak
    3dcaf25993a2 KVM: arm64: Ensure target address is granule-aligned for range TLBI
    3ec21104c881 x86/retpoline: Do the necessary fixup to the Zen3/4 srso return thunk for !SRSO
    668b3074aa14 bpf, sockmap: Prevent lock inversion deadlock in map delete elem
    55fabde8d9f4 vboxsf: Avoid an spurious warning if load_nls_xxx() fails
    81d51b9b7c95 netfilter: validate user input for expected length
    9627fd0c6ea1 netfilter: nf_tables: discard table flag update with pending basechain deletion
    8b891153b2e4 netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get()
    333b5085522c netfilter: nf_tables: flush pending destroy work before exit_net release
    420132bee3d0 netfilter: nf_tables: reject new basechain after table flag update
    e40f32f17642 x86/bugs: Fix the SRSO mitigation on Zen3/4
    93eae88e34f6 x86/nospec: Refactor UNTRAIN_RET[_*]
    820a3626f3d7 x86/srso: Disentangle rethunk-dependent options
    6b10edf91640 x86/srso: Improve i-cache locality for alias mitigation
    065012bb7777 vsock/virtio: fix packet delivery to tap device
    ca58927b0038 net: mana: Fix Rx DMA datasize and skb_over_panic
    426366d577e9 net: usb: ax88179_178a: avoid the interface always configured as random address
    92309bed3c5f net/rds: fix possible cp null dereference
    27aa3e4b3088 xen-netfront: Add missing skb_mark_for_recycle
    117eed2997bc selftests: mptcp: join: fix dev in check_endpoint
    8038ee3c3e5b netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path
    b0b36dcbe0f2 netfilter: nf_tables: release batch on table validation from abort path
    d75632d0db3c Bluetooth: Fix TOCTOU in HCI debugfs implementation
    4a32840119d0 Bluetooth: hci_event: set the conn encrypted before conn establishes
    57e089d33b96 Bluetooth: add quirk for broken address properties
    1622e563b819 Bluetooth: qca: fix device-address endianness
    b99d0617b698 arm64: dts: qcom: sc7180-trogdor: mark bluetooth address as broken
    417c6cc9ef8c Revert "Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT"
    3f9d57c77165 x86/bpf: Fix IP after emitting call depth accounting
    4d47169ab691 x86/cpufeatures: Add CPUID_LNX_5 to track recently added Linux-defined word
    b9906101f894 r8169: fix issue caused by buggy BIOS on certain boards with RTL8168d
    477ed6789eb9 selinux: avoid dereference of garbage after mount failure
    9e2af26c29c6 KVM: arm64: Fix host-programmed guest events in nVHE
    651bf5b1d070 RISC-V: KVM: Fix APLIC in_clrip[x] read emulation
    200cc2c71841 RISC-V: KVM: Fix APLIC setipnum_le/be write emulation
    21bc9b158983 gpio: cdev: sanitize the label before requesting the interrupt
    a2671601fa02 modpost: do not make find_tosym() return NULL
    2bc92c61c541 modpost: Optimize symbol search from linear to binary search
    55ed6c477872 perf/x86/amd/lbr: Use freeze based on availability
    56e7373f9a67 x86/cpufeatures: Add new word for scattered features
    69fe5f177ad3 perf/x86/amd/core: Update and fix stalled-cycles-* events for Zen 2 and later
    d2be2f872fe7 x86/CPU/AMD: Add X86_FEATURE_ZEN1
    54273025be0c x86/CPU/AMD: Get rid of amd_erratum_1054[]
    824549816609 x86/CPU/AMD: Move the DIV0 bug detection to the Zen1 init function
    702a65272da6 x86/CPU/AMD: Move Zenbleed check to the Zen2 init function
    2577e2a7cae0 x86/CPU/AMD: Move erratum 1076 fix into the Zen1 init function
    eae590201d4a x86/CPU/AMD: Carve out the erratum 1386 fix
    936e59cb56ea x86/CPU/AMD: Add ZenX generations flags
    49d640d2946c btrfs: fix race when detecting delalloc ranges during fiemap
    8cc484e85e0c btrfs: ensure fiemap doesn't race with writes when FIEMAP_FLAG_SYNC is given
    fbc0a833c055 Revert "x86/mm/ident_map: Use gbpages only where full GB page should be mapped."
    907835e6dee6 mm/treewide: replace pud_large() with pud_leaf()
    7cd73d90856d dm integrity: fix out-of-range warning
    2564623ee0da drm/i915/mtl: Update workaround 14018575942
    798781b43194 drm/i915/xelpg: Extend some workarounds/tuning to gfx version 12.74
    338db8193cb2 drm/i915/mtl: Update workaround 14016712196
    ec84b2a44b05 drm/i915: Replace several IS_METEORLAKE with proper IP version checks
    b3749611a5e5 drm/i915: Eliminate IS_MTL_GRAPHICS_STEP
    18e77951e14a drm/i915/xelpg: Call Xe_LPG workaround functions based on IP version
    67f7fba8a086 drm/i915: Consolidate condition for Wa_22011802037
    6b25099eea4b drm/i915: Tidy workaround definitions
    0a9901fdb7bb drm/i915/dg2: Drop pre-production GT workarounds
    f4877225313d inet: inet_defrag: prevent sk release while still in use
    54720f68c4ad Octeontx2-af: fix pause frame configuration in GMP mode
    74a78a00db8f net: lan743x: Add set RFE read fifo threshold for PCI1x1x chips
    4bb7ad116be7 net: bcmasp: Bring up unimac after PHY link up
    cf893953633d netfilter: nf_tables: skip netdev hook unregistration if table is dormant
    2d0d1abe119a netfilter: nf_tables: reject table flag and netdev basechain updates
    cddd0480a682 netfilter: nf_tables: reject destroy command to remove basechain hooks
    614bc8c71ed5 cifs: Fix duplicate fscache cookie warnings
    3f0784b2f1eb bpf: Protect against int overflow for stack access size
    867a2f598af6 mlxbf_gige: call request_irq() after NAPI initialized
    f1b7f14130d7 tls: get psock ref after taking rxlock to avoid leak
    f19e995b4813 tls: adjust recv return with async crypto and failed copy to userspace
    dc4bce20fa9e tls: recv: process_rx_list shouldn't use an offset with kvec
    872f574f8860 net: hns3: mark unexcuted loopback test result as UNEXECUTED
    1b550dae5590 net: hns3: fix kernel crash when devlink reload during pf initialization
    b033da1461c1 net: hns3: fix index limit to support all queue stats
    77ffc72b497e ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields()
    7fb8b3de7f22 selftests: vxlan_mdb: Fix failures with old libnet
    2e22c9cb6187 net: wwan: t7xx: Split 64bit accesses to fix alignment issues
    c1ae4d1e76ea tcp: properly terminate timers for kernel sockets
    984c3d962c9e net: hsr: hsr_slave: Fix the promiscuous mode in offload mode
    21dea1475fd4 s390/qeth: handle deferred cc1
    1b1c0f6ce790 igc: Remove stale comment about Tx timestamping
    4465b15ae5c5 ixgbe: avoid sleeping allocation in ixgbe_ipsec_vf_add_sa()
    e40a02f06ceb ice: fix memory corruption bug with suspend and rebuild
    feddf6c09c44 ice: realloc VSI stats arrays
    493b29930f66 ice: Refactor FW data type and fix bitmap casting issue
    0172edc572b0 ALSA: hda: cs35l56: Set the init_done flag before component_add()
    dc1ec9c5efec wifi: iwlwifi: mvm: include link ID when releasing frames
    13fd96c97596 wifi: iwlwifi: disable multi rx queue for 9000
    c0a40f2f8eba wifi: iwlwifi: mvm: rfi: fix potential response leaks
    84d30c56786a mlxbf_gige: stop PHY during open() error paths
    5c05bdd95f0e tools: ynl: fix setting presence bits in simple nests
    a946ebee45b0 nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet
    087dc50d8baf arm64: bpf: fix 32bit unconditional bswap
    156c226cbbdc dma-buf: Fix NULL pointer dereference in sanitycheck()
    aeecb678ec36 bpf, arm64: fix bug in BPF_LDX_MEMSX
    c3062bdb859b s390/bpf: Fix bpf_plt pointer arithmetic
    54d38a5ca0f7 scripts/bpf_doc: Use silent mode when exec make cmd
    cc696ce93089 drm/i915: Pre-populate the cursor physical dma address
    2c07e2437a3e drm/i915/display: Use i915_gem_object_get_dma_address to get dma address
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: 1a9a8356aef87e3f24f61f918aff2c8388955e0d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
183bc9b701 linux-yocto/6.6: nft: enable veth
Integrating the following commit(s) to linux-yocto/.:

1/1 [
    Author: Khem Raj
    Email: raj.khem@gmail.com
    Subject: nft_test.cfg: Enable CONFIG_VETH
    Date: Wed, 10 Apr 2024 16:11:47 -0700

    nftable ptests do create interfaces of veth type and this
    feature would be needed to enable those tests

    e.g. from tests/shell/testcases/packetpath/vlan_8021ad_tag

    ip link add veth0 netns $ns1 type veth peer name veth0 netns $ns2

    Signed-off-by: Khem Raj <raj.khem@gmail.com>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

(From OE-Core rev: 95caeaa193239784481cd9e69870b41431e1a974)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
d0acf5ed02 linux-yocto/6.6: update CVE exclusions (6.6.25)
Data pulled from: https://github.com/nluedtke/linux_kernel_cves

    1/1 [
        Author: Nicholas Luedtke
        Email: nicholas.luedtke@uwalumni.com
        Subject: Update 25Feb24
        Date: Sun, 25 Feb 2024 07:03:08 -0500

    ]

(From OE-Core rev: 70bf42cc53f04bf8137092dfc175cb57001dbb16)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
37dd87625a linux-yocto/6.6: update to v6.6.25
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    e475741af1eb Linux 6.6.25
    a99d7274a2b1 Revert "workqueue.c: Increase workqueue name length"
    d8354f268d92 Revert "workqueue: Move pwq->max_active to wq->max_active"
    35bf38dd162b Revert "workqueue: Factor out pwq_is_empty()"
    957578ec33d4 Revert "workqueue: Replace pwq_activate_inactive_work() with [__]pwq_activate_work()"
    5debbff9539c Revert "workqueue: Move nr_active handling into helpers"
    e3ee73b57a2e Revert "workqueue: Make wq_adjust_max_active() round-robin pwqs while activating"
    f3c11cb27a8b Revert "workqueue: RCU protect wq->dfl_pwq and implement accessors for it"
    bfb429f37052 Revert "workqueue: Introduce struct wq_node_nr_active"
    6741dd3fd38e Revert "workqueue: Implement system-wide nr_active enforcement for unbound workqueues"
    a75ac2693d73 Revert "workqueue: Don't call cpumask_test_cpu() with -1 CPU in wq_update_node_max_active()"
    7bff1820bcfa Revert "workqueue: Shorten events_freezable_power_efficient name"
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: 7a0a9a648d2e511d04c02aefc58448bed7b7b93b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
57b928ea98 linux-yocto/6.6: update CVE exclusions (6.6.24)
Data pulled from: https://github.com/nluedtke/linux_kernel_cves

    1/1 [
        Author: Nicholas Luedtke
        Email: nicholas.luedtke@uwalumni.com
        Subject: Update 25Feb24
        Date: Sun, 25 Feb 2024 07:03:08 -0500

    ]

(From OE-Core rev: d941200509cd215e1c8cde5be9875b5e61ec76ce)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Bruce Ashfield
bc228f3e9c linux-yocto/6.6: update to v6.6.24
Updating linux-yocto/6.6 to the latest korg -stable release that comprises
the following commits:

    9467d7a12f97 Linux 6.6.24
    e87e08c94c95 drm/amdgpu: fix use-after-free bug
    3a9569441b47 tools/resolve_btfids: fix build with musl libc
    4338e40da808 x86/sev: Skip ROM range scans and validation for SEV-SNP guests
    2048ff503f43 scsi: libsas: Fix disk not being scanned in after being removed
    f23db7579283 scsi: libsas: Add a helper sas_get_sas_addr_and_dev_type()
    76edb986c44b scsi: lpfc: Correct size for wqe for memset()
    ac5b18f52858 scsi: lpfc: Correct size for cmdwqe/rspwqe for memset()
    ff3cdff7c897 usb: dwc3: pci: Drop duplicate ID
    70977e7d5e5f Revert "x86/bugs: Use fixed addressing for VERW operand"
    367b4ce0d74d x86/bugs: Use fixed addressing for VERW operand
    a492d6dad9af scsi: qla2xxx: Delay I/O Abort on PCI error
    29520a334f3e scsi: qla2xxx: Change debug message during driver unload
    f85af9f1aa5e scsi: qla2xxx: Fix double free of fcport
    f14cee7a882c scsi: qla2xxx: Fix double free of the ha->vp_map pointer
    8de1584ec4fe scsi: qla2xxx: Fix command flush on cable pull
    adc9702642a0 scsi: qla2xxx: NVME|FCP prefer flag not being honored
    b31a120b81ac scsi: qla2xxx: Update manufacturer detail
    be895682c507 scsi: qla2xxx: Split FCE|EFT trace control
    8ec0d55020f6 scsi: qla2xxx: Fix N2N stuck connection
    ef23850940d9 scsi: qla2xxx: Prevent command send on chip reset
    db4aaf281a5b usb: typec: ucsi: Clear UCSI_CCI_RESET_COMPLETE before reset
    1f510af8dbc3 usb: typec: ucsi_acpi: Refactor and fix DELL quirk
    5857494b5056 usb: typec: ucsi: Ack unsupported commands
    68f57d013827 usb: typec: ucsi: Clear EVENT_PENDING under PPM lock
    c708b704c26d usb: typec: Return size of buffer if pd_set operation succeeds
    99731076722e usb: udc: remove warning when queue disabled ep
    3e417f31b06a usb: dwc2: gadget: LPM flow fix
    f047361fee44 usb: dwc2: gadget: Fix exiting from clock gating
    8d310e5d702c usb: dwc2: host: Fix ISOC flow in DDMA mode
    96dff759ef7d usb: dwc2: host: Fix hibernation flow
    ba2951ec82e8 usb: dwc2: host: Fix remote wakeup from hibernation
    f51849833705 USB: core: Fix deadlock in port "disable" sysfs attribute
    8dbc001bba86 USB: core: Add hub_get() and hub_put() routines
    122a06f1068b USB: core: Fix deadlock in usb_deauthorize_interface()
    fd2304f4c0ae usb: dwc3: Properly set system wakeup
    d12af9a1c59e staging: vc04_services: fix information leak in create_component()
    98592a49956c staging: vc04_services: changen strncpy() to strscpy_pad()
    d4c34782b6d7 scsi: core: Fix unremoved procfs host directory regression
    a1f506af7ffe scsi: sd: Fix TCG OPAL unlock on system resume
    61d4787692c1 ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
    66aa5d95ea8c vfio/pds: Make sure migration file isn't accessed after reset
    2ceddecdd0ef drm/amd/display: Clear OPTC mem select on disable
    6a1cb68b9810 drm/amd/display: Disconnect phantom pipe OPP from OPTC being disabled
    ae62f1dde66a drm/amd/display: Fix hang/underflow when transitioning to ODM4:1
    ce748df0d570 USB: UAS: return ENODEV when submit urbs fail with device not attached
    da3b75931bb7 usb: cdc-wdm: close race between read and workqueue
    56c5145baef5 Revert "usb: phy: generic: Get the vbus supply"
    9c74507e6c43 mtd: spinand: Add support for 5-byte IDs
    9ae3954dd36b Bluetooth: hci_sync: Fix not checking error on hci_cmd_sync_cancel_sync
    3b031e4fcb27 drm/i915/gt: Reset queue_priority_hint on parking
    07c011e3351d drm/i915: Do not match JSL in ehl_combo_pll_div_frac_wa_needed()
    69fa0e23a6a3 drm/i915/dsi: Go back to the previous INIT_OTP/DISPLAY_ON order, mostly
    a891add409e3 drm/i915/bios: Tolerate devdata==NULL in intel_bios_encoder_supports_dp_dual_mode()
    510c5f5e4837 drm/i915/hwmon: Fix locking inversion in sysfs getter
    197f6d6987c5 drm/amdgpu: fix deadlock while reading mqd from debugfs
    2684393685f7 drm/amdkfd: fix TLB flush after unmap for GFX9.4.2
    042ef0afc40f drm/vmwgfx: Create debugfs ttm_resource_manager entry only if needed
    476eed5f1c22 net: ll_temac: platform_get_resource replaced by wrong function
    2a84744a037b nouveau/dmem: handle kcalloc() allocation failure
    be4f3af178cb thermal: devfreq_cooling: Fix perf state when calculate dfc res_util
    cc80b5d7fbef block: Do not force full zone append completion in req_bio_endio()
    152799126327 sdhci-of-dwcmshc: disable PM runtime in dwcmshc_remove()
    4466677dcabe mmc: core: Avoid negative index with array access
    35ee8529eee7 mmc: core: Initialize mmc_blk_ioc_data
    6810ebeb0975 mmc: sdhci-omap: re-tuning is needed after a pm transition to support emmc HS200 mode
    07cf57eba52f selftests/mm: fix ARM related issue with fork after pthread_create
    fe295de2d564 selftests/mm: sigbus-wp test requires UFFD_FEATURE_WP_HUGETLBFS_SHMEM
    b79f9e1ff27c mm: cachestat: fix two shmem bugs
    2e2f7a576b13 hexagon: vmlinux.lds.S: handle attributes section
    c3639d87286a exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack()
    78516979792d Revert "drm/amd/display: Fix sending VSC (+ colorimetry) packets for DP/eDP displays without PSR"
    566e540b404f wifi: iwlwifi: fw: don't always use FW dump trig
    3d7ac0250714 wifi: iwlwifi: mvm: disable MLO for the time being
    6956ba7da71b wifi: cfg80211: add a flag to disable wireless extensions
    6b948b54c8bd wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes
    8ca8aac42bf7 btrfs: zoned: use zone aware sb location for scrub
    7b5029e3f1b6 btrfs: zoned: don't skip block groups with 100% zone unusable
    0427c8ef8bbb btrfs: fix race in read_extent_buffer_pages()
    c7077f43f30d tmpfs: fix race on handling dquot rbtree
    907efa8839cd ARM: prctl: reject PR_SET_MDWE on pre-ARMv6
    a0071e3b0c24 prctl: generalize PR_SET_MDWE support check to be per-arch
    5110da79d7d6 x86/efistub: Reinstate soft limit for initrd loading
    90048007daea efi/libstub: Cast away type warning in use of max()
    01666eece40e x86/efistub: Add missing boot_params for mixed mode compat entry
    32e4750262e0 init: open /initrd.image with O_LARGEFILE
    3f59182bcb4d ALSA: hda/tas2781: add locks to kcontrols
    b999e77ecf3a ALSA: hda/tas2781: remove digital gain kcontrol
    11b4dc6494b5 perf top: Use evsel's cpus to replace user_requested_cpus
    78142322a1c3 selftests/mm: Fix build with _FORTIFY_SOURCE
    ccf2d9d2ae95 selftests/mm: gup_test: conform test to TAP format output
    674545b4852c pwm: img: fix pwm clock lookup
    9114ba998750 efi: fix panic in kdump kernel
    1acbca933313 x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD
    bebb5af001dc x86/mpparse: Register APIC address only once
    31a6a791b046 efi/libstub: fix efi_random_alloc() to allocate memory at alloc_min or higher address
    f13edd1871d4 kprobes/x86: Use copy_from_kernel_nofault() to read from unsafe address
    455b94f95e49 irqchip/renesas-rzg2l: Prevent spurious interrupts when setting trigger type
    e9b18e99938b irqchip/renesas-rzg2l: Rename rzg2l_irq_eoi()
    ddec478fb711 irqchip/renesas-rzg2l: Rename rzg2l_tint_eoi()
    ec5482d22c67 irqchip/renesas-rzg2l: Add macro to retrieve TITSR register offset based on register's index
    9913a07850e0 irqchip/renesas-rzg2l: Flush posted write in irq_eoi()
    c15a37e3f162 irqchip/renesas-rzg2l: Implement restriction when writing ISCR register
    ea4c338cfefa printk: Update @console_may_schedule in console_trylock_spinning()
    e07a16e6f5b1 iommu/dma: Force swiotlb_max_mapping_size on an untrusted device
    c803069d4845 swiotlb: Fix alignment checks when both allocation and DMA masks are present
    ae2f8dbe921e swiotlb: Honour dma_alloc_coherent() alignment in swiotlb_alloc()
    3e7acd6e25ba swiotlb: Fix double-allocation of slots due to broken alignment handling
    4da463081026 entry: Respect changes to system call number by trace_sys_enter()
    0c027c2bad7f ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses
    66689127f1a7 ARM: 9352/1: iwmmxt: Remove support for PJ4/PJ4B cores
    df13f43686f3 clocksource/drivers/arm_global_timer: Fix maximum prescaler value
    0982fd6bf0b8 x86/sev: Fix position dependent variable references in startup code
    ecd16da39d44 x86/Kconfig: Remove CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT
    ee0bd4ad780d vfio/fsl-mc: Block calling interrupt handler without trigger
    62d4e43a569b vfio/platform: Create persistent IRQ handlers
    69276a555c74 vfio/pci: Create persistent INTx handler
    2ee432d74043 vfio: Introduce interface to flush virqfd inject workqueue
    ded566b4637f btrfs: fix deadlock with fiemap and extent locking
    ea01221f95f3 xfs: remove conditional building of rt geometry validator functions
    9efd84260f47 xfs: reset XFS_ATTR_INCOMPLETE filter on node removal
    69252ab1d566 xfs: update dir3 leaf block metadata after swap
    264e3509590c xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real
    8a4566795552 xfs: fix perag leak when growfs fails
    59b115a7e802 xfs: add lock protection when remove perag from radix tree
    c4848932911b xfs: short circuit xfs_growfs_data_private() if delta is zero
    47604cf2b803 xfs: initialise di_crc in xfs_log_dinode
    b9358db0a811 xfs: add missing nrext64 inode flag check to scrub
    1a48327c9e5a xfs: force all buffers to be written during btree bulk load
    7bc086bbc977 xfs: fix an off-by-one error in xreap_agextent_binval
    84cd4f79b4ce xfs: recompute growfsrtfree transaction reservation while growing rt volume
    d6b65ed1cc5f xfs: remove unused fields from struct xbtree_ifakeroot
    fb6e584e7471 xfs: make xchk_iget safer in the presence of corrupt inode btrees
    3f6308034432 xfs: don't allow overly small or large realtime volumes
    89e511a745be xfs: fix 32-bit truncation in xfs_compute_rextslog
    0a31f1e8d8c6 xfs: make rextslog computation consistent with mkfs
    680776e555f3 xfs: transfer recovered intent item ownership in ->iop_recover
    87db24c8edd3 xfs: pass the xfs_defer_pending object to iop_recover
    cd3c2cf35f7c xfs: use xfs_defer_pending objects to recover intent items
    c0231292d059 xfs: don't leak recovered attri intent items
    08bac45e02c6 xfs: consider minlen sized extents in xfs_rtallocate_extent_block
    57a20b6150d3 xfs: convert rt bitmap extent lengths to xfs_rtbxlen_t
    1a6d63f2418c xfs: move the xfs_rtbitmap.c declarations to xfs_rtbitmap.h
    648b41f28181 wifi: rtw88: 8821cu: Fix connection failure
    9fe75ad3c7e8 wifi: iwlwifi: pcie: fix RB status reading
    3d0a7b23d688 ASoC: amd: yc: Revert "Fix non-functional mic on Lenovo 21J2"
    930775060ca3 x86/efistub: Call mixed mode boot services on the firmware's stack
    23b99c7bf6ec drm/amd/display: handle range offsets in VRR ranges
    e21fee1035b9 drm/i915: Don't explode when the dig port we don't have an AUX CH
    60b9d1887a35 iio: imu: inv_mpu6050: fix FIFO parsing when empty
    3df5e345d6b4 iio: imu: inv_mpu6050: fix frequency setting when chip is off
    d017ec50fac9 i2c: i801: Avoid potential double call to gpiod_remove_lookup_table
    21e985684216 iio: accel: adxl367: fix I2C FIFO data register
    73d42ed41182 iio: accel: adxl367: fix DEVID read after reset
    d97be07a0027 arm64: dts: qcom: sc8280xp-x13s: limit pcie4 link speed
    27cd25e3b3bc mm, vmscan: prevent infinite loop for costly GFP_NOIO | __GFP_RETRY_MAYFAIL allocations
    b1c10caf752c ARM: imx_v6_v7_defconfig: Restore CONFIG_BACKLIGHT_CLASS_DEVICE
    520f79c110ff tee: optee: Fix kernel panic caused by incorrect error handling
    bccaba16db96 ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook
    6971e0592314 ALSA: hda/realtek - Add Headset Mic supported Acer NB platform
    c01ed748847f fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion
    ed56f3cfbe6f Revert "tty: serial: simplify qcom_geni_serial_send_chunk_fifo()"
    7529cbd8b5f6 vt: fix unicode buffer corruption when deleting characters
    68b988933885 mei: me: add arrow lake point H DID
    e86a87a4bea8 mei: me: add arrow lake point S DID
    434beb66368d serial: port: Don't suspend if the port is still busy
    a62a30ccf721 misc: fastrpc: Pass proper arguments to scm call
    997ca4153846 misc: lis3lv02d_i2c: Fix regulators getting en-/dis-abled twice on suspend/resume
    16eac1126d6a tty: serial: fsl_lpuart: avoid idle preamble pending if CTS is enabled
    cc31dba9afa6 xhci: Fix failure to detect ring expansion need.
    a4eff9198449 usb: port: Don't try to peer unused USB ports based on location
    a0f77b5d6067 usb: gadget: ncm: Fix handling of zero block length packets
    4a22aeac24d0 usb: typec: altmodes/displayport: create sysfs nodes as driver's default device attribute group
    871fd7b10b56 USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command
    a125ee2c06b0 ALSA: hda/realtek - Fix headset Mic no show at resume back for Lenovo ALC897 platform
    a30c36bc0cfc drm/i915: Check before removing mm notifier
    24b5eff43ec2 tty: serial: imx: Fix broken RS485
    6f3c1dabe8d0 drm/amdgpu/pm: Fix the error of pwm1_enable setting
    274f0b1a6b97 tracing: Use .flush() call to wake up readers
    4577036353fa SEV: disable SEV-ES DebugSwap by default
    12f8e32a5a38 KVM: SVM: Flush pages under kvm->lock to fix UAF in svm_register_enc_region()
    9d1b22e573a3 KVM: x86: Mark target gfn of emulated atomic instruction as dirty
    43c70cbc2502 firewire: ohci: prevent leak of left-over IRQ on unbind
    a5b60c8b9a9e init/Kconfig: lower GCC version check for -Warray-bounds
    4c9f70c73ddb Input: xpad - add additional HyperX Controller Identifiers
    d9f400dc3e89 cgroup/cpuset: Fix retval in update_cpumask()
    0f952b1bb048 usb: typec: tpcm: Fix PORT_RESET behavior for self powered devices
    bae5b98dcf63 selftests: mptcp: diag: return KSFT_FAIL not test_cnt
    b93494329656 mm, mmap: fix vma_merge() case 7 with vma_ops->close
    b475226733f1 xfrm: Avoid clang fortify warning in copy_to_user_tmpl()
    dc60b25540c8 crypto: sun8i-ce - Fix use after free in unprepare
    48dd260fdb72 crypto: rk3288 - Fix use after free in unprepare
    c288a61a48dd drm/nouveau: fix stale locked mutex in nouveau_gem_ioctl_pushbuf
    6887314f5356 nouveau: lock the client object tree.
    ba29cffccfea Drivers: hv: vmbus: Calculate ring buffer size for more efficient use of memory
    7332d7389b5e netfilter: nf_tables: reject constant set with timeout
    c0c2176d1814 netfilter: nf_tables: disallow anonymous set with timeout flag
    b2d6f9a5b1cf netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
    56712f74b704 net: fix IPSTATS_MIB_OUTPKGS increment in OutForwDatagrams.
    95232806972a drm/amd/display: Use freesync when `DRM_EDID_FEATURE_CONTINUOUS_FREQ` found
    8b934390272d workqueue: Shorten events_freezable_power_efficient name
    47ccb849a023 drm/bridge: lt8912b: do not return negative values from .get_modes()
    d5a81e981769 drm/bridge: lt8912b: clear the EDID property on failures
    a7d980a9f70e drm/bridge: lt8912b: use drm_bridge_edid_read()
    2b6aaf7b193b drm/bridge: add ->edid_read hook and drm_bridge_edid_read()
    de125efb3bae drm/ttm: Make sure the mapped tt pages are decrypted when needed
    0436d691d216 wifi: brcmfmac: Demote vendor-specific attach/detach messages to info
    8d59a64cbec8 wifi: brcmfmac: cfg80211: Use WSEC to set SAE password
    47b563297a48 wifi: brcmfmac: add per-vendor feature detection callback
    73520eeea49d x86/pm: Work around false positive kmemleak report in msr_build_context()
    e50f83061ac2 dm snapshot: fix lockup in dm_exception_table_exit
    066bbc430644 drm/amd/display: Fix noise issue on HDMI AV mute
    c7c855fd3d5a drm/amd/display: Return the correct HDCP error code
    6fcd12cb9088 drm/amdgpu: amdgpu_ttm_gart_bind set gtt bound flag
    4992f44a3b05 ahci: asm1064: asm1166: don't limit reported ports
    836af9a25b2d ahci: asm1064: correct count of reported ports
    49391e9f1e14 wireguard: selftests: set RISCV_ISA_FALLBACK on riscv{32,64}
    c991567e6c63 wireguard: netlink: access device through ctx instead of peer
    13d107794304 wireguard: netlink: check for dangling peer via is_dead instead of empty list
    7f1005dd39d2 LoongArch/crypto: Clean up useless assignment operations
    d7d7c6cdea87 LoongArch: Define the __io_aw() hook as mmiowb()
    f3f5d7a5049d LoongArch: Change __my_cpu_offset definition to avoid mis-optimization
    3d26a2d80181 virtio: reenable config if freezing device failed
    8a2e2336b8cf cxl/trace: Properly initialize cxl_poison region name
    a66885b840d6 net: hns3: tracing: fix hclgevf trace event strings
    9aa7a53c4733 drm/i915: Add missing ; to __assign_str() macros in tracepoint code
    6244036a07ae NFSD: Fix nfsd_clid_class use of __string_len() macro
    8291b4eac429 net: esp: fix bad handling of pages from page_pool
    d0caabe6fe76 x86/CPU/AMD: Update the Zenbleed microcode revisions
    f8a2a55a0b82 cpufreq: dt: always allocate zeroed cpumask
    037414669414 mtd: rawnand: Constrain even more when continuous reads are enabled
    26a4eee38f8c mtd: rawnand: Fix and simplify again the continuous read derivations
    da2911798f25 cifs: open_cached_dir(): add FILE_READ_EA to desired access
    997b0c26d3fa cifs: reduce warning log level for server not advertising interfaces
    0845cb6bbf15 cifs: make cifs_chan_update_iface() a void function
    4501f9cd36c1 cifs: delete unnecessary NULL checks in cifs_chan_update_iface()
    db3a3e6fa33e cifs: do not let cifs_chan_update_iface deallocate channels
    66c2940c9614 cifs: make sure server interfaces are requested only for SMB3+
    407ced4e770e cifs: add xid to query server interface call
    0c8aa4cfda4e nilfs2: prevent kernel bug at submit_bh_wbc()
    f69e81396aea nilfs2: fix failure to detect DAT corruption in btree and direct mappings
    6966586c2f77 f2fs: truncate page cache before clearing flags when aborting atomic write
    99d1fd81d341 f2fs: mark inode dirty for FI_ATOMIC_COMMITTED flag
    9a31f4b61448 Revert "block/mq-deadline: use correct way to throttling write requests"
    f1d93b2a010c memtest: use {READ,WRITE}_ONCE in memory scanning
    b483eff0bd19 drm/vc4: hdmi: do not return negative values from .get_modes()
    fd79a093bb23 drm/imx/ipuv3: do not return negative values from .get_modes()
    b71ae5fb2dd3 drm/exynos: do not return negative values from .get_modes()
    a686732df6ce drm/panel: do not return negative error codes from drm_panel_get_modes()
    12bbe2c25cdb drm/probe-helper: warn about negative .get_modes()
    a64ab862e84e s390/zcrypt: fix reference counting on zcrypt card objects
    54d26adf64c0 soc: fsl: qbman: Use raw spinlock for cgr_lock
    0e6521b0f93f soc: fsl: qbman: Always disable interrupts when taking cgr_lock
    700ed41bf63e dlm: fix user space lkb refcounting
    b31301a1fa61 ring-buffer: Use wait_event_interruptible() in ring_buffer_wait()
    7bcd58e8096a ring-buffer: Fix full_waiters_pending in poll
    b87a7e108e6d ring-buffer: Fix resetting of shortest_full
    73dae1a5d489 ring-buffer: Do not set shortest_full when full target is hit
    b82dbe74ee31 ring-buffer: Fix waking up ring buffer readers
    1241052e158d io_uring: clean rings on NO_MMAP alloc fail
    e8fc78a1c70f platform/x86/intel/tpmi: Change vsec offset to u64
    ed3fb2e2fe87 ksmbd: retrieve number of blocks using vfs_getattr in set_file_allocation_info
    c8f7ad2df083 ksmbd: replace generic_fillattr with vfs_getattr
    ef309589f01c server: convert to new timestamp accessors
    1d7317d5b636 tpm,tpm_tis: Avoid warning splat at shutdown
    74c564b7f008 vfio/platform: Disable virqfds on cleanup
    04a4a017b9ff vfio/pci: Lock external INTx masking ops
    2a4a666c4510 vfio/pci: Disable auto-enable of exclusive INTx IRQ
    fe750e274442 thermal/drivers/mediatek: Fix control buffer enablement on MT7896
    7e8cffa4f85e cifs: allow changing password during remount
    9179aa27039a cifs: prevent updating file size from server if we have a read/write lease
    b9e741ac2b7c smb: client: stop revalidating reparse points unnecessarily
    db5f1f1fb8c1 PCI: hv: Fix ring buffer size calculation
    cebb4baed803 PCI: dwc: endpoint: Fix advertised resizable BAR size
    7aeca6f44cb6 PCI: qcom: Enable BDF to SID translation properly
    52f86f3e091c kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
    71739da67085 NFS: Read unlock folio on nfs_page_create_from_folio() error
    e25447c35f87 nfs: fix UAF in direct writes
    7293dd0bd34a sparc32: Fix parport build with sparc32
    0f314c3be7d9 io_uring: fix mshot io-wq checks
    f55ecbd9a78c io_uring/net: correctly handle multishot recvmsg retry setup
    1a6efd4c286c PCI/AER: Block runtime suspend when handling errors
    cc3519b818c1 speakup: Fix 8bit characters from direct synth
    a973ef25f144 usb: gadget: tegra-xudc: Fix USB3 PHY retrieval logic
    3dd6e0faa75d phy: tegra: xusb: Add API to retrieve the port number of phy
    0ef9d78ba7e7 slimbus: core: Remove usage of the deprecated ida_simple_xx() API
    63c7a5cf228e nvmem: meson-efuse: fix function pointer type mismatch
    37b6a3ba793b ext4: fix corruption during on-line resize
    27715371c162 hwmon: (amc6821) add of_match table
    100d83b0da07 landlock: Warn once if a Landlock action is requested while disabled
    bc8e5fda787b drm/etnaviv: Restore some id values
    10f2af1af8ab leds: trigger: netdev: Fix kernel panic on interface rename trig notify
    d4e2365b07f1 Bluetooth: btnxpuart: Fix btnxpuart_close
    985edff78e80 mmc: core: Fix switch on gp3 partition
    0f98f6d2fb5f mm: swap: fix race between free_swap_and_cache() and swapoff()
    20d3e1c8a184 mac802154: fix llsec key resources release in mac802154_llsec_key_del
    7d3765550374 block: Fix page refcounts for unaligned buffers in __bio_release_pages()
    653d51504f41 powerpc: xor_vmx: Add '-mhard-float' to CFLAGS
    dc9702acfb4f dm-raid: fix lockdep waring in "pers->hot_add_disk"
    31ead1845c37 PCI/DPC: Quirk PIO log size for Intel Raptor Lake Root Ports
    d86ad8c3e152 PCI/PM: Drain runtime-idle callbacks before driver removal
    0bfe6b29d6ac wifi: rtw88: Add missing VID/PIDs for 8811CU and 8821CU
    51dad05f1835 btrfs: fix off-by-one chunk length calculation at contains_pending_extent()
    40a24160cf3c btrfs: qgroup: always free reserved space for extent records
    4cc3e2ed6759 serial: Lock console when calling into driver before registration
    6f12c54fa09d serial: core: only stop transmit when HW fifo is empty
    1846bd4fc1bb usb: dwc3-am62: Disable wakeup at remove
    7dfed9855397 usb: dwc3-am62: fix module unload/reload behavior
    4a1f0678d15e usb: typec: ucsi: Clean up UCSI_CABLE_PROP macros
    8b86779ade3a fuse: don't unhash root
    777ba18929b5 fuse: fix root lookup with nonzero generation
    3d304dd6b29d fuse: replace remaining make_bad_inode() with fuse_make_bad()
    bd169abd394e mmc: tmio: avoid concurrent runs of mmc_request_done()
    677aa47e3e43 PM: sleep: wakeirq: fix wake irq warning in system suspend
    3c3df979e9b7 USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M
    28f719670f00 KVM: x86/xen: inject vCPU upcall vector when local APIC is enabled
    5cf342a13d49 USB: serial: option: add MeiG Smart SLM320 product
    07a8b301818f USB: serial: cp210x: add ID for MGP Instruments PDS100
    515159ca62a8 USB: serial: add device ID for VeriFone adapter
    58bb229d9714 USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB
    816ae3cf3dcb powerpc/fsl: Fix mfpmr build errors with newer binutils
    620b6cf2f1a2 usb: xhci: Add error handling in xhci_map_urb_for_dma
    7e9926fef71e clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays
    9b4c4546dd61 clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays
    0204247cf366 clk: qcom: gcc-ipq9574: fix terminating of frequency table arrays
    b6b31b4c67ea clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays
    421b135aceac clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays
    b0cf3d200e8a clk: qcom: gcc-ipq5018: fix terminating of frequency table arrays
    245c318cdad0 vfio/pds: Always clear the save/restore FDs on reset
    35c1cdd504a3 PM: suspend: Set mem_sleep_current during kernel command line setup
    ed87a423756a cpufreq: Limit resolving a frequency to policy min/max
    66e2c41b0c80 docs: Restore "smart quotes" for quotes
    f77c8c1603bb iio: adc: rockchip_saradc: use mask for write_enable bitfield
    7ed675cfaf51 iio: adc: rockchip_saradc: fix bitmask for channels on SARADCv2
    8ec4a68a25a2 md/raid5: fix atomicity violation in raid5_cache_count
    644604e6f014 parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
    d4b71ff9c918 parisc: Fix csum_ipv6_magic on 64-bit systems
    cabe3343acce parisc: Fix csum_ipv6_magic on 32-bit systems
    d31c8d0ca8bf parisc: Fix ip_fast_csum
    6bd42452713e parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros
    51408b47f8af parisc/unaligned: Rewrite 64-bit inline assembly of emulate_ldd()
    f9f67e87e4b7 x86/nmi: Fix the inverse "in NMI handler" check
    736ad6c577a3 md/md-bitmap: fix incorrect usage for sb_index
    d8ea3e788b5a mtd: rawnand: meson: fix scrambling mode value in command macro
    1a3487cdf8dc ubi: correct the calculation of fastmap size
    d1b505c988b7 ubi: Check for too small LEB size in VTBL code
    fc99f4e2d2f1 ubifs: Set page uptodate in the correct place
    ab8f9df10694 fuse: fix VM_MAYSHARE and direct_io_allow_mmap
    03a7e3f2ba3c fat: fix uninitialized field in nostale filehandles
    b46c822f8b55 bounds: support non-power-of-two CONFIG_NR_CPUS
    d6e646b86085 kasan/test: avoid gcc warning for intentional overflow
    fe86d01ce7db block: Clear zone limits for a non-zoned stacked queue
    ba191200a1ae ext4: correct best extent lstart adjustment logic
    9a06d17abc16 selftests/mqueue: Set timeout to 180 seconds
    8a5a7611ccc7 crypto: qat - resolve race condition during AER recovery
    e8ac80031809 sparc: vDSO: fix return value of __setup handler
    61798d3cb53a sparc64: NMI watchdog: fix return value of __setup handler
    a0b9f4f8e22b powerpc/smp: Increase nr_cpu_ids to include the boot CPU
    68a9c41f0167 powerpc/smp: Adjust nr_cpu_ids to cover all threads of a core
    7f6282665dd7 powercap: intel_rapl_tpmi: Fix System Domain probing
    b5cbb42fb658 powercap: intel_rapl_tpmi: Fix a register bug
    d6c83ee705a1 powercap: intel_rapl: Fix locking in TPMI RAPL
    c4c2f7e672e7 sched: Simplify tg_set_cfs_bandwidth()
    0641908b906a powercap: intel_rapl: Fix a NULL pointer dereference
    9df6a7a3c951 thermal/intel: Fix intel_tcc_get_temp() to support negative CPU temperature
    868e3264f236 cpufreq: amd-pstate: Fix min_perf assignment in amd_pstate_adjust_perf()
    e056484f189b arm64: dts: qcom: sm8550-mtp: correct WCD9385 TX port mapping
    6eacb2ec2e79 arm64: dts: qcom: sm8550-qrd: correct WCD9385 TX port mapping
    a75afe480d43 KVM: Always flush async #PF workqueue when vCPU is being destroyed
    88efc3095b6d media: nxp: imx8-isi: Mark all crossbar sink pads as MUST_CONNECT
    d0e3440dab0d media: mc: Expand MUST_CONNECT flag to always require an enabled link
    3b6ccc91dcc4 media: mc: Rename pad variable to clarify intent
    ebb6fb7f6265 media: mc: Add num_links flag to media_pad
    c95318607fbe media: nxp: imx8-isi: Check whether crossbar pad is non-NULL before access
    0a7690224714 media: mc: Fix flags handling when creating pad links
    cc088ebf8b4a media: mc: Add local pad to pipeline regardless of the link state
    dc5e4f240473 media: xc4000: Fix atomicity violation in xc4000_get_frequency
    b5d40f02e722 pci_iounmap(): Fix MMIO mapping leak
    86cb706a40b7 drm/vmwgfx: Fix the lifetime of the bo cursor memory
    2160ad6861c4 serial: max310x: fix NULL pointer dereference in I2C instantiation
    ff41e0d4f3fa drm/vmwgfx: Fix possible null pointer derefence with invalid contexts
    01fad74090a0 arm: dts: marvell: Fix maxium->maxim typo in brownstone dts
    3677d01c55bc smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity()
    c6fc44595491 smack: Set SMACK64TRANSMUTE only for dirs in smack_inode_setxattr()
    a1a8d40182e2 clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd
    2c26984759bb remoteproc: virtio: Fix wdg cannot recovery remote processor
    779af170f1db arm64: dts: qcom: sc7280: Add additional MSI interrupts
    1992f2af6444 media: staging: ipu3-imgu: Set fields before media_entity_pads_init()
    e76f6b9618e8 wifi: brcmfmac: avoid invalid list operation when vendor attach fails
    190794848e2b wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
    0a23f95af7f2 drm/vmwgfx: Unmap the surface before resetting it on a plane state
    51138f1f3564 KVM: x86: Use a switch statement and macros in __feature_translate()
    688313fb139e KVM: x86: Advertise CPUID.(EAX=7,ECX=2):EDX[5:0] to userspace
    06644f0d7193 drm/tilcdc: Set preferred depth
    ff7ae7b32324 crypto: jitter - add RCT/APT support for different OSRs
    50cd24ddb6f0 arm64: defconfig: remove CONFIG_IPQ_APSS_5018
    58e5c91d6701 x86/alternatives: Disable interrupts and sync when optimizing NOPs in place
    c878fd2d4c79 x86/alternatives: Sync core before enabling interrupts
    c2d64b9f52b6 qemux86: add configuration symbol to select values
    630c33229e6d sched/isolation: really align nohz_full with rcu_nocbs
    0e5e0f68e2e6 clear_warn_once: add a clear_warn_once= boot parameter
    46934791b902 clear_warn_once: bind a timer to written reset value
    cdee9e38ff32 clear_warn_once: expand debugfs to include read support
    82b562b81841 tools: Remove some options from CLANG_CROSS_FLAGS
    36dc380b776b libbpf: Fix build warning on ref_ctr_off
    9e3e1fe20982 perf: perf can not parser the backtrace of app in the 32bit system and 64bit kernel.
    e497a4a5da65 perf: x86-32: explicitly include <errno.h>
    7b57ddd89565 perf: mips64: Convert __u64 to unsigned long long
    1cfc19423dc7 perf: fix bench numa compilation
    98bc2815fade perf: add SLANG_INC for slang.h
    17209a70b9b3 perf: add sgidefs.h to for mips builds
    9cd4258d910a perf: change --root to --prefix for python install
    8110a4f26628 perf: add 'libperl not found' warning
    bc89d5e08f77 perf: force include of <stdbool.h>
    4f6c760cc876 fat: Replace prandom_u32() with get_random_u32()
    bc53117b12b2 fat: don't use obsolete random32 call in namei_vfat
    30b2236ab378 FAT: Added FAT_NO_83NAME
    cef98d22b4ed FAT: Add CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES option
    0bbd7daba9e1 FAT: Add CONFIG_VFAT_FS_NO_DUALNAMES option
    5883fc340084 aufs6: adapt to v6.6 i_op->ctime changes
    c4342d979bf2 aufs6: fix magic.mk include path
    35266bc2dc81 aufs6: adapt to v6.6
    8edede4e98be aufs6: core
    712248233ebe aufs6: standalone
    3b71a8a848d8 aufs6: mmap
    3e2924871f37 aufs6: base
    7f4907a93101 aufs6: kbuild
    d2f7b03e4aa7 yaffs2: update VFS ctime operations to 6.6+
    bcd6cfcd1aa0 yaffs2: v6.5 fixups
    cc615704b5f5 yaffs2: Fix miscalculation of devname buffer length
    8ef2e22dcf91 yaffs2: convert user_namespace to mnt_idmap
    c9c749f9f7d3 yaffs2: replace bdevname call with sprintf
    395b01cdc39d yaffs2: convert read_page -> readfolio
    d98b07e43ba6 yaffs: replace IS_ERR with IS_ERR_OR_NULL to check both ERR and NULL
    613c6d50fdbe yaffs: fix -Wstringop-overread compile warning in yaffs_fix_null_name
    622c4648936f yaffs2: v5.12+ build fixups (not runtime tested)
    7562133d4090 yaffs: include blkdev.h
    dbd44252cd59 yaffs: fix misplaced variable declaration
    c223a10b1ac0 yaffs2: v5.6 build fixups
    90f6007cfbf4 yaffs2: fix memory leak when /proc/yaffs is read
    37ee169c5ea1 yaffs: add strict check when call yaffs_internal_read_super
    b6e007b8abb6 yaffs: repair yaffs_get_mtd_device
    fb98f65a466a yaffs: Fix build failure by handling inode i_version with proper atomic API
    51e0aac75ea2 yaffs2: fix memory leak in mount/umount
    2b74a0cae7b0 yaffs: Avoid setting any ACL releated xattr
    ff4130a9c376 Yaffs:check oob size before auto selecting Yaffs1
    ba95b409c67c fs: yaffs2: replace CURRENT_TIME by other appropriate apis
    8fa35eba9056 yaffs2: adjust to proper location of MS_RDONLY
    1eb5deaad8c4 yaffs2: import git revision b4ce1bb (jan, 2020)
    4dce67c1e8c8 initramfs: allow an optional wrapper script around initramfs generation
    2f603d83fcc4 pnmtologo: use relocatable file name
    664a6a0a484b tools: use basename to identify file in gen-mach-types
    9de64bc0c185 lib/build_OID_registry: fix reproducibility issues
    ae9b80797295 vt/conmakehash: improve reproducibility
    a972323151bd iwlwifi: select MAC80211_LEDS conditionally
    15d2adcc0198 net/dccp: make it depend on CONFIG_BROKEN (CVE-2020-16119)
    5556a6c04b19 arm64/perf: Fix wrong cast that may cause wrong truncation
    5552dc768ffc defconfigs: drop obselete options
    00fe4152df31 arm64/perf: fix backtrace for AAPCS with FP enabled
    3888d0652edf linux-yocto: Handle /bin/awk issues
    3d55d299f23a uvesafb: provide option to specify timeout for task completion
    23c068c080be uvesafb: print error message when task timeout occurs
    edbfc939266e compiler.h: Undef before redefining __attribute_const__
    c99ae7e2a19a vmware: include jiffies.h
    572d84d928c8 Resolve jiffies wrapping about arp
    fdcd47cac843 nfs: Allow default io size to be configured.
    927d48801098 check console device file on fs when booting
    57cc27f821dd mount_root: clarify error messages for when no rootfs found
    1b53d82a8152 mconf: fix output of cflags and libraries
    1811da09f42c menuconfig,mconf-cfg: Allow specification of ncurses location
    83c2e0c6eb1f modpost: mask trivial warnings
    6de673039484 kbuild: exclude meta directory from distclean processing
    6decd32815f5 powerpc: serialize image targets
    f6b683b38318 arm: serialize build targets
    e798b09ebf57 mtd_blkdevs: add mtd_table_mutex lock back to blktrans_{open, release} to avoid race condition
    dc8a1e5a88f8 x86_64_defconfig: Fix warnings
    68491e5f72b6 powerpc/ptrace: Disable array-bounds warning with gcc8
    d71ebfce3004 powerpc: Disable attribute-alias warnings from gcc8
    62f50884b8b1 powerpc: kexec fix for powerpc64
    da6871c62c37 powerpc: Add unwind information for SPE registers of E500 core
    f161c880c11d mips: make current_cpu_data preempt safe
    5e94a8247ce7 mips: vdso: fix 'jalr $t9' crash in vdso code
    19e36714b1c7 mips: Kconfig: add QEMUMIPS64 option
    e2e537db3cbd 4kc cache tlb hazard: tlbp cache coherency
    aee9870611e5 malta uhci quirks: make allowance for slow 4k(e)c
    881948cd1517 drm/fb-helper: move zeroing code to drm_fb_helper_fill_var
    98ec1963fcb7 arm64: defconfig: cleanup config options
    f1727c537ba8 vexpress: Pass LOADADDR to Makefile
    4474c32dc24a arm: ARM EABI socketcall
    75e31a2b70fd ARM: LPAE: Invalidate the TLB for module addresses during translation fault

(From OE-Core rev: 140669b5b9ec6376a6fdc3f8e49932ca8971a8c0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-04 15:41:44 +01:00
Richard Purdie
0e163082bd brief-yoctoprojectqs: Update to the correct hash equivalence server address
Also add a note about needing python websockets installed.

(From yocto-docs rev: 9c7869b95b1784f58f0a31f7c015ad3e15af34e1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 17:07:13 +01:00
joshua Watt
e4ddff1399 bitbake: cooker: Use hash client to ping upstream server
The cooker attempts to connect to the upstream hash equivalent server to
warn the user early if it is misconfigured. However, this was making the
assumption that it was a raw TCP connection and failed when attempting
to use a websocket upstream server. Fix this by creating an hash client
and using the ping API to check the server instead of using a raw
socket.

(Bitbake rev: 5e84c13a6c594ed34c341849806657ddda206714)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 16:07:21 +01:00
Richard Purdie
632e317059 local.conf.sample: Fix hashequivalence server address
We switched to a new server for the scarthgap release but didn't update the
sample config. Fix this.

(From meta-yocto rev: e0558da30f72a205e0b2055d62690604ed9ff578)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:29:41 +01:00
Richard Purdie
0ea63b6a43 recipes: Update WORKDIR references to UNPACKDIR
Since we want to be able to stop unpacking to WORKDIR, correct the WORKDIR
references in recipe do_compile/do_install tasks to use UNPACKDIR in the
appropraite places instead.

(From OE-Core rev: d73595df69667fe9d12ecd407b77a0b8dae2109c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:15:51 +01:00
Richard Purdie
3288587aeb recipes: Update S = WORKDIR recipes to use ${S} correctly
Where recipes use S = ${WORKDIR}, ensure they are referencing ${S} correctly
to access files as soon we want to stop doing this in WORKDIR at which point
they would break unless corrected.

(From OE-Core rev: f25dd633fffe6560f191526d1869e657e129bad9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:15:51 +01:00
Richard Purdie
808f700efc classes/lib/scripts: Initial WORKDIR -> UNPACKDIR updates
Work through the initial issues I found where we need to change WORKDIR
to UNPACKDIR.

(From OE-Core rev: 86fec41b1e809d1a2fa2feadc26d29020df53d39)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:15:51 +01:00
Richard Purdie
812dafbec1 base/bitbake.conf: Introduce UNPACKDIR
Having the unpack directory hardcoded to WORKDIR makes it really hard to
make any changes to the unpack process to try and allow for cleanup for example.

As a first step toward unraveling the intertwined location usages, add a
variable, UNPACKDIR which is where the fetcher is asked to unpack fetched
sources. It defaults to the existing value of WORKDIR at this point.

(From OE-Core rev: e022d62ba917790af2121da57646271ef17c03fa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:15:51 +01:00
joshua Watt
8d79ca1478 classes/create-spdx-2.2: Fix SPDX Namespace Prefix
According to the SPDX documentation, it should be "spdxdocs" not
"spdxdoc"

[YOCTO #15398]

(From OE-Core rev: d1b25413ced62dc2927dae57b8d16e67d15dc220)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:14:07 +01:00
Tim Orling
69ce2f90ce python3-maturin: upgrade 1.4.0 -> 1.5.1
* Drop riscv-32 patch (merged in 1.5.0)
* Refresh ${BPN}-crates.inc

1.5.1 - 2024-03-21
* Fix usage of --compatibility when run as a PEP517 backend in #1992
* Fix upload returning malformed summary error in #2002

1.5.0 - 2024-03-05
* Bump metadata version from 2.1 to 2.3 in #1965. Source distributions
  created by maturin now have reliable metadata, meaning tool such as
  pip, uv and poetry could skip building them for version resolution.
* Allow identical VIRTUAL_ENV and CONDA_PREFIX env vars in #1879
* Reject -i python when cross compiling in #1891
* Support uniffi-bindgen in cargo workspaces in #1909
* Add support for configuring xwin using env vars in #1961
* Add validation for crate/package name in new/init in #1943
* Add 32-bit RISC-V support in #1969
* Improve import hook changes in #1958
* Adjust cbindgen Overrides for CFFI in #1957

https://github.com/PyO3/maturin/compare/v1.4.0...v1.5.1

(From OE-Core rev: 6dd2ad8cce1eb38ace7e69fc51f9fe047e6e28f1)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:11:06 +01:00
Mark Hatle
a73e9446b1 sstate.bbclass: Add _SSTATE_EXCLUDEDEPS_SYSROOT to vardepsexclude
When using tinfoil to control the build, multiple commands (serially) could
trigger an error such as:

  When reparsing ....bb:do_package, the basehash value changed from ... to .... The metadata is not deterministic and this needs to be fixed.
  ERROR: The following commands may help:
  ERROR: $ bitbake esw-conf -cdo_package -Snone
  ERROR: Then:
  ERROR: $ bitbake esw-conf -cdo_package -Sprintdiff

However following these commands it was not able to be reproduced.  Forcing
bitbake to dump the signatures and then running bitbake-diffsigs showed
that the value of _SSTATE_EXCLUDEDEPS_SYSROOT was being set in one run, but
was blank is a different version.

Upon inspecting the code in sstate.bbclass, one usage (without the _) is
already excludes, the leading _ version is used as a cache, only if set but
is not actually required to be defined.  So ignoring the value should work
properly.

(From OE-Core rev: 4ec704ed6a1cfaf0a6c20f2038e7192e361ef590)

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:11:06 +01:00
Khem Raj
6e8300da5b strace: Upgrade to 6.8
Noteworthy changes in strace 6.8 (2024-03-20)

Improvements
Renamed --stack-traces to --stack-trace for consistency.
Old option is retained for backwards compatibility.
Implemented --stack-trace-frame-limit=N option for configuring the limit of the number of printed backtrace frames.
Implemented decoding of statmount, listmount, lsm_get_self_attr,lsm_set_self_attr, and lsm_list_modules syscalls.
Implemented decoding of setsockopt(TCP_AO_ADD_KEY).
Updated decoding of landlock_create_ruleset and landlock_add_rule syscalls.
Updated decoding of SMC_DIAG_DMBINFO netlink attribute.
Updated decoding of UBI_IOCATT ioctl command.
Enhanced decoding of mount attributes of fsmount and mount_setattr syscalls.
Updated lists of BPF_*, KEXEC_*, KVM_*, PERF_*, SOL_*, STATX_*, UFFD_*, and V4L2_* constants.
Updated lists of ioctl commands from Linux 6.8.

(From OE-Core rev: 77865c722282e1769b65d02823e2a2a6ecd3655a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:11:06 +01:00
Ross Burton
3c3b0f7be4 insane: handle dangling symlinks in the libdir QA check
The "libdir" QA check tries to open every file it finds as an ELF.  If
it finds a dangling symlink that looks like a library by the filename it
will try to open it and fail with FileNotFoundError error.  As this
dangling symlink probably points to a real file, silently absorb the
error.

[ YOCTO #13949 ]

(From OE-Core rev: f044290f98ea66f2cecfbffd7d392dbc3d986da9)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:11:06 +01:00
Trevor Gamblin
221806f507 python3-pytest: upgrade 8.1.1 -> 8.2.0
Changelog: https://docs.pytest.org/en/8.2.x/changelog.html

pytest 8.2.0 (2024-04-27)
    Deprecations
    - #12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:
        - pytest_ignore_collect - the path parameter - use collection_path instead.
        - pytest_collect_file - the path parameter - use file_path instead.
        - pytest_pycollect_makemodule - the path parameter - use module_path instead.
        - pytest_report_header - the startdir parameter - use start_path instead.
        - pytest_report_collectionfinish - the startdir parameter - use start_path instead.
      The replacement parameters are available since pytest 7.0.0. The old parameters will be removed in pytest 9.0.0.
      See py.path.local arguments for hooks replaced with pathlib.Path for more details.

    Features
    - #11871: Added support for reading command line arguments from a file using the prefix character @, like e.g.: pytest @tests.txt. The file must have one argument per line.
      See Read arguments from file for details.

    Improvements
    - #11523: pytest.importorskip() will now issue a warning if the module could be found, but raised ImportError instead of ModuleNotFoundError.
      The warning can be suppressed by passing exc_type=ImportError to pytest.importorskip().
      See pytest.importorskip default behavior regarding ImportError for details.
    - #11728: For unittest-based tests, exceptions during class cleanup (as raised by functions registered with TestCase.addClassCleanup) are now reported instead of silently failing.
    - #11777: Text is no longer truncated in the short test summary info section when -vv is given.
    - #12112: Improved namespace packages detection when consider_namespace_packages is enabled, covering more situations (like editable installs).
    - #9502: Added PYTEST_VERSION environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of pytest.__version__, and among other things can be used to easily check if code is running from within a pytest run.

    Bug Fixes
    - #12065: Fixed a regression in pytest 8.0.0 where test classes containing setup_method and tests using @staticmethod or @classmethod would crash with AttributeError: 'NoneType' object has no attribute 'setup_method'.
      Now the request.instance attribute of tests using @staticmethod and @classmethod is no longer None, but a fresh instance of the class, like in non-static methods. Previously it was None, and all fixtures of such tests would share a single self.
    - #12135: Fixed issue where fixtures adding their finalizer multiple times to fixtures they request would cause unreliable and non-intuitive teardown ordering in some instances.
    - #12194: Fixed a bug with --importmode=importlib and --doctest-modules where child modules did not appear as attributes in parent modules.
    - #1489: Fixed some instances where teardown of higher-scoped fixtures was not happening in the reverse order they were initialized in.

    Trivial/Internal Changes
    - #12069: pluggy>=1.5.0 is now required.
    - #12167: cache: create supporting files (CACHEDIR.TAG, .gitignore, etc.) in a temporary directory to provide atomic semantics.

pytest 8.1.2 (2024-04-26)
    Bug Fixes
    - #12114: Fixed error in pytest.approx() when used with numpy arrays and comparing with other types.

(From OE-Core rev: 313a992d34d0b46d3f0bf2bb87c6bd7899df4028)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-02 15:11:06 +01:00
Alexander Kanavin
ad6470a4c2 scripts/oe-setup-build: write a build environment initialization one-liner into the build directory
With this, users no longer have to know where oe-init-build-env is relative to the
build directory; that information is contained in the one liner and then
it's possible to simply use that:

. /path/to/build/init-build-env

This will particularly help with initializing builds in unpacked
build bundles, as users won't have to know where oe-init-build-env
is in the bundle directory tree - similar to esdk initialization.

(From OE-Core rev: 1cabdf287c2739accdab3a766df060f1bc802b63)

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>
2024-05-02 11:47:51 +01:00
Michael Halstead
e172625639 docs: add support for scarthgap 5.0 release
Prepared for Scarthgap release. Add references to Styhead.

(From yocto-docs rev: 906d228f1cedc25dd7530db3ce509239152da89f)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-01 23:00:34 +01:00
Zoltan Boszormenyi
aab1335523 cracklib: Modify patch to compile with GCC 14
GCC 14 implicitly turns a warning into a compiler error:

| ../../git/src/lib/packlib.c: In function ‘PWClose’:
| ../../git/src/lib/packlib.c:554:40: error: passing argument 1 of ‘HwmsHostToBigEndian’ from incompatible pointer type [-Wincompatible-pointer-types]
|   554 |             HwmsHostToBigEndian(tmp_pwp.hwms, sizeof(tmp_pwp.hwms), en_is32);
|       |                                 ~~~~~~~^~~~~
|       |                                        |
|       |                                        uint32_t * {aka unsigned int *}
| ../../git/src/lib/packlib.c:142:27: note: expected ‘char *’ but argument is of type ‘uint32_t *’ {aka ‘unsigned int *’}
|   142 | HwmsHostToBigEndian(char *pHwms, int nLen,int nBitType)
|       |                     ~~~~~~^~~~~

Add the cast to (char *) to silence it.

(From OE-Core rev: 914128f6bd988cde278e087fb9457a0c70c7e5ec)

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Alexandre Truong
268dfbd949 Revert "oeqa/selftest/devtool: fix test_devtool_add_git_style2"
This reverts commit ab6d3e3d64
from poky repository.

The previous reverted commit was a workaround. The fix
"oeqa/selftest/devtool: fix _test_devtool_add_git_url"
tackle the issue. So, the workaround is not needed anymore.

(From OE-Core rev: 731f47ecfd8ad6558aac629806810789c623986b)

Signed-off-by: Alexandre Truong <alexandre.truong@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Alexandre Truong
3c05286fa1 oeqa/selftest/devtool: fix _test_devtool_add_git_url
This patch is a follow-up to the bug#15466.

As a reminder, the bug was about devtool’s submodule detection
checking for HEAD when a version is being passed.

As Vincent Kriek pointed out:
the --version that is being passed to devtool is only used for
setting the PV value in the recipe. To take into account the tag,
we add --srcrev to the command:
devtool add --srcrev v3.1.0 --version v3.1.0 mbedtls git://git@github.com/ARMmbed/mbedtls.git;protocol=https

Changes to _test_devtool_add_git_url have been made to take
into account the srcrev. srcrev will be passed as an optional
parameter because the test_devtool_add_git_style1
does not need the srcrev contrary to test_devtool_add_git_style2

Fixes [YOCTO #15466]

(From OE-Core rev: a8686f3641e4407dee3d807898ffd620e2732b78)

Signed-off-by: Alexandre Truong <alexandre.truong@smile.fr>
Reported-by: Alexandre Truong <alexandre.truong@smile.fr>
Suggested-by: Vincent Kriek <vincent@coelebs.dev>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Wang Mingyu
62ddbed32f mesa: upgrade 24.0.3 -> 24.0.5
Changelog:
 https://docs.mesa3d.org/relnotes/24.0.5.html

(From OE-Core rev: 5933d099c339596f62e1237d4e738dbe9f386b10)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Joe Slater
a46e374d43 oe-debuginfod: add option for data storage
Storing the data files under $HOME can be unreliable if debuginfod
is used for several projects, especially if $HOME is shared
between machines.  We provide an option to save files under the
project directory.  The default behavior is unchanged.

(From OE-Core rev: e1e0cf82f559077e2a51447baf137086202c0c4a)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Peter Marko
148eda4aeb glibc: Update to latest on stable 2.39 branch
Adresses CVE-2024-2961

Remove backported patch included in hash update.

Changes:
31da30f23c iconv: ISO-2022-CN-EXT: fix out-of-bound writes when writing escape sequence (CVE-2024-2961)
423099a032 x86_64: Exclude SSE, AVX and FMA4 variants in libm multiarch
04df8652eb Apply the Makefile sorting fix
edb9a76e30 powerpc: Fix ld.so address determination for PCREL mode (bug 31640)
7b92f46f04 x86-64: Simplify minimum ISA check ifdef conditional with if
9883f4304c x86-64: Don't use SSE resolvers for ISA level 3 or above
9d92452c70 AArch64: Check kernel version for SVE ifuncs
395a89f61e aarch64: fix check for SVE support in assembler
b0e0a07018 aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR
31c7d69af5 i386: Use generic memrchr in libc (bug 31316)
5d070d12b3 x86: Expand the comment on when REP STOSB is used on memset
6484a92698 x86: Do not prefer ERMS for memset on Zen3+
aa4249266e x86: Fix Zen3/Zen4 ERMS selection (BZ 30994)
5a461f2949 Add tst-gnu2-tls2mod1 to test-internal-extras
aded2fc004 elf: Enable TLS descriptor tests on aarch64
a8ba52bde5 arm: Update _dl_tlsdesc_dynamic to preserve caller-saved registers (BZ 31372)
15aebdbada Ignore undefined symbols for -mtls-dialect=gnu2
354cabcb26 x86-64: Allocate state buffer space for RDI, RSI and RBX
853e915fdd x86-64: Update _dl_tlsdesc_dynamic to preserve AMX registers
a364304718 x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers
7fc8242bf8 x86-64: Save APX registers in ld.so trampoline
983f34a125 LoongArch: Correct {__ieee754, _}_scalb -> {__ieee754, _}_scalbf
aad45c8ac3 powerpc: Placeholder and infrastructure/build support to add Power11 related changes.
ee7f4c54e1 powerpc: Add HWCAP3/HWCAP4 data to TCB for Power Architecture.
71fcdba577 linux: Use rseq area unconditionally in sched_getcpu (bug 31479)

(From OE-Core rev: 8b0124782510389bdc376fab645a0920b3fb94c8)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Iskander Amara
c7fd9294a6 linux-firmware: Move Intel AC 9260 bluetooth firmware to a separate package
In order to use Bluetooth on Intel AC 9260, we need to select
linux-firmware-ibt-misc package that brings a lot of fimw-
ares that are, in most cases, irrelevant for the used hardware.

This adds a new package linux-firmware-ibt-18 that only includes
the corresponding firmware for Intel AC 9260 bluetooth chips.

Below, the link to the commit that adds Intel AC 9260 firmwares in linux-
firmware:

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?h=20220610&id=97339b3a1d3bf3e4c40d679896a27a25fa83765f

Reported-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
(From OE-Core rev: 33827edf8212705a829c5aa23b69e8d1f7131d08)

Signed-off-by: Iskander Amara <iskander.amara@theobroma-systems.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Alexander Kanavin
f095782a5a libical: disable introspection in -native
libical has a custom cmake introspection support,
and so native provisions by g-i class aren't effective
(it has only standard autoconf/meson options).

(From OE-Core rev: 3857f7c9d9902dab1123083edd1a900e915aca9e)

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>
2024-04-30 22:20:16 +01:00
Marc Ferland
2fa95cec9b libinput: fix building with debug-gui option
When building libinput with the 'gui' PACKAGECONFIG option, it fails
with:

| Run-time dependency x11 found: YES 1.8.9
| Run-time dependency wayland-client found: YES 1.22.0
| Run-time dependency wayland-protocols found: YES 1.34
| Program wayland-scanner found: NO
|
| ../git/meson.build:578:20: ERROR: Program 'wayland-scanner' not found or not executable
|
| A full log can be found at /home/marc/mnt/yocto-latest/build/tmp/work/core2-64-poky-linux/libinput/1.25.0/build/meson-logs/meson-log.txt
| ERROR: meson failed
| WARNING: exit code 1 from a shell command.

Adding a build dependency on wayland-native fixes the issue.

(From OE-Core rev: 0e2d18e6267d26870ccbe45734bfccbc02744357)

Signed-off-by: Marc Ferland <marc.ferland@sonatest.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Bartosz Golaszewski
ab640fd3b4 linux-firmware: add a package for ath12k firmware
Add the firmware package for the ATH12K module.

(From OE-Core rev: 4620f719eec7d4468074f5d70adf0292e5621d4e)

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Xiangyu Chen
cdb1c4b3bb ltp: add iputils-ping6 to RDEPENDS
According to the LTP documents[1], it using ping6 from iputils which
support "-I" option to bind the interface[2].

Ref:
[1] https://github.com/linux-test-project/ltp/commit/6f97789c
[2] https://github.com/linux-test-project/ltp/commit/64b11656

(From OE-Core rev: 0b89bc2041f670af625829d061ce79e0840ac116)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Daniel Klauer
1703811011 cmake.bbclass: Add ${COREBASE}/scripts to CMAKE_FIND_ROOT_PATH
${COREBASE}/scripts contains a "git" wrapper disabling fakeroot/pseudo.
This patch allows CMake to find ${COREBASE}/scripts/git instead of
${HOSTTOOLS_DIR}/git. This is needed for git invocations during do_install,
since do_install is a fakeroot task, and otherwise all git commands fail
with "fatal: detected dubious ownership in repository ...".

I don't know how common it is for CMake projects to invoke git during the
install phase intentionally. It's probably more common to do this during
the configure phase. However, the install step may re-run the configure
step, if some dependencies changed.

In my case, this happened in incremental Yocto builds which reran
do_install and repopulated parts of the recipe-sysroot during that,
without first rerunning do_configure or do_compile. One of the dependencies
changed (but only changing a file in some unrelated sub-package of it which
was not even installed into the recipe-sysroot), causing the dependant's
recipe-sysroot to be repopulated during do_install and thus causing the
CMake project to be reconfigured during do_install.

(From OE-Core rev: c1d1252032a5f146ad91eafc6f57ab4ea2a72e9c)

Signed-off-by: Daniel Klauer <daniel.klauer@gin.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Dmitry Baryshkov
5496c01487 ffmpeg: backport patches to use new Vulkan AV1 codec API
Backport two patches from ffmpeg git to fix compilation with the newest
Vulkan API.

(From OE-Core rev: a9393391613cd81643744daf930eaabf2ced79b7)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-30 22:20:16 +01:00
Heiko
5533d33d1e kernel.bbclass: check, if directory exists before removing empty module directory
If the kernel folder does not exist, find will result in an error.
This can occur if the kernel has no modules but, for example, custom modules are created.

Add check before deleting.

(From OE-Core rev: 7ef767d84d56b25498e45db83bb8f9d9caebeaf9)

Signed-off-by: Heiko Thole <heiko.thole@entwicklung.eq-3.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 13:39:31 +01:00
Changhyeok Bae
aaf2ad624b iproute2: upgrade 6.7.0 -> 6.8.0
* Release Note *
This is regular release of iproute2 corresponding to the 6.8 kernel.
In addition to the usual round of documentation fixes, many
small changes to ss utility. Most of the work to have full JSON
support in traffic control (TC) is done, only a few leftovers.

Remove support fot ipt and xt in tc.

(From OE-Core rev: f0a26644b620dea3f8ca82714cfa3249b13b01b1)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Khem Raj
8ab7a033d4 llvm: Upgrade to 18.1.4
Brings following fixes

* e6c3289804a6 [CMake][Release] Disable PGO (#88465) (#89000)
* 028e425f86cc [MIPS] Fix the opcode of max.fmt and mina.fmt (#85609)
* e3c832b37b0a Fix override keyword being print to the left side
* 1deeee3f5da4 Revert "[Mips] Fix missing sign extension in expansion of sub-word atomic max (#77072)"
* 995539ce05ba [LLD] [COFF] Don't add pseudo relocs for dangling references (#88487)
* db67e6fb9ad1 [libc++] Fix -Wgnu-include-next in stddef.h (#88214)
* 647fbc710840 [SelectionDAG] Prevent combination on inconsistent type in `combineCarryDiamond` (#84888)
* eaae766a20fd [RISCV] Support rv{32, 64}e in the compiler builtins (#88252)
* c24b41d71f2e github-upload-release.py: Fix bug preventing release creation (#84571)
* c837970dd7e9 [Codegen][X86] Fix /HOTPATCH with clang-cl and inline asm (#87639)
* d0ddcce21d91 [InstSimplify] Make sure the simplified value doesn't generate poison in threadBinOpOverSelect (#87075)
* 4056cc29dfd3 Prepend all library intrinsics with `#` when building for Arm64EC (#87542)
* 6e071cf30599 [SLP]Fix a crash if the argument of call was affected by minbitwidth analysis.
* d89da2ac8839 [libcxx] coerce formatter precision to int (#87738)
* b6ebea7972cd [SPARC] Implement L and H inline asm argument modifiers (#87259)
* bffecba7ce4c [libc++] Simplify the implementation of <stddef.h> (#86843)
* 9899a2d76c8f [lit][ci] Publish lit wheels (#88072)
* 3ceccbdb1995 [clang-format] Correctly annotate braces of empty ctors/dtors (#82097)
* 429d62872525 [Headers] Don't declare unreachable() from stddef.h in C++ (#86748)
* feba8727f805 [ConstantRange] Fix off by 1 bugs in UIToFP and SIToFP handling. (#86041)
* e4259b583c92 [Float2Int] Pre-commit test for SIToFP/UIToFP ConstantRange bug. NFC
* daca56d8e162 Bump version to 18.1.4 (#87715)

(From OE-Core rev: adc2651a8e902af24fee6ff30a72f4b7c63bef6f)

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>
2024-04-25 10:19:28 +01:00
John Ripple
5756ac9936 rootfs.py: Fix logger error message format
--_000_PH7PR17MB61307CB6690EC00DEB4ED9B39C0F2PH7PR17MB6130namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

This patch adds a missing "%s" format in a logger.error call. Without
this addition the logger itself would error out and not print a useful
message.

(From OE-Core rev: 2c892e5dd9ba72a51c0a8fb851599cc2dc3a8b5c)

Signed-off-by: John Ripple <john.ripple@keysight.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Marek Vasut
3e6c8c2c56 gstreamer1.0-plugins-good: Include qttools-native during the build with qt5 PACKAGECONFIG
The qttools provide 'lrelease' tool, which is checked by recent
versions of meson build system. Unless the qttools are available
in sysroot, meson will fail to detect qt5 installation at build
time and the gstreamer build will fail. Fix this by including
the qttools-native.

(From OE-Core rev: ae2ca4af54695003638da38f8548aa8573d18201)

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Emil Kronborg
d85ac68b26 at-spi2-core: add at-spi2-atk to CVE_PRODUCT
Commit ad605662f1bc ("at-spi2-core: upgrade 2.44.1 -> 2.46.0") dropped
the at-spi2-atk recipe, because it was merged into at-spi2-core upstream
[1]. The PROVIDES variable was changed to also include at-spi2-atk, but
not CVE_PRODUCT.

[1]: https://gitlab.gnome.org/GNOME/at-spi2-core/-/merge_requests/78

(From OE-Core rev: bcf51a191de5c7ac6849568989f861b3c6b16273)

Signed-off-by: Emil Kronborg <emil.kronborg@protonmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Maxin B. John
513d9982a2 iproute2: drop obsolete patch
libc-compat.h fix for musl was obsolete after 4.16.0 release of iproute2.
Drop it.

(From OE-Core rev: ad57a1e124a1de7af7ef8479ed779230e923d3af)

Signed-off-by: Maxin John <maxin.john@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Willy Tu
64d28fb55d rust-target-config: fix feature for vfpv4f16
Based on [1] which fixed the target for vfpv3d16. Adding the support for
vfpv4d16 with the same set of changes.

Tested with running tokio which hit coredump before the change. It
worked fine after this change.

[1] https://lists.openembedded.org/g/openembedded-core/message/185702

(From OE-Core rev: 8fb2f9f60962339c877949f619e1e72d33bf3080)

Signed-off-by: Willy Tu <wltu@google.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Poonam Jadhav
bbb21c1b0c ppp: Add RSA-MD in LICENSE
ppp package has "RSA Data Security" license text in
Message-Digest Algorithm source file ppp-md5.c and ppp-md4.c
Add RSA-MD in LICENSE field for ppp package

(From OE-Core rev: 9c58193c898b0ea28c3931a57dca5bb829a44051)

Signed-off-by: Poonam Jadhav <poonam.jadhav@kpit.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Rasmus Villemoes
89204a0114 openssh: add After dependencies on nss-user-lookup.target
Quoting 'man systemd.special':

  nss-user-lookup.target

    A target that should be used as synchronization point for all
    regular UNIX user/group name service lookups. [...] All services
    for which the availability of the full user/group database is
    essential should be ordered after this target, but not pull it
    in. All services which provide parts of the user/group database
    should be ordered before this target, and pull it in.

When no service providing parts of the user/group database exists and
thus pulls in the nss-user-lookup.target, this added dependency is a
no-op.

However, when such a service does exist, and e.g. modifies /etc/shadow
to change password or enable/disable certain accounts, it is essential
that no ssh connections are accepted until those changes are made.

(From OE-Core rev: 365b5490f3b12772ed57a6bcfd1e0e8a91185afc)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:19:28 +01:00
Alexander Kanavin
8aa5d31184 icu: add upstream submission links for fix-install-manx.patch
(From OE-Core rev: 269a1a65d2526be5622b4c1f552b6f5541e0cb86)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
420e4bab1a connman: submit 0002-resolve-musl-does-not-implement-res_ninit.patch upstream
(From OE-Core rev: 3e38999c60a58cace97357585271c0b62e5b7de7)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
2030965792 connman: make 0002-resolve-musl-does-not-implement-res_ninit.patch libc-agnostic
The patch is reworked to take musl-specific path only if the functions are
undefined by libc (which can be checked via __RES, as explained in
https://www.openwall.com/lists/musl/2020/10/23/16 ).

This should make it more suitable for upstream submission.

(From OE-Core rev: 8579ae324c69cd278c2bdb08187b27f15c2d9c67)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
87f28339cc bash: mark build-tests.patch as Inappropriate
(From OE-Core rev: 3d82d44ed6822b7a276df355311e384c02d36c43)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
e79a48eb7a xinput-calibrator: mark upstream as inactive in a patch
(From OE-Core rev: 959591615d18f636768671e1e14e5945a6cbb010)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
6655b2bd9f gstreamer1.0-plugins-good: remove 0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch
At some point this patch became unnecessary as the respective qt5 plugin is building without issues
without it (checked on qemuarm/qemuarm64).

(From OE-Core rev: 093575753b928d36a21dca6ff2378b4e299ff4af)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
2a25f926a7 apr: drop 0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch
At some point this became unnecessary, as tested by building apr
with DISTRO_FEATURES:append = " ld-is-gold"

The logs do confirm that (previously) problematic binary links without errors.

(From OE-Core rev: c041932f14cf552b0446732ce0cca6537f3286ab)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
472ec551eb busybox: remove busybox-udhcpc-no_deconfig.patch
The option was introduced in:
https://git.yoctoproject.org/poky/commit/?h=master&id=427472e980cd6254a5e4ef37209b327e15af259b
for the purpose of a standalone udhcpc service.

18 months later the service was removed as it was clashing with the
broader networking service, and the option isn't used
anywhere else:
https://git.yoctoproject.org/poky/commit/?h=master&id=a4b1e348484b74d055b8906413892789d3452f4a

There's a slight chance the option still survives
somewhere private, and is important in that context,
but I'd rather drop the patch so it can be maintained
where it's useful, and maybe even proposed upstream.

(From OE-Core rev: e9dfd3a422d7448ee93ae0dd7e8756a831a578f7)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
428b72a482 busybox: submit CVE-2022-28391 patches upstream
(From OE-Core rev: 64c026024b1c86797de338760b9f29d7e949926c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
482885e839 apr: submit 0001-Add-option-to-disable-timed-dependant-tests.patch upstream
(From OE-Core rev: 1bfe386e69d7a688815a78bd2d5766a4b0665e7f)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
8f38627c76 expect: mark patches as Inactive-Upstream
There's every indication that this is an ex-expect:
last release in 2018, stale tickets, cvs server gone.

(From OE-Core rev: 0fcfd2cb51428a3f35c0f78634bff0a16ae654e9)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
f1e323d4e0 kea: remove unnecessary reproducibility patch
Rather, adjust the sed invocation to do the correct thing directly.

(From OE-Core rev: 804afb2eb9cc2b5650faa80816f377fa5b72fb38)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Alexander Kanavin
8b440c19b1 serf: mark patch as inappropriate for upstream submission
What the patch does is not suitable, as upstream would surely
want the issue with the code fixed, not removal of that code altogether.

I'd also note that serf is still semi-ummaintained, and the only consumer
of it is subversion, which is slowly but steadily fading away in favor of
git and artifact-specific solutions.

(From OE-Core rev: 634717817e94740ac8d4e8cc82cb68bfd15d8dbd)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:15 +01:00
Julien Stephan
aace45f9b8 oeqa/selftest/devtool: add test for updating local files into another layer
We don't have a test to check if we can correctly devtool update-recipe/finish
into another layer. So update the existing test_devtool_update_recipe_local_files
to also check the updates into another layer.

(From OE-Core rev: bd44c895d36e246a25c7a6e40bf9f4089dc7a297)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:14 +01:00
Julien Stephan
28516320d8 devtool: standard: update-recipe/finish: fix update localfile in another layer
When trying to use devtool update-recipe/finish on another layer, with modified
local file we have the following error:

  Traceback (most recent call last):
    File "<..>/poky/scripts/devtool", line 350, in <module>
      ret = main()
            ^^^^^^
    File "<..>/poky/scripts/devtool", line 337, in main
      ret = args.func(args, config, basepath, workspace)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "<..>/poky/scripts/lib/devtool/standard.py", line 1968, in update_recipe
      updated, _, _ = _update_recipe(args.recipename, workspace, rd, args.mode, args.append, args.wildcard_version, args.no_remove, args.initial_rev, dry_run_outdir=dry_run_outdir, no_overrides=args.no_overrides, force_patch_refresh=args.force_patch_refresh)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "<..>/poky/scripts/lib/devtool/standard.py", line 1930, in _update_recipe
      updated, appendf, removed = _update_recipe_patch(recipename, workspace, srctree, crd, appendlayerdir, wildcard_version, no_remove, no_report_remove, initial_rev, dry_run_outdir, force_patch_refresh)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "<..>/poky/scripts/lib/devtool/standard.py", line 1747, in _update_recipe_patch
      patchdir = param.get('patchdir', ".")
                 ^^^^^^^^^
  AttributeError: 'str' object has no attribute 'get'

This was introduced when adding support for git submodules.
No selftest case exists to catch this, so a selftest will be
added in another commit.

(From OE-Core rev: de7ca9f800e15e10271502da7e51e3ae08e0c85b)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:14 +01:00
Vincent Kriek
629063944c devtool: sync: Fix Execution error
When executing devtool sync on a recipe that was extract with devtool
extract earlier the following error occured:

    Traceback (most recent call last):
    [...]
    bb.process.ExecutionError: Execution of 'git fetch file:///home/vin/projects/poky/build/tmp/work/all-poky-linux/netbase/6.4/devtooltmp-figt1jmr/workdir/netbase devtool:devtool' failed with exit code 128:
    fatal: refusing to fetch into branch 'refs/heads/devtool' checked out at '/home/vin/projects/poky/build/netbase-src'

Fix this by adding --update-head-ok and --force to git fetch so it will
override the current head even if it is checked out and has changes.
Possible existing changes in the devtool branch can be retrieved by
checking out the devtool.bak branch

(From OE-Core rev: 4c89b061003a0f4143c6d3838e39fc2643edc8d6)

Signed-off-by: Vincent Kriek <vincent@coelebs.dev>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:10:14 +01:00
Ola x Nilsson
25adb31d37 binutils: Remove conflict markers from 0008-Use-libtool-2.4.patch
The diff hunks were not doing anything important, just remove them.

(From OE-Core rev: 06003911df37d41b6d04946571a9c1fbe41a6414)

Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Christian Bräuner Sørensen
368dd0432e systemd: sed ROOT_HOME only if sysusers PACKAGECONFIG is set
Fixes a bug introducted in ebafe46379 systemd: upgrade to 255.1.

Besides updating systemd, that commit also made other changes. One of them
being when to perform the replacement in order to fix ROOT_HOME.

Previously, that happened on a configure prefunc and on
${S}/sysusers.d/basic.conf.in.
Now it happens in install and on image/usr/lib/sysusers.d/basic.conf.

However, that file is not present if sysusers is not in PACKAGECONFIG,
since that file in that case is not installed hence resulting in:
sed: can't read <redactedpath>/image/usr/lib/sysusers.d/basic.conf: No such file or directory

Previously, in the case of sysusers not being in PACKAGECONFIG, that was a
"silent error" since the replacement was done but the file was not really
used since the file was not installed.

(From OE-Core rev: fac654a5445da2603b3435aca8db33fc8411d51b)

Signed-off-by: Christian Bräuner Sørensen <yocto@bsorensen.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
6dbbcf2e1f xcb-proto: upgrade 1.16.0 -> 1.17.0
(From OE-Core rev: c18903a9ba34733ed2c4b2184523137021a7d06c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
ef36fa445c wayland-protocols: upgrade 1.34 -> 1.35
Changelog:
==========
- tablet-v2: mark as stable
- staging: add alpha-modifier protocol
- xdg-shell: add missing enum attribute to set_constraint_adjustment
- xdg-shell: recommend against drawing decorations when tiled
- cursor-shape-v1: Does not advertises the list of supported cursors

(From OE-Core rev: 0974ee04e5e6ba4f42d37db9a096c0dc084b80a9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
0411bc8eb3 vala: upgrade 0.56.16 -> 0.56.17
* Various improvements and bug fixes:
 - codegen:
   + Add missing initializers for private fields of GSourceFuncs
   + Update array length variable passed to null-terminated ref parameter
   + Properly pass through a null-terminated out argument
   + Refactor and cache parameter in loop
   + Only handle null-terminated array as such if there is no length given
 - vala:
   + Allow declaration of static nested methods (local functions)
   + Correctly use Path.build_path()
   + Point to the invalid initializer on error
   + Report invalid type in property assignment attempt
   + Inherit important attributes for Property backing field

* Bindings:
 - glib-2.0: Avoid unnecessary copying operations in FileStream.read_line()
 - glib-2.0: Add SPACING_MARK, deprecate COMBINING_MARK
 - glib-2.0: Add dev_t/gid_t/pid_t/uid_t/socklen_t types for compatibility
 - gnu: add binding for flock(2) and its constants

(From OE-Core rev: 33c3210a0674a7c67b513d15ebcc16c0ca12846c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
863860a63a util-macros: upgrade 1.20.0 -> 1.20.1
Changelog:
 Remove unnecessary escape

(From OE-Core rev: f141e79d1b56563b86a6ebaadcd9dbb1f9839635)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
caf0d84fbd taglib: upgrade 2.0 -> 2.0.1
Changelog:
===========
* Fix aborting when _GLIBCXX_ASSERTIONS are enabled.
* Fall back to utf8cpp header detection in the case that its CMake
  configuration is removed.
* Improve compatibility with the SWIG interface compiler.
* Build system fixes for testing without bindings, Emscripten and Illumos.
* C bindings: Fix setting UTF-8 encoded property values.
* Windows: Fix opening long paths.

(From OE-Core rev: d3438bd2698dff19722123d7b2b5674ba40107eb)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
7d0f100c57 stress-ng: upgrade 0.17.06 -> 0.17.07
Changelog:
===========
- Porting fixes to support modern Solaris systems
- Improve vecshuf performance (regression due to using -O3 on gcc on vec ops)

(From OE-Core rev: 3cc7b0d8d6ee02e90f47fecf093d7192776d81a8)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
8ae91f1532 repo: upgrade 2.44 -> 2.45
Changelog:
===========
- project: Check if dotgit exists w/out symlink check
- git: raise soft version to 2.7.4
- git: raise hard version to 1.7.9
- docs: release: add recent git/python/ssh/debian info
- main: Stringify project name in error_info

(From OE-Core rev: 3266f1a3318e733e361b8e1d9d7c69af100c1b8d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
6e4d8d975d python3-trove-classifiers: upgrade 2024.3.3 -> 2024.4.10
Changelog:
==========
- Add Natural Languages
- Add OpenTelemetry related classifiers

(From OE-Core rev: d2b76538679910d986e3e58f91bd9fce8eb9c63f)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
269b7ea709 python3-setuptools: upgrade 69.2.0 -> 69.5.1
Changelog:
=============
- Merged bugfix for pypa/distutils
- Refresh unpinned vendored dependencies.
- Updated vendored packaging to version 24.0.
- Remove attempt to canonicalize the version. It's already canonical enough.
- Support PEP 625 by canonicalizing package name and version in filenames.

(From OE-Core rev: e411840719054ed7e1ada8b2386860a91c80672b)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
17db816f0c python3-pygobject: upgrade 3.48.1 -> 3.48.2
Changelog:
===========
* Fix support for fundamental (primitive) types, such as Gst.Bitmask

(From OE-Core rev: eb5cb27155232b969508825628ee87942e9ba1cf)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
b133f60dc9 python3-pluggy: upgrade 1.4.0 -> 1.5.0
Changelog:
===========
- Add support for deprecating specific hook parameters, or more generally, for
  issuing a warning whenever a hook implementation requests certain parameters.
- PluginManager.get_plugins() no longer returns None for blocked plugins.

(From OE-Core rev: 0a6fe31e8fbf0c70a488b7cb10bab3a4d729ec34)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
315ee4a15a python3-mako: upgrade 1.3.2 -> 1.3.3
Changelog:
============
- Fixed unexpected error when use control lines which the first control block
  with no bodies other than comments,as pass is now added to the first empty block.
- Fixed unexpected syntax error in strict_undefined mode that occurred
 when using comprehensions within a function in a Mako Python code block.
 Now, the local variable in comprehensions won't be added to the checklist
 when using strict_undefined mode.

(From OE-Core rev: 1eb880291476759a56c2772c9485bec41040ccff)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
3d0bd036a8 python3-lxml: upgrade 5.1.0 -> 5.2.1
Changelog:
===========
* LP#2059910: The minimum CPU architecture for the Linux x86 binary wheels was set back to
  "core2", but with SSE 4.2 enabled.
* LP#2059977: "Element.iterfind("//absolute_path")" failed with a "SyntaxError"
  where it should have issued a warning.
* GH#416: The documentation build was using the non-standard "which" command.

(From OE-Core rev: ed3cfa344c65daf4ac61d4ca95288c72885b4b11)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
de08fd88e9 python3-idna: upgrade 3.6 -> 3.7
License-Update: Copyright year updated to 2024.

Changelog:
 Fix issue where specially crafted inputs to encode() could take exceptionally long amount of time to process.

(From OE-Core rev: 13316368a8fd886a6eba96e0fc505e80c709b7f0)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
3f48009b71 python3-hypothesis: upgrade 6.99.4 -> 6.100.1
Changelog:
=========
-improve a rare error message for flaky tests
-The from_dtype() function no longer generates NaT ("not-a-time") values for
 the datetime64 or timedelta64 dtypes if passed allow_nan=False
-includes the backend setting in the how_generated field of our observability output.
-If you were running Python 3.13 (currently in alpha) with pytest-xdist and
 then attempted to pretty-print a lambda functions which was created using
 the eval() builtin, it would have raised an AssertionError.
-improves an internal invariant.
-fixes Hypothesis sometimes raising a Flaky error when generating collections
 of unique floats containing nan.
-continues our work on refactoring the shrinker
-continues our work on refactoring shrinker internals
-resolves PermissionError that come from creating databases on inaccessible paths.
-starts work on refactoring our shrinker internals. There is no user-visible change.
-fixes a longstanding performance problem in stateful testing

(From OE-Core rev: 0652a662f01fef3364c375817809fbffc452cfaf)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
096da3381c python3-hatchling: upgrade 1.22.4 -> 1.24.1
Fix:
 Maintain file permissions for shared-scripts option/shared_scripts build data of the wheel target

(From OE-Core rev: d52a9369ebeebcd17c27b371008b5c01b619556d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:03 +01:00
Wang Mingyu
ec2176d508 python3-dtschema: upgrade 2024.2 -> 2024.4
Changelog:
============
-fixups: Convert anyOf/oneOf + const to enum
-dt-validate: Add an 'only matching compatible' schema validation mode
-schemas: pci: allow additional device properties in pci-pci-bridge
-validator: Rework selecting schemas for validation
-validator: Add a version to the processed schemas
-schemas: chosen: Remove 'linux,tpm-kexec-buffer'
-README: fix broken link to json-schema.org
-schemas: Add schema for post-init-providers
-fixups: Fix dropping of array 'items' schema
-schemas: chosen: Change address+size properties' type to 'address'
-Add a dedicated type for address properties
-dtb: Filter out types with the wrong length multiple
-schemas: dma: Ensure 'dma-names' entries are unique (mostly)
-schemas: Ensure -names properties' entries are unique
-dtb: Skip decoding strings if not nul terminated

(From OE-Core rev: 32d96d1334a5641a6b3a67244b1fc6daf77c5268)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
f9e6ab7fb8 python3-cython: upgrade 3.0.9 -> 3.0.10
Changelog:
==========
* Cython generated incorrect self-casts when directly calling final methods of subtypes.
* Internal C names generated from C function signatures could become too long for MSVC.
* The "noexcept" warnings could be misleading in some cases.
* The "@cython.ufunc" implementation could generate incomplete C code.
* The "libcpp.complex" declarations could result in incorrect C++ code.
* Several tests were adapted to work with both NumPy 1.x and 2.0.
* C compiler warnings when the freelist implementation is disabled (e.g. on PyPy) were fixed.
  It can now be disabled explicitly with the C macro guard "CYTHON_USE_FREELISTS=0".
* Some C macro guards for feature flags were missing from the NOGIL Python configuration.
* Some recently added builtins were unconditionally looked up at module import time
  (if used by user code) that weren't available on all Python versions and could thus
  fail the import.
* A performance hint regarding exported pxd declarations was improved.

(From OE-Core rev: 4c5840c01e40a012fcbdc316cbed817f4b3cf230)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
1177371cfc python3-beartype: upgrade 0.18.2 -> 0.18.5
(From OE-Core rev: ceb7d21da8476f30687cc2e4af3837bfd214e73a)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
004e8062f1 pango: upgrade 1.52.1 -> 1.52.2
Changelog:
==========
- coretext: Implement reload_font
- coretext: Use Menlo instead of Courier for monospace
- win32: Avoid a double free
- Update to Unicode 15.1
- Simplify hexbox drawing

(From OE-Core rev: 1a2d7e127d251d0342044b9265e00c35357ead68)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
e336fee6e5 openssl: upgrade 3.2.1 -> 3.3.0
CVE-2024-2511.patch
revmoed since it's included in 3.3.0

Changelog:
 https://github.com/openssl/openssl/blob/openssl-3.3.0/NEWS.md

(From OE-Core rev: 1d6cb1592d6883cc504ff0776810312f732664ae)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
180b4cb712 ninja: upgrade 1.11.1 -> 1.12.0
Changelog:
==========
-Critical path scheduler which orders the jobs by their runtime history
-This may break your build if you haven't specified your dependencies correctly.
-Resiliency against inputs changing during the build
-Reliable ETA and progress percentage in status
-Support for path lengths over 260 characters on Windoiws
-ARM binaries are now available for Windows and Linux, too
-Several bugfixes

(From OE-Core rev: 06253525be0c5dfd9db656e395c96db4712277b6)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
52e67109f1 lttng-ust: upgrade 2.13.7 -> 2.13.8
Changelog:
============
* Add close_range wrapper to liblttng-ust-fd.so
* ust-tracepoint-event: Add static check of sequences length type
* lttng-ust(3): Fix wrong len_type for sequence
* Fix: libc wrapper: use initial-exec for malloc_nesting TLS

(From OE-Core rev: 3dd02f741a151bcc1fe46e7fd6d585ca92c86c60)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
8f0971215a lighttpd: upgrade 1.4.75 -> 1.4.76
Changelog:
==========
* [core] add default to builtin mimetype.assign
* [core] add MPTCP support
* [core] disable MPTCP support by default
* [mod_expire] omit caching hdrs for 204 No Content
* [mod_staticfile] noinline cold func
* [core] GNU/Hurd preadv2() RWF_NOWAIT ENOTSUP
* [core] special value for Linux POLLRDHUP on SPARC
* [mod_openssl] define asn1 time w/ OPENSSL_NO_OCSP
* [h2] VU#421644 HTTP/2 CONTINUATION Flood
* [build] packdist.sh git archive; replace make dist
* [core] gw_network_backend_write_error() cold func
* [core] reduce syscalls in some backend connect
* [core] defer TCP_FIN propagate if connect()ing
* [ci] workaround some packaging issues in NetBSD 10

(From OE-Core rev: 09ee0fb9f36eb856354b551855323b8ca38c0e80)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
fb21371fef libxmu: upgrade 1.2.0 -> 1.2.1
Changelog:
============
test: Add prototype for Xmureallocarray to silence warning
test: Add missing setjmp()

(From OE-Core rev: 2c7c70065a9c8450007a99cf647336d30d4e86a1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
721b961d2f libxmlb: upgrade 0.3.17 -> 0.3.18
Changelog:
==========
- Fix decompressing large zstd files, harder
- Include the pkgconfig variables in the subproject declared dependency

(From OE-Core rev: 89741b5fc9240e2fb183c331769b16cb8aa4b8b5)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
2b87da3f57 libwebp: upgrade 1.3.2 -> 1.4.0
Changelog:
==========
* API changes:
  - libwebpmux: WebPAnimEncoderSetChunk, WebPAnimEncoderGetChunk,
                WebPAnimEncoderDeleteChunk
  - libsharpyuv: SharpYuvOptionsInit, SharpYuvConvertWithOptions
  - extras: SharpYuvEstimate420Risk
* further security related hardening in libwebp & examples
* some minor optimizations in the lossless encoder
* added WEBP_NODISCARD to report unused result warnings; enable with
  -DWEBP_ENABLE_NODISCARD=1
* improvements and corrections in webp-container-spec.txt and
  webp-lossless-bitstream-spec.txt
* miscellaneous warning, bug & build fixes

(From OE-Core rev: 604f81b833472913db5001242ede5ea8397a2104)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
03aafcb9db libsdl2: upgrade 2.30.1 -> 2.30.2
Changelog:
===========
-Fixed performance regression initializing controllers on Linux
-Added support for the 6-button SEGA Mega Drive Control Pad for Nintendo Online
-Added support for the MadCatz Saitek Side Panel Control Deck
-Added support for the Hori Fighting Stick EX2
-Added support for the Yawman Arrow flightstick
-Added a gamepad mapping for the Defender Joystick Cobra R4
-Fixed the gamepad mapping for the Sanwa Supply JY-P76USV controller
-Poll for the initial controller state when using DirectInput
-Allow using SDL_RWFromFile() with named pipes

(From OE-Core rev: ec532272e2ba2b2c182305e66068da5c0c4412e7)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
1145592890 libpam: upgrade 1.6.0 -> 1.6.1
0001-pam_namespace-include-stdint-h.patch
removed since it's included in 1.6.1

Changelog:
===========
* build: fail if specified configure options cannot be satisfied.
* pam_env: fixed --disable-econf --enable-vendordir support.
* pam_unix: do not warn if password aging is disabled.
* pam_unix: try to set uid to 0 before unix_chkpwd invocation.
* pam_unix: allow empty passwords with non-empty hashes.
* Multiple minor bug fixes, build fixes, portability fixes,
  documentation improvements, and translation updates.

(From OE-Core rev: 2758bc1e521270c77c768a6d9701cb15dd30ea82)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
94c08708b8 libarchive: upgrade 3.7.2 -> 3.7.3
Changelog:
==========
-PCRE2 support
-add trailing letter b to bsdtar(1) substitute pattern
-add support for long options "--group" and "--owner" to tar(1)
-Fix possible vulnerability in tar error reporting introduced in f27c173
-ISO9660: preserve the natural order of links
-rar5: fix decoding unicode filenames on Windows
-rar5: fix infinite loop if during rar5 decompression the last block produced no data
-xz filter: fix incorrect eof at the end of an lzip member
-zip: fix end-of-data marker processing when decompressing zip archives
-multiple bsdunzip(1) fixes
-filetime truncation fix on Windows

configurehack.patch
refreshed for 3.7.3

(From OE-Core rev: bd4ab2025bcaffcf2802ad09c9d83e2a4d2a0f2c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
afcce74288 gdk-pixbuf: upgrade 2.42.10 -> 2.42.11
0001-meson.build-allow-a-subset-of-tests-in-cross-compile.patch
fatal-loader.patch
refreshed for 2.42.11

Changelog:
===========
- Disable fringe loaders by default
- Introspection fixes
- Translation updates

(From OE-Core rev: 243a6fce44882ff16c5dfcb518cafd8ee8f7ae24)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
bbbadbcbf3 gcr: upgrade 4.2.1 -> 4.3.0
Changelog:
============
- certificate: Add API to retrieve version
- Bump required GnuTLS version to 3.8.5
- Avoid potential integer overflow spotted by UBSan
- Support GnuTLS as an alternative crypto backend
- Updated translations

(From OE-Core rev: 926b94a9477675f5828eb7d997aac8975500b7a8)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
0b7f51d1ef dpkg: upgrade 1.22.5 -> 1.22.6
Changelog:
============
-po: Regenerate .pot files and merge .po files with them
-Dpkg::Vendor::Debian: Unconditionally set qa bug-implicit-func
-build: Fix typo in CI config
-build: Add gen-release script
-test: Skip OpenPGP tests if the backend does not have a verify command
-test: Refactor certfile and keyfile filenames for OpenPGP test
-test: Refactor OpenPGP backend and commands list
-build: Test with minimal library dependencies in CI
-dpkg-deb: Fix up compressor parameters for default legacy format
-man: Document dpkg versions supporting SOURCE_DATE_EPOCH for various tools
-debian: Fix typo in man page reference in changelog
-po: Fix typos in Swedish man pages translations
-po: Update Dutch man pages translations
-po: Update Portugese man pages translations
-Dpkg::Vendor::Debian: Make it possible to disable qa=-bug-implicit-func
-libdpkg: Use a macro to define the zstd default compression level
-libdpkg: Use array access instead of pointer arithmetic for meminfo parser
-po: Update German man pages translation

(From OE-Core rev: b9b4ad48812add8b59d3b17e5c3bd9fd3f8744c7)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
929f60bdcc diffoscope: upgrade 260 -> 265
Changelog:
==========
* Ensure that tests with ">=" version constraints actually print the
  corresponding tool name.
* Prevent odt2txt tests from always being skipped due to an impossibly new
  version requirement.
* Avoid nested parens-in-parens when printing "skipping" messages
  in the testsuite.
* Don't crash on invalid zipfiles, even if we encounter 'badness'
  halfway through the file.
* Fix a crash when there are (invalid) duplicate entries in .zip files.
* Add note when there are duplicate entries in ZIP files.
* Add an external tool reference for GNU Guix for zipdetails.
* Add support for the zipdetails(1) tool included in the Perl distribution.
* Don't use parenthesis within test "skipping" messages; PyTest adds its own
  parenthesis, so we were ending up with double nested parens.
* Fix the .epub tests after supporting zipdetails(1).
* Update copyright years and debian/tests/control.
* Fix MozillaZipContainer's monkeypatch after Python's zipfile module changed
  to detect potentially insecure overlapping entries within .zip files.
* Factor out Python version checking in test_zip.py.
* Also skip some zip tests under 3.10.14 as well; a potential regression may
  have been backported to the 3.10.x series. The underlying cause is still to
  be investigated.
* Don't crash if we encounter an .rdb file without an equivalent .rdx file.
* In addition, don't identify Redis database dumps (etc.) as GNU R database
  files based simply on their filename.

(From OE-Core rev: f22945ba9b4835e52809bedc4e3be73a91aafe07)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
e6f70e0f83 cronie: upgrade 1.7.1 -> 1.7.2
Changelog:
============
*Revert setting the return path to <>. It is not RFC compliant.
*Inherit MAILFROM from the crond process environment.

(From OE-Core rev: e93d7ba7ea3718e396510b12726a232edaecf976)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Wang Mingyu
0dbf873a5c bind: upgrade 9.18.25 -> 9.18.26
Changelog:
============
- Add RESOLVER.ARPA to the built in empty zones.
- dig/mdig +ednsflags=<non-zero-value> did not re-enable
  EDNS if it had been disabled.
- Some invalid ISO 8601 durations were accepted
  erroneously.
- Don't return static-stub synthesised NS RRset.
- Fix bug in Depends (keymgr_dep) function.
- Support for the RESINFO record type has been added.
- Cleaned up several minor bugs in the RBTDB dbiterator
  implementation.
- Added missing dns_rdataset_disassociate calls in
 validator.c:findnsec3proofs.
- Fix incorrectly reported errors when running tests
 with `make test` on platforms with older pytest.
- Optimize slabheader placement, so the infrastructure
 records are put in the beginning of the slabheader
 linked list.
- Improve ARM parental-agents definition.
- Fix the DNS_GETDB_STALEFIRST flag, which was defined
 incorrectly in lib/ns/query.c.
- Update ZSK minimum lifetime documentation in ARM, also
 depends on signing delay.
- Add workaround to enforce dynamic linker to pull
 jemalloc earlier than libc to ensure all memory
 allocations are done via jemalloc.
- Changes to "listen-on" statements were ignored on
 reconfiguration unless the port or interface address was
 changed, making it impossible to change a related
 listener transport type. Thanks to Thomas Amgarten.
- Expose the TCP client count in statistics channel.
- Fix a possible crash in 'dig +nssearch +nofail' and
 'host -C' commands when one of the name servers returns
 SERVFAIL.
- When dnssec-policy is in effect the DNSKEY's TTLs in
 the zone where not being updated to match the policy.
 This lead to failures when DNSKEYs where updated as the
 TTLs mismatched.

(From OE-Core rev: 9dc097f240c5ab7703179f480f538be8e21defce)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-25 10:06:02 +01:00
Lee Chee Yang
ecaf4e14b3 release-notes-5.0: update recipes changes
update recipes changes in 5.0 rc4.
update new recipes, license changes, patched cve and recipes version
changes.

(From yocto-docs rev: 0fc86205668d122d4e550a5eae301cd6997f8a71)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-24 14:22:55 +01:00
Michael Opdenacker
05d54880e4 manuals: standards.md5: add standard for project names
Set a new standard to introduce project names with single quotes,
so that they appear in generated text with an italic font,
to make them easier to distinguish from command names and from
ordinary English words.

Rework and move the standard for command and file names
to make the whole description "flow" better.

(From yocto-docs rev: fa6700af56213a5079eaa8d9683f3c2b2fc93740)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
CC: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-24 14:22:55 +01:00
Paul Eggleton
30d5b6f7dd release-notes: add a few more new features
Add some features I missed earlier (patchtest, Toaster, hash
equivalence enhancements, screenshot-based UI test,
USERADD_DEPENDS).

(From yocto-docs rev: 774f0ba6345592571c7c7cff495f2b15dca21f25)

Signed-off-by: Paul Eggleton <bluelightning@bluelightning.org>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-24 14:22:55 +01:00
Paul Eggleton
34a67fc165 ref-manual: variables: add USERADD_DEPENDS
New variable in 5.0.

(From yocto-docs rev: 57a9117a8c4c020b2f643d6835af29b4e49f4f7f)

Signed-off-by: Paul Eggleton <bluelightning@bluelightning.org>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-24 14:22:55 +01:00
Michael Glembotzki
6045314d29 rootfs-postcommands.bbclass: Only set DROPBEAR_RSAKEY_DIR once
If DROPBEAR_RSAKEY_DIR has already been set before, e.g. by overwriting
the file dropbear.default, the line will still be appended a second time.

DROPBEAR_RSAKEY_DIR="/path/to/dropbear"
DROPBEAR_EXTRA_ARGS="-B"
DROPBEAR_RSAKEY_DIR=/var/lib/dropbear

(From OE-Core rev: 943c6acf855fd9de592f0b77828242c2c6e0869f)

Signed-off-by: Michael Glembotzki <Michael.Glembotzki@iris-sensing.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Ross Burton
e3dd871f19 npth: remove redundant FILES
This is covered by the default rules.

(From OE-Core rev: 1f17a8d13684db6cc603a5184f5d61ab8c715d89)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Ross Burton
0646d02199 npth: remove obsolete binconfig-disabled inherit
npth no longer installs the npth-config script[1] that we disabled, so
there's no need to inherit the class.

[1] https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=2b6a8e5369ed37d64d1bafd3a546ec52e25acd26

(From OE-Core rev: de27b5dcaaa28470918975949b02f1df72776a6e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Ross Burton
c83b2b39b3 npth: remove obsolete pkgconfig patch
npth now provides a pkg-config itself[1] so we don't need to patch one
in anymore.

[1] https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git;a=commit;h=f3cbbc86cb49a1729d6df573bd76a5559e7f636b

(From OE-Core rev: f96f16127cc27e1440f7a51a38726a9ab69ba6a1)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Ross Burton
7124dc9f0d npth: update homepage
Set the homepage to the actual homepage, not that of the older GNU Pth.

Also fix some whitespace in the license fields.

(From OE-Core rev: f876f3a50dfa7f2da13e4b25608fd5f76bc87b3b)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Ross Burton
72606f55d9 ruby: remove obsolete build dependences
Ruby 3.3.0 no longer bundles the readline module[1] so readline is no
longer a build dependency[2].

Ruby 3.2.0 no longer bundles the gdbm module[3] so gdbm is no longer a
build dependency.

[1] 59fd67fc3d
[2] 172077232e

(From OE-Core rev: b616e260855a9d8fbf5c1b6a1b49278673b24d7f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Ross Burton
2eed41b9cf waffle: remove dependency on udev
Waffle 1.8.0 dropped the use of libudev and instead uses libdrm[1] in
the gbm code. Update the depends.

[1] 6bf58d4bb9

(From OE-Core rev: 51731c8e9cf1e5c894c9b4d894a66403535c56c8)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Alexander Kanavin
c84c11b951 swig: convert from autotools to cmake
Drop patches:
0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
(superseded long time ago by native wrapper)

0001-configure-use-pkg-config-for-pcre-detection.patch
(autotools-specific)

Drop all autoconf options and native python dependency as cmake configuration doesn't contain those.

(From OE-Core rev: 614e9b387f0774856e4ef2a1633d269f06b5da0f)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Alexander Kanavin
307e2bc612 swig: merge .inc into .bb
(From OE-Core rev: d5edf129a39be5b4a62d6fa73b151dcc3a098e79)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Jose Quaresma
8051868b3a Revert "goarch: disable dynamic linking globally"
This reverts commit 827c60b79e7fcafd14e68870f6b69dcc48ac9c39.

Fixed with the drop of the linkmode

(From OE-Core rev: 8f46f60a703defc3e74adad382320c129cef0b06)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Jose Quaresma
999bd95403 go: Drop the linkmode completely
This will make possible to restore the default dynamic linking globally
which is what we had before the 1.20.X release.

(From OE-Core rev: 6ad90fc2fc49c4199a59dfb1c1d81a7ba184a522)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Alexander Kanavin
425cbf8deb libtraceevent: submit meson.patch upstream
[RP: Add url to submission]
(From OE-Core rev: d00306620aa890a361f42516a064d64dd7c68aa7)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Alexander Kanavin
e49212866b mpeg2dec: remove the recipe
This is as well inactive for over 10 years, and has been superseded by ffmpeg long time ago.

(From OE-Core rev: d46660e6c083baf7a7cf68a0eb98260246ccdcaf)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Alexander Kanavin
f7f4d9d5c0 package_rpm: remove support for DIRFILES
This was added here:
https://git.yoctoproject.org/poky/commit/?id=2f42ef8d8fb1febf28252b98884cebabc931f720

It's undocumented, untested, rpm-specific, and currently
broken, and to begin with looks like a workaround for
Tizen/smack security label conflicts elsewhere.

(From OE-Core rev: ea8af19bb909c7e3633d82bec9d925c8f42ec860)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Alexander Kanavin
148e0c87cc liba52: remove the recipe
The component has been superseded by ffmpeg long ago, tarballs have
disappeared from sourceforge, no work on it has happened in over 10 years.

(From OE-Core rev: 90fbfe9fe1dab1568b85ee497520e789417d41f6)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Markus Volk
74361a6e6d xwayland: update 23.2.5 -> 23.2.6
- add a PACKAGECONFIG for libdecor
- add PACKAGECONFIGS for xwayland_ei to avoid auto select

(From OE-Core rev: cb12eca789ca7c434ed9e4a796c43844df0e5ada)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Julien Stephan
e9939fe2c6 oeqa: selftest: context: run tests serially if testtools/subunit modules are not found
If testtools and/or subunit modules are not found we get the following backtrace
(example for testtools):

  NOTE: Starting bitbake server...
  Traceback (most recent call last):
    File "<..>/poky/scripts/oe-selftest", line 60, in
  <module>
      ret = main()
    File "<..>/poky/scripts/oe-selftest", line 47, in main
      results = args.func(logger, args)
    File "<..>/poky/meta/lib/oeqa/selftest/context.py",
  line 391, in run
      rc = self._internal_run(logger, args)
    File "<..>/poky/meta/lib/oeqa/selftest/context.py",
  line 377, in _internal_run
      rc = self.tc.runTests(**self.tc_kwargs['run'])
    File "<..>/poky/meta/lib/oeqa/selftest/context.py",
  line 161, in runTests
      return super(OESelftestTestContext, self).runTests(processes, skips)
    File "<..>/poky/meta/lib/oeqa/core/context.py", line
  91, in runTests
      result = self.runner.run(self.prepareSuite(self.suites, processes))
    File "<..>/poky/meta/lib/oeqa/selftest/context.py",
  line 154, in prepareSuite
      from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
    File
  "<..>/poky/meta/lib/oeqa/core/utils/concurrencytest.py",
  line 22, in <module>
      import testtools
  ModuleNotFoundError: No module named 'testtools'

Fix this by adding a custom callback on -j/--num-processes parameter to
check testtools and subunit modules. Fallback to serial testing if
missing. This strategy is already used in sdk/context.py

(From OE-Core rev: 35284404473b2c2d9f69594582868ed66ef3525e)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Peter Marko
4bdba870c6 ttyrun: define CVE_PRODUCT
Single executable ttyrun is taken ouf of s390-tools repository
containing ton of other helper tools.
CVEs are not assigned to executables, but to whole components.
Historically there also already exists one CVE for s390-tools.

Most of the CVEs will not be for ttyrun, but this is the way
how to get notified even if most we get will have to be ignored.

(From OE-Core rev: df28547387c2c122aef3e5326b216ec3f4d3caa7)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Simone Weiß
8c6f7838e0 gnutls: Fix failing ptests
When upgrading gnutls to the newest version 3.8.5, some ptest failed.
Backported a patch from upstream gnutls(not in any release yet) to
fix this issue.

(From OE-Core rev: 25135cd910e24117aa493abcb7f6aeee0b84ab82)

Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Wang Mingyu
77faeec0d3 gnutls: upgrade 3.8.4 -> 3.8.5
Add-ptest-support.patch
refreshed for 3.8.5

Changelog:
==========
* libgnutls: Due to majority of usages and implementations of
  RSA decryption with PKCS#1 v1.5 padding being incorrect,
  leaving them vulnerable to Marvin attack, the RSAES-PKCS1-v1_5
  is being deprecated (encryption and decryption) and will be
  disabled in the future.
* libgnutls: Added support for RIPEMD160 and PBES1-DES-SHA1 for
  backward compatibility with GCR.
* libgnutls: A couple of memory related issues have been fixed in RSA PKCS#1
  v1.5 decryption error handling and deterministic ECDSA with earlier
  versions of GMP.
* build: Fixed a bug where building gnutls statically failed due
  to a duplicate definition of nettle_rsa_compute_root_tr().

(From OE-Core rev: 594ef33f9d5bc6fba1c9b1393936f26920406826)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Dan McGregor
6fd0ad3283 shadow: install manpages
Install the manpages for shadow, and also make the conflicting manpages
alternatives in util-linux.

(From OE-Core rev: 4b5a119ab36b2339b5469e5c7d34635090cc70f0)

Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Khem Raj
622235b4de oeqa/postactions: Do not use -l option with df
-l option is specific to df provided by coreutils, if df
applet from busybox is used then it does not work and fails
like below

Fixes
   df: invalid option -- 'l'
   BusyBox v1.36.1 () multi-call binary.

   Usage: df [-PkmhT] [-t TYPE] [FILESYSTEM]...
   DEBUG: [Command returned '1' after 0.71 seconds]
   DEBUG: Command: df -hl
   Status: 1 Output:  df: invalid option -- 'l'

it seems worth a compromise to show remote mounted filesystems if any
during ptests and it works with both df implementations

(From OE-Core rev: 75cc1ea4348a2294fdc5ab20530fcff27056ff06)

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>
2024-04-23 13:40:24 +01:00
Sven Schwermer
8219eefdd8 recipetool: Handle several go-import tags in go resolver
When dynamically resolving go modules, the HTML page may contain several
go-import meta tags. We must handle all and pick the correct one based
on the module name. An example for such a behaviour is
gonum.org/v1/gonum:

<meta name="go-import" content="gonum.org/v1/exp git https://github.com/gonum/exp">
<meta name="go-import" content="gonum.org/v1/gonum git https://github.com/gonum/gonum">
<meta name="go-import" content="gonum.org/v1/hdf5 git https://github.com/gonum/hdf5">
<meta name="go-import" content="gonum.org/v1/netlib git https://github.com/gonum/netlib">
<meta name="go-import" content="gonum.org/v1/plot git https://github.com/gonum/plot">
<meta name="go-import" content="gonum.org/v1/tools git https://github.com/gonum/tools">

(From OE-Core rev: 9c36a61e29359067165bddc7f2accdf2c4c8a761)

Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Sven Schwermer
e4c3483ecf recipetool: Handle unclean response in go resolver
It appears that some go modules repond with a 404 error when trying to
resolve them dynamically. The response body may still contain the
go-import meta tag. An example for such behaviour is gonum.org/v1/gonum.

(From OE-Core rev: 8f2e14ab6562a9a68819a960c66a258ea9dbe246)

Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Kai Kang
0d6a71d492 webkitgtk: 2.44.0 -> 2.44.1
Update webkitgtk from 2.44.0 to the first bug fix release in the stable
2.44 series 2.44.1.

* remove backported patch

What's new in the WebKitGTK 2.44.1 release?
===========================================

  - Fix handling of lifetime of web view child dialogs in GTK4.
  - Do not schedule layer flushes when drawing area size is empty.
  - Fix videos with alpha when using the DMA-BUF sink.
  - Fix the build with USE_GBM=OFF.
  - Fix the build in 32bit platforms
  - Fix several crashes and rendering issues.

(From OE-Core rev: c129c47cf9fa119005ea6e3946ebdee0da1db7e0)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Xiangyu Chen
4bf61f66ce iputils: splitting the ping6 as a package
The iputils merged the ping4 and ping6 command into the ping since the
commit ebad35fe[1], currently, iputils ping support being called using
"ping -6" or "ping6" symlinks.

In oe-core, there are two packages provide ipv6 ping, inetutils and iputils,
the inetutils-ping6 doesn't support "-I" option to bind the interface, that
cause some of scripts(e.g. LTP test[2]) which was based on iputils-ping6 fails.

If someone or a package needs iputils-ping6, they can enable it in local.conf
or add it into rdepends directly.

Ref:
[1] https://github.com/iputils/iputils/commit/e3de851b809c7b72ccc654a72b6af61d
[2] https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/ \
    containers/netns/netns_comm.sh#L25

(From OE-Core rev: 05107ec5e4b81315d53efef23f2a570d520ee4c7)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Zev Weiss
1b28f949c6 bash: Fix file-substitution error-handling bug
This is part of a patch that's been upstream for a while but hasn't yet
been released.  The bug is causing some downstream difficulties, so a
local patch to tide us over until the next release makes things a bit
easier.

(From OE-Core rev: bf384d6618780dea2df24adac88ba4364cb65b9b)

Signed-off-by: Zev Weiss <zev@bewilderbeest.net>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Markus Volk
64c86e6def gtk4: update 4.14.1 -> 4.14.2
Overview of Changes in 4.14.2, 03-04-2024
=========================================

* GtkScale:
 - Improve positioning of values in some cases

* Theme:
 - Make progress in entries visible

* Accessibility:
 - Fix text insertion handling

* GDK:
 - dnd: Use the default cursor durion motion
 - dnd: Use a better cursor for indicating the move action

* GSK:
 - gl: Handle offloads in offscreen context better
 - Fix text rendering problems with some fonts

* Wayland:
 - Tighten up some protocol version checks
 - Use the presentation time protocol
 - Fix a crash with subsurfaces
 - Improve settings portal handling

* macOS:
 - Fix up the app menu support

* Windows:
 - Fix problems with minimization
 - Fix build without fontconfig

* Debugging:
 - Add font settings in the inspector

* Demos:
 - Clean up the application demo
 - Update cursor images for the cursor demo

* Translation updates:
 Catalan
 Czech
 French
 Georgian
 Hebrew
 Persian
 Slovenian
 Turkish
 Ukrainian

(From OE-Core rev: 17899a51b5c0c99e4b98ef88ec5f60945e5bec85)

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Peter Marko
9f4675a096 update-rc.d: add +git to PV
This hash is ahead of the tag, so adapt PV accordingly.

(From OE-Core rev: c94e46019a7d443ccc4763ba16d87e7e97abe977)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Wang Mingyu
c2faa56d8d python3-pycparser: upgrade 2.21 -> 2.22
License-Update:
===============
Slightly tweak the LICENSE file to be more canonical:
- Copyright year updated to 2022.
- "Eli Bendersky: changed to "the copyright holder"

Changelog:
===========
-Add missing SCHAR limit defines
-Use proper SPDX identifier
-Add Python 3.11 as a supported version
-Fix multi-pragma/single statement blocks (#479)
-Add an encoding parameter to parse_file
-Feature/add pragma support
-Set up permissions to ci.yml
-_build_tables: Invalidate cache before importing generated modules
-Upgrade GitHub Actions
-Create a Security Policy
-New example to generate AST from scratch
-Add support for Python 3.12
-ply: Make generated lextab.py deterministic

(From OE-Core rev: ada1bdcbf18e0d8707578b04cd39aa8a429b6677)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Wang Mingyu
0d28ec11cf dropbear: upgrade 2022.83 -> 2024.84
0001-urandom-xauth-changes-to-options.h.patch
dropbear-disable-weak-ciphers.patch
0005-dropbear-enable-pam.patch
0006-dropbear-configuration-file.patch
refreshed for 2024.84

CVE-2023-36328.patch
removed since it's included in 2024.84

(From OE-Core rev: c50a0d013137338ac1dec60f6aed32ff3a185839)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Mingli Yu
09d85d671b ncurses: Fix CVE-2023-50495
Backport a patch [1] to fix CVE-2023-50495.

[1] http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=7723dd6799ab10b32047ec73b14df9f107bafe99

(From OE-Core rev: bdf7b7460a4816e3d447264730a2814209667fb0)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Trevor Gamblin
f15ea3ad06 patchtest: test_metadata: fix invalid escape sequences
Clear up the following warnings seen during patchtest runs:

|/workspace/yocto/poky/meta/lib/patchtest/tests/test_metadata.py:21: SyntaxWarning: invalid escape sequence '\+'
|  add_mark = pyparsing.Regex('\+ ')
|/workspace/yocto/poky/meta/lib/patchtest/tests/test_metadata.py:26: SyntaxWarning: invalid escape sequence '\:'
|  git_regex = pyparsing.Regex('^git\:\/\/.*')

(From OE-Core rev: 2d64317835a768898aac592b24fcbdfaf6c8357a)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Wang Mingyu
f748e07a63 llvm: upgrade 18.1.2 -> 18.1.3
0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch
refreshed for 18.1.3

Changelog:
============
-DFixes tsan failures for glibc's LoongArch and certain RISC-V ports when
 fstat is used.
-transform.structured.convert_to_loops now properly deletes its target op.
-Fix a llvm.usub.with.overflow.i128 wrong code generation regression that
 was introduced with LLVM 18.1.0.
-MemorySanitizer on Linux can now run even when maximum-entropy address-space
 layout randomization is configured globally
-Fixed a Clang 18.x regression which increased binary size and stack usage with
 -ftrivial-auto-var-init.

(From OE-Core rev: d2159f92ddbb6b999c1d14ac62647b4a35360377)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-23 13:40:24 +01:00
Sven Schwermer
25dcc55b74 bitbake: fetch2/gcp: Add missing runfetchcmd import
This adds the missing import. This bug was introduced with 1ab1d36c.

(Bitbake rev: 97ffe14311407f6e705ec24b70870ab32f0637b9)

Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-20 07:30:29 +01:00
Richard Purdie
cc95e57ead curl: Backport patch to fix buildtools issues
bitbake-selftest was failing on a github url on hosts using buildtools.
The issue was tracked down to the curl upgrade 8.6.0 -> 8.7.1. Whilst there
is a fix in upstream git to workaround the issue in this version, backport
the fix from curl upstream to ensure there are no other related issues to
the bug.

(From OE-Core rev: e956f1116deb93c0d77238a1ebde091b9f1cbc77)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-18 11:58:21 +01:00
Richard Purdie
a88251b3e7 buildtools-tarball: Add python3-pip
Many of the common use cases for buildtools need pip to allow python to be
extended. Add it.

(From OE-Core rev: 946086abf5ac5172258ddb27af9c1c615258f62f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 15:53:54 +01:00
Richard Purdie
28b5684938 poky.conf: Bump version/codename for post release of scarthgap
(From meta-yocto rev: 99f48efdf733e6722045c944ffef8117ca80116f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:12:27 +01:00
Richard Purdie
281c2e716f layer.conf: Post release addition/switch to styhead corename
(From OE-Core rev: cef91ebeb3f2b1d41336fff60555064430a80397)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:12:27 +01:00
Richard Purdie
ae3bca8492 bitbake: bitbake: Bump to version 2.9.0 development version postrelease
(Bitbake rev: 67a1aa8dbb3cb3a30fa7d697431ebb30323e4f28)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:12:27 +01:00
Michael Haener
2e07f1440f iproute2: add bridge package
Add package for using the bridge tool.

(From OE-Core rev: 21689b8984fd426f4e21d729d82444d3a8e230b7)

Signed-off-by: Michael Haener <michael.haener@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Ross Burton
7a1e8c444c classes/pypi: don't expose PYPI_ARCHIVE_NAME
This variable is only used when constructing a SRC_URI and some recipes
think that it's the correct value to assign if the PyPi package name
isn't the same as the recipe name, when PYPI_PACKAGE is actually all
that needs to be set.

Also document the variables we expect the recipe to assign if needed,
and where the PyPi URL structure is documented.

(From OE-Core rev: 0a67d05373ed92bf153bd17e5b32d77ca9f0c353)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
2a04e74a2a xorgproto: upgrade 2023.2 -> 2024.1
(From OE-Core rev: 2708ccd8fe3b681d0e2341492036a0722e84fcf2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
6d61c83ac8 u-boot: upgrade 2024.01 -> 2024.04
(From OE-Core rev: c035655ed65b6333d87019677ba93d7899f42d9a)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
9231cc5787 ttyrun: upgrade 2.31.0 -> 2.32.0
Changelog:
===========
- dbginfo.sh: dash compatible copy sequence
- rust/pv_core: Fix UvDeviceInfo::get() method
- zipl/src: Fix leak of files if run with a broken configuration
- zkey: Fix convert command to accept only keys of type CCA-AESDATA

(From OE-Core rev: 5890c1b9f6892a19ac4fb145ddad683dd16ca7f7)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
73d1967498 rsync: upgrade 3.2.7 -> 3.3.0
0001-Add-missing-prototypes-to-function-declarations.patch
makefile-no-rebuild.patch
refreshed for 3.3.0

Changelog:
==========
- Fixed a bug with '--sparse --inplace' where a trailing gap in the source
  file would not clear out the trailing data in the destination file.
- Fixed an buffer overflow in the checksum2 code if SHA1 is being used for
  the checksum2 algorithm.
- Fixed an issue when rsync is compiled using '_FORTIFY_SOURCE' so that the
  extra tests don't complain about a strlcpy() limit value (which was too
  large, even though it wasn't possible for the larger value to cause an
  overflow).
- Add a backtick to the list of characters that the filename quoting needs to
  escape using backslashes.
- Fixed a string-comparison issue in the internal handling of '--progress' (a
  locale such as tr_TR.utf-8 needed the internal triggering of '--info' options
  to use upper-case flag names to ensure that they match).
- Make sure that a local transfer marks the sender side as trusted.
- Change the argv handling to work with a newer popt library -- one that likes
  to free more data than it used to.
- Rsync now calls 'OpenSSL_add_all_algorithms()' when compiled against an older
  openssl library.
- Fixed a problem in the daemon auth for older protocols (29 and before) if the
  openssl library is being used to compute MD4 checksums.
- Fixed 'rsync -VV' on Cygwin -- it needed a flush of stdout.
- Fixed an old stats bug that counted devices as symlinks.

(From OE-Core rev: 2c3b75a1f3b6d3177603b8982d61c5b8ba73aef0)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
e5ff5463a4 python3-typing-extensions: upgrade 4.10.0 -> 4.11.0
Changelog:
==========
-Fix tests on Python 3.13.0a5.
-Fix the runtime behavior of type parameters with defaults
-Fix minor discrepancy between error messages produced by typing and
 typing_extensions on Python 3.10.
-When include_extra=False, get_type_hints() now strips ReadOnly from the
 annotation.

(From OE-Core rev: a10eadd95f91adbd63d006962742ce8295ea1a45)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
3fc3e24bfa python3-pyasn1: upgrade 0.5.1 -> 0.6.0
Changelog:
==========
-Removed support for EOL Python 2.7, 3.6, 3.7
-Added support for previously missing RELATIVE-OID construct
-Updated link to Layman's Guide

(From OE-Core rev: 2c6615686019d886edf8f0e8c731a67f166de5d1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
4c98cdfa63 python3-git: upgrade 3.1.42 -> 3.1.43
Changelog:
============
-Issue and test deprecation warnings
-Fix version_info cache invalidation, typing, parsing, and serialization
-Document manual refresh path treatment
-Improve static typing and docstrings related to git object types

(From OE-Core rev: 2e4ad71602b2a9d9132a39ab34e402bf021800ab)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
e2f32bfd68 python3-build: upgrade 1.1.1 -> 1.2.1
Changelog:
============
-Avoid error when terminal width is undetectable on Python < 3.11
-Add --installer option, supporting pip and uv. Added uv extra.
-Improve console output and provide -v for dependency installation
-Avoid compiling unused bytecode when using pip
-Dropped support for Python 3.7

(From OE-Core rev: 83227b767299a1f8bbeb9e3b69eab8aa09fb6a07)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
16f33ed88a python3-beartype: upgrade 0.17.2 -> 0.18.2
(From OE-Core rev: 12bd38ef2c26e60b3dd35b5227189699a4188c1d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
d00a7c3b7b pkgconf: upgrade 2.1.1 -> 2.2.0
Changelog:
===========
* libpkgconf SOVERSION is now 5.
* Significant solver rework to flatten both requires and requires.private
  dependencies in a single pass.  Improves performance slightly and ensures
  proper dependency order.
* Improve '--digraph' output to reflect more of the solver's state in the
  rendered dependency graph.
* Do not reference the graph root by name when presenting error messages about
  directly requested dependency nodes.

(From OE-Core rev: 96a705d3f3d502b189f5bdec7c73cd21a9097785)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
de0e22441c mtdev: upgrade 1.1.6 -> 1.1.7
Changelog:
=========
-test: link using libmtdev.la
-Fix test warnings

(From OE-Core rev: ca3722c9b772c592c0b13333d267d4426a2a27d9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
be99f26460 mpg123: upgrade 1.32.5 -> 1.32.6
Changelog:
- build: Detect forced 64 bit offsets on a dual-mode system that used
  to default to 32 bits and drop ambiguous suffix-less symbols in that
  case.

(From OE-Core rev: 5e76967536191ac42fdd0c016e92a273dc4908e2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:03 +01:00
Wang Mingyu
f0042e6e72 man-db: upgrade 2.12.0 -> 2.12.1
0001-man-Move-local-variable-declaration-to-function-scop.patch
refreshed for 2.23.1

Changelog:
=============
* Fix excessive cleanup of '/var/cache/man' by 'systemd-tmpfiles'.
* 'man' matches the display width more accurately to the configured width.
* Upgrade to Gnulib 'stable-202401'.
* Mention 'groff''s 'pdf' device in 'man(1)'.
* Speed up 'seccomp' filter slightly.
* Document how to format pages using italic rather than underlined text.
* Remove the obsolete 'chconfig' tool for converting man-db configuration
  files to the FHS.  This transition took place almost 25 years ago (at
  least in Debian), so it's not worth keeping it around now.

(From OE-Core rev: 688c05422fc27bb389ba29c95beafb5029ff78b8)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
07fdef45cc lttng-tools: upgrade 2.13.11 -> 2.13.13
0001-tests-do-not-strip-a-helper-library.patch
refreshed for 2.13.13

Changelog:
===========
* Fix: consumerd: leak of tracing buffers on relayd connectivity issue
* Fix: consumerd: wrong timer mentioned in error logging
* Fix: consumerd: type confusion in lttng_consumer_send_error
* Fix: baddr-statedump: use $(LIBTOOL) --mode=execute
* Fix: relayd: live client not notified of inactive streams
* Fix: relayd: live: dispose of zombie viewer metadata stream
* tests: Fix typo in tests/regression/kernel/test_ns_contexts
* Fix: sessiond: freeze on channel creation on restart
* common: move utils_create_lock_file to its own file
* tests: tools/clear/test_ust wait for specific test app pid
* Fix: sessiond: crash when sending data_pending to an active session
* Tests: fix: list_triggers_cli: kallsyms contains prefixed symbols
* License: common: error_query: fix typo in SPDX specifier

(From OE-Core rev: 5d35200e089f0695cfb19b65dd9b56006aa3d4fc)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
7431288ba4 libxmu: upgrade 1.1.4 -> 1.2.0
Changelog:
===========
-Use XtAsprintf to simplify os_name string generation
-Remove "#ifndef notdef" checks
-XmuReadBitmapDataFromFile: set close-on-exec when opening files
-configure: Use LT_INIT from libtool 2 instead of deprecated AC_PROG_LIBTOOL
-src/Makefile.am: Remove hardcoded -D_BSD_SOURCE
-configure: raise minimum autoconf requirement to 2.70

(From OE-Core rev: 42fe0303219c93f9359ee2bbe6f9bd90502a62d0)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
0bec446028 libxmlb: upgrade 0.3.15 -> 0.3.17
0001-xb-selftest.c-hardcode-G_TEST_SRCDIR.patch
refreshed for 0.3.17

Changelog:
=========
- Create SECURITY.md for the OpenSSF scorecard
- Fix decompressing large zstd files
- Use zst as the file extension for zstd
- Make the LZMA support optional
- Add the lzma and zstd support to the pkgconfig file

(From OE-Core rev: 50c247ec5eb989c91466ace4c27742ab36eb018c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
422afb2787 libx11: upgrade 1.8.7 -> 1.8.9
Changelog:
===========
-xlibi18n: restore parse_line1 for WIN32 builds
-Fix _XkbReadGetDeviceInfoReply for nButtons == dev->buttons
-_XimProtoIMFree:no need to check arg for Xfree()
-_XimEncodeString:no need to check arg for Xfree()
-Fix XCreateIC() memory leak (Part 2)
-_XimLocalDestroyIC:fix possible mem leak
-_XimLocalCreateIC: get rid of bzero
-_XimLocalCreateIC: minor cleanup
-_XimLocalCreateIC:no need to check arg for Xfree()
-_XimLocalDestroyIC: no need to check arg for Xfree()
-fix table width

(From OE-Core rev: bd8fab6937cddf3b6818e8e333b78813f0524116)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
9a0edca6ca liburi-perl: upgrade 5.27 -> 5.28
Changelog:
- Using Scalar::Util::reftype instead of just ref(), but mindful this time
  about definedness to avoid warnings

(From OE-Core rev: 0a0f0a1ff2e9e3e5e90c51cd3ad72ca330bca02e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
8d41164dce libical: upgrade 3.0.17 -> 3.0.18
License-Update:
 LICENSE.LGPL21.txt - remove the KDAB claim for copyright

Changelog:
===========
-Requires CMake v3.5.0 or higher
-Escape ^ (U+005E) character in parameter values according to RFC 6868
-New CMake option LIBICAL_BUILD_EXAMPLES to disable building the examples
-Should be able to use the project as a submodule
-Built-in timezones updated to tzdata2024a

(From OE-Core rev: b71f0e077088601491688dddd8399cacc9f8a69c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
bc780c1f17 libdnf: upgrade 0.73.0 -> 0.73.1
Changelog:
=========
-Fix https://issues.redhat.com/browse/RHEL-27657
-subject-py: Fix memory leak

(From OE-Core rev: f16b16e1b6c60f0a1c9bc8d5492195fc66f33a19)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
0d7b3eb8a2 enchant2: upgrade 2.6.8 -> 2.6.9
Changelog:
 Implement user dictionary support for Hspell, Nuspell, Voikko

(From OE-Core rev: 3505d631e2f52b03e52bc67a2094d2749c0e0e48)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
d92a0f22b2 ell: upgrade 0.63 -> 0.64
Changelog:
==========
-Fix issue with casting in C++ environment.
-Fix issue with ASCII string upper and lower helpers.

(From OE-Core rev: a28405da8dad7e6222d7badaa3eda175e3df32c9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
7c5a7c54ef dnf: upgrade 4.19.0 -> 4.19.2
Changelog:
 Bump libdnf version to 0.73.1

(From OE-Core rev: c4a3e4c7cb8411beec779a11fc443a6089434504)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
2d462158d5 coreutils: upgrade 9.4 -> 9.5
0001-posixtm-pacify-clang-18.patch
CVE-2024-0684.patch
removed since they're included in 9.5

0001-local.mk-fix-cross-compiling-problem.patch
remove-usr-local-lib-from-m4.patch
refreshed for 9.5

License-Update: Copyright updatedto 2024.

(From OE-Core rev: ac2b8134bed1abdb485aa2826d07b430dc6b5f00)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
ef993615b7 btrfs-tools: upgrade 6.7.1 -> 6.8
Changelog:
============
* fix --enqueue option timeout handling
* subvolume: remove support for undocumented options -c and -x,
  functionality disabled in kernel
* libbtrfsutil:
   * version 0.1.3, backward compabile
   * add aliases for all existing functions with unified naming scheme
   * updated header defintions for recently added kernel features
* send: v3 supported in experimental mode
* other:
   * docs: manual page references, graphs, enhancements, clarifications
   * error handling fixes
   * cleanups and refactoring

(From OE-Core rev: 7e2cf19c861ddd93d1176fbbe3f758d31970a96b)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
d8d795cdc8 bash-completion: upgrade 2.12.0 -> 2.13.0
Changelog:
===========
### Features
------------
-Complete protocols for --proto-default
-Add completion for netconf subcommand
-Complete commands for netns exec
-Complete help for unknown subcommands
-Complete ip link property
-Complete link types for address show
-Complete neigh show and flush
-Complete stats subcommand
-Create function to get link types
-add fallback 3rd party completion loader
-also suggest *.rss files

### Bug Fixes
--------------
-fix regression of unwanted trailing colons
-Complete addrlabel add/del properties
-Complete ip delete with type correctly
-Complete more variations of subcommands
-Complete netns attach subcommand
-Complete only relevant addrlabel subcmds
-Keep completing after -netns name
-Quote all instantiation of ip as "$1"
-Quote network namespace names
-include api-and-naming.md in dist

(From OE-Core rev: a2cbd936ea59cd47accc61b164e6d8b44b63a5cf)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
a79707b94d babeltrace2: upgrade 2.0.5 -> 2.0.6
Changelog:
===========
* bt2: disable some warnings for 'native_bt.c'
* bt2: compile 'native_bt.c' with '-Wno-undef'
* Fix: src.ctf.lttng-live: expect NEW_STREAM/METADATA for inactive streams
* Fix: 'babeltrace2 convert': don't consider the '--plugin-path' opt.
* include/babeltrace2/plugin/plugin-dev.h: "define" -> "definition
* Fix: doc: escape double quote in bt_p alias
* Fix: bt2: pass _TraceClassConst to destruction listeners
* fix: 'load_module()' deprecated in Python 3.12
* tests: retry os.rename on PermissionError failure in lttng_live_server.py
* doc: fix uptream -> upstream typos
* fix: test_message_iterator.py hangs on Python 3.12
* plugin-dev: mark symbols meant to be public with __attribute__((visibility("default")))
* Silence -Wunused-but-set-variable error with clang
* Fix: Windows DLL path lookup with Python >= 3.8
* doc/man: make default values of boolean init. params. clearer
* RFC: docs: fix: Match stated automake requirement
* fix: make flake8 6.x happy
* fix: running black on python 3.11
* bt_query_executor_create_with_method_data(): fix docs note
* Fix: ctf-writer: null dereference in bt_ctf_trace_common_add_stream_class
* Update working version to Babeltrace v2.0.6

(From OE-Core rev: a5f05da60ca888456900f9fb0a52ef07db754c06)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
ebf8852175 vulkan: upgrade 1.3.275.0 -> 1.3.280.0
0001-generate-glslang-pkg-config.patch
refreshed for 1.3.280.0

License-Update:
===============
spirv-headers:License-Update: List all licenses in the root LICENSE file.
vulkan-volk:Copyright year updated to 2024.

(From OE-Core rev: ca21778738e0e9e5f60324cdb21ffe88d7b1f9a0)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
13b4c46ddf mesa: upgrade 24.0.2 -> 24.0.3
0001-Revert-meson-do-not-pull-in-clc-for-clover.patch
refreshed for 24.0.3

(From OE-Core rev: 43240c8b2c5507fe6147ba04ec98528602c694e1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Denys Dmytriyenko
a9293d9c4b wayland-protocols: upgrade 1.33 -> 1.34
This release comes with three new staging protocols:

 * xdg-toplevel-drag

This protocol enhances regular drag and drop by allowing attaching a
toplevel window to a drag. This can be used to implement e.g. detachable
toolbars and browser tab drag behavior that can be seen in other
platforms.

 * xdg-dialog

This protocol allows setting dialog specific hints on a toplevel, more
specifically marking them as modal.

 * linux-drm-syncobj

This protocol will allow explicit synchronization of buffers using DRM
synchronization objects. While being a protocol that is unlikely to be
widely used directly by applications and toolkits themselves, it is an
important building block for improving Vulkan and OpenGL drivers.

Other than this, the tablet and foreign toplevel list protocols also
received clarifications and fixes.

Full changelog:
https://lists.freedesktop.org/archives/wayland-devel/2024-March/043537.html

(From OE-Core rev: bc85c5360cec21b685542ced8e767a6effd949c4)

Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Denys Dmytriyenko
45f2901329 lzip: upgrade 1.24 -> 1.24.1
* No changes have been made to the code. Just a compilation failure on MinGW
  has been fixed. (Caused by different mkdir signature in POSIX and Windows).

Full changelog:
https://lists.nongnu.org/archive/html/lzip-bug/2024-03/msg00003.html

(From OE-Core rev: d8b8f975ff266b64abdc341f2cb2751c7e119ae9)

Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Denys Dmytriyenko
f587b4152e mtd-utils: upgrade 2.1.6 -> 2.2.0
This is a small release of changes that have accumulated since last August.
As it contains mainly new command line switches (i.e. features) for some
of the tools, this receives a minor version bump.

The Autotools based build system also received a slight overhaul, cleaning
up how configure switches and dependencies are handled. It should now
also be possible to compile mtd-utils without requiring zlib.

Full changelog:
https://lists.infradead.org/pipermail/linux-mtd/2024-March/104058.html

(From OE-Core rev: d2b168dce892f45e08bc547114bf4a7badc4fce2)

Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
50075a8f5d wget: upgrade 1.21.4 -> 1.24.5
0002-improve-reproducibility.patch
refreshed for 1.24.5

Changelog:
============
** Fix how subdomain matches are checked for HSTS.
   Fixes a minor issue where cookies may be leaked to the wrong domain
** Wget will now also parse the srcset attribute in <source> HTML tags
** Support reading fetchmail style "user" and "passwd" fields from netrc
** In some cases, prevent the confusing "Cannot write to... (success)" error messages
** Support extremely fast download speeds (TB/s).
   Previously this would cause Wget to crash when printing the speed
** Improve portability on OpenBSD to run the test suite
** Ensure that CSS URLs are corectly quoted (Bug: 64082)

(From OE-Core rev: 02fda9423680256d2b24f1fa52441ea869e0acef)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
3abbed192e vala: upgrade 0.56.15 -> 0.56.16
0001-gtk4-Preserve-compatibility-with-4.14.patch
removed since it's included in 0.56.16

Changelog:
============
* Various improvements and bug fixes:
 - girparser: Recognize usage of time_t and don't rely on given GIR type
 - girparser: Recognize usage of off_t and don't rely on given GIR type
* Bindings:
 - gio-2.0: Restore ApplicationCommandLine.print*_literal() to not require 2.80
 - gmodule-2.0: Do not mark `Module.open` as deprecated
 - gtk4: Preserve compatibility with < 4.14 [#1531]
 - Regenerate for GIR-based bindings to pick up time_t fix (long vs time_t)

(From OE-Core rev: 0d70b4b49b1d47c78119b0dd39470fc6bd50de53)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
dc9dac8136 python3-zipp: upgrade 3.17.0 -> 3.18.1
Changelog:
============
-Bypass ZipFile.namelist in glob for better performance.
-Refactored glob functionality to support a more generalized solution with
 support for platform-specific path separators.
-Add special accounting for pypy when computing the stack level for text
 encoding warnings.

(From OE-Core rev: 8e6780fa9d057f798fbd92e1a42aa60ee6876c2f)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
bc1379b4ac python3-wheel: upgrade 0.42.0 -> 0.43.0
Changelog:
==========
-Dropped support for Python 3.7
-Updated vendored packaging to 24.0

(From OE-Core rev: 6c69b4f31b1d5454b18d9d5f8494888705380607)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
f49f2ca1c8 python3-setuptools: upgrade 69.1.1 -> 69.2.0
0001-conditionally-do-not-fetch-code-by-easy_install.patch
refreshed for 69.2.0

Changelog:
==========
-Explicitly use encoding="locale" for .pth files whenever possible, to reduce
 EncodingWarnings. This avoid errors with UTF-8
-Clarify some Package Discovery and Resource Access using pkg_resources methods
 return bytes, not str. Also return an empty bytes in EmptyProvider._get
-Return an empty list by default in pkg_resources.ResourceManager.cleanup_resources
-Made pkg_resoursces.NullProvider's has_metadata and metadata_isdir methods
 return actual booleans like all other Providers.

(From OE-Core rev: 49d2c4cf43d4ccac6f3f6c090fc0e5b0365645b6)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
6623dda7e4 python3-scons: upgrade 4.6.0 -> 4.7.0
Changelog:
 https://github.com/SCons/scons/releases/tag/4.7.0

(From OE-Core rev: f61957bc35fe36849c5b0d8ed512da7ee7d1f084)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
65f5f89b0f python3-referencing: upgrade 0.33.0 -> 0.34.0
Changelog:
-Also look inside definitions keywords even on newer dialects. The specification
 recommends doing so regardless of the rename to $defs.

(From OE-Core rev: 9c608f3bf72141b97be3f64d5ab03592004155e5)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
58a39dcc51 python3-pyelftools: upgrade 0.30 -> 0.31
Changelog:
=============
-remove universal setting for wheels, since we don't support py2 now
-[RELOCATIONS] add enum for v850 relocations
-Fix buffer overrun in NT_GNU_PROPERTY_TYPE_0 parser
-Fix iter_notes to handle >4 byte segment alignment
-Support for XC16/PIC phantom bytes
-Support for the GNU note with the AARCH64 CPU features
-Fix for mixed version loclists, tests
-Update supported python versions for GitHub actions CI
-Initial s390x relocation support
-Add py.typed to elftools
-Fix ranges autotest take 2
-Support getting RELR relocations from dynamic section
-Dynamic array size can be a loclist/locexpr
-DW_OP_GNU_uninit
-Update CHANGES to mention Python 2 (lack of) support
-Remove redundant wheel dep from pyproject.toml
-False positive on LocationParser.attribute_has_location()
-Support for DW_OP_WASM_location
-Dwarfdump test on Windows
-More Apple, LLVM attributes

(From OE-Core rev: 100ea6a8ae6b05521d394a1217ae0e744a46c7dd)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
53000d2748 python3-packaging: upgrade 23.2 -> 24.0
Changelog:
==========
-Fix specifier matching when the specifier is long and has an epoch
-Clarify version split/join usage
-Default optional metadata values to None
-Stop using deprecated/removed keys
-Correctly use the ExceptionGroup shim only when needed
-Update CHANGELOG entry about validate kwarg
-Support --disable-gil builds (PEP 703) in packaging.tags
-Skip test_glibc_version_string_ctypes_raise_oserror if ctypes is unavailable
-Enable CodeQL
-PEP 703: Rename Py_NOGIL to Py_GIL_DISABLED
-Replace PEP references with PUG links
-Remove coverage ignore for non-existent file
-Update URLs
-Configure dependabot
-Hash pin github actions
-Apply some refurb suggestions
-Appply some bugbear suggestions
-Apply some ruff suggestions
-Add riscv64 as a supported manylinux architecture

(From OE-Core rev: b3ab311628a6668827a06c74e4880e4c0dbff7c5)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
af9a5b1487 python3-markdown: upgrade 3.5.2 -> 3.6
Changelog:
 https://github.com/Python-Markdown/markdown/releases/tag/3.6

License-Update:
 Update the license template so GitHub can detect it

(From OE-Core rev: 6a8c53f283f5637480b667e51bfd5c71c3ab0db2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
19c5e810fd python3-license-expression: upgrade 30.2.0 -> 30.3.0
Changelog:
===========
-Use latest skeleton
-Update license list to latest ScanCode and SPDX 3.23
-Drop support for Python 3.7
-Release prep v30.3.0

(From OE-Core rev: c8763d3653ad5dd508d72163ba844f3f5b901136)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
59b89c7c81 python3-importlib-metadata: upgrade 7.0.2 -> 7.1.0
Changelog:
==========
-Make MetadataPathFinder.find_distributions a classmethod for consistency
 with CPython.
-Allow MetadataPathFinder.invalidate_caches to be called as a classmethod.

(From OE-Core rev: 11b074f79bc30115c8a1cfc0119acb3f8f6ea609)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
82547c7690 python3-hatchling: upgrade 1.21.1 -> 1.22.4
Changelog:
=============
Added:
----------
-Metadata for the wheel target now defaults to the PKG-INFO metadata within
 source distributions
-Add dependencies method to the build hook interface so that hooks can
 themselves dynamically define dependencies
-Update SPDX license information to version 3.23
-Improve error message for when the default heuristics for wheel file inclusion
 fail
-Update the default version of core metadata to 2.3

Fixed:
-----------
-Properly support core metadata version 2.2
-Only read source distribution metadata for fields that are explicitly defined
 as dynamic
-Fix the custom build hook when using dynamic dependencies
-Fix regression when loading metadata from source distributions
-Fix metadata hooks when building wheels from source distributions
-Remove editables as a direct dependency
-Fix default wheel tag when the supported Python version declaration is strict
-Load VCS ignore patterns first so that whitelisted patterns can be excluded by
 project configuration
-Don't consider VCS ignore files that are outside of the VCS boundary
-The sdist build target now gracefully ignores UNIX socket files
-Begin ignoring certain files ubiquitously, like .DS_Store on macOS

(From OE-Core rev: 3318192cda7df2a9fd9497b58570537c0d856b67)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
d8f61735a4 openssh: upgrade 9.6p1 -> 9.7p1
0001-systemd-Add-optional-support-for-systemd-sd_notify.patch
refresh for 9.7p1

Changelog:
============
New features
------------
 * ssh(1), sshd(8): add a "global" ChannelTimeout type that watches
   all open channels and will close all open channels if there is no
   traffic on any of them for the specified interval. This is in
   addition to the existing per-channel timeouts added recently.
 * All: make DSA key support compile-time optional, defaulting to on.

Bugfixes
--------
 * sshd(8): don't append an unnecessary space to the end of subsystem
   arguments
 * ssh(1): fix the multiplexing "channel proxy" mode, broken when
   keystroke timing obfuscation was added.
 * ssh(1), sshd(8): fix spurious configuration parsing errors when
   options that accept array arguments are overridden
 * ssh-agent(1): fix potential spin in signal handler
 * Many fixes to manual pages and other documentation
 * Greatly improve interop testing against PuTTY.

(From OE-Core rev: e409b8ceb514d67d6472b4433cc9869c43401b94)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
6287ef4865 lighttpd: upgrade 1.4.74 -> 1.4.75
Changelog:
==========
* [mod_redirect] url.redirect-code = 308 new default
* [ls-hpack] more portability fixes for sys/queue.h
* [ls-hpack] update version to 2.3.3
* [TLS] default to stronger ciphers w/ PFS and AEAD
* [ci] apt-get install build-essential on Ubuntu
* [ci] /usr/local/opt keg-only pkgs on Darwin(macOS)
* [mod_authn_sasl] translate SASL_LOG_* to syslog
* [build] include src/compat/sys/queue.h in tarball
* [core] fdlog_openlog(), fdlog_closelog()
* [mod_accesslog] fdlog_openlog() if using syslog
* [cmake] fix LEMON_PATH with empty CMAKE_BUILD_TYPE
* [ci] limit github ci to specific branches
* [ci] prefer non-login shell for Cygwin CI build
* [ci] prefer dash for Cygwin and MSYS2 builds
* [mod_wstunnel] fix server.ping-interval w/ HTTP/2
* [mod_dirlisting] fix suffix display of '/' on file (fixes #3242)
* [mod_openssl] use internal asn1_time fn on 32-bit (fixes #3244)
* [mod_openssl] faster ASN1_TIME parse
* [mod_wolfssl] faster ASN1_TIME parse
* [doc] update TLS comment in sample lighttpd.conf

(From OE-Core rev: a3c74e93469dd3a40a17dd04971f79af6701a2ad)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
9e66805187 libxml2: upgrade 2.12.5 -> 2.12.6
Changelog:
===========
- parser: Fix detection of duplicate attributes in XML namespace
- xmlreader: Fix xmlTextReaderConstEncoding
- html: Fix htmlCreatePushParserCtxt with encoding
- xmllint: Return error code if XPath returns empty nodeset

(From OE-Core rev: 0bc673b0de08e02ff01ec9ad3daf0bb41662da40)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
1d1544730f libxkbcommon: upgrade 1.6.0 -> 1.7.0
Changelog:
===========
- Added early detection of invalid encodings and BOM for keymaps, rules & Compose.
  Also added a hint that the expected encoding must be UTF-8 compatible.
- Updated keysyms using latest [xorgproto]
- Keysyms: Fixed inconsistent results in 'xkb_keysym_from_name' when used with
  the flag 'XKB_KEYSYM_CASE_INSENSITIVE'.
- Keysyms: Fixed case mapping for 3 Latin 1 keysyms:
  - 'XKB_KEY_ydiaeresis'
  - 'XKB_KEY_mu'
  - 'XKB_KEY_ssharp'
- Keysyms: Fixed 'xkb_keysym_is_modifier' to detect also the following keysyms:
  - 'XKB_KEY_ISO_Level5_Shift'
  - 'XKB_KEY_ISO_Level5_Latch'
  - 'XKB_KEY_ISO_Level5_Lock'
- Prevent recursive includes of keymap components.
- Fixed global default statements 'x.y = z;' in wrong scope not raising an error.
- Rules: Made newline required after '!include' line.
- Rules: Fixed a bug where variant indexes were ignored with the layout index
  used instead. They are practically always the same, but don't have to be.
- Compose: Fixed a segfault with 'xkb_compose_table_iterator_next' when used on an
  empty table.
- Compose: Added check to ensure to open only regular files, not e.g. directories.
- Registry: Updated the DTD and always parse the "popularity" attribute.
- Fixed a few memory leaks and keymap symbols parsing.

(From OE-Core rev: 9ae00c047f3a9a5993be70cb27d34c6814e4944d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
1e99fdd4f6 libwpe: upgrade 1.14.2 -> 1.16.0
Changelog:
=========
- This version does not contain changes over the 1.15.2 development release.
- Allow resetting the fullscreen client to a null pointer.
- Fix usage of the _wpe_loader_interface with the static loader.

(From OE-Core rev: f68a771e4e31b897399755fd7117a78381d377c1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
178658c0b3 libpciaccess: upgrade 0.18 -> 0.18.1
(From OE-Core rev: 515b4e43bda1d4c24e66c5779d75e3f285ed4067)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
e2d4d60bd7 libcomps: upgrade 0.1.20 -> 0.1.21
Changelog:
===========
-Build aarch64 python packages during releases
-Fix build: use correct variable for category and env
-build: Restore compatiblity with libxml2-2.12.0
-tests: Unify formatting of current test announcements
-tests: Don't print parsing errors during tests
-Update CI

(From OE-Core rev: 1d7324942053cadd10930a9dfb49e2c54145682c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
91d938c81f libbsd: upgrade 0.12.1 -> 0.12.2
Changelog:
============
-test: nlist: make resilient against -Wl,--gc-sections
-build: Do not rely on internal autoconf ac_cv_sys_file_offset_bits variable
-build: Use -eq instead of = as test operators for arithmetic tests
-build: Fix typo in ABI selection description
-build: Only install time struct conversion macros where missing
-man: Add links for errc module functions
-man: Do not install timeval(3bsd) nor timespec(3bsd)
-strtonum: Do not abort on EINVAL from strtoi()
-closefrom: Ignore files starting with dot when scanning /proc/self/fd
-build: Match also gnu* for GNU/Hurd on the glibc ABI selection

(From OE-Core rev: f8df6066c8d9efd1c85c6d5f2c306da06faad860)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
0a7baeea29 harfbuzz: upgrade 8.3.0 -> 8.3.1
Changelog:
==========
- hb_blob_create_from_file_or_fail() on Windows will now try to interpret the
  file name as UTF-8 first, and as system code page if it is not valid UTF-8.
- Fix hb_style_get_value() in fonts with "STAT" table.
- Properly handle negative offsets in CFF table.
- Update IANA Language Subtag Registry to 2024-03-07.
- Subsetter now supports subsetting "BASE" table.
- Subsetter will update "hhea" font metrics in sync with "OS/2" ones.
- "--variations" option of "hb-subset" now supports leaving out values that
  should be unchanged, e.g. "wght=:500:" will change the default and keep max
  and min unchanged. It also supports "*=drop" to to pin all axes to default
  location.
- Fix hb_ot_math_get_glyph_kerning() to match updated "MATH" table spec.
- Support legacy MacRoman encoding in "cmap" table.
- Various build fixes.
- Various subsetting and instancing fixes.
- New API:
  hb_subset_input_pin_all_axes_to_default()

(From OE-Core rev: b9716f902695337077b533e22b9298d610c038ee)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
772c2bf5c1 enchant2: upgrade 2.6.7 -> 2.6.8
(From OE-Core rev: 40c02f057f954c132d843c775f4991a654968e40)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
fe47ef2c1f createrepo-c: upgrade 1.0.4 -> 1.1.0
Changelog:
===========
-Add tests for RepositoryReader and RepositoryWriter
-Add a high-level repository writing API
-Add a high-level repository reading API
-Print where and when cr_hascontrollchars is true
-Build aarch64 python packages during releases
-build: Adapt to changes in Fedora packaging of bash-completion

(From OE-Core rev: c4cb90caab40cc1228c3cf49b68ca15f75d48508)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
2fcf170794 bind: upgrade 9.18.24 -> 9.18.25
Changelog:
============
-Create the pruning task in the dns_cache_flush(), so
 the cache pruning still works after the flush.
-Improve the TTL-based cleaning by removing the expired
 headers from the heap, so they don't block the next
 cleaning round and clean more than a single item for
 each new addition to the RBTDB.
-Revert change 6319 and decrease lock contention during
 RBTDB tree pruning by not cleaning up nodes recursively
 within a single prune_tree() call.
-Address use after free in expire_lru_headers.

(From OE-Core rev: 17cecd0d9d0d734d408701d861692ca5987f4ad9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
1d65a6b1de at-spi2-core: upgrade 2.50.1 -> 2.52.0
Changelog:
===========
* tests: Fix missing declaration for getpid().
* Back out code to generate mouse events on mutter. It had a couple of
  unwanted side effects. Also remove dependencies on libei and xkbcommon.
* atk-adaptor: Fix collection role matching.
* Have atspi_text_get_string_at_offset fall back to calling
  GetTextAtOffset if GetStringAtOffset is unimplemented.
* Don't use g_assert in the unit tests.
* Add an attribute-changed signal in atk, and update libatspi attribute cache.
* Add GetTextSelection and SetTextSelection to Document interface.
* Add atspi_device_generate_mouse_event, and implement for mutter.
* Have atspi_device_add_key_grab return 0 if XIGrabKeycode fails.
* xml: Add Embedded to the Socket interface
* Don't return uninitialized values if atspi_component_get_size/position fail.
* atk-adaptor: Fix critical when no table cell array is returned.
* accessible: Do not rename deprecated methods to the new names.
* Add HelpText property and corresponding functions in atk and libatspi.

(From OE-Core rev: 5d94c1c17b70a6522f780eb4055e343e0d0f863a)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
b0f1032a68 adwaita-icon-theme: upgrade 45.0 -> 46.0
Changelog:
==========
- cursors: fix windows build
- cursors: reinstate some x11 cursor names
- symbolic: thunderbolt, phone & export fixes
- index.theme: remove duplicate entries
- cursors: clean up shapes, sync DND metaphors with macos
- symbolic: revert about metaphor
- symbolic: shared screen metaphor update
- fullcolor: antialias 16x16 a little more
- symbolic: replace filled silhouettes with outlines
- cursors: only cover the CSS named
- symbolic: help-about metaphor
- symbolic: sync not-junk metaphor (https://gitlab.gnome.org/GNOME/evolution/-/issues/1710#note_1924546)
- symbolic: cleaned up export with Symbolic Preview

(From OE-Core rev: 58ef139b1fae208d7e131c7b38ed8a4d1881fda5)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Alexander Kanavin
46d33a45d6 shadow: update 4.14.2 -> 4.15.0
libcrack support was dropped.

(From OE-Core rev: c976d67cc73948eb09700be349d63a5d3840acdc)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
05a09ffa3c gnupg: upgrade 2.4.4 -> 2.4.5
Changelog:
==========
* gpg,gpgv: New option --assert-pubkey-algo.
* gpg: Emit status lines for errors in the compression layer.
* gpg: Fix invocation with --trusted-keys and --no-options.
* gpgsm: Allow for a longer salt in PKCS#12 files.
* gpgtar: Make --status-fd=2 work on Windows.
* scd: Support for the ACR-122U NFC reader.
* scd: Suport D-TRUST ECC cards.
* scd: Allow auto detaching of kernel drivers; can be disabled with
  the new compatibility-flag ccid-no-auto-detach.
* scd: Allow setting a PIN length of 6 also with a reset code for
  openpgp cards.
* agent: Allow GET_PASSPHRASE in restricted mode.
* dirmngr: Trust system's root CAs for checking CRL issuers.
* dirmngr: Fix regression in 2.4.4 in fetching keys via hkps.
* gpg-wks-client: Make option --mirror work properly w/o specifying
  domains.
* g13,gpg-wks-client: Allow command style options as in "g13 mount
  foo".
* Allow tilde expansion for the foo-program options.
* Make the getswdb.sh tool usable outside the GnuPG tree.

(From OE-Core rev: eadaa195c8ded5f74bd7a146840c5dd610cd3c36)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
a11dd7575f xev: update 1.2.5 -> 1.2.6
Changelog:
==========
-Mark graceful_exit as noreturn
-Mark global variables as "static" since there's only one source file
-gitlab CI: stop requiring Signed-off-by in commits
-Fix overflow on XmbLookupString buffer

(From OE-Core rev: 282c501690f30b8cad6a2439372d14f868af2fb0)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
21b6a0dd91 xauth: upgrade 1.1.2 -> 1.1.3
Changelog:
==========
-unifdef Lynx
-unifdef hpux
-configure: raise minimum autoconf requirement to 2.70
-configure: Use AC_SYS_LARGEFILE to enable large file support
-Unbold brackets for optional n at start of commands
-Handle -Wempty-body warning for WRITES() macro
-Remove unnecessary casts from malloc() calls
-Variable scope reductions, as suggested by cppcheck
-config: Add missing AC_CONFIG_SRCDIR

(From OE-Core rev: ef200e9de4bdbfbc70e4bd542e35e61ba91cbcf2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
c3db52d3e4 stress-ng: upgrade 0.17.05 -> 0.17.06
Changelog:
==========
-New fd-fork stressor, force copying of tens of thousands of file descriptors on fork() system calls
-New bitonicsort stressor: sort 32 bit integers using bitonic sort, exercises integer compare, copying/cache/memory.
-Add more signals in the nested signal signest stressor
-New --progress option to show --seq stressor progress and expected end of run time
-Add Arrowlake and Pantherlake CPU support for target clones gcc optimizations
-Add IRQ tasklet entry/exit events, IPI Raise event, swiotlb event to --perf option
-Add --crypt-method option to allow crypt stressor to be selected
-Add --fork-unmap option to fork stressor to force unmapping of shared libs to speed up forks
-Add --fpunch-bytes option to fpunch stressor to specify fpunch file size
-Add --vforkmany-bytes option to specify mmap size
-Add NUMA hit/miss metrics to numa stressor
-Fix aiol stressor race condition on termination of pending I/Os
-Fix race on peterson stressor with modern out-of-order execution ARM CPUs

(From OE-Core rev: 38ad00dd375cab312c12c61e9fcd512ad8a9166a)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
94e9740e43 shaderc: update 2023.8 -> 2024.0
0001-cmake-disable-building-external-dependencies.patch
refreshed for 2024.0

Changelog:
==========
 - Update dependencies
 - Utilities:
    - Use Python3 explicitly in utility scripts

(From OE-Core rev: 45c97d420316c3a61412a25c55b2a53a379423fa)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
265c88e035 repo: upgrade 2.42 -> 2.44
(From OE-Core rev: 927ca26e9c69cd6047221a95bfffff11f90d6f1e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
0e844147dc python3-trove-classifiers: upgrade 2024.2.23 -> 2024.3.3
Changelog:
=========
*add  "License :: OSI Approved :: NASA Open Source Agreement (NOSA)"
* added NOSA
* Update src/trove_classifiers/__init__.py

(From OE-Core rev: d2aa7736e52950f17d3abe3be28a7d62d497554b)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:02 +01:00
Wang Mingyu
da6a370583 python3-pytest: upgrade 8.0.2 -> 8.1.1
Changelog:
 https://docs.pytest.org/en/stable/changelog.html

(From OE-Core rev: 7698fa9981eb94409d0988f17bc31f307f0a009d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
f6c9a5abae python3-pytest-subtests: upgrade 0.11.0 -> 0.12.1
Changelog:
===========
-Fixed compatibility with upcoming pytest 8.1.x.
-Python 3.12 is now officially supported
-Added typing support
-SubTests can be imported from pytest_subtests to type-annotate the subtests fixture.

(From OE-Core rev: a873332beb58320e6ed6d8d816e6b4f065375602)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
fa8eff8871 python3-pyparsing: upgrade 3.1.1 -> 3.1.2
Changelog:
===========
- Added 'ieee_float' expression to 'pyparsing.common', which parses float values,
  plus "NaN", "Inf", "Infinity".
- Updated pep8 synonym wrappers for better type checking compatibility.
- Fixed empty error message bug. This _should_ return pyparsing's exception
  messages to a former, more helpful form. If you have code that parses the
  exception messages returned by pyparsing, this may require some code changes.
- Added unit tests to test for exception message contents, with enhancement to
  'pyparsing.testing.assertRaisesParseException' to accept an expected exception message.
- Updated example 'select_parser.py' to use PEP8 names and added Groups for better retrieval
  of parsed values from multiple SELECT clauses.
- Added example 'email_address_parser.py'
- Added example 'directx_x_file_parser.py' to parse DirectX template definitions, and
  generate a Pyparsing parser from a template to parse .x files.
- Some code refactoring to reduce code nesting
- All internal string expressions using '%' string interpolation and 'str.format()'
  converted to f-strings.

(From OE-Core rev: dc067714b407577a7984a413d07282bea1a2fd72)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
9a554d8b87 python3-pyopenssl: upgrade 24.0.0 -> 24.1.0
Changelog:
-Removed the deprecated OpenSSL.crypto.PKCS12 and OpenSSL.crypto.NetscapeSPKI.
 OpenSSL.crypto.PKCS12 may be replaced by the PKCS#12 APIs in the cryptography package.

(From OE-Core rev: e7f9bb7b3b3f051694df7e7af01d538197cbacfd)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
6db458a18b python3-pygobject: update 3.46.0 -> 3.48.1
Changelog:
===========
* Fix installation with pip failing in some environments with
  ModuleNotFoundError in g-ir-scanner :issue:'622' :mr:'302'
* test: fix some tests on macOS :mr:'296'
* docs: some dark mode fixes :mr:'291'
* Drop setuptools in favor of meson-python :mr:'248' :mr:'253' :mr:'254' :mr:'255' :mr:'276'
* Fundamental type support :mr:'250'
* Fundamental type support for GValues :mr:'264'
* pygi-convert.sh: migrate FILE_CHOOSER_CONFIRMATION_* :mr:'266'
* gimodule, cairo: Use multi-phase initialization as per PEP-489 :mr:'271'
* Deprecate classes in gi.option module :mr:'272'
* Deprecate pygtkcompat :mr:'278'
* Add support for (optional) nullable GErrors :mr:'259'
* Fix CssProvider not valid in GTK2 :mr:'284'
* Fix double free if array item cannot be marshalled to Python :mr:'280'
* Raise exception if a callback property is encountered :mr:'269'
* build: Fix pycairo detection "script" for Windows :mr:'267'
* Replace deprecated ''pkgutil.find_loader'' call :mr:'252'
* Avoid segfault on property access for incompletely initialized objects :mr:'260'
* pygenum: When getting a member instance, use correct key for the lookup :mr:'262'

(From OE-Core rev: 49ee7fff74464ca2838c609f2b6f4d1b8e09e8bc)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
82cae7e42a python3-libarchive-c: upgrade 5.0 -> 5.1
Changelog:
===========
Fix the format_name property and move it from the ArchiveEntry class to the ArchiveRead class

(From OE-Core rev: eea08686271c5683840a733c32eda663c2aa23f6)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
19ebc0f0b2 python3-importlib-metadata: upgrade 7.0.1 -> 7.0.2
(From OE-Core rev: 6bbe1785a5d0f5efd83cfefff39178d7f8523946)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
7c7826f787 python3-hypothesis: upgrade 6.98.15 -> 6.99.4
Changelog:
==========
-Fix regression caused by using PEP 696 default in TypeVar with Python 3.13.0a3.
-improves the type annotations in hypothesis.extra.numpy.
-Simplify the type annotation of column() and columns() by using PEP 696 to
 avoid overloading.
-implement type annotations for column().
-add the experimental and unstable backend setting.
-fixe issue #3900, a performance regression for arrays() due to the interaction
 of 6.98.12
-improve the type annotations in hypothesis.extra.numpy, which makes inferred
 types more precise for both mypy and pyright, and fixes some strict-mode errors
 on the latter.
-pave the way for future shrinker improvements. There is no user-visible change.

(From OE-Core rev: 71cf65e4a1137c20ece34a6ad5a65f037295daf2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
934ad49020 python3-cython: upgrade 3.0.8 -> 3.0.9
Changelog:
===========
Features added
--------------
* Assigning "const" values to non-const variables now issues a warning.
* Using "noexcept" on a function returning Python objects now issues a warning.
* Some C-API usage was updated for the upcoming CPython 3.13.
* The deprecated "Py_UNICODE" type is no longer used, unless required by user code.
* "std::string.replace()" declarations were added to libcpp.string.

Bugs fixed
----------
* Cython generates incorrect (but harmless) self-casts when directly calling
  final methods of subtypes.  Lacking a better solution, the errors that recent
  gcc versions produce have been silenced for the time being.
* Unused variable warnings about clineno were fixed when C lines in tracebacks are disabled.
* Subclass deallocation of extern classes could crash if the base class uses GC.
* Type checks for Python "memoryview" could use an invalid C function.
* Calling final fused functions could generate invalid C code.
* Declaring extern enums multiple times could generate invalid C code.
* "pyximport" used relative paths incorrectly.
* Running Cython with globbing characters ("[]*?") in the module search path could fail.
* Literal strings that include braces could change the C code indentation.

Other changes
-------------
* The "enum class not importable" warning is now only issued once per enum type.

(From OE-Core rev: 35a7d28d271d2f3e27cf24c2433c4e69c650509e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
051e5476e8 psmisc: upgrade 23.6 -> 23.7
0001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch
refreshed for 23.7

Changelog:
===========
* build-sys: Make disable-statx work
* fuser: Fallback to stat() if no statx() Debian 1030747
* fuser: silently ignore EACCES when scanning proc directories
* killall: small formatting fixes Debian
* pstree: Do not assume root PID
* pslog: include config.h
* misc: Update gettext to 0.21

(From OE-Core rev: 5a5e5cce2edd0f0bccc69f3ec68dd86810b873c2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
aeaeaed8ef pango: upgrade 1.52.0 -> 1.52.1
Changelog:
 Fix hexbox drawing

(From OE-Core rev: 5a296e6c3afb412ee9740fc28963f35dd16e52d9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
d844769fa9 mkfontscale: upgrade 1.2.2 -> 1.2.3
License-Update: "All rights reserved." removed from copyright.

Changelog:
=============
-Fix -Wimplicit-float-conversion warnings from clang
-Resolve some -Wsign-conversion warnings from clang
-Variable scope reductions as recommended by cppcheck
-ident.c: clear -Wdeclaration-after-statement warning
-mkfontscale.c: handle -Wshadow warnings from gcc
-doDirectory: add missing check for malloc() returning NULL
-Convert to X.Org standard code style
-Remove "All rights reserved" from Oracle copyright notices
-gitlab CI: stop requiring Signed-off-by in commits
-configure: Use AC_SYS_LARGEFILE to enable large file support
-Address s UBSan warning about int left shift overflow
-configure: Move check for zlib into its own section
-configure: Use pkg-config to find zlib

(From OE-Core rev: 73252e8c971263816cf218c53d0da9e419c9609d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
fd18d47d86 libxdmcp: upgrade 1.1.4 -> 1.1.5
Changelog:
==========
-gitlab CI: add xz-utils to container for "make distcheck"
-XdmcpWriteHeader: use calloc instead of malloc to alloc buffer
-XdmcpWriteHeader: drop unnecessary cast of free() argument
-Clear -Wunused-macros warnings when arc4random_buf() is available
-Xdmcp.h: add access attributes to function prototypes
-configure: Use LT_INIT from libtool 2 instead of deprecated AC_PROG_LIBTOOL
-Remove "All rights reserved" from Oracle copyright notices

(From OE-Core rev: e7f102d0d85e5c35c030a21fb3fa237a0843dce5)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
635a2b0eb4 libxcursor: upgrade 1.2.1 -> 1.2.2
Changelog:
===========
-Remove superfluous and unguarded config.h include
-XcursorXcFileLoad: plug memory leak in error paths
-Add comment about keeping libxcb-cursor copy of code in sync
-If O_CLOEXEC is defined, add "e" to fopen modes
-configure: Use LT_INIT from libtool 2 instead of deprecated AC_PROG_LIBTOOL
-gitlab CI: stop requiring Signed-off-by in commits

(From OE-Core rev: b56224f31ac4df426418ffe9fa48f4d2dea3f148)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
2d3d3cfb9f libxcb: upgrade 1.16 -> 1.16.1
Changelog:
===========
-Enable large file support
-Fix compilation on Windows
-gitlab CI: use latest xcbproto from git to build against
-configure.ac: drop `pthread-stubs` dependency on NetBSD
-gitlab CI: regenerate container used for builds

(From OE-Core rev: 29cff6301d9c86df1609ac7d1762c38ce527fe4e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
30ff5f152f libsdl2: upgrade 2.30.0 -> 2.30.1
Changelog:
===========
-Fixed a regression causing SDL_WaitEvent() to return spurious failures
-Fixed X11 cursors on the latest release of GNOME
-Wayland windows automatically have OpenGL enabled again
-Fixed memory corruption when converting signed 16-bit audio to float
-Fixed audio artifacts when converting signed 8-bit audio to float
-Fixed the clip rectangle not being updated when the viewport changes in the SDL renderer
-Convert mouse wheel coordinates to the rendering view in the SDL renderer
-Fixed a crash handling controllers on macOS
-Fixed a crash setting a window fullscreen with Emscripten
-Fixed the keyboard automatically popping up when resuming an application on Android

(From OE-Core rev: a17c05585a0da0166087ae0cd3cd4331a1fb2615)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
7309a6a0ed libpng: upgrade 1.6.42 -> 1.6.43
Changelog:
===========
-Fixed the row width check in png_check_IHDR().
-Added eXIf chunk support to the push-mode reader in pngpread.c.
-Added contrib/pngexif for the benefit of the users who would like
 to inspect the content of eXIf chunks.
-Added contrib/conftest/basic.dfa, a basic build-time configuration.
-Fixed a preprocessor condition in pngread.c that broke build-time
 configurations like contrib/conftest/pngcp.dfa.
-Added CMake build support for LoongArch LSX.
-Fixed a CMake build error that occurred under a peculiar state of the
 dependency tree. This was a regression introduced in libpng-1.6.41.
-Marked the installed libpng headers as system headers in CMake.
-Updated the build support for RISCOS.
-Updated the makefiles to allow cross-platform builds to initialize
 conventional make variables like AR and ARFLAGS.
-Added various improvements to the CI scripts in areas like version
  consistency verification and text linting.
Added version consistency verification to pngtest.c also.

(From OE-Core rev: d36edc338fde6879390c322fb6333812a2c2ed74)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
f269bb70be libfontenc: upgrade 1.1.7 -> 1.1.8
Changelog:
==========
-Set close-on-exec when opening files
-configure: Use LT_INIT from libtool 2 instead of deprecated AC_PROG_LIBTOOL
-Remove "All rights reserved" from Oracle copyright notices
-configure: raise minimum autoconf requirement to 2.70

(From OE-Core rev: 10563e9f2d75a85a8d9c85cc79dcd851df669e13)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
efd86988ec libassuan: upgrade 2.5.6 -> 2.5.7
Changelog:
============
* New configure option --with-libtool-modification.
* Change the naming of the 64 bit Windows DLL from libassuan6-0.dll
  to libassuan-0.dll to sync this with what we did for libgpg-error.

(From OE-Core rev: 60e8a5ad9835f71dcf2fb4c7c748cc12f5bac115)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
f184b32700 ghostscript: upgrade 10.02.1 -> 10.03.0
avoid-host-contamination.patch
refreshed for 10.03.0

configure.ac-add-option-to-explicitly-disable-neon.patch
removed since it's included in 10.03.0

(From OE-Core rev: 0e389b7b20cf77327127ae0ced856e2b2ec7aee2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
7f23f72449 gcr: upgrade 4.2.0 -> 4.2.1
Changelog:
===========
- gcr-ssh-agent: set 'SSH_AUTH_SOCK'
- gcr-ssh-agent: port avoid deadlock fix
- Updated translations

(From OE-Core rev: 5b98e250d8c04040df1333506b72575d368e6bdc)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
69a3a3f9be encodings: upgrade 1.0.7 -> 1.1.0
Changelog:
==========
-Add a meson build system
-Add the ISO8859-14 encoding

(From OE-Core rev: b903248f62d6d6d969556632f8fb19f8b700dda3)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
d23cdd0c2b diffoscope: upgrade 259 -> 260
Changelog:
==========
* Actually test 7z support in the test_7z set of tests, not the lz4
  functionality.
* In addition, correctly check for the 7z binary being available
  (and not lz4) when testing 7z.
* Prevent a traceback when comparing a contentful .pyc file with an
  empty one.

(From OE-Core rev: 5baf1e660f980cdcbe97e395f9c7f28b14cd8e6e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Wang Mingyu
ade5821ea3 debianutils: upgrade 5.16 -> 5.17
Changelog:
=============
* run-parts.c: Forward last exit code to preserve exit status.
* d/tests/control: Add run-parts.test to autopkgtests.
* d/tests/run-parts.test: Move run-parts testing here and add testing for
  the --exit-on-error option.
* d/tests/smoke: Remove duplicate run-parts testing.
* acinclude.m4: Bump DEBIANUTILS_VERSION from 5.14 to 5.17.

(From OE-Core rev: 12e6f8b91d7d8e2415122eb96289d8b91dbb23e2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
cdc15a0ff2 waffle: update 1.7.2 -> 1.8.0
(From OE-Core rev: b63ce3e9ae0e38e9951440d805b0d9487fd3736d)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
0a60440ceb texinfo: update 7.0.3 -> 7.1
Drop texinfo/link-zip.patch
(no longer necessary)

Add texinfo_cv_sys_iconv_converts_euc_cn=yes as otherwise
it's determined via building and running a helper binary.

(From OE-Core rev: eb13b936347b01dd92190713439e0ced6329337d)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
bdd51994e1 tcl: update 8.6.13 -> 8.6.14
Drop recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch
(very obsolete)

(From OE-Core rev: 59fabff31d4ed80b379cadb510dccb0d89976f0a)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
a4c06a9986 ruby: update 3.2.2 -> 3.3.0
Rebase:
ruby/0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch

Drop:

ruby/0001-fiddle-Use-C11-_Alignof-to-define-ALIGN_OF-when-poss.patch
(merged upstream)

ruby/0001-template-Makefile.in-do-not-write-host-cross-cc-item.patch
ruby/0002-template-Makefile.in-filter-out-f-prefix-map.patch
ruby/remove_has_include_macros.patch
(code rewritten upstream)

(From OE-Core rev: 6e3326838f888912a76e9a1ce77fb76550d27169)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
3a7ead55a4 rpm: update 4.19.1 -> 4.19.1.1
Drop patches:
files/0002-docs-CMakeLists.txt-do-not-install-non-existent-docs.patch
(upstream resolved the issue)

files/0001-CMakeLists.txt-restore-readline-support-as-an-explic.patch
files/0001-Fix-unconditional-dependency-on-non-POSIX-GLOB_ONLYD.patch
(backports)

(From OE-Core rev: d233e33a5ca12f95878c3ee9e34d9d9c61e49f68)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
19ecd2d935 python3-lxml: update 5.0.0 -> 5.1.0
Upstream issued the new version in .tar.gz format, so .zip
setting can be dropped.

(From OE-Core rev: c208be7a9a5fec8b8d56356666de8be7d6d8a121)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
9ac975fc8a npth: update 1.6 -> 1.7
Drop 0001-Revert-Fix-problem-with-regression-tests-on-recent-g.patch
(upstream resolved the issue)

npth-config is no longer installed.

(From OE-Core rev: 21cd99cd96fd8a06d007fe00570ebac98fedbdad)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Khem Raj
8d2b914b50 mdadm: Fix build with new musl
new musl has removed basename prototype from string.h

(From OE-Core rev: b3f75f7926db2a616a49650ac04befa755c8dd8f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
df4a6bcb15 mdadm: update 4.2 -> 4.3
Drop a gigantic set of patches: either backports or
test fixups (which are no longer testable after exclusion of
mdadm from ptests).

Add musl fixes:
0001-util.c-add-limits.h-include-for-NAME_MAX-definition.patch
0002-Create.c-include-linux-falloc.h-for-FALLOC_FL_ZERO_R.patch

(From OE-Core rev: 952a2a94901ea6e9416e517e9f6c97dbc7e3bb2d)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
352e2a327b libtraceevent: update 1.7.3 -> 1.8.2
Drop docs option from meson.patch, as upstream added a doc
option that does the same thing.

(From OE-Core rev: 0da4e49b40aaf1f4de1ceaaf799de6234a3ce22b)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
c11f334af5 libpam: update 1.5.3 -> 1.6.0
(From OE-Core rev: 2a194d5dd1d82f233fa28a44412aea1ba4ccd434)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
69c1a73268 go-helloworld: update to latest revision
(From OE-Core rev: ed7d5a9e0ea2c970b3c101876dc3e3b8b5ae2ade)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
e8c9f0bf7d icu: update 74-1 -> 74-2
Note that upstream has re-spun the release tarball (the initial tarball had a broken symlink
for LICENSE file), so there can be yocto premirror checksum mismatches:
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/6671/steps/13/logs/stdio

(From OE-Core rev: 344f7500e6df31d7c06331aedbac0df4983da958)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
e55b3e209a gptfdisk: update 1.0.9 -> 1.0.10
(From OE-Core rev: d41178f9fea7e4121f582eaec68a6aa308e71b6e)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
1cfb2dc0de dpkg: update 1.22.0 -> 1.22.5
Drop pager.patch as macros removed upstream.

(From OE-Core rev: 63df660741742baf527647d3036b6d3414869c4f)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
Alexander Kanavin
e427d97411 attr: update 2.5.1 -> 2.5.2
(From OE-Core rev: 22755644ec458235cddd2c461c2ed94061481cda)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-04-16 08:07:01 +01:00
1079 changed files with 15882 additions and 23389 deletions

View File

@@ -27,7 +27,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
bb.utils.check_system_locale()
__version__ = "2.8.0"
__version__ = "2.9.1"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -16,6 +16,7 @@ import time
import warnings
import netrc
import json
import statistics
warnings.simplefilter("default")
try:
@@ -81,6 +82,7 @@ def main():
nonlocal found_hashes
nonlocal missed_hashes
nonlocal max_time
nonlocal times
with hashserv.create_client(args.address) as client:
for i in range(args.requests):
@@ -98,29 +100,41 @@ def main():
else:
missed_hashes += 1
max_time = max(elapsed, max_time)
times.append(elapsed)
pbar.update()
max_time = 0
found_hashes = 0
missed_hashes = 0
lock = threading.Lock()
total_requests = args.clients * args.requests
times = []
start_time = time.perf_counter()
with ProgressBar(total=total_requests) as pbar:
with ProgressBar(total=args.clients * args.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()
total_elapsed = time.perf_counter() - start_time
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))
mean = statistics.mean(times)
median = statistics.median(times)
stddev = statistics.pstdev(times)
print(f"Number of clients: {args.clients}")
print(f"Requests per client: {args.requests}")
print(f"Number of requests: {len(times)}")
print(f"Total elapsed time: {total_elapsed:.3f}s")
print(f"Total request rate: {len(times)/total_elapsed:.3f} req/s")
print(f"Average request time: {mean:.3f}s")
print(f"Median request time: {median:.3f}s")
print(f"Request time std dev: {stddev:.3f}s")
print(f"Maximum request time: {max(times):.3f}s")
print(f"Minimum request time: {min(times):.3f}s")
print(f"Hashes found: {found_hashes}")
print(f"Hashes missed: {missed_hashes}")
if args.report:
with ProgressBar(total=args.requests) as pbar:
@@ -225,6 +239,32 @@ def main():
print("true" if result else "false")
return 0
def handle_ping(args, client):
times = []
for i in range(1, args.count + 1):
if not args.quiet:
print(f"Ping {i} of {args.count}... ", end="")
start_time = time.perf_counter()
client.ping()
elapsed = time.perf_counter() - start_time
times.append(elapsed)
if not args.quiet:
print(f"{elapsed:.3f}s")
mean = statistics.mean(times)
median = statistics.median(times)
std_dev = statistics.pstdev(times)
if not args.quiet:
print("------------------------")
print(f"Number of pings: {len(times)}")
print(f"Average round trip time: {mean:.3f}s")
print(f"Median round trip time: {median:.3f}s")
print(f"Round trip time std dev: {std_dev:.3f}s")
print(f"Min time is: {min(times):.3f}s")
print(f"Max time is: {max(times):.3f}s")
return 0
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')
@@ -322,6 +362,11 @@ def main():
unihash_exists_parser.add_argument("unihash", help="Unihash to check")
unihash_exists_parser.set_defaults(func=handle_unihash_exists)
ping_parser = subparsers.add_parser('ping', help="Ping server")
ping_parser.add_argument("-n", "--count", type=int, help="Number of pings. Default is %(default)s", default=10)
ping_parser.add_argument("-q", "--quiet", action="store_true", help="Don't print each ping; only print results")
ping_parser.set_defaults(func=handle_ping)
args = parser.parse_args()
logger = logging.getLogger('hashserv')

View File

@@ -125,6 +125,11 @@ The following permissions are supported by the server:
default=os.environ.get("HASHSERVER_ADMIN_PASSWORD", None),
help="Create default admin user with password ADMIN_PASSWORD ($HASHSERVER_ADMIN_PASSWORD)",
)
parser.add_argument(
"--reuseport",
action="store_true",
help="Enable SO_REUSEPORT, allowing multiple servers to bind to the same port for load balancing",
)
args = parser.parse_args()
@@ -132,7 +137,9 @@ The following permissions are supported by the server:
level = getattr(logging, args.log.upper(), None)
if not isinstance(level, int):
raise ValueError("Invalid log level: %s (Try ERROR/WARNING/INFO/DEBUG)" % args.log)
raise ValueError(
"Invalid log level: %s (Try ERROR/WARNING/INFO/DEBUG)" % args.log
)
logger.setLevel(level)
console = logging.StreamHandler()
@@ -155,6 +162,7 @@ The following permissions are supported by the server:
anon_perms=anon_perms,
admin_username=args.admin_user,
admin_password=args.admin_password,
reuseport=args.reuseport,
)
server.serve_forever()
return 0

View File

@@ -33,7 +33,7 @@ def main():
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('-F', '--force', help='Forced execution: can be specified multiple times. -F will force add without recipe parse verification and -FF will additionally force the run withput layer parsing.', action='count', default=0)
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()
@@ -59,16 +59,20 @@ def main():
plugins = []
tinfoil = bb.tinfoil.Tinfoil(tracking=True)
tinfoil.logger.setLevel(logger.getEffectiveLevel())
try:
if global_args.force > 1:
bbpaths = []
else:
tinfoil.prepare(True)
for path in ([topdir] +
tinfoil.config_data.getVar('BBPATH').split(':')):
bbpaths = tinfoil.config_data.getVar('BBPATH').split(':')
try:
for path in ([topdir] + bbpaths):
pluginpath = os.path.join(path, 'lib', 'bblayers')
bb.utils.load_plugins(logger, plugins, pluginpath)
registered = False
for plugin in plugins:
if hasattr(plugin, 'tinfoil_init'):
if hasattr(plugin, 'tinfoil_init') and global_args.force <= 1:
plugin.tinfoil_init(tinfoil)
if hasattr(plugin, 'register_commands'):
registered = True

View File

@@ -16,11 +16,18 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), "lib
import prserv
import prserv.serv
VERSION = "1.1.0"
VERSION = "2.0.0"
PRHOST_DEFAULT="0.0.0.0"
PRPORT_DEFAULT=8585
def init_logger(logfile, loglevel):
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
raise ValueError("Invalid log level: %s" % loglevel)
FORMAT = "%(asctime)-15s %(message)s"
logging.basicConfig(level=numeric_level, filename=logfile, format=FORMAT)
def main():
parser = argparse.ArgumentParser(
description="BitBake PR Server. Version=%s" % VERSION,
@@ -70,12 +77,25 @@ def main():
action="store_true",
help="open database in read-only mode",
)
parser.add_argument(
"-u",
"--upstream",
default=os.environ.get("PRSERVER_UPSTREAM", None),
help="Upstream PR service (host:port)",
)
args = parser.parse_args()
prserv.init_logger(os.path.abspath(args.log), args.loglevel)
init_logger(os.path.abspath(args.log), args.loglevel)
if args.start:
ret=prserv.serv.start_daemon(args.file, args.host, args.port, os.path.abspath(args.log), args.read_only)
ret=prserv.serv.start_daemon(
args.file,
args.host,
args.port,
os.path.abspath(args.log),
args.read_only,
args.upstream
)
elif args.stop:
ret=prserv.serv.stop_daemon(args.host, args.port)
else:

View File

@@ -15,6 +15,7 @@ import unittest
try:
import bb
import hashserv
import prserv
import layerindexlib
except RuntimeError as exc:
sys.exit(str(exc))
@@ -33,6 +34,7 @@ tests = ["bb.tests.codeparser",
"bb.tests.utils",
"bb.tests.compression",
"hashserv.tests",
"prserv.tests",
"layerindexlib.tests.layerindexobj",
"layerindexlib.tests.restapi",
"layerindexlib.tests.cooker"]

View File

@@ -9,7 +9,7 @@
# SPDX-License-Identifier: GPL-2.0-only
#
__version__ = "2.8.0"
__version__ = "2.9.1"
import sys
if sys.version_info < (3, 8, 0):
@@ -36,6 +36,7 @@ class BBHandledException(Exception):
import os
import logging
from collections import namedtuple
class NullHandler(logging.Handler):
@@ -103,26 +104,6 @@ class BBLoggerAdapter(logging.LoggerAdapter, BBLoggerMixin):
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")
@@ -227,3 +208,14 @@ def deprecate_import(current, modulename, fromlist, renames = None):
setattr(sys.modules[current], newname, newobj)
TaskData = namedtuple("TaskData", [
"pn",
"taskname",
"fn",
"deps",
"provides",
"taskhash",
"unihash",
"hashfn",
"taskhash_deps",
])

View File

@@ -5,7 +5,7 @@
#
from .client import AsyncClient, Client, ClientPool
from .client import AsyncClient, Client
from .serv import AsyncServer, AsyncServerConnection
from .connection import DEFAULT_MAX_CHUNK
from .exceptions import (

View File

@@ -24,6 +24,12 @@ ADDR_TYPE_UNIX = 0
ADDR_TYPE_TCP = 1
ADDR_TYPE_WS = 2
WEBSOCKETS_MIN_VERSION = (9, 1)
# Need websockets 10 with python 3.10+
if sys.version_info >= (3, 10, 0):
WEBSOCKETS_MIN_VERSION = (10, 0)
def parse_address(addr):
if addr.startswith(UNIX_PREFIX):
return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],))
@@ -39,6 +45,7 @@ def parse_address(addr):
return (ADDR_TYPE_TCP, (host, int(port)))
class AsyncClient(object):
def __init__(
self,
@@ -86,8 +93,30 @@ class AsyncClient(object):
async def connect_websocket(self, uri):
import websockets
try:
version = tuple(
int(v)
for v in websockets.__version__.split(".")[
0 : len(WEBSOCKETS_MIN_VERSION)
]
)
except ValueError:
raise ImportError(
f"Unable to parse websockets version '{websockets.__version__}'"
)
if version < WEBSOCKETS_MIN_VERSION:
min_ver_str = ".".join(str(v) for v in WEBSOCKETS_MIN_VERSION)
raise ImportError(
f"Websockets version {websockets.__version__} is less than minimum required version {min_ver_str}"
)
async def connect_sock():
websocket = await websockets.connect(uri, ping_interval=None)
websocket = await websockets.connect(
uri,
ping_interval=None,
open_timeout=self.timeout,
)
return WebsocketConnection(websocket, self.timeout)
self._connect_sock = connect_sock
@@ -225,85 +254,9 @@ class Client(object):
def close(self):
if self.loop:
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()
self.loop = None
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()
return False
class ClientPool(object):
def __init__(self, max_clients):
self.avail_clients = []
self.num_clients = 0
self.max_clients = max_clients
self.loop = None
self.client_condition = None
@abc.abstractmethod
async def _new_client(self):
raise NotImplementedError("Must be implemented in derived class")
def close(self):
if self.client_condition:
self.client_condition = None
if self.loop:
self.loop.run_until_complete(self.__close_clients())
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
self.loop = None
def run_tasks(self, tasks):
if not self.loop:
self.loop = asyncio.new_event_loop()
thread = Thread(target=self.__thread_main, args=(tasks,))
thread.start()
thread.join()
@contextlib.asynccontextmanager
async def get_client(self):
async with self.client_condition:
if self.avail_clients:
client = self.avail_clients.pop()
elif self.num_clients < self.max_clients:
self.num_clients += 1
client = await self._new_client()
else:
while not self.avail_clients:
await self.client_condition.wait()
client = self.avail_clients.pop()
try:
yield client
finally:
async with self.client_condition:
self.avail_clients.append(client)
self.client_condition.notify()
def __thread_main(self, tasks):
async def process_task(task):
async with self.get_client() as client:
await task(client)
asyncio.set_event_loop(self.loop)
if not self.client_condition:
self.client_condition = asyncio.Condition()
tasks = [process_task(t) for t in tasks]
self.loop.run_until_complete(asyncio.gather(*tasks))
async def __close_clients(self):
for c in self.avail_clients:
await c.close()
self.avail_clients = []
self.num_clients = 0
self.loop = None
def __enter__(self):
return self

View File

@@ -138,14 +138,20 @@ class StreamServer(object):
class TCPStreamServer(StreamServer):
def __init__(self, host, port, handler, logger):
def __init__(self, host, port, handler, logger, *, reuseport=False):
super().__init__(handler, logger)
self.host = host
self.port = port
self.reuseport = reuseport
def start(self, loop):
self.server = loop.run_until_complete(
asyncio.start_server(self.handle_stream_client, self.host, self.port)
asyncio.start_server(
self.handle_stream_client,
self.host,
self.port,
reuse_port=self.reuseport,
)
)
for s in self.server.sockets:
@@ -209,11 +215,12 @@ class UnixStreamServer(StreamServer):
class WebsocketsServer(object):
def __init__(self, host, port, handler, logger):
def __init__(self, host, port, handler, logger, *, reuseport=False):
self.host = host
self.port = port
self.handler = handler
self.logger = logger
self.reuseport = reuseport
def start(self, loop):
import websockets.server
@@ -224,6 +231,7 @@ class WebsocketsServer(object):
self.host,
self.port,
ping_interval=None,
reuse_port=self.reuseport,
)
)
@@ -262,14 +270,26 @@ class AsyncServer(object):
self.loop = None
self.run_tasks = []
def start_tcp_server(self, host, port):
self.server = TCPStreamServer(host, port, self._client_handler, self.logger)
def start_tcp_server(self, host, port, *, reuseport=False):
self.server = TCPStreamServer(
host,
port,
self._client_handler,
self.logger,
reuseport=reuseport,
)
def start_unix_server(self, path):
self.server = UnixStreamServer(path, self._client_handler, self.logger)
def start_websocket_server(self, host, port):
self.server = WebsocketsServer(host, port, self._client_handler, self.logger)
def start_websocket_server(self, host, port, reuseport=False):
self.server = WebsocketsServer(
host,
port,
self._client_handler,
self.logger,
reuseport=reuseport,
)
async def _client_handler(self, socket):
address = socket.address
@@ -368,8 +388,7 @@ class AsyncServer(object):
self._serve_forever(tasks)
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
queue = multiprocessing.Queue()

View File

@@ -197,6 +197,8 @@ def exec_func(func, d, dirs = None):
for cdir in d.expand(cleandirs).split():
bb.utils.remove(cdir, True)
bb.utils.mkdirhier(cdir)
if cdir == oldcwd:
os.chdir(cdir)
if flags and dirs is None:
dirs = flags.get('dirs')

View File

@@ -484,19 +484,34 @@ class ShellParser():
"""
words = list(words)
for word in list(words):
for word in 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)
candidates = [part]
if word[0] in ("cmd_name", "cmd_word"):
if word in words:
words.remove(word)
# If command is of type:
#
# var="... $(cmd [...]) ..."
#
# Then iterate on what's between the quotes and if we find a
# list, make that what we check for below.
if len(part) >= 3 and part[0] == '"':
for p in part[1:-1]:
if isinstance(p, list):
candidates.append(p)
for candidate in candidates:
if len(candidate) >= 2:
if candidate[0] in ('`', '$('):
command = pyshlex.wordtree_as_string(candidate[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:

View File

@@ -315,13 +315,13 @@ class BBCooker:
dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
upstream = self.data.getVar("BB_HASHSERVE_UPSTREAM") or None
if upstream:
import socket
try:
sock = socket.create_connection(upstream.split(":"), 5)
sock.close()
except socket.error as e:
with hashserv.create_client(upstream) as client:
client.ping()
except (ConnectionError, ImportError) as e:
bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s"
% (upstream, repr(e)))
upstream = None
self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
self.hashserv = hashserv.create_server(
@@ -680,14 +680,14 @@ class BBCooker:
bb.event.fire(bb.event.TreeDataPreparationCompleted(len(fulltargetlist)), self.data)
return taskdata, runlist
def prepareTreeData(self, pkgs_to_build, task):
def prepareTreeData(self, pkgs_to_build, task, halt=False):
"""
Prepare a runqueue and taskdata object for iteration over pkgs_to_build
"""
# We set halt to False here to prevent unbuildable targets raising
# an exception when we're just generating data
taskdata, runlist = self.buildTaskData(pkgs_to_build, task, False, allowincomplete=True)
taskdata, runlist = self.buildTaskData(pkgs_to_build, task, halt, allowincomplete=True)
return runlist, taskdata
@@ -701,7 +701,7 @@ class BBCooker:
if not task.startswith("do_"):
task = "do_%s" % task
runlist, taskdata = self.prepareTreeData(pkgs_to_build, task)
runlist, taskdata = self.prepareTreeData(pkgs_to_build, task, halt=True)
rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
rq.rqdata.prepare()
return self.buildDependTree(rq, taskdata)
@@ -1459,7 +1459,6 @@ class BBCooker:
if t in task or getAllTaskSignatures:
try:
rq.rqdata.prepare_task_hash(tid)
sig.append([pn, t, rq.rqdata.get_task_unihash(tid)])
except KeyError:
sig.append(self.getTaskSignatures(target, [t])[0])
@@ -1813,8 +1812,8 @@ class CookerCollectFiles(object):
bb.event.fire(CookerExit(), eventdata)
# We need to track where we look so that we can know when the cache is invalid. There
# is no nice way to do this, this is horrid. We intercept the os.listdir()
# (or os.scandir() for python 3.6+) calls while we run glob().
# is no nice way to do this, this is horrid. We intercept the os.listdir() and os.scandir()
# calls while we run glob().
origlistdir = os.listdir
if hasattr(os, 'scandir'):
origscandir = os.scandir
@@ -2225,9 +2224,8 @@ class CookerParser(object):
for process in self.processes:
process.join()
# Added in 3.7, cleans up zombies
if hasattr(process, "close"):
process.close()
# clean up zombies
process.close()
bb.codeparser.parser_cache_save()
bb.codeparser.parser_cache_savemerge()
@@ -2237,12 +2235,13 @@ class CookerParser(object):
profiles = []
for i in self.process_names:
logfile = "profile-parse-%s.log" % i
if os.path.exists(logfile):
if os.path.exists(logfile) and os.path.getsize(logfile):
profiles.append(logfile)
pout = "profile-parse.log.processed"
bb.utils.process_profilelog(profiles, pout = pout)
print("Processed parsing statistics saved to %s" % (pout))
if profiles:
pout = "profile-parse.log.processed"
bb.utils.process_profilelog(profiles, pout = pout)
print("Processed parsing statistics saved to %s" % (pout))
def final_cleanup(self):
if self.syncthread:

View File

@@ -70,6 +70,7 @@ class Crate(Wget):
host = 'crates.io/api/v1/crates'
ud.url = "https://%s/%s/%s/download" % (host, name, version)
ud.versionsurl = "https://%s/%s/versions" % (host, name)
ud.parm['downloadfilename'] = "%s-%s.crate" % (name, version)
if 'name' not in ud.parm:
ud.parm['name'] = '%s-%s' % (name, version)
@@ -139,3 +140,11 @@ class Crate(Wget):
mdpath = os.path.join(bbpath, cratepath, mdfile)
with open(mdpath, "w") as f:
json.dump(metadata, f)
def latest_versionstring(self, ud, d):
from functools import cmp_to_key
json_data = json.loads(self._fetch_index(ud.versionsurl, ud, d))
versions = [(0, i["num"], "") for i in json_data["versions"]]
versions = sorted(versions, key=cmp_to_key(bb.utils.vercmp))
return (versions[-1][1], "")

View File

@@ -23,6 +23,7 @@ import urllib.parse, urllib.error
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
class GCP(FetchMethod):
"""

View File

@@ -268,7 +268,7 @@ class NpmShrinkWrap(FetchMethod):
def unpack(self, ud, rootdir, d):
"""Unpack the downloaded dependencies"""
destdir = d.getVar("S")
destdir = rootdir
destsuffix = ud.parm.get("destsuffix")
if destsuffix:
destdir = os.path.join(rootdir, destsuffix)

View File

@@ -210,3 +210,6 @@ class Svn(FetchMethod):
def _build_revision(self, ud, d):
return ud.revision
def supports_checksum(self, urldata):
return False

View File

@@ -134,6 +134,15 @@ class Wget(FetchMethod):
self._runwget(ud, d, fetchcmd, False)
# 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(localpath):
raise FetchError("The fetch command returned success for url %s but %s doesn't exist?!" % (uri, localpath), uri)
if os.path.getsize(localpath) == 0:
os.remove(localpath)
raise FetchError("The fetch of %s resulted in a zero size file?! Deleting and failing since this isn't right." % (uri), uri)
# Try and verify any checksum now, meaning if it isn't correct, we don't remove the
# original file, which might be a race (imagine two recipes referencing the same
# source, one with an incorrect checksum)
@@ -143,15 +152,6 @@ class Wget(FetchMethod):
# Our lock prevents multiple writers but mirroring code may grab incomplete files
os.rename(localpath, localpath[:-4])
# 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?!" % (uri, ud.localpath), uri)
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." % (uri), uri)
return True
def checkstatus(self, fetch, ud, d, try_again=True):

View File

@@ -49,20 +49,23 @@ class SkipPackage(SkipRecipe):
__mtime_cache = {}
def cached_mtime(f):
if f not in __mtime_cache:
__mtime_cache[f] = os.stat(f)[stat.ST_MTIME]
res = os.stat(f)
__mtime_cache[f] = (res.st_mtime_ns, res.st_size, res.st_ino)
return __mtime_cache[f]
def cached_mtime_noerror(f):
if f not in __mtime_cache:
try:
__mtime_cache[f] = os.stat(f)[stat.ST_MTIME]
res = os.stat(f)
__mtime_cache[f] = (res.st_mtime_ns, res.st_size, res.st_ino)
except OSError:
return 0
return __mtime_cache[f]
def check_mtime(f, mtime):
try:
current_mtime = os.stat(f)[stat.ST_MTIME]
res = os.stat(f)
current_mtime = (res.st_mtime_ns, res.st_size, res.st_ino)
__mtime_cache[f] = current_mtime
except OSError:
current_mtime = 0
@@ -70,7 +73,8 @@ def check_mtime(f, mtime):
def update_mtime(f):
try:
__mtime_cache[f] = os.stat(f)[stat.ST_MTIME]
res = os.stat(f)
__mtime_cache[f] = (res.st_mtime_ns, res.st_size, res.st_ino)
except OSError:
if f in __mtime_cache:
del __mtime_cache[f]

View File

@@ -1273,27 +1273,41 @@ class RunQueueData:
bb.parse.siggen.set_setscene_tasks(self.runq_setscene_tids)
starttime = time.time()
lasttime = starttime
# Iterate over the task list and call into the siggen code
dealtwith = set()
todeal = set(self.runtaskentries)
while todeal:
ready = set()
for tid in todeal.copy():
if not (self.runtaskentries[tid].depends - dealtwith):
dealtwith.add(tid)
todeal.remove(tid)
self.prepare_task_hash(tid)
bb.event.check_for_interrupts(self.cooker.data)
self.runtaskentries[tid].taskhash_deps = bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
# get_taskhash for a given tid *must* be called before get_unihash* below
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
ready.add(tid)
unihashes = bb.parse.siggen.get_unihashes(ready)
for tid in ready:
dealtwith.add(tid)
todeal.remove(tid)
self.runtaskentries[tid].unihash = unihashes[tid]
bb.event.check_for_interrupts(self.cooker.data)
if time.time() > (lasttime + 30):
lasttime = time.time()
hashequiv_logger.verbose("Initial setup loop progress: %s of %s in %s" % (len(todeal), len(self.runtaskentries), lasttime - starttime))
endtime = time.time()
if (endtime-starttime > 60):
hashequiv_logger.verbose("Initial setup loop took: %s" % (endtime-starttime))
bb.parse.siggen.writeout_file_checksum_cache()
#self.dump_data()
return len(self.runtaskentries)
def prepare_task_hash(self, tid):
bb.parse.siggen.prep_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(tid, self.runtaskentries[tid].depends, self.dataCaches)
self.runtaskentries[tid].unihash = bb.parse.siggen.get_unihash(tid)
def dump_data(self):
"""
Dump some debug information on the internal data structures
@@ -2438,14 +2452,17 @@ class RunQueueExecute:
taskdepdata_cache = {}
for task in self.rqdata.runtaskentries:
(mc, fn, taskname, taskfn) = split_tid_mcfn(task)
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
deps = self.rqdata.runtaskentries[task].depends
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
taskhash = self.rqdata.runtaskentries[task].hash
unihash = self.rqdata.runtaskentries[task].unihash
deps = self.filtermcdeps(task, mc, deps)
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
taskdepdata_cache[task] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn]
taskdepdata_cache[task] = bb.TaskData(
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn],
taskname = taskname,
fn = fn,
deps = self.filtermcdeps(task, mc, self.rqdata.runtaskentries[task].depends),
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn],
taskhash = self.rqdata.runtaskentries[task].hash,
unihash = self.rqdata.runtaskentries[task].unihash,
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn],
taskhash_deps = self.rqdata.runtaskentries[task].taskhash_deps,
)
self.taskdepdata_cache = taskdepdata_cache
@@ -2460,9 +2477,11 @@ class RunQueueExecute:
while next:
additional = []
for revdep in next:
self.taskdepdata_cache[revdep][6] = self.rqdata.runtaskentries[revdep].unihash
self.taskdepdata_cache[revdep] = self.taskdepdata_cache[revdep]._replace(
unihash=self.rqdata.runtaskentries[revdep].unihash
)
taskdepdata[revdep] = self.taskdepdata_cache[revdep]
for revdep2 in self.taskdepdata_cache[revdep][3]:
for revdep2 in self.taskdepdata_cache[revdep].deps:
if revdep2 not in taskdepdata:
additional.append(revdep2)
next = additional
@@ -2556,17 +2575,28 @@ class RunQueueExecute:
elif self.rqdata.runtaskentries[p].depends.isdisjoint(total):
next.add(p)
starttime = time.time()
lasttime = starttime
# When an item doesn't have dependencies in total, we can process it. Drop items from total when handled
while next:
current = next.copy()
next = set()
ready = {}
for tid in current:
if self.rqdata.runtaskentries[p].depends and not self.rqdata.runtaskentries[tid].depends.isdisjoint(total):
continue
# get_taskhash for a given tid *must* be called before get_unihash* below
ready[tid] = bb.parse.siggen.get_taskhash(tid, self.rqdata.runtaskentries[tid].depends, self.rqdata.dataCaches)
unihashes = bb.parse.siggen.get_unihashes(ready.keys())
for tid in ready:
orighash = self.rqdata.runtaskentries[tid].hash
newhash = bb.parse.siggen.get_taskhash(tid, self.rqdata.runtaskentries[tid].depends, self.rqdata.dataCaches)
newhash = ready[tid]
origuni = self.rqdata.runtaskentries[tid].unihash
newuni = bb.parse.siggen.get_unihash(tid)
newuni = unihashes[tid]
# FIXME, need to check it can come from sstate at all for determinism?
remapped = False
if newuni == origuni:
@@ -2587,6 +2617,15 @@ class RunQueueExecute:
next |= self.rqdata.runtaskentries[tid].revdeps
total.remove(tid)
next.intersection_update(total)
bb.event.check_for_interrupts(self.cooker.data)
if time.time() > (lasttime + 30):
lasttime = time.time()
hashequiv_logger.verbose("Rehash loop slow progress: %s in %s" % (len(total), lasttime - starttime))
endtime = time.time()
if (endtime-starttime > 60):
hashequiv_logger.verbose("Rehash loop took more than 60s: %s" % (endtime-starttime))
if changed:
for mc in self.rq.worker:
@@ -2806,13 +2845,19 @@ class RunQueueExecute:
additional = []
for revdep in next:
(mc, fn, taskname, taskfn) = split_tid_mcfn(revdep)
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
deps = getsetscenedeps(revdep)
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
taskhash = self.rqdata.runtaskentries[revdep].hash
unihash = self.rqdata.runtaskentries[revdep].unihash
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn]
taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash, hashfn]
taskdepdata[revdep] = bb.TaskData(
pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn],
taskname = taskname,
fn = fn,
deps = deps,
provides = self.rqdata.dataCaches[mc].fn_provides[taskfn],
taskhash = self.rqdata.runtaskentries[revdep].hash,
unihash = self.rqdata.runtaskentries[revdep].unihash,
hashfn = self.rqdata.dataCaches[mc].hashfn[taskfn],
taskhash_deps = self.rqdata.runtaskentries[revdep].taskhash_deps,
)
for revdep2 in deps:
if revdep2 not in taskdepdata:
additional.append(revdep2)

View File

@@ -381,7 +381,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
self.taints[tid] = taint
logger.warning("%s is tainted from a forced run" % tid)
return
return set(dep for _, dep in self.runtaskdeps[tid])
def get_taskhash(self, tid, deps, dataCaches):
@@ -540,7 +540,7 @@ class SignatureGeneratorUniHashMixIn(object):
def __init__(self, data):
self.extramethod = {}
# NOTE: The cache only tracks hashes that exist. Hashes that don't
# exist are always queries from the server since it is possible for
# exist are always queried from the server since it is possible for
# hashes to appear over time, but much less likely for them to
# disappear
self.unihash_exists_cache = set()
@@ -558,11 +558,11 @@ class SignatureGeneratorUniHashMixIn(object):
super().__init__(data)
def get_taskdata(self):
return (self.server, self.method, self.extramethod, self.max_parallel, self.username, self.password, self.env) + super().get_taskdata()
return (self.server, self.method, self.extramethod, self.username, self.password, self.env) + super().get_taskdata()
def set_taskdata(self, data):
self.server, self.method, self.extramethod, self.max_parallel, self.username, self.password, self.env = data[:7]
super().set_taskdata(data[7:])
self.server, self.method, self.extramethod, self.username, self.password, self.env = data[:6]
super().set_taskdata(data[6:])
def get_hashserv_creds(self):
if self.username and self.password:
@@ -595,13 +595,6 @@ class SignatureGeneratorUniHashMixIn(object):
self._client = hashserv.create_client(self.server, **self.get_hashserv_creds())
yield self._client
@contextmanager
def client_pool(self):
with self._client_env():
if getattr(self, '_client_pool', None) is None:
self._client_pool = hashserv.client.ClientPool(self.server, self.max_parallel, **self.get_hashserv_creds())
yield self._client_pool
def reset(self, data):
self.__close_clients()
return super().reset(data)
@@ -678,25 +671,20 @@ class SignatureGeneratorUniHashMixIn(object):
if len(query) == 0:
return {}
uncached_query = {}
query_keys = []
result = {}
for key, unihash in query.items():
if unihash in self.unihash_exists_cache:
result[key] = True
else:
uncached_query[key] = unihash
query_keys.append(key)
if self.max_parallel <= 1 or len(uncached_query) <= 1:
# No parallelism required. Make the query serially with the single client
if query_keys:
with self.client() as client:
uncached_result = {
key: client.unihash_exists(value) for key, value in uncached_query.items()
}
else:
with self.client_pool() as client_pool:
uncached_result = client_pool.unihashes_exist(uncached_query)
query_result = client.unihash_exists_batch(query[k] for k in query_keys)
for key, exists in uncached_result.items():
for idx, key in enumerate(query_keys):
exists = query_result[idx]
if exists:
self.unihash_exists_cache.add(query[key])
result[key] = exists
@@ -712,29 +700,20 @@ class SignatureGeneratorUniHashMixIn(object):
unihash
"""
result = {}
queries = {}
query_result = {}
query_tids = []
for tid in tids:
unihash = self.get_cached_unihash(tid)
if unihash:
result[tid] = unihash
else:
queries[tid] = (self._get_method(tid), self.taskhash[tid])
query_tids.append(tid)
if len(queries) == 0:
return result
if self.max_parallel <= 1 or len(queries) <= 1:
# No parallelism required. Make the query serially with the single client
if query_tids:
with self.client() as client:
for tid, args in queries.items():
query_result[tid] = client.get_unihash(*args)
else:
with self.client_pool() as client_pool:
query_result = client_pool.get_unihashes(queries)
unihashes = client.get_unihash_batch((self._get_method(tid), self.taskhash[tid]) for tid in query_tids)
for tid, unihash in query_result.items():
for idx, tid in enumerate(query_tids):
# In the absence of being able to discover a unique hash from the
# server, make it be equivalent to the taskhash. The unique "hash" only
# really needs to be a unique string (not even necessarily a hash), but
@@ -749,6 +728,8 @@ class SignatureGeneratorUniHashMixIn(object):
# to the server, there is a better chance that they will agree on
# the unique hash.
taskhash = self.taskhash[tid]
unihash = unihashes[idx]
if unihash:
# A unique hash equal to the taskhash is not very interesting,
# so it is reported it at debug level 2. If they differ, that
@@ -895,7 +876,6 @@ class SignatureGeneratorTestEquivHash(SignatureGeneratorUniHashMixIn, SignatureG
super().init_rundepcheck(data)
self.server = data.getVar('BB_HASHSERVE')
self.method = "sstate_output_hash"
self.max_parallel = 1
def clean_checksum_file_path(file_checksum_tuple):
f, cs = file_checksum_tuple

View File

@@ -106,6 +106,46 @@ ${D}${libdir}/pkgconfig/*.pc
self.parseExpression("foo=$(echo bar)")
self.assertExecs(set(["echo"]))
def test_assign_subshell_expansion_quotes(self):
self.parseExpression('foo="$(echo bar)"')
self.assertExecs(set(["echo"]))
def test_assign_subshell_expansion_nested(self):
self.parseExpression('foo="$(func1 "$(func2 bar$(func3))")"')
self.assertExecs(set(["func1", "func2", "func3"]))
def test_assign_subshell_expansion_multiple(self):
self.parseExpression('foo="$(func1 "$(func2)") $(func3)"')
self.assertExecs(set(["func1", "func2", "func3"]))
def test_assign_subshell_expansion_escaped_quotes(self):
self.parseExpression('foo="\\"fo\\"o$(func1)"')
self.assertExecs(set(["func1"]))
def test_assign_subshell_expansion_empty(self):
self.parseExpression('foo="bar$()foo"')
self.assertExecs(set())
def test_assign_subshell_backticks(self):
self.parseExpression("foo=`echo bar`")
self.assertExecs(set(["echo"]))
def test_assign_subshell_backticks_quotes(self):
self.parseExpression('foo="`echo bar`"')
self.assertExecs(set(["echo"]))
def test_assign_subshell_backticks_multiple(self):
self.parseExpression('foo="`func1 bar` `func2`"')
self.assertExecs(set(["func1", "func2"]))
def test_assign_subshell_backticks_escaped_quotes(self):
self.parseExpression('foo="\\"fo\\"o`func1`"')
self.assertExecs(set(["func1"]))
def test_assign_subshell_backticks_empty(self):
self.parseExpression('foo="bar``foo"')
self.assertExecs(set())
def test_shell_unexpanded(self):
self.setEmptyVars(["QT_BASE_NAME"])
self.parseExpression('echo "${QT_BASE_NAME}"')

View File

@@ -511,7 +511,8 @@ class MirrorUriTest(FetcherTest):
mirrorvar = "http://.*/.* file:///somepath/downloads/ " \
"git://someserver.org/bitbake git://git.openembedded.org/bitbake " \
"https://.*/.* file:///someotherpath/downloads/ " \
"http://.*/.* file:///someotherpath/downloads/"
"http://.*/.* file:///someotherpath/downloads/ " \
"svn://svn.server1.com/ svn://svn.server2.com/"
def test_urireplace(self):
self.d.setVar("FILESPATH", ".")
@@ -535,6 +536,13 @@ class MirrorUriTest(FetcherTest):
uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
self.assertEqual(uris, ['file:///someotherpath/downloads/bitbake-1.0.tar.gz'])
def test_urilistsvn(self):
# Catch svn:// -> svn:// bug
fetcher = bb.fetch.FetchData("svn://svn.server1.com/isource/svnroot/reponame/tags/tagname;module=path_in_tagnamefolder;protocol=https;rev=2", self.d)
mirrors = bb.fetch2.mirror_from_string(self.mirrorvar)
uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
self.assertEqual(uris, ['svn://svn.server2.com/isource/svnroot/reponame/tags/tagname;module=path_in_tagnamefolder;protocol=https;rev=2'])
def test_mirror_of_mirror(self):
# Test if mirror of a mirror works
mirrorvar = self.mirrorvar + " http://.*/.* http://otherdownloads.yoctoproject.org/downloads/"
@@ -1493,6 +1501,12 @@ class FetchLatestVersionTest(FetcherTest):
: "2.8",
}
test_crate_uris = {
# basic example; version pattern "A.B.C+cargo-D.E.F"
("cargo-c", "crate://crates.io/cargo-c/0.9.18+cargo-0.69")
: "0.9.29"
}
@skipIfNoNetwork()
def test_git_latest_versionstring(self):
for k, v in self.test_git_uris.items():
@@ -1511,7 +1525,7 @@ class FetchLatestVersionTest(FetcherTest):
def test_wget_latest_versionstring(self):
testdata = os.path.dirname(os.path.abspath(__file__)) + "/fetch-testdata"
server = HTTPService(testdata)
server = HTTPService(testdata, host="127.0.0.1")
server.start()
port = server.port
try:
@@ -1519,10 +1533,10 @@ class FetchLatestVersionTest(FetcherTest):
self.d.setVar("PN", k[0])
checkuri = ""
if k[2]:
checkuri = "http://localhost:%s/" % port + k[2]
checkuri = "http://127.0.0.1:%s/" % port + k[2]
self.d.setVar("UPSTREAM_CHECK_URI", checkuri)
self.d.setVar("UPSTREAM_CHECK_REGEX", k[3])
url = "http://localhost:%s/" % port + k[1]
url = "http://127.0.0.1:%s/" % port + k[1]
ud = bb.fetch2.FetchData(url, self.d)
pupver = ud.method.latest_versionstring(ud, self.d)
verstring = pupver[0]
@@ -1532,6 +1546,16 @@ class FetchLatestVersionTest(FetcherTest):
finally:
server.stop()
@skipIfNoNetwork()
def test_crate_latest_versionstring(self):
for k, v in self.test_crate_uris.items():
self.d.setVar("PN", k[0])
ud = bb.fetch2.FetchData(k[1], self.d)
pupver = ud.method.latest_versionstring(ud, self.d)
verstring = pupver[0]
self.assertTrue(verstring, msg="Could not find upstream version for %s" % k[0])
r = bb.utils.vercmp_string(v, verstring)
self.assertTrue(r == -1 or r == 0, msg="Package %s, version: %s <= %s" % (k[0], v, verstring))
class FetchCheckStatusTest(FetcherTest):
test_wget_uris = ["https://downloads.yoctoproject.org/releases/sato/sato-engine-0.1.tar.gz",

View File

@@ -559,7 +559,10 @@ class ORMWrapper(object):
# we might have an invalid link; no way to detect this. just set it to None
filetarget_obj = None
parent_obj = Target_File.objects.get(target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
try:
parent_obj = Target_File.objects.get(target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
except Target_File.DoesNotExist:
parent_obj = None
Target_File.objects.create(
target = target_obj,

View File

@@ -50,8 +50,8 @@ class ActionPlugin(LayerPlugin):
try:
notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdirs, None)
self.tinfoil.modified_files()
if not (args.force or notadded):
self.tinfoil.modified_files()
try:
self.tinfoil.run_command('parseConfiguration')
except (bb.tinfoil.TinfoilUIException, bb.BBHandledException):
@@ -83,6 +83,8 @@ class ActionPlugin(LayerPlugin):
layerdir = os.path.abspath(item)
layerdirs.append(layerdir)
(_, notremoved) = bb.utils.edit_bblayers_conf(bblayers_conf, None, layerdirs)
if args.force > 1:
return 0
self.tinfoil.modified_files()
if notremoved:
for item in notremoved:

49
bitbake/lib/bs4/AUTHORS Normal file
View File

@@ -0,0 +1,49 @@
Behold, mortal, the origins of Beautiful Soup...
================================================
Leonard Richardson is the primary maintainer.
Aaron DeVore and Isaac Muse have made significant contributions to the
code base.
Mark Pilgrim provided the encoding detection code that forms the base
of UnicodeDammit.
Thomas Kluyver and Ezio Melotti finished the work of getting Beautiful
Soup 4 working under Python 3.
Simon Willison wrote soupselect, which was used to make Beautiful Soup
support CSS selectors. Isaac Muse wrote SoupSieve, which made it
possible to _remove_ the CSS selector code from Beautiful Soup.
Sam Ruby helped with a lot of edge cases.
Jonathan Ellis was awarded the prestigious Beau Potage D'Or for his
work in solving the nestable tags conundrum.
An incomplete list of people have contributed patches to Beautiful
Soup:
Istvan Albert, Andrew Lin, Anthony Baxter, Oliver Beattie, Andrew
Boyko, Tony Chang, Francisco Canas, "Delong", Zephyr Fang, Fuzzy,
Roman Gaufman, Yoni Gilad, Richie Hindle, Toshihiro Kamiya, Peteris
Krumins, Kent Johnson, Marek Kapolka, Andreas Kostyrka, Roel Kramer,
Ben Last, Robert Leftwich, Stefaan Lippens, "liquider", Staffan
Malmgren, Ksenia Marasanova, JP Moins, Adam Monsen, John Nagle, "Jon",
Ed Oskiewicz, Martijn Peters, Greg Phillips, Giles Radford, Stefano
Revera, Arthur Rudolph, Marko Samastur, James Salter, Jouni Sepp<70>nen,
Alexander Schmolck, Tim Shirley, Geoffrey Sneddon, Ville Skytt<74>,
"Vikas", Jens Svalgaard, Andy Theyers, Eric Weiser, Glyn Webster, John
Wiseman, Paul Wright, Danny Yoo
An incomplete list of people who made suggestions or found bugs or
found ways to break Beautiful Soup:
Hanno B<>ck, Matteo Bertini, Chris Curvey, Simon Cusack, Bruce Eckel,
Matt Ernst, Michael Foord, Tom Harris, Bill de hOra, Donald Howes,
Matt Patterson, Scott Roberts, Steve Strassmann, Mike Williams,
warchild at redho dot com, Sami Kuisma, Carlos Rocha, Bob Hutchison,
Joren Mc, Michal Migurski, John Kleven, Tim Heaney, Tripp Lilley, Ed
Summers, Dennis Sutch, Chris Smith, Aaron Swartz, Stuart
Turner, Greg Edwards, Kevin J Kalupson, Nikos Kouremenos, Artur de
Sousa Rocha, Yichun Wei, Per Vognsen

View File

@@ -1,43 +0,0 @@
Behold, mortal, the origins of Beautiful Soup...
================================================
Leonard Richardson is the primary programmer.
Aaron DeVore is awesome.
Mark Pilgrim provided the encoding detection code that forms the base
of UnicodeDammit.
Thomas Kluyver and Ezio Melotti finished the work of getting Beautiful
Soup 4 working under Python 3.
Simon Willison wrote soupselect, which was used to make Beautiful Soup
support CSS selectors.
Sam Ruby helped with a lot of edge cases.
Jonathan Ellis was awarded the prestigous Beau Potage D'Or for his
work in solving the nestable tags conundrum.
An incomplete list of people have contributed patches to Beautiful
Soup:
Istvan Albert, Andrew Lin, Anthony Baxter, Andrew Boyko, Tony Chang,
Zephyr Fang, Fuzzy, Roman Gaufman, Yoni Gilad, Richie Hindle, Peteris
Krumins, Kent Johnson, Ben Last, Robert Leftwich, Staffan Malmgren,
Ksenia Marasanova, JP Moins, Adam Monsen, John Nagle, "Jon", Ed
Oskiewicz, Greg Phillips, Giles Radford, Arthur Rudolph, Marko
Samastur, Jouni Sepp<70>nen, Alexander Schmolck, Andy Theyers, Glyn
Webster, Paul Wright, Danny Yoo
An incomplete list of people who made suggestions or found bugs or
found ways to break Beautiful Soup:
Hanno B<>ck, Matteo Bertini, Chris Curvey, Simon Cusack, Bruce Eckel,
Matt Ernst, Michael Foord, Tom Harris, Bill de hOra, Donald Howes,
Matt Patterson, Scott Roberts, Steve Strassmann, Mike Williams,
warchild at redho dot com, Sami Kuisma, Carlos Rocha, Bob Hutchison,
Joren Mc, Michal Migurski, John Kleven, Tim Heaney, Tripp Lilley, Ed
Summers, Dennis Sutch, Chris Smith, Aaron Sweep^W Swartz, Stuart
Turner, Greg Edwards, Kevin J Kalupson, Nikos Kouremenos, Artur de
Sousa Rocha, Yichun Wei, Per Vognsen

View File

@@ -1,3 +1,776 @@
= 4.12.3 (20240117)
* The Beautiful Soup documentation now has a Spanish translation, thanks
to Carlos Romero. Delong Wang's Chinese translation has been updated
to cover Beautiful Soup 4.12.0.
* Fixed a regression such that if you set .hidden on a tag, the tag
becomes invisible but its contents are still visible. User manipulation
of .hidden is not a documented or supported feature, so don't do this,
but it wasn't too difficult to keep the old behavior working.
* Fixed a case found by Mengyuhan where html.parser giving up on
markup would result in an AssertionError instead of a
ParserRejectedMarkup exception.
* Added the correct stacklevel to instances of the XMLParsedAsHTMLWarning.
[bug=2034451]
* Corrected the syntax of the license definition in pyproject.toml. Patch
by Louis Maddox. [bug=2032848]
* Corrected a typo in a test that was causing test failures when run against
libxml2 2.12.1. [bug=2045481]
= 4.12.2 (20230407)
* Fixed an unhandled exception in BeautifulSoup.decode_contents
and methods that call it. [bug=2015545]
= 4.12.1 (20230405)
NOTE: the following things are likely to be dropped in the next
feature release of Beautiful Soup:
Official support for Python 3.6.
Inclusion of unit tests and test data in the wheel file.
Two scripts: demonstrate_parser_differences.py and test-all-versions.
Changes:
* This version of Beautiful Soup replaces setup.py and setup.cfg
with pyproject.toml. Beautiful Soup now uses tox as its test backend
and hatch to do builds.
* The main functional improvement in this version is a nonrecursive technique
for regenerating a tree. This technique is used to avoid situations where,
in previous versions, doing something to a very deeply nested tree
would overflow the Python interpreter stack:
1. Outputting a tree as a string, e.g. with
BeautifulSoup.encode() [bug=1471755]
2. Making copies of trees (copy.copy() and
copy.deepcopy() from the Python standard library). [bug=1709837]
3. Pickling a BeautifulSoup object. (Note that pickling a Tag
object can still cause an overflow.)
* Making a copy of a BeautifulSoup object no longer parses the
document again, which should improve performance significantly.
* When a BeautifulSoup object is unpickled, Beautiful Soup now
tries to associate an appropriate TreeBuilder object with it.
* Tag.prettify() will now consistently end prettified markup with
a newline.
* Added unit tests for fuzz test cases created by third
parties. Some of these tests are skipped since they point
to problems outside of Beautiful Soup, but this change
puts them all in one convenient place.
* PageElement now implements the known_xml attribute. (This was technically
a bug, but it shouldn't be an issue in normal use.) [bug=2007895]
* The demonstrate_parser_differences.py script was still written in
Python 2. I've converted it to Python 3, but since no one has
mentioned this over the years, it's a sign that no one uses this
script and it's not serving its purpose.
= 4.12.0 (20230320)
* Introduced the .css property, which centralizes all access to
the Soup Sieve API. This allows Beautiful Soup to give direct
access to as much of Soup Sieve that makes sense, without cluttering
the BeautifulSoup and Tag classes with a lot of new methods.
This does mean one addition to the BeautifulSoup and Tag classes
(the .css property itself), so this might be a breaking change if you
happen to use Beautiful Soup to parse XML that includes a tag called
<css>. In particular, code like this will stop working in 4.12.0:
soup.css['id']
Code like this will work just as before:
soup.find_one('css')['id']
The Soup Sieve methods supported through the .css property are
select(), select_one(), iselect(), closest(), match(), filter(),
escape(), and compile(). The BeautifulSoup and Tag classes still
support the select() and select_one() methods; they have not been
deprecated, but they have been demoted to convenience methods.
[bug=2003677]
* When the html.parser parser decides it can't parse a document, Beautiful
Soup now consistently propagates this fact by raising a
ParserRejectedMarkup error. [bug=2007343]
* Removed some error checking code from diagnose(), which is redundant with
similar (but more Pythonic) code in the BeautifulSoup constructor.
[bug=2007344]
* Added intersphinx references to the documentation so that other
projects have a target to point to when they reference Beautiful
Soup classes. [bug=1453370]
= 4.11.2 (20230131)
* Fixed test failures caused by nondeterministic behavior of
UnicodeDammit's character detection, depending on the platform setup.
[bug=1973072]
* Fixed another crash when overriding multi_valued_attributes and using the
html5lib parser. [bug=1948488]
* The HTMLFormatter and XMLFormatter constructors no longer return a
value. [bug=1992693]
* Tag.interesting_string_types is now propagated when a tag is
copied. [bug=1990400]
* Warnings now do their best to provide an appropriate stacklevel,
improving the usefulness of the message. [bug=1978744]
* Passing a Tag's .contents into PageElement.extend() now works the
same way as passing the Tag itself.
* Soup Sieve tests will be skipped if the library is not installed.
= 4.11.1 (20220408)
This release was done to ensure that the unit tests are packaged along
with the released source. There are no functionality changes in this
release, but there are a few other packaging changes:
* The Japanese and Korean translations of the documentation are included.
* The changelog is now packaged as CHANGELOG, and the license file is
packaged as LICENSE. NEWS.txt and COPYING.txt are still present,
but may be removed in the future.
* TODO.txt is no longer packaged, since a TODO is not relevant for released
code.
= 4.11.0 (20220407)
* Ported unit tests to use pytest.
* Added special string classes, RubyParenthesisString and RubyTextString,
to make it possible to treat ruby text specially in get_text() calls.
[bug=1941980]
* It's now possible to customize the way output is indented by
providing a value for the 'indent' argument to the Formatter
constructor. The 'indent' argument works very similarly to the
argument of the same name in the Python standard library's
json.dump() function. [bug=1955497]
* If the charset-normalizer Python module
(https://pypi.org/project/charset-normalizer/) is installed, Beautiful
Soup will use it to detect the character sets of incoming documents.
This is also the module used by newer versions of the Requests library.
For the sake of backwards compatibility, chardet and cchardet both take
precedence if installed. [bug=1955346]
* Added a workaround for an lxml bug
(https://bugs.launchpad.net/lxml/+bug/1948551) that causes
problems when parsing a Unicode string beginning with BYTE ORDER MARK.
[bug=1947768]
* Issue a warning when an HTML parser is used to parse a document that
looks like XML but not XHTML. [bug=1939121]
* Do a better job of keeping track of namespaces as an XML document is
parsed, so that CSS selectors that use namespaces will do the right
thing more often. [bug=1946243]
* Some time ago, the misleadingly named "text" argument to find-type
methods was renamed to the more accurate "string." But this supposed
"renaming" didn't make it into important places like the method
signatures or the docstrings. That's corrected in this
version. "text" still works, but will give a DeprecationWarning.
[bug=1947038]
* Fixed a crash when pickling a BeautifulSoup object that has no
tree builder. [bug=1934003]
* Fixed a crash when overriding multi_valued_attributes and using the
html5lib parser. [bug=1948488]
* Standardized the wording of the MarkupResemblesLocatorWarning
warnings to omit untrusted input and make the warnings less
judgmental about what you ought to be doing. [bug=1955450]
* Removed support for the iconv_codec library, which doesn't seem
to exist anymore and was never put up on PyPI. (The closest
replacement on PyPI, iconv_codecs, is GPL-licensed, so we can't use
it--it's also quite old.)
= 4.10.0 (20210907)
* This is the first release of Beautiful Soup to only support Python
3. I dropped Python 2 support to maintain support for newer versions
(58 and up) of setuptools. See:
https://github.com/pypa/setuptools/issues/2769 [bug=1942919]
* The behavior of methods like .get_text() and .strings now differs
depending on the type of tag. The change is visible with HTML tags
like <script>, <style>, and <template>. Starting in 4.9.0, methods
like get_text() returned no results on such tags, because the
contents of those tags are not considered 'text' within the document
as a whole.
But a user who calls script.get_text() is working from a different
definition of 'text' than a user who calls div.get_text()--otherwise
there would be no need to call script.get_text() at all. In 4.10.0,
the contents of (e.g.) a <script> tag are considered 'text' during a
get_text() call on the tag itself, but not considered 'text' during
a get_text() call on the tag's parent.
Because of this change, calling get_text() on each child of a tag
may now return a different result than calling get_text() on the tag
itself. That's because different tags now have different
understandings of what counts as 'text'. [bug=1906226] [bug=1868861]
* NavigableString and its subclasses now implement the get_text()
method, as well as the properties .strings and
.stripped_strings. These methods will either return the string
itself, or nothing, so the only reason to use this is when iterating
over a list of mixed Tag and NavigableString objects. [bug=1904309]
* The 'html5' formatter now treats attributes whose values are the
empty string as HTML boolean attributes. Previously (and in other
formatters), an attribute value must be set as None to be treated as
a boolean attribute. In a future release, I plan to also give this
behavior to the 'html' formatter. Patch by Isaac Muse. [bug=1915424]
* The 'replace_with()' method now takes a variable number of arguments,
and can be used to replace a single element with a sequence of elements.
Patch by Bill Chandos. [rev=605]
* Corrected output when the namespace prefix associated with a
namespaced attribute is the empty string, as opposed to
None. [bug=1915583]
* Performance improvement when processing tags that speeds up overall
tree construction by 2%. Patch by Morotti. [bug=1899358]
* Corrected the use of special string container classes in cases when a
single tag may contain strings with different containers; such as
the <template> tag, which may contain both TemplateString objects
and Comment objects. [bug=1913406]
* The html.parser tree builder can now handle named entities
found in the HTML5 spec in much the same way that the html5lib
tree builder does. Note that the lxml HTML tree builder doesn't handle
named entities this way. [bug=1924908]
* Added a second way to pass specify encodings to UnicodeDammit and
EncodingDetector, based on the order of precedence defined in the
HTML5 spec, starting at:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding
Encodings in 'known_definite_encodings' are tried first, then
byte-order-mark sniffing is run, then encodings in 'user_encodings'
are tried. The old argument, 'override_encodings', is now a
deprecated alias for 'known_definite_encodings'.
This changes the default behavior of the html.parser and lxml tree
builders, in a way that may slightly improve encoding
detection but will probably have no effect. [bug=1889014]
* Improve the warning issued when a directory name (as opposed to
the name of a regular file) is passed as markup into the BeautifulSoup
constructor. [bug=1913628]
= 4.9.3 (20201003)
This is the final release of Beautiful Soup to support Python
2. Beautiful Soup's official support for Python 2 ended on 01 January,
2021. In the Launchpad Git repository, the final revision to support
Python 2 was revision 70f546b1e689a70e2f103795efce6d261a3dadf7; it is
tagged as "python2".
* Implemented a significant performance optimization to the process of
searching the parse tree. Patch by Morotti. [bug=1898212]
= 4.9.2 (20200926)
* Fixed a bug that caused too many tags to be popped from the tag
stack during tree building, when encountering a closing tag that had
no matching opening tag. [bug=1880420]
* Fixed a bug that inconsistently moved elements over when passing
a Tag, rather than a list, into Tag.extend(). [bug=1885710]
* Specify the soupsieve dependency in a way that complies with
PEP 508. Patch by Mike Nerone. [bug=1893696]
* Change the signatures for BeautifulSoup.insert_before and insert_after
(which are not implemented) to match PageElement.insert_before and
insert_after, quieting warnings in some IDEs. [bug=1897120]
= 4.9.1 (20200517)
* Added a keyword argument 'on_duplicate_attribute' to the
BeautifulSoupHTMLParser constructor (used by the html.parser tree
builder) which lets you customize the handling of markup that
contains the same attribute more than once, as in:
<a href="url1" href="url2"> [bug=1878209]
* Added a distinct subclass, GuessedAtParserWarning, for the warning
issued when BeautifulSoup is instantiated without a parser being
specified. [bug=1873787]
* Added a distinct subclass, MarkupResemblesLocatorWarning, for the
warning issued when BeautifulSoup is instantiated with 'markup' that
actually seems to be a URL or the path to a file on
disk. [bug=1873787]
* The new NavigableString subclasses (Stylesheet, Script, and
TemplateString) can now be imported directly from the bs4 package.
* If you encode a document with a Python-specific encoding like
'unicode_escape', that encoding is no longer mentioned in the final
XML or HTML document. Instead, encoding information is omitted or
left blank. [bug=1874955]
* Fixed test failures when run against soupselect 2.0. Patch by Tomáš
Chvátal. [bug=1872279]
= 4.9.0 (20200405)
* Added PageElement.decomposed, a new property which lets you
check whether you've already called decompose() on a Tag or
NavigableString.
* Embedded CSS and Javascript is now stored in distinct Stylesheet and
Script tags, which are ignored by methods like get_text() since most
people don't consider this sort of content to be 'text'. This
feature is not supported by the html5lib treebuilder. [bug=1868861]
* Added a Russian translation by 'authoress' to the repository.
* Fixed an unhandled exception when formatting a Tag that had been
decomposed.[bug=1857767]
* Fixed a bug that happened when passing a Unicode filename containing
non-ASCII characters as markup into Beautiful Soup, on a system that
allows Unicode filenames. [bug=1866717]
* Added a performance optimization to PageElement.extract(). Patch by
Arthur Darcet.
= 4.8.2 (20191224)
* Added Python docstrings to all public methods of the most commonly
used classes.
* Added a Chinese translation by Deron Wang and a Brazilian Portuguese
translation by Cezar Peixeiro to the repository.
* Fixed two deprecation warnings. Patches by Colin
Watson and Nicholas Neumann. [bug=1847592] [bug=1855301]
* The html.parser tree builder now correctly handles DOCTYPEs that are
not uppercase. [bug=1848401]
* PageElement.select() now returns a ResultSet rather than a regular
list, making it consistent with methods like find_all().
= 4.8.1 (20191006)
* When the html.parser or html5lib parsers are in use, Beautiful Soup
will, by default, record the position in the original document where
each tag was encountered. This includes line number (Tag.sourceline)
and position within a line (Tag.sourcepos). Based on code by Chris
Mayo. [bug=1742921]
* When instantiating a BeautifulSoup object, it's now possible to
provide a dictionary ('element_classes') of the classes you'd like to be
instantiated instead of Tag, NavigableString, etc.
* Fixed the definition of the default XML namespace when using
lxml 4.4. Patch by Isaac Muse. [bug=1840141]
* Fixed a crash when pretty-printing tags that were not created
during initial parsing. [bug=1838903]
* Copying a Tag preserves information that was originally obtained from
the TreeBuilder used to build the original Tag. [bug=1838903]
* Raise an explanatory exception when the underlying parser
completely rejects the incoming markup. [bug=1838877]
* Avoid a crash when trying to detect the declared encoding of a
Unicode document. [bug=1838877]
* Avoid a crash when unpickling certain parse trees generated
using html5lib on Python 3. [bug=1843545]
= 4.8.0 (20190720, "One Small Soup")
This release focuses on making it easier to customize Beautiful Soup's
input mechanism (the TreeBuilder) and output mechanism (the Formatter).
* You can customize the TreeBuilder object by passing keyword
arguments into the BeautifulSoup constructor. Those keyword
arguments will be passed along into the TreeBuilder constructor.
The main reason to do this right now is to change how which
attributes are treated as multi-valued attributes (the way 'class'
is treated by default). You can do this with the
'multi_valued_attributes' argument. [bug=1832978]
* The role of Formatter objects has been greatly expanded. The Formatter
class now controls the following:
- The function to call to perform entity substitution. (This was
previously Formatter's only job.)
- Which tags should be treated as containing CDATA and have their
contents exempt from entity substitution.
- The order in which a tag's attributes are output. [bug=1812422]
- Whether or not to put a '/' inside a void element, e.g. '<br/>' vs '<br>'
All preexisting code should work as before.
* Added a new method to the API, Tag.smooth(), which consolidates
multiple adjacent NavigableString elements. [bug=1697296]
* &apos; (which is valid in XML, XHTML, and HTML 5, but not HTML 4) is always
recognized as a named entity and converted to a single quote. [bug=1818721]
= 4.7.1 (20190106)
* Fixed a significant performance problem introduced in 4.7.0. [bug=1810617]
* Fixed an incorrectly raised exception when inserting a tag before or
after an identical tag. [bug=1810692]
* Beautiful Soup will no longer try to keep track of namespaces that
are not defined with a prefix; this can confuse soupselect. [bug=1810680]
* Tried even harder to avoid the deprecation warning originally fixed in
4.6.1. [bug=1778909]
= 4.7.0 (20181231)
* Beautiful Soup's CSS Selector implementation has been replaced by a
dependency on Isaac Muse's SoupSieve project (the soupsieve package
on PyPI). The good news is that SoupSieve has a much more robust and
complete implementation of CSS selectors, resolving a large number
of longstanding issues. The bad news is that from this point onward,
SoupSieve must be installed if you want to use the select() method.
You don't have to change anything lf you installed Beautiful Soup
through pip (SoupSieve will be automatically installed when you
upgrade Beautiful Soup) or if you don't use CSS selectors from
within Beautiful Soup.
SoupSieve documentation: https://facelessuser.github.io/soupsieve/
* Added the PageElement.extend() method, which works like list.append().
[bug=1514970]
* PageElement.insert_before() and insert_after() now take a variable
number of arguments. [bug=1514970]
* Fix a number of problems with the tree builder that caused
trees that were superficially okay, but which fell apart when bits
were extracted. Patch by Isaac Muse. [bug=1782928,1809910]
* Fixed a problem with the tree builder in which elements that
contained no content (such as empty comments and all-whitespace
elements) were not being treated as part of the tree. Patch by Isaac
Muse. [bug=1798699]
* Fixed a problem with multi-valued attributes where the value
contained whitespace. Thanks to Jens Svalgaard for the
fix. [bug=1787453]
* Clarified ambiguous license statements in the source code. Beautiful
Soup is released under the MIT license, and has been since 4.4.0.
* This file has been renamed from NEWS.txt to CHANGELOG.
= 4.6.3 (20180812)
* Exactly the same as 4.6.2. Re-released to make the README file
render properly on PyPI.
= 4.6.2 (20180812)
* Fix an exception when a custom formatter was asked to format a void
element. [bug=1784408]
= 4.6.1 (20180728)
* Stop data loss when encountering an empty numeric entity, and
possibly in other cases. Thanks to tos.kamiya for the fix. [bug=1698503]
* Preserve XML namespaces introduced inside an XML document, not just
the ones introduced at the top level. [bug=1718787]
* Added a new formatter, "html5", which represents void elements
as "<element>" rather than "<element/>". [bug=1716272]
* Fixed a problem where the html.parser tree builder interpreted
a string like "&foo " as the character entity "&foo;" [bug=1728706]
* Correctly handle invalid HTML numeric character entities like &#147;
which reference code points that are not Unicode code points. Note
that this is only fixed when Beautiful Soup is used with the
html.parser parser -- html5lib already worked and I couldn't fix it
with lxml. [bug=1782933]
* Improved the warning given when no parser is specified. [bug=1780571]
* When markup contains duplicate elements, a select() call that
includes multiple match clauses will match all relevant
elements. [bug=1770596]
* Fixed code that was causing deprecation warnings in recent Python 3
versions. Includes a patch from Ville Skyttä. [bug=1778909] [bug=1689496]
* Fixed a Windows crash in diagnose() when checking whether a long
markup string is a filename. [bug=1737121]
* Stopped HTMLParser from raising an exception in very rare cases of
bad markup. [bug=1708831]
* Fixed a bug where find_all() was not working when asked to find a
tag with a namespaced name in an XML document that was parsed as
HTML. [bug=1723783]
* You can get finer control over formatting by subclassing
bs4.element.Formatter and passing a Formatter instance into (e.g.)
encode(). [bug=1716272]
* You can pass a dictionary of `attrs` into
BeautifulSoup.new_tag. This makes it possible to create a tag with
an attribute like 'name' that would otherwise be masked by another
argument of new_tag. [bug=1779276]
* Clarified the deprecation warning when accessing tag.fooTag, to cover
the possibility that you might really have been looking for a tag
called 'fooTag'.
= 4.6.0 (20170507) =
* Added the `Tag.get_attribute_list` method, which acts like `Tag.get` for
getting the value of an attribute, but which always returns a list,
whether or not the attribute is a multi-value attribute. [bug=1678589]
* It's now possible to use a tag's namespace prefix when searching,
e.g. soup.find('namespace:tag') [bug=1655332]
* Improved the handling of empty-element tags like <br> when using the
html.parser parser. [bug=1676935]
* HTML parsers treat all HTML4 and HTML5 empty element tags (aka void
element tags) correctly. [bug=1656909]
* Namespace prefix is preserved when an XML tag is copied. Thanks
to Vikas for a patch and test. [bug=1685172]
= 4.5.3 (20170102) =
* Fixed foster parenting when html5lib is the tree builder. Thanks to
Geoffrey Sneddon for a patch and test.
* Fixed yet another problem that caused the html5lib tree builder to
create a disconnected parse tree. [bug=1629825]
= 4.5.2 (20170102) =
* Apart from the version number, this release is identical to
4.5.3. Due to user error, it could not be completely uploaded to
PyPI. Use 4.5.3 instead.
= 4.5.1 (20160802) =
* Fixed a crash when passing Unicode markup that contained a
processing instruction into the lxml HTML parser on Python
3. [bug=1608048]
= 4.5.0 (20160719) =
* Beautiful Soup is no longer compatible with Python 2.6. This
actually happened a few releases ago, but it's now official.
* Beautiful Soup will now work with versions of html5lib greater than
0.99999999. [bug=1603299]
* If a search against each individual value of a multi-valued
attribute fails, the search will be run one final time against the
complete attribute value considered as a single string. That is, if
a tag has class="foo bar" and neither "foo" nor "bar" matches, but
"foo bar" does, the tag is now considered a match.
This happened in previous versions, but only when the value being
searched for was a string. Now it also works when that value is
a regular expression, a list of strings, etc. [bug=1476868]
* Fixed a bug that deranged the tree when a whitespace element was
reparented into a tag that contained an identical whitespace
element. [bug=1505351]
* Added support for CSS selector values that contain quoted spaces,
such as tag[style="display: foo"]. [bug=1540588]
* Corrected handling of XML processing instructions. [bug=1504393]
* Corrected an encoding error that happened when a BeautifulSoup
object was copied. [bug=1554439]
* The contents of <textarea> tags will no longer be modified when the
tree is prettified. [bug=1555829]
* When a BeautifulSoup object is pickled but its tree builder cannot
be pickled, its .builder attribute is set to None instead of being
destroyed. This avoids a performance problem once the object is
unpickled. [bug=1523629]
* Specify the file and line number when warning about a
BeautifulSoup object being instantiated without a parser being
specified. [bug=1574647]
* The `limit` argument to `select()` now works correctly, though it's
not implemented very efficiently. [bug=1520530]
* Fixed a Python 3 ByteWarning when a URL was passed in as though it
were markup. Thanks to James Salter for a patch and
test. [bug=1533762]
* We don't run the check for a filename passed in as markup if the
'filename' contains a less-than character; the less-than character
indicates it's most likely a very small document. [bug=1577864]
= 4.4.1 (20150928) =
* Fixed a bug that deranged the tree when part of it was
removed. Thanks to Eric Weiser for the patch and John Wiseman for a
test. [bug=1481520]
* Fixed a parse bug with the html5lib tree-builder. Thanks to Roel
Kramer for the patch. [bug=1483781]
* Improved the implementation of CSS selector grouping. Thanks to
Orangain for the patch. [bug=1484543]
* Fixed the test_detect_utf8 test so that it works when chardet is
installed. [bug=1471359]
* Corrected the output of Declaration objects. [bug=1477847]
= 4.4.0 (20150703) =
Especially important changes:
* Added a warning when you instantiate a BeautifulSoup object without
explicitly naming a parser. [bug=1398866]
* __repr__ now returns an ASCII bytestring in Python 2, and a Unicode
string in Python 3, instead of a UTF8-encoded bytestring in both
versions. In Python 3, __str__ now returns a Unicode string instead
of a bytestring. [bug=1420131]
* The `text` argument to the find_* methods is now called `string`,
which is more accurate. `text` still works, but `string` is the
argument described in the documentation. `text` may eventually
change its meaning, but not for a very long time. [bug=1366856]
* Changed the way soup objects work under copy.copy(). Copying a
NavigableString or a Tag will give you a new NavigableString that's
equal to the old one but not connected to the parse tree. Patch by
Martijn Peters. [bug=1307490]
* Started using a standard MIT license. [bug=1294662]
* Added a Chinese translation of the documentation by Delong .w.
New features:
* Introduced the select_one() method, which uses a CSS selector but
only returns the first match, instead of a list of
matches. [bug=1349367]
* You can now create a Tag object without specifying a
TreeBuilder. Patch by Martijn Pieters. [bug=1307471]
* You can now create a NavigableString or a subclass just by invoking
the constructor. [bug=1294315]
* Added an `exclude_encodings` argument to UnicodeDammit and to the
Beautiful Soup constructor, which lets you prohibit the detection of
an encoding that you know is wrong. [bug=1469408]
* The select() method now supports selector grouping. Patch by
Francisco Canas [bug=1191917]
Bug fixes:
* Fixed yet another problem that caused the html5lib tree builder to
create a disconnected parse tree. [bug=1237763]
* Force object_was_parsed() to keep the tree intact even when an element
from later in the document is moved into place. [bug=1430633]
* Fixed yet another bug that caused a disconnected tree when html5lib
copied an element from one part of the tree to another. [bug=1270611]
* Fixed a bug where Element.extract() could create an infinite loop in
the remaining tree.
* The select() method can now find tags whose names contain
dashes. Patch by Francisco Canas. [bug=1276211]
* The select() method can now find tags with attributes whose names
contain dashes. Patch by Marek Kapolka. [bug=1304007]
* Improved the lxml tree builder's handling of processing
instructions. [bug=1294645]
* Restored the helpful syntax error that happens when you try to
import the Python 2 edition of Beautiful Soup under Python
3. [bug=1213387]
* In Python 3.4 and above, set the new convert_charrefs argument to
the html.parser constructor to avoid a warning and future
failures. Patch by Stefano Revera. [bug=1375721]
* The warning when you pass in a filename or URL as markup will now be
displayed correctly even if the filename or URL is a Unicode
string. [bug=1268888]
* If the initial <html> tag contains a CDATA list attribute such as
'class', the html5lib tree builder will now turn its value into a
list, as it would with any other tag. [bug=1296481]
* Fixed an import error in Python 3.5 caused by the removal of the
HTMLParseError class. [bug=1420063]
* Improved docstring for encode_contents() and
decode_contents(). [bug=1441543]
* Fixed a crash in Unicode, Dammit's encoding detector when the name
of the encoding itself contained invalid bytes. [bug=1360913]
* Improved the exception raised when you call .unwrap() or
.replace_with() on an element that's not attached to a tree.
* Raise a NotImplementedError whenever an unsupported CSS pseudoclass
is used in select(). Previously some cases did not result in a
NotImplementedError.
* It's now possible to pickle a BeautifulSoup object no matter which
tree builder was used to create it. However, the only tree builder
that survives the pickling process is the HTMLParserTreeBuilder
('html.parser'). If you unpickle a BeautifulSoup object created with
some other tree builder, soup.builder will be None. [bug=1231545]
= 4.3.2 (20131002) =
* Fixed a bug in which short Unicode input was improperly encoded to
@@ -331,7 +1104,7 @@
* Renamed Tag.nsprefix to Tag.prefix, for consistency with
NamespacedAttribute.
* Fixed a test failure that occured on Python 3.x when chardet was
* Fixed a test failure that occurred on Python 3.x when chardet was
installed.
* Made prettify() return Unicode by default, so it will look nice on
@@ -365,7 +1138,7 @@
* Restored compatibility with Python 2.6.
* The install process no longer installs docs or auxillary text files.
* The install process no longer installs docs or auxiliary text files.
* It's now possible to deepcopy a BeautifulSoup object created with
Python's built-in HTML parser.
@@ -604,7 +1377,7 @@ Added an import that makes BS work in Python 2.3.
Fixed a UnicodeDecodeError when unpickling documents that contain
non-ASCII characters.
Fixed a TypeError that occured in some circumstances when a tag
Fixed a TypeError that occurred in some circumstances when a tag
contained no text.
Jump through hoops to avoid the use of chardet, which can be extremely

View File

@@ -1,6 +1,6 @@
Beautiful Soup is made available under the MIT license:
Copyright (c) 2004-2012 Leonard Richardson
Copyright (c) Leonard Richardson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@@ -20,7 +20,12 @@ Beautiful Soup is made available under the MIT license:
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, DAMMIT.
SOFTWARE.
Beautiful Soup incorporates code from the html5lib library, which is
also made available under the MIT license.
also made available under the MIT license. Copyright (c) James Graham
and other contributors
Beautiful Soup has an optional dependency on the soupsieve library,
which is also made available under the MIT license. Copyright (c)
Isaac Muse

View File

@@ -1,65 +1,99 @@
"""Beautiful Soup
Elixir and Tonic
"The Screen-Scraper's Friend"
"""Beautiful Soup Elixir and Tonic - "The Screen-Scraper's Friend".
http://www.crummy.com/software/BeautifulSoup/
Beautiful Soup uses a pluggable XML or HTML parser to parse a
(possibly invalid) document into a tree representation. Beautiful Soup
provides provides methods and Pythonic idioms that make it easy to
navigate, search, and modify the parse tree.
provides methods and Pythonic idioms that make it easy to navigate,
search, and modify the parse tree.
Beautiful Soup works with Python 2.6 and up. It works better if lxml
Beautiful Soup works with Python 3.6 and up. It works better if lxml
and/or html5lib is installed.
For more than you ever wanted to know about Beautiful Soup, see the
documentation:
http://www.crummy.com/software/BeautifulSoup/bs4/doc/
documentation: http://www.crummy.com/software/BeautifulSoup/bs4/doc/
"""
__author__ = "Leonard Richardson (leonardr@segfault.org)"
__version__ = "4.4.1"
__copyright__ = "Copyright (c) 2004-2015 Leonard Richardson"
__version__ = "4.12.3"
__copyright__ = "Copyright (c) 2004-2024 Leonard Richardson"
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
__all__ = ['BeautifulSoup']
from collections import Counter
import os
import re
import sys
import traceback
import warnings
from .builder import builder_registry, ParserRejectedMarkup
# The very first thing we do is give a useful error if someone is
# running this code under Python 2.
if sys.version_info.major < 3:
raise ImportError('You are trying to use a Python 3-specific version of Beautiful Soup under Python 2. This will not work. The final version of Beautiful Soup to support Python 2 was 4.9.3.')
from .builder import (
builder_registry,
ParserRejectedMarkup,
XMLParsedAsHTMLWarning,
HTMLParserTreeBuilder
)
from .dammit import UnicodeDammit
from .element import (
CData,
Comment,
CSS,
DEFAULT_OUTPUT_ENCODING,
Declaration,
Doctype,
NavigableString,
PageElement,
ProcessingInstruction,
PYTHON_SPECIFIC_ENCODINGS,
ResultSet,
Script,
Stylesheet,
SoupStrainer,
Tag,
TemplateString,
)
# The very first thing we do is give a useful error if someone is
# running this code under Python 3 without converting it.
'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'!='You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'
class BeautifulSoup(Tag):
# Define some custom warnings.
class GuessedAtParserWarning(UserWarning):
"""The warning issued when BeautifulSoup has to guess what parser to
use -- probably because no parser was specified in the constructor.
"""
This class defines the basic interface called by the tree builders.
These methods will be called by the parser:
reset()
feed(markup)
class MarkupResemblesLocatorWarning(UserWarning):
"""The warning issued when BeautifulSoup is given 'markup' that
actually looks like a resource locator -- a URL or a path to a file
on disk.
"""
class BeautifulSoup(Tag):
"""A data structure representing a parsed HTML or XML document.
Most of the methods you'll call on a BeautifulSoup object are inherited from
PageElement or Tag.
Internally, this class defines the basic interface called by the
tree builders when converting an HTML/XML document into a data
structure. The interface abstracts away the differences between
parsers. To write a new tree builder, you'll need to understand
these methods as a whole.
These methods will be called by the BeautifulSoup constructor:
* reset()
* feed(markup)
The tree builder may call these methods from its feed() implementation:
handle_starttag(name, attrs) # See note about return value
handle_endtag(name)
handle_data(data) # Appends to the current data node
endData(containerClass=NavigableString) # Ends the current data node
* handle_starttag(name, attrs) # See note about return value
* handle_endtag(name)
* handle_data(data) # Appends to the current data node
* endData(containerClass) # Ends the current data node
No matter how complicated the underlying parser is, you should be
able to build a tree using 'start tag' events, 'end tag' events,
@@ -69,24 +103,77 @@ class BeautifulSoup(Tag):
like HTML's <br> tag), call handle_starttag and then
handle_endtag.
"""
# Since BeautifulSoup subclasses Tag, it's possible to treat it as
# a Tag with a .name. This name makes it clear the BeautifulSoup
# object isn't a real markup tag.
ROOT_TAG_NAME = '[document]'
# If the end-user gives no indication which tree builder they
# want, look for one with these features.
DEFAULT_BUILDER_FEATURES = ['html', 'fast']
# A string containing all ASCII whitespace characters, used in
# endData() to detect data chunks that seem 'empty'.
ASCII_SPACES = '\x20\x0a\x09\x0c\x0d'
NO_PARSER_SPECIFIED_WARNING = "No parser was explicitly specified, so I'm using the best available %(markup_type)s parser for this system (\"%(parser)s\"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.\n\nTo get rid of this warning, change this:\n\n BeautifulSoup([your markup])\n\nto this:\n\n BeautifulSoup([your markup], \"%(parser)s\")\n"
NO_PARSER_SPECIFIED_WARNING = "No parser was explicitly specified, so I'm using the best available %(markup_type)s parser for this system (\"%(parser)s\"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.\n\nThe code that caused this warning is on line %(line_number)s of the file %(filename)s. To get rid of this warning, pass the additional argument 'features=\"%(parser)s\"' to the BeautifulSoup constructor.\n"
def __init__(self, markup="", features=None, builder=None,
parse_only=None, from_encoding=None, exclude_encodings=None,
**kwargs):
"""The Soup object is initialized as the 'root tag', and the
provided markup (which can be a string or a file-like object)
is fed into the underlying parser."""
element_classes=None, **kwargs):
"""Constructor.
:param markup: A string or a file-like object representing
markup to be parsed.
:param features: Desirable features of the parser to be
used. This may be the name of a specific parser ("lxml",
"lxml-xml", "html.parser", or "html5lib") or it may be the
type of markup to be used ("html", "html5", "xml"). It's
recommended that you name a specific parser, so that
Beautiful Soup gives you the same results across platforms
and virtual environments.
:param builder: A TreeBuilder subclass to instantiate (or
instance to use) instead of looking one up based on
`features`. You only need to use this if you've implemented a
custom TreeBuilder.
:param parse_only: A SoupStrainer. Only parts of the document
matching the SoupStrainer will be considered. This is useful
when parsing part of a document that would otherwise be too
large to fit into memory.
:param from_encoding: A string indicating the encoding of the
document to be parsed. Pass this in if Beautiful Soup is
guessing wrongly about the document's encoding.
:param exclude_encodings: A list of strings indicating
encodings known to be wrong. Pass this in if you don't know
the document's encoding but you know Beautiful Soup's guess is
wrong.
:param element_classes: A dictionary mapping BeautifulSoup
classes like Tag and NavigableString, to other classes you'd
like to be instantiated instead as the parse tree is
built. This is useful for subclassing Tag or NavigableString
to modify default behavior.
:param kwargs: For backwards compatibility purposes, the
constructor accepts certain keyword arguments used in
Beautiful Soup 3. None of these arguments do anything in
Beautiful Soup 4; they will result in a warning and then be
ignored.
Apart from this, any keyword arguments passed into the
BeautifulSoup constructor are propagated to the TreeBuilder
constructor. This makes it possible to configure a
TreeBuilder by passing in arguments, not just by saying which
one to use.
"""
if 'convertEntities' in kwargs:
del kwargs['convertEntities']
warnings.warn(
"BS4 does not respect the convertEntities argument to the "
"BeautifulSoup constructor. Entities are always converted "
@@ -125,10 +212,10 @@ class BeautifulSoup(Tag):
if old_name in kwargs:
warnings.warn(
'The "%s" argument to the BeautifulSoup constructor '
'has been renamed to "%s."' % (old_name, new_name))
value = kwargs[old_name]
del kwargs[old_name]
return value
'has been renamed to "%s."' % (old_name, new_name),
DeprecationWarning, stacklevel=3
)
return kwargs.pop(old_name)
return None
parse_only = parse_only or deprecated_argument(
@@ -137,13 +224,23 @@ class BeautifulSoup(Tag):
from_encoding = from_encoding or deprecated_argument(
"fromEncoding", "from_encoding")
if len(kwargs) > 0:
arg = list(kwargs.keys()).pop()
raise TypeError(
"__init__() got an unexpected keyword argument '%s'" % arg)
if from_encoding and isinstance(markup, str):
warnings.warn("You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.")
from_encoding = None
if builder is None:
original_features = features
self.element_classes = element_classes or dict()
# We need this information to track whether or not the builder
# was specified well enough that we can omit the 'you need to
# specify a parser' warning.
original_builder = builder
original_features = features
if isinstance(builder, type):
# A builder class was passed in; it needs to be instantiated.
builder_class = builder
builder = None
elif builder is None:
if isinstance(features, str):
features = [features]
if features is None or len(features) == 0:
@@ -154,85 +251,227 @@ class BeautifulSoup(Tag):
"Couldn't find a tree builder with the features you "
"requested: %s. Do you need to install a parser library?"
% ",".join(features))
builder = builder_class()
if not (original_features == builder.NAME or
original_features in builder.ALTERNATE_NAMES):
# At this point either we have a TreeBuilder instance in
# builder, or we have a builder_class that we can instantiate
# with the remaining **kwargs.
if builder is None:
builder = builder_class(**kwargs)
if not original_builder and not (
original_features == builder.NAME or
original_features in builder.ALTERNATE_NAMES
) and markup:
# The user did not tell us which TreeBuilder to use,
# and we had to guess. Issue a warning.
if builder.is_xml:
markup_type = "XML"
else:
markup_type = "HTML"
warnings.warn(self.NO_PARSER_SPECIFIED_WARNING % dict(
parser=builder.NAME,
markup_type=markup_type))
# This code adapted from warnings.py so that we get the same line
# of code as our warnings.warn() call gets, even if the answer is wrong
# (as it may be in a multithreading situation).
caller = None
try:
caller = sys._getframe(1)
except ValueError:
pass
if caller:
globals = caller.f_globals
line_number = caller.f_lineno
else:
globals = sys.__dict__
line_number= 1
filename = globals.get('__file__')
if filename:
fnl = filename.lower()
if fnl.endswith((".pyc", ".pyo")):
filename = filename[:-1]
if filename:
# If there is no filename at all, the user is most likely in a REPL,
# and the warning is not necessary.
values = dict(
filename=filename,
line_number=line_number,
parser=builder.NAME,
markup_type=markup_type
)
warnings.warn(
self.NO_PARSER_SPECIFIED_WARNING % values,
GuessedAtParserWarning, stacklevel=2
)
else:
if kwargs:
warnings.warn("Keyword arguments to the BeautifulSoup constructor will be ignored. These would normally be passed into the TreeBuilder constructor, but a TreeBuilder instance was passed in as `builder`.")
self.builder = builder
self.is_xml = builder.is_xml
self.builder.soup = self
self.known_xml = self.is_xml
self._namespaces = dict()
self.parse_only = parse_only
if hasattr(markup, 'read'): # It's a file-type object.
markup = markup.read()
elif len(markup) <= 256:
# Print out warnings for a couple beginner problems
elif len(markup) <= 256 and (
(isinstance(markup, bytes) and not b'<' in markup)
or (isinstance(markup, str) and not '<' in markup)
):
# Issue warnings for a couple beginner problems
# involving passing non-markup to Beautiful Soup.
# Beautiful Soup will still parse the input as markup,
# just in case that's what the user really wants.
if (isinstance(markup, str)
and not os.path.supports_unicode_filenames):
possible_filename = markup.encode("utf8")
else:
possible_filename = markup
is_file = False
try:
is_file = os.path.exists(possible_filename)
except Exception as e:
# This is almost certainly a problem involving
# characters not valid in filenames on this
# system. Just let it go.
pass
if is_file:
if isinstance(markup, str):
markup = markup.encode("utf8")
warnings.warn(
'"%s" looks like a filename, not markup. You should probably open this file and pass the filehandle into Beautiful Soup.' % markup)
if markup[:5] == "http:" or markup[:6] == "https:":
# TODO: This is ugly but I couldn't get it to work in
# Python 3 otherwise.
if ((isinstance(markup, bytes) and not b' ' in markup)
or (isinstance(markup, str) and not ' ' in markup)):
if isinstance(markup, str):
markup = markup.encode("utf8")
warnings.warn(
'"%s" looks like a URL. Beautiful Soup is not an HTTP client. You should probably use an HTTP client to get the document behind the URL, and feed that document to Beautiful Soup.' % markup)
# since that is sometimes the intended behavior.
if not self._markup_is_url(markup):
self._markup_resembles_filename(markup)
rejections = []
success = False
for (self.markup, self.original_encoding, self.declared_html_encoding,
self.contains_replacement_characters) in (
self.builder.prepare_markup(
markup, from_encoding, exclude_encodings=exclude_encodings)):
self.reset()
self.builder.initialize_soup(self)
try:
self._feed()
success = True
break
except ParserRejectedMarkup:
except ParserRejectedMarkup as e:
rejections.append(e)
pass
if not success:
other_exceptions = [str(e) for e in rejections]
raise ParserRejectedMarkup(
"The markup you provided was rejected by the parser. Trying a different parser or a different encoding may help.\n\nOriginal exception(s) from parser:\n " + "\n ".join(other_exceptions)
)
# Clear out the markup and remove the builder's circular
# reference to this object.
self.markup = None
self.builder.soup = None
def __copy__(self):
return type(self)(self.encode(), builder=self.builder)
def _clone(self):
"""Create a new BeautifulSoup object with the same TreeBuilder,
but not associated with any markup.
This is the first step of the deepcopy process.
"""
clone = type(self)("", None, self.builder)
# Keep track of the encoding of the original document,
# since we won't be parsing it again.
clone.original_encoding = self.original_encoding
return clone
def __getstate__(self):
# Frequently a tree builder can't be pickled.
d = dict(self.__dict__)
if 'builder' in d and not self.builder.picklable:
del d['builder']
if 'builder' in d and d['builder'] is not None and not self.builder.picklable:
d['builder'] = type(self.builder)
# Store the contents as a Unicode string.
d['contents'] = []
d['markup'] = self.decode()
# If _most_recent_element is present, it's a Tag object left
# over from initial parse. It might not be picklable and we
# don't need it.
if '_most_recent_element' in d:
del d['_most_recent_element']
return d
def __setstate__(self, state):
# If necessary, restore the TreeBuilder by looking it up.
self.__dict__ = state
if isinstance(self.builder, type):
self.builder = self.builder()
elif not self.builder:
# We don't know which builder was used to build this
# parse tree, so use a default we know is always available.
self.builder = HTMLParserTreeBuilder()
self.builder.soup = self
self.reset()
self._feed()
return state
@classmethod
def _decode_markup(cls, markup):
"""Ensure `markup` is bytes so it's safe to send into warnings.warn.
TODO: warnings.warn had this problem back in 2010 but it might not
anymore.
"""
if isinstance(markup, bytes):
decoded = markup.decode('utf-8', 'replace')
else:
decoded = markup
return decoded
@classmethod
def _markup_is_url(cls, markup):
"""Error-handling method to raise a warning if incoming markup looks
like a URL.
:param markup: A string.
:return: Whether or not the markup resembles a URL
closely enough to justify a warning.
"""
if isinstance(markup, bytes):
space = b' '
cant_start_with = (b"http:", b"https:")
elif isinstance(markup, str):
space = ' '
cant_start_with = ("http:", "https:")
else:
return False
if any(markup.startswith(prefix) for prefix in cant_start_with):
if not space in markup:
warnings.warn(
'The input looks more like a URL than markup. You may want to use'
' an HTTP client like requests to get the document behind'
' the URL, and feed that document to Beautiful Soup.',
MarkupResemblesLocatorWarning,
stacklevel=3
)
return True
return False
@classmethod
def _markup_resembles_filename(cls, markup):
"""Error-handling method to raise a warning if incoming markup
resembles a filename.
:param markup: A bytestring or string.
:return: Whether or not the markup resembles a filename
closely enough to justify a warning.
"""
path_characters = '/\\'
extensions = ['.html', '.htm', '.xml', '.xhtml', '.txt']
if isinstance(markup, bytes):
path_characters = path_characters.encode("utf8")
extensions = [x.encode('utf8') for x in extensions]
filelike = False
if any(x in markup for x in path_characters):
filelike = True
else:
lower = markup.lower()
if any(lower.endswith(ext) for ext in extensions):
filelike = True
if filelike:
warnings.warn(
'The input looks more like a filename than markup. You may'
' want to open this file and pass the filehandle into'
' Beautiful Soup.',
MarkupResemblesLocatorWarning, stacklevel=3
)
return True
return False
def _feed(self):
"""Internal method that parses previously set markup, creating a large
number of Tag and NavigableString objects.
"""
# Convert the document to Unicode.
self.builder.reset()
@@ -243,48 +482,111 @@ class BeautifulSoup(Tag):
self.popTag()
def reset(self):
"""Reset this object to a state as though it had never parsed any
markup.
"""
Tag.__init__(self, self, self.builder, self.ROOT_TAG_NAME)
self.hidden = 1
self.builder.reset()
self.current_data = []
self.currentTag = None
self.tagStack = []
self.open_tag_counter = Counter()
self.preserve_whitespace_tag_stack = []
self.string_container_stack = []
self._most_recent_element = None
self.pushTag(self)
def new_tag(self, name, namespace=None, nsprefix=None, **attrs):
"""Create a new tag associated with this soup."""
return Tag(None, self.builder, name, namespace, nsprefix, attrs)
def new_tag(self, name, namespace=None, nsprefix=None, attrs={},
sourceline=None, sourcepos=None, **kwattrs):
"""Create a new Tag associated with this BeautifulSoup object.
def new_string(self, s, subclass=NavigableString):
"""Create a new NavigableString associated with this soup."""
return subclass(s)
:param name: The name of the new Tag.
:param namespace: The URI of the new Tag's XML namespace, if any.
:param prefix: The prefix for the new Tag's XML namespace, if any.
:param attrs: A dictionary of this Tag's attribute values; can
be used instead of `kwattrs` for attributes like 'class'
that are reserved words in Python.
:param sourceline: The line number where this tag was
(purportedly) found in its source document.
:param sourcepos: The character position within `sourceline` where this
tag was (purportedly) found.
:param kwattrs: Keyword arguments for the new Tag's attribute values.
def insert_before(self, successor):
"""
kwattrs.update(attrs)
return self.element_classes.get(Tag, Tag)(
None, self.builder, name, namespace, nsprefix, kwattrs,
sourceline=sourceline, sourcepos=sourcepos
)
def string_container(self, base_class=None):
container = base_class or NavigableString
# There may be a general override of NavigableString.
container = self.element_classes.get(
container, container
)
# On top of that, we may be inside a tag that needs a special
# container class.
if self.string_container_stack and container is NavigableString:
container = self.builder.string_containers.get(
self.string_container_stack[-1].name, container
)
return container
def new_string(self, s, subclass=None):
"""Create a new NavigableString associated with this BeautifulSoup
object.
"""
container = self.string_container(subclass)
return container(s)
def insert_before(self, *args):
"""This method is part of the PageElement API, but `BeautifulSoup` doesn't implement
it because there is nothing before or after it in the parse tree.
"""
raise NotImplementedError("BeautifulSoup objects don't support insert_before().")
def insert_after(self, successor):
def insert_after(self, *args):
"""This method is part of the PageElement API, but `BeautifulSoup` doesn't implement
it because there is nothing before or after it in the parse tree.
"""
raise NotImplementedError("BeautifulSoup objects don't support insert_after().")
def popTag(self):
"""Internal method called by _popToTag when a tag is closed."""
tag = self.tagStack.pop()
if tag.name in self.open_tag_counter:
self.open_tag_counter[tag.name] -= 1
if self.preserve_whitespace_tag_stack and tag == self.preserve_whitespace_tag_stack[-1]:
self.preserve_whitespace_tag_stack.pop()
#print "Pop", tag.name
if self.string_container_stack and tag == self.string_container_stack[-1]:
self.string_container_stack.pop()
#print("Pop", tag.name)
if self.tagStack:
self.currentTag = self.tagStack[-1]
return self.currentTag
def pushTag(self, tag):
#print "Push", tag.name
if self.currentTag:
"""Internal method called by handle_starttag when a tag is opened."""
#print("Push", tag.name)
if self.currentTag is not None:
self.currentTag.contents.append(tag)
self.tagStack.append(tag)
self.currentTag = self.tagStack[-1]
if tag.name != self.ROOT_TAG_NAME:
self.open_tag_counter[tag.name] += 1
if tag.name in self.builder.preserve_whitespace_tags:
self.preserve_whitespace_tag_stack.append(tag)
if tag.name in self.builder.string_containers:
self.string_container_stack.append(tag)
def endData(self, containerClass=NavigableString):
def endData(self, containerClass=None):
"""Method called by the TreeBuilder when the end of a data segment
occurs.
"""
if self.current_data:
current_data = ''.join(self.current_data)
# If whitespace is not preserved, and this string contains
@@ -311,61 +613,93 @@ class BeautifulSoup(Tag):
not self.parse_only.search(current_data)):
return
containerClass = self.string_container(containerClass)
o = containerClass(current_data)
self.object_was_parsed(o)
def object_was_parsed(self, o, parent=None, most_recent_element=None):
"""Add an object to the parse tree."""
parent = parent or self.currentTag
previous_element = most_recent_element or self._most_recent_element
"""Method called by the TreeBuilder to integrate an object into the parse tree."""
if parent is None:
parent = self.currentTag
if most_recent_element is not None:
previous_element = most_recent_element
else:
previous_element = self._most_recent_element
next_element = previous_sibling = next_sibling = None
if isinstance(o, Tag):
next_element = o.next_element
next_sibling = o.next_sibling
previous_sibling = o.previous_sibling
if not previous_element:
if previous_element is None:
previous_element = o.previous_element
fix = parent.next_element is not None
o.setup(parent, previous_element, next_element, previous_sibling, next_sibling)
self._most_recent_element = o
parent.contents.append(o)
if parent.next_sibling:
# This node is being inserted into an element that has
# already been parsed. Deal with any dangling references.
index = parent.contents.index(o)
if index == 0:
previous_element = parent
previous_sibling = None
else:
previous_element = previous_sibling = parent.contents[index-1]
if index == len(parent.contents)-1:
next_element = parent.next_sibling
next_sibling = None
else:
next_element = next_sibling = parent.contents[index+1]
# Check if we are inserting into an already parsed node.
if fix:
self._linkage_fixer(parent)
o.previous_element = previous_element
if previous_element:
previous_element.next_element = o
o.next_element = next_element
if next_element:
next_element.previous_element = o
o.next_sibling = next_sibling
if next_sibling:
next_sibling.previous_sibling = o
o.previous_sibling = previous_sibling
if previous_sibling:
previous_sibling.next_sibling = o
def _linkage_fixer(self, el):
"""Make sure linkage of this fragment is sound."""
first = el.contents[0]
child = el.contents[-1]
descendant = child
if child is first and el.parent is not None:
# Parent should be linked to first child
el.next_element = child
# We are no longer linked to whatever this element is
prev_el = child.previous_element
if prev_el is not None and prev_el is not el:
prev_el.next_element = None
# First child should be linked to the parent, and no previous siblings.
child.previous_element = el
child.previous_sibling = None
# We have no sibling as we've been appended as the last.
child.next_sibling = None
# This index is a tag, dig deeper for a "last descendant"
if isinstance(child, Tag) and child.contents:
descendant = child._last_descendant(False)
# As the final step, link last descendant. It should be linked
# to the parent's next sibling (if found), else walk up the chain
# and find a parent with a sibling. It should have no next sibling.
descendant.next_element = None
descendant.next_sibling = None
target = el
while True:
if target is None:
break
elif target.next_sibling is not None:
descendant.next_element = target.next_sibling
target.next_sibling.previous_element = child
break
target = target.parent
def _popToTag(self, name, nsprefix=None, inclusivePop=True):
"""Pops the tag stack up to and including the most recent
instance of the given tag. If inclusivePop is false, pops the tag
stack up to but *not* including the most recent instqance of
the given tag."""
#print "Popping to %s" % name
instance of the given tag.
If there are no open tags with the given name, nothing will be
popped.
:param name: Pop up to the most recent tag with this name.
:param nsprefix: The namespace prefix that goes with `name`.
:param inclusivePop: It this is false, pops the tag stack up
to but *not* including the most recent instqance of the
given tag.
"""
#print("Popping to %s" % name)
if name == self.ROOT_TAG_NAME:
# The BeautifulSoup object itself can never be popped.
return
@@ -374,6 +708,8 @@ class BeautifulSoup(Tag):
stack_size = len(self.tagStack)
for i in range(stack_size - 1, 0, -1):
if not self.open_tag_counter.get(name):
break
t = self.tagStack[i]
if (name == t.name and nsprefix == t.prefix):
if inclusivePop:
@@ -383,16 +719,26 @@ class BeautifulSoup(Tag):
return most_recently_popped
def handle_starttag(self, name, namespace, nsprefix, attrs):
"""Push a start tag on to the stack.
def handle_starttag(self, name, namespace, nsprefix, attrs, sourceline=None,
sourcepos=None, namespaces=None):
"""Called by the tree builder when a new tag is encountered.
If this method returns None, the tag was rejected by the
SoupStrainer. You should proceed as if the tag had not occured
:param name: Name of the tag.
:param nsprefix: Namespace prefix for the tag.
:param attrs: A dictionary of attribute values.
:param sourceline: The line number where this tag was found in its
source document.
:param sourcepos: The character position within `sourceline` where this
tag was found.
:param namespaces: A dictionary of all namespace prefix mappings
currently in scope in the document.
If this method returns None, the tag was rejected by an active
SoupStrainer. You should proceed as if the tag had not occurred
in the document. For instance, if this was a self-closing tag,
don't call handle_endtag.
"""
# print "Start tag %s: %s" % (name, attrs)
# print("Start tag %s: %s" % (name, attrs))
self.endData()
if (self.parse_only and len(self.tagStack) <= 1
@@ -400,34 +746,54 @@ class BeautifulSoup(Tag):
or not self.parse_only.search_tag(name, attrs))):
return None
tag = Tag(self, self.builder, name, namespace, nsprefix, attrs,
self.currentTag, self._most_recent_element)
tag = self.element_classes.get(Tag, Tag)(
self, self.builder, name, namespace, nsprefix, attrs,
self.currentTag, self._most_recent_element,
sourceline=sourceline, sourcepos=sourcepos,
namespaces=namespaces
)
if tag is None:
return tag
if self._most_recent_element:
if self._most_recent_element is not None:
self._most_recent_element.next_element = tag
self._most_recent_element = tag
self.pushTag(tag)
return tag
def handle_endtag(self, name, nsprefix=None):
#print "End tag: " + name
"""Called by the tree builder when an ending tag is encountered.
:param name: Name of the tag.
:param nsprefix: Namespace prefix for the tag.
"""
#print("End tag: " + name)
self.endData()
self._popToTag(name, nsprefix)
def handle_data(self, data):
"""Called by the tree builder when a chunk of textual data is encountered."""
self.current_data.append(data)
def decode(self, pretty_print=False,
eventual_encoding=DEFAULT_OUTPUT_ENCODING,
formatter="minimal"):
"""Returns a string or Unicode representation of this document.
To get Unicode, pass None for encoding."""
formatter="minimal", iterator=None):
"""Returns a string or Unicode representation of the parse tree
as an HTML or XML document.
:param pretty_print: If this is True, indentation will be used to
make the document more readable.
:param eventual_encoding: The encoding of the final document.
If this is None, the document will be a Unicode string.
"""
if self.is_xml:
# Print the XML declaration
encoding_part = ''
if eventual_encoding is not None:
if eventual_encoding in PYTHON_SPECIFIC_ENCODINGS:
# This is a special Python encoding; it can't actually
# go into an XML document because it means nothing
# outside of Python.
eventual_encoding = None
if eventual_encoding != None:
encoding_part = ' encoding="%s"' % eventual_encoding
prefix = '<?xml version="1.0"%s?>\n' % encoding_part
else:
@@ -437,9 +803,9 @@ class BeautifulSoup(Tag):
else:
indent_level = 0
return prefix + super(BeautifulSoup, self).decode(
indent_level, eventual_encoding, formatter)
indent_level, eventual_encoding, formatter, iterator)
# Alias to make it easier to type import: 'from bs4 import _soup'
# Aliases to make it easier to get started quickly, e.g. 'from bs4 import _soup'
_s = BeautifulSoup
_soup = BeautifulSoup
@@ -450,19 +816,25 @@ class BeautifulStoneSoup(BeautifulSoup):
kwargs['features'] = 'xml'
warnings.warn(
'The BeautifulStoneSoup class is deprecated. Instead of using '
'it, pass features="xml" into the BeautifulSoup constructor.')
'it, pass features="xml" into the BeautifulSoup constructor.',
DeprecationWarning, stacklevel=2
)
super(BeautifulStoneSoup, self).__init__(*args, **kwargs)
class StopParsing(Exception):
"""Exception raised by a TreeBuilder if it's unable to continue parsing."""
pass
class FeatureNotFound(ValueError):
"""Exception raised by the BeautifulSoup constructor if no parser with the
requested features is found.
"""
pass
#By default, act as an HTML pretty-printer.
#If this file is run as a script, act as an HTML pretty-printer.
if __name__ == '__main__':
import sys
soup = BeautifulSoup(sys.stdin)
print(soup.prettify())
print((soup.prettify()))

View File

@@ -1,11 +1,21 @@
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
from collections import defaultdict
import itertools
import re
import warnings
import sys
from bs4.element import (
CharsetMetaAttributeValue,
ContentMetaAttributeValue,
whitespace_re
)
RubyParenthesisString,
RubyTextString,
Stylesheet,
Script,
TemplateString,
nonwhitespace_re
)
__all__ = [
'HTMLTreeBuilder',
@@ -22,20 +32,41 @@ XML = 'xml'
HTML = 'html'
HTML_5 = 'html5'
class XMLParsedAsHTMLWarning(UserWarning):
"""The warning issued when an HTML parser is used to parse
XML that is not XHTML.
"""
MESSAGE = """It looks like you're parsing an XML document using an HTML parser. If this really is an HTML document (maybe it's XHTML?), you can ignore or filter this warning. If it's XML, you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the lxml package installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor."""
class TreeBuilderRegistry(object):
"""A way of looking up TreeBuilder subclasses by their name or by desired
features.
"""
def __init__(self):
self.builders_for_feature = defaultdict(list)
self.builders = []
def register(self, treebuilder_class):
"""Register a treebuilder based on its advertised features."""
"""Register a treebuilder based on its advertised features.
:param treebuilder_class: A subclass of Treebuilder. its .features
attribute should list its features.
"""
for feature in treebuilder_class.features:
self.builders_for_feature[feature].insert(0, treebuilder_class)
self.builders.insert(0, treebuilder_class)
def lookup(self, *features):
"""Look up a TreeBuilder subclass with the desired features.
:param features: A list of features to look for. If none are
provided, the most recently registered TreeBuilder subclass
will be used.
:return: A TreeBuilder subclass, or None if there's no
registered subclass with all the requested features.
"""
if len(self.builders) == 0:
# There are no builders at all.
return None
@@ -78,7 +109,7 @@ class TreeBuilderRegistry(object):
builder_registry = TreeBuilderRegistry()
class TreeBuilder(object):
"""Turn a document into a Beautiful Soup object tree."""
"""Turn a textual document into a Beautiful Soup object tree."""
NAME = "[Unknown tree builder]"
ALTERNATE_NAMES = []
@@ -86,19 +117,89 @@ class TreeBuilder(object):
is_xml = False
picklable = False
preserve_whitespace_tags = set()
empty_element_tags = None # A tag will be considered an empty-element
# tag when and only when it has no contents.
# A value for these tag/attribute combinations is a space- or
# comma-separated list of CDATA, rather than a single CDATA.
cdata_list_attributes = {}
DEFAULT_CDATA_LIST_ATTRIBUTES = defaultdict(list)
# Whitespace should be preserved inside these tags.
DEFAULT_PRESERVE_WHITESPACE_TAGS = set()
def __init__(self):
# The textual contents of tags with these names should be
# instantiated with some class other than NavigableString.
DEFAULT_STRING_CONTAINERS = {}
USE_DEFAULT = object()
# Most parsers don't keep track of line numbers.
TRACKS_LINE_NUMBERS = False
def __init__(self, multi_valued_attributes=USE_DEFAULT,
preserve_whitespace_tags=USE_DEFAULT,
store_line_numbers=USE_DEFAULT,
string_containers=USE_DEFAULT,
):
"""Constructor.
:param multi_valued_attributes: If this is set to None, the
TreeBuilder will not turn any values for attributes like
'class' into lists. Setting this to a dictionary will
customize this behavior; look at DEFAULT_CDATA_LIST_ATTRIBUTES
for an example.
Internally, these are called "CDATA list attributes", but that
probably doesn't make sense to an end-user, so the argument name
is `multi_valued_attributes`.
:param preserve_whitespace_tags: A list of tags to treat
the way <pre> tags are treated in HTML. Tags in this list
are immune from pretty-printing; their contents will always be
output as-is.
:param string_containers: A dictionary mapping tag names to
the classes that should be instantiated to contain the textual
contents of those tags. The default is to use NavigableString
for every tag, no matter what the name. You can override the
default by changing DEFAULT_STRING_CONTAINERS.
:param store_line_numbers: If the parser keeps track of the
line numbers and positions of the original markup, that
information will, by default, be stored in each corresponding
`Tag` object. You can turn this off by passing
store_line_numbers=False. If the parser you're using doesn't
keep track of this information, then setting store_line_numbers=True
will do nothing.
"""
self.soup = None
if multi_valued_attributes is self.USE_DEFAULT:
multi_valued_attributes = self.DEFAULT_CDATA_LIST_ATTRIBUTES
self.cdata_list_attributes = multi_valued_attributes
if preserve_whitespace_tags is self.USE_DEFAULT:
preserve_whitespace_tags = self.DEFAULT_PRESERVE_WHITESPACE_TAGS
self.preserve_whitespace_tags = preserve_whitespace_tags
if store_line_numbers == self.USE_DEFAULT:
store_line_numbers = self.TRACKS_LINE_NUMBERS
self.store_line_numbers = store_line_numbers
if string_containers == self.USE_DEFAULT:
string_containers = self.DEFAULT_STRING_CONTAINERS
self.string_containers = string_containers
def initialize_soup(self, soup):
"""The BeautifulSoup object has been initialized and is now
being associated with the TreeBuilder.
:param soup: A BeautifulSoup object.
"""
self.soup = soup
def reset(self):
"""Do any work necessary to reset the underlying parser
for a new document.
By default, this does nothing.
"""
pass
def can_be_empty_element(self, tag_name):
@@ -110,24 +211,58 @@ class TreeBuilder(object):
For instance: an HTMLBuilder does not consider a <p> tag to be
an empty-element tag (it's not in
HTMLBuilder.empty_element_tags). This means an empty <p> tag
will be presented as "<p></p>", not "<p />".
will be presented as "<p></p>", not "<p/>" or "<p>".
The default implementation has no opinion about which tags are
empty-element tags, so a tag will be presented as an
empty-element tag if and only if it has no contents.
"<foo></foo>" will become "<foo />", and "<foo>bar</foo>" will
empty-element tag if and only if it has no children.
"<foo></foo>" will become "<foo/>", and "<foo>bar</foo>" will
be left alone.
:param tag_name: The name of a markup tag.
"""
if self.empty_element_tags is None:
return True
return tag_name in self.empty_element_tags
def feed(self, markup):
"""Run some incoming markup through some parsing process,
populating the `BeautifulSoup` object in self.soup.
This method is not implemented in TreeBuilder; it must be
implemented in subclasses.
:return: None.
"""
raise NotImplementedError()
def prepare_markup(self, markup, user_specified_encoding=None,
document_declared_encoding=None):
return markup, None, None, False
document_declared_encoding=None, exclude_encodings=None):
"""Run any preliminary steps necessary to make incoming markup
acceptable to the parser.
:param markup: Some markup -- probably a bytestring.
:param user_specified_encoding: The user asked to try this encoding.
:param document_declared_encoding: The markup itself claims to be
in this encoding. NOTE: This argument is not used by the
calling code and can probably be removed.
:param exclude_encodings: The user asked _not_ to try any of
these encodings.
:yield: A series of 4-tuples:
(markup, encoding, declared encoding,
has undergone character replacement)
Each 4-tuple represents a strategy for converting the
document to Unicode and parsing it. Each strategy will be tried
in turn.
By default, the only strategy is to parse the markup
as-is. See `LXMLTreeBuilderForXML` and
`HTMLParserTreeBuilder` for implementations that take into
account the quirks of particular parsers.
"""
yield markup, None, None, False
def test_fragment_to_document(self, fragment):
"""Wrap an HTML fragment to make it look like a document.
@@ -139,16 +274,36 @@ class TreeBuilder(object):
results against other HTML fragments.
This method should not be used outside of tests.
:param fragment: A string -- fragment of HTML.
:return: A string -- a full HTML document.
"""
return fragment
def set_up_substitutions(self, tag):
"""Set up any substitutions that will need to be performed on
a `Tag` when it's output as a string.
By default, this does nothing. See `HTMLTreeBuilder` for a
case where this is used.
:param tag: A `Tag`
:return: Whether or not a substitution was performed.
"""
return False
def _replace_cdata_list_attribute_values(self, tag_name, attrs):
"""Replaces class="foo bar" with class=["foo", "bar"]
"""When an attribute value is associated with a tag that can
have multiple values for that attribute, convert the string
value to a list of strings.
Modifies its input in place.
Basically, replaces class="foo bar" with class=["foo", "bar"]
NOTE: This method modifies its input in place.
:param tag_name: The name of a tag.
:param attrs: A dictionary containing the tag's attributes.
Any appropriate attribute values will be modified in place.
"""
if not attrs:
return attrs
@@ -163,7 +318,7 @@ class TreeBuilder(object):
# values. Split it into a list.
value = attrs[attr]
if isinstance(value, str):
values = whitespace_re.split(value)
values = nonwhitespace_re.findall(value)
else:
# html5lib sometimes calls setAttributes twice
# for the same tag when rearranging the parse
@@ -174,9 +329,13 @@ class TreeBuilder(object):
values = value
attrs[attr] = values
return attrs
class SAXTreeBuilder(TreeBuilder):
"""A Beautiful Soup treebuilder that listens for SAX events."""
"""A Beautiful Soup treebuilder that listens for SAX events.
This is not currently used for anything, but it demonstrates
how a simple TreeBuilder would work.
"""
def feed(self, markup):
raise NotImplementedError()
@@ -186,11 +345,11 @@ class SAXTreeBuilder(TreeBuilder):
def startElement(self, name, attrs):
attrs = dict((key[1], value) for key, value in list(attrs.items()))
#print "Start %s, %r" % (name, attrs)
#print("Start %s, %r" % (name, attrs))
self.soup.handle_starttag(name, attrs)
def endElement(self, name):
#print "End %s" % name
#print("End %s" % name)
self.soup.handle_endtag(name)
def startElementNS(self, nsTuple, nodeName, attrs):
@@ -227,10 +386,44 @@ class HTMLTreeBuilder(TreeBuilder):
Such as which tags are empty-element tags.
"""
preserve_whitespace_tags = set(['pre', 'textarea'])
empty_element_tags = set(['br' , 'hr', 'input', 'img', 'meta',
'spacer', 'link', 'frame', 'base'])
empty_element_tags = set([
# These are from HTML5.
'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'menuitem', 'meta', 'param', 'source', 'track', 'wbr',
# These are from earlier versions of HTML and are removed in HTML5.
'basefont', 'bgsound', 'command', 'frame', 'image', 'isindex', 'nextid', 'spacer'
])
# The HTML standard defines these as block-level elements. Beautiful
# Soup does not treat these elements differently from other elements,
# but it may do so eventually, and this information is available if
# you need to use it.
block_elements = set(["address", "article", "aside", "blockquote", "canvas", "dd", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hr", "li", "main", "nav", "noscript", "ol", "output", "p", "pre", "section", "table", "tfoot", "ul", "video"])
# These HTML tags need special treatment so they can be
# represented by a string class other than NavigableString.
#
# For some of these tags, it's because the HTML standard defines
# an unusual content model for them. I made this list by going
# through the HTML spec
# (https://html.spec.whatwg.org/#metadata-content) and looking for
# "metadata content" elements that can contain strings.
#
# The Ruby tags (<rt> and <rp>) are here despite being normal
# "phrasing content" tags, because the content they contain is
# qualitatively different from other text in the document, and it
# can be useful to be able to distinguish it.
#
# TODO: Arguably <noscript> could go here but it seems
# qualitatively different from the other tags.
DEFAULT_STRING_CONTAINERS = {
'rt' : RubyTextString,
'rp' : RubyParenthesisString,
'style': Stylesheet,
'script': Script,
'template': TemplateString,
}
# The HTML standard defines these attributes as containing a
# space-separated list of values, not a single value. That is,
# class="foo bar" means that the 'class' attribute has two values,
@@ -238,7 +431,7 @@ class HTMLTreeBuilder(TreeBuilder):
# encounter one of these attributes, we will parse its value into
# a list of values if possible. Upon output, the list will be
# converted back into a string.
cdata_list_attributes = {
DEFAULT_CDATA_LIST_ATTRIBUTES = {
"*" : ['class', 'accesskey', 'dropzone'],
"a" : ['rel', 'rev'],
"link" : ['rel', 'rev'],
@@ -255,7 +448,19 @@ class HTMLTreeBuilder(TreeBuilder):
"output" : ["for"],
}
DEFAULT_PRESERVE_WHITESPACE_TAGS = set(['pre', 'textarea'])
def set_up_substitutions(self, tag):
"""Replace the declared encoding in a <meta> tag with a placeholder,
to be substituted when the tag is output to a string.
An HTML document may come in to Beautiful Soup as one
encoding, but exit in a different encoding, and the <meta> tag
needs to be changed to reflect this.
:param tag: A `Tag`
:return: Whether or not a substitution was performed.
"""
# We are only interested in <meta> tags
if tag.name != 'meta':
return False
@@ -288,10 +493,107 @@ class HTMLTreeBuilder(TreeBuilder):
return (meta_encoding is not None)
class DetectsXMLParsedAsHTML(object):
"""A mixin class for any class (a TreeBuilder, or some class used by a
TreeBuilder) that's in a position to detect whether an XML
document is being incorrectly parsed as HTML, and issue an
appropriate warning.
This requires being able to observe an incoming processing
instruction that might be an XML declaration, and also able to
observe tags as they're opened. If you can't do that for a given
TreeBuilder, there's a less reliable implementation based on
examining the raw markup.
"""
# Regular expression for seeing if markup has an <html> tag.
LOOKS_LIKE_HTML = re.compile("<[^ +]html", re.I)
LOOKS_LIKE_HTML_B = re.compile(b"<[^ +]html", re.I)
XML_PREFIX = '<?xml'
XML_PREFIX_B = b'<?xml'
@classmethod
def warn_if_markup_looks_like_xml(cls, markup, stacklevel=3):
"""Perform a check on some markup to see if it looks like XML
that's not XHTML. If so, issue a warning.
This is much less reliable than doing the check while parsing,
but some of the tree builders can't do that.
:param stacklevel: The stacklevel of the code calling this
function.
:return: True if the markup looks like non-XHTML XML, False
otherwise.
"""
if isinstance(markup, bytes):
prefix = cls.XML_PREFIX_B
looks_like_html = cls.LOOKS_LIKE_HTML_B
else:
prefix = cls.XML_PREFIX
looks_like_html = cls.LOOKS_LIKE_HTML
if (markup is not None
and markup.startswith(prefix)
and not looks_like_html.search(markup[:500])
):
cls._warn(stacklevel=stacklevel+2)
return True
return False
@classmethod
def _warn(cls, stacklevel=5):
"""Issue a warning about XML being parsed as HTML."""
warnings.warn(
XMLParsedAsHTMLWarning.MESSAGE, XMLParsedAsHTMLWarning,
stacklevel=stacklevel
)
def _initialize_xml_detector(self):
"""Call this method before parsing a document."""
self._first_processing_instruction = None
self._root_tag = None
def _document_might_be_xml(self, processing_instruction):
"""Call this method when encountering an XML declaration, or a
"processing instruction" that might be an XML declaration.
"""
if (self._first_processing_instruction is not None
or self._root_tag is not None):
# The document has already started. Don't bother checking
# anymore.
return
self._first_processing_instruction = processing_instruction
# We won't know until we encounter the first tag whether or
# not this is actually a problem.
def _root_tag_encountered(self, name):
"""Call this when you encounter the document's root tag.
This is where we actually check whether an XML document is
being incorrectly parsed as HTML, and issue the warning.
"""
if self._root_tag is not None:
# This method was incorrectly called multiple times. Do
# nothing.
return
self._root_tag = name
if (name != 'html' and self._first_processing_instruction is not None
and self._first_processing_instruction.lower().startswith('xml ')):
# We encountered an XML declaration and then a tag other
# than 'html'. This is a reliable indicator that a
# non-XHTML document is being parsed as XML.
self._warn()
def register_treebuilders_from(module):
"""Copy TreeBuilders from the given module into this module."""
# I'm fairly sure this is not the best way to do this.
this_module = sys.modules['bs4.builder']
this_module = sys.modules[__name__]
for name in module.__all__:
obj = getattr(module, name)
@@ -302,12 +604,22 @@ def register_treebuilders_from(module):
this_module.builder_registry.register(obj)
class ParserRejectedMarkup(Exception):
pass
"""An Exception to be raised when the underlying parser simply
refuses to parse the given markup.
"""
def __init__(self, message_or_exception):
"""Explain why the parser rejected the given markup, either
with a textual explanation or another exception.
"""
if isinstance(message_or_exception, Exception):
e = message_or_exception
message_or_exception = "%s: %s" % (e.__class__.__name__, str(e))
super(ParserRejectedMarkup, self).__init__(message_or_exception)
# Builders are registered in reverse order of priority, so that custom
# builder registrations will take precedence. In general, we want lxml
# to take precedence over html5lib, because it's faster. And we only
# want to use HTMLParser as a last result.
# want to use HTMLParser as a last resort.
from . import _htmlparser
register_treebuilders_from(_htmlparser)
try:

View File

@@ -1,9 +1,14 @@
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
__all__ = [
'HTML5TreeBuilder',
]
import warnings
import re
from bs4.builder import (
DetectsXMLParsedAsHTML,
PERMISSIVE,
HTML,
HTML_5,
@@ -11,17 +16,13 @@ from bs4.builder import (
)
from bs4.element import (
NamespacedAttribute,
whitespace_re,
nonwhitespace_re,
)
import html5lib
try:
# html5lib >= 0.99999999/1.0b9
from html5lib.treebuilders import base as treebuildersbase
except ImportError:
# html5lib <= 0.9999999/1.0b8
from html5lib.treebuilders import _base as treebuildersbase
from html5lib.constants import namespaces
from html5lib.constants import (
namespaces,
prefixes,
)
from bs4.element import (
Comment,
Doctype,
@@ -29,13 +30,37 @@ from bs4.element import (
Tag,
)
try:
# Pre-0.99999999
from html5lib.treebuilders import _base as treebuilder_base
new_html5lib = False
except ImportError as e:
# 0.99999999 and up
from html5lib.treebuilders import base as treebuilder_base
new_html5lib = True
class HTML5TreeBuilder(HTMLTreeBuilder):
"""Use html5lib to build a tree."""
"""Use html5lib to build a tree.
Note that this TreeBuilder does not support some features common
to HTML TreeBuilders. Some of these features could theoretically
be implemented, but at the very least it's quite difficult,
because html5lib moves the parse tree around as it's being built.
* This TreeBuilder doesn't use different subclasses of NavigableString
based on the name of the tag in which the string was found.
* You can't use a SoupStrainer to parse only part of a document.
"""
NAME = "html5lib"
features = [NAME, PERMISSIVE, HTML_5, HTML]
# html5lib can tell us which line number and position in the
# original file is the source of an element.
TRACKS_LINE_NUMBERS = True
def prepare_markup(self, markup, user_specified_encoding,
document_declared_encoding=None, exclude_encodings=None):
# Store the user-specified encoding for use later on.
@@ -45,27 +70,56 @@ class HTML5TreeBuilder(HTMLTreeBuilder):
# ATM because the html5lib TreeBuilder doesn't use
# UnicodeDammit.
if exclude_encodings:
warnings.warn("You provided a value for exclude_encoding, but the html5lib tree builder doesn't support exclude_encoding.")
warnings.warn(
"You provided a value for exclude_encoding, but the html5lib tree builder doesn't support exclude_encoding.",
stacklevel=3
)
# html5lib only parses HTML, so if it's given XML that's worth
# noting.
DetectsXMLParsedAsHTML.warn_if_markup_looks_like_xml(
markup, stacklevel=3
)
yield (markup, None, None, False)
# These methods are defined by Beautiful Soup.
def feed(self, markup):
if self.soup.parse_only is not None:
warnings.warn("You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.")
warnings.warn(
"You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.",
stacklevel=4
)
parser = html5lib.HTMLParser(tree=self.create_treebuilder)
doc = parser.parse(markup, encoding=self.user_specified_encoding)
self.underlying_builder.parser = parser
extra_kwargs = dict()
if not isinstance(markup, str):
if new_html5lib:
extra_kwargs['override_encoding'] = self.user_specified_encoding
else:
extra_kwargs['encoding'] = self.user_specified_encoding
doc = parser.parse(markup, **extra_kwargs)
# Set the character encoding detected by the tokenizer.
if isinstance(markup, str):
# We need to special-case this because html5lib sets
# charEncoding to UTF-8 if it gets Unicode input.
doc.original_encoding = None
else:
doc.original_encoding = parser.tokenizer.stream.charEncoding[0]
original_encoding = parser.tokenizer.stream.charEncoding[0]
if not isinstance(original_encoding, str):
# In 0.99999999 and up, the encoding is an html5lib
# Encoding object. We want to use a string for compatibility
# with other tree builders.
original_encoding = original_encoding.name
doc.original_encoding = original_encoding
self.underlying_builder.parser = None
def create_treebuilder(self, namespaceHTMLElements):
self.underlying_builder = TreeBuilderForHtml5lib(
self.soup, namespaceHTMLElements)
namespaceHTMLElements, self.soup,
store_line_numbers=self.store_line_numbers
)
return self.underlying_builder
def test_fragment_to_document(self, fragment):
@@ -73,12 +127,30 @@ class HTML5TreeBuilder(HTMLTreeBuilder):
return '<html><head></head><body>%s</body></html>' % fragment
class TreeBuilderForHtml5lib(treebuildersbase.TreeBuilder):
def __init__(self, soup, namespaceHTMLElements):
self.soup = soup
class TreeBuilderForHtml5lib(treebuilder_base.TreeBuilder):
def __init__(self, namespaceHTMLElements, soup=None,
store_line_numbers=True, **kwargs):
if soup:
self.soup = soup
else:
from bs4 import BeautifulSoup
# TODO: Why is the parser 'html.parser' here? To avoid an
# infinite loop?
self.soup = BeautifulSoup(
"", "html.parser", store_line_numbers=store_line_numbers,
**kwargs
)
# TODO: What are **kwargs exactly? Should they be passed in
# here in addition to/instead of being passed to the BeautifulSoup
# constructor?
super(TreeBuilderForHtml5lib, self).__init__(namespaceHTMLElements)
# This will be set later to an html5lib.html5parser.HTMLParser
# object, which we can use to track the current line number.
self.parser = None
self.store_line_numbers = store_line_numbers
def documentClass(self):
self.soup.reset()
return Element(self.soup, self.soup, None)
@@ -92,14 +164,26 @@ class TreeBuilderForHtml5lib(treebuildersbase.TreeBuilder):
self.soup.object_was_parsed(doctype)
def elementClass(self, name, namespace):
tag = self.soup.new_tag(name, namespace)
kwargs = {}
if self.parser and self.store_line_numbers:
# This represents the point immediately after the end of the
# tag. We don't know when the tag started, but we do know
# where it ended -- the character just before this one.
sourceline, sourcepos = self.parser.tokenizer.stream.position()
kwargs['sourceline'] = sourceline
kwargs['sourcepos'] = sourcepos-1
tag = self.soup.new_tag(name, namespace, **kwargs)
return Element(tag, self.soup, namespace)
def commentClass(self, data):
return TextNode(Comment(data), self.soup)
def fragmentClass(self):
self.soup = BeautifulSoup("")
from bs4 import BeautifulSoup
# TODO: Why is the parser 'html.parser' here? To avoid an
# infinite loop?
self.soup = BeautifulSoup("", "html.parser")
self.soup.name = "[document_fragment]"
return Element(self.soup, self.soup, None)
@@ -111,7 +195,57 @@ class TreeBuilderForHtml5lib(treebuildersbase.TreeBuilder):
return self.soup
def getFragment(self):
return treebuildersbase.TreeBuilder.getFragment(self).element
return treebuilder_base.TreeBuilder.getFragment(self).element
def testSerializer(self, element):
from bs4 import BeautifulSoup
rv = []
doctype_re = re.compile(r'^(.*?)(?: PUBLIC "(.*?)"(?: "(.*?)")?| SYSTEM "(.*?)")?$')
def serializeElement(element, indent=0):
if isinstance(element, BeautifulSoup):
pass
if isinstance(element, Doctype):
m = doctype_re.match(element)
if m:
name = m.group(1)
if m.lastindex > 1:
publicId = m.group(2) or ""
systemId = m.group(3) or m.group(4) or ""
rv.append("""|%s<!DOCTYPE %s "%s" "%s">""" %
(' ' * indent, name, publicId, systemId))
else:
rv.append("|%s<!DOCTYPE %s>" % (' ' * indent, name))
else:
rv.append("|%s<!DOCTYPE >" % (' ' * indent,))
elif isinstance(element, Comment):
rv.append("|%s<!-- %s -->" % (' ' * indent, element))
elif isinstance(element, NavigableString):
rv.append("|%s\"%s\"" % (' ' * indent, element))
else:
if element.namespace:
name = "%s %s" % (prefixes[element.namespace],
element.name)
else:
name = element.name
rv.append("|%s<%s>" % (' ' * indent, name))
if element.attrs:
attributes = []
for name, value in list(element.attrs.items()):
if isinstance(name, NamespacedAttribute):
name = "%s %s" % (prefixes[name.namespace], name.name)
if isinstance(value, list):
value = " ".join(value)
attributes.append((name, value))
for name, value in sorted(attributes):
rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value))
indent += 2
for child in element.children:
serializeElement(child, indent)
serializeElement(element, 0)
return "\n".join(rv)
class AttrList(object):
def __init__(self, element):
@@ -122,14 +256,14 @@ class AttrList(object):
def __setitem__(self, name, value):
# If this attribute is a multi-valued attribute for this element,
# turn its value into a list.
list_attr = HTML5TreeBuilder.cdata_list_attributes
if (name in list_attr['*']
list_attr = self.element.cdata_list_attributes or {}
if (name in list_attr.get('*', [])
or (self.element.name in list_attr
and name in list_attr[self.element.name])):
and name in list_attr.get(self.element.name, []))):
# A node that is being cloned may have already undergone
# this procedure.
if not isinstance(value, list):
value = whitespace_re.split(value)
value = nonwhitespace_re.findall(value)
self.element[name] = value
def items(self):
return list(self.attrs.items())
@@ -143,9 +277,9 @@ class AttrList(object):
return name in list(self.attrs.keys())
class Element(treebuildersbase.Node):
class Element(treebuilder_base.Node):
def __init__(self, element, soup, namespace):
treebuildersbase.Node.__init__(self, element.name)
treebuilder_base.Node.__init__(self, element.name)
self.element = element
self.soup = soup
self.namespace = namespace
@@ -164,13 +298,15 @@ class Element(treebuildersbase.Node):
child = node
elif node.element.__class__ == NavigableString:
string_child = child = node.element
node.parent = self
else:
child = node.element
node.parent = self
if not isinstance(child, str) and child.parent is not None:
node.element.extract()
if (string_child and self.element.contents
if (string_child is not None and self.element.contents
and self.element.contents[-1].__class__ == NavigableString):
# We are appending a string onto another string.
# TODO This has O(n^2) performance, for input like
@@ -203,12 +339,12 @@ class Element(treebuildersbase.Node):
most_recent_element=most_recent_element)
def getAttributes(self):
if isinstance(self.element, Comment):
return {}
return AttrList(self.element)
def setAttributes(self, attributes):
if attributes is not None and len(attributes) > 0:
converted_attributes = []
for name, value in list(attributes.items()):
if isinstance(name, tuple):
@@ -230,11 +366,11 @@ class Element(treebuildersbase.Node):
attributes = property(getAttributes, setAttributes)
def insertText(self, data, insertBefore=None):
text = TextNode(self.soup.new_string(data), self.soup)
if insertBefore:
text = TextNode(self.soup.new_string(data), self.soup)
self.insertBefore(data, insertBefore)
self.insertBefore(text, insertBefore)
else:
self.appendChild(data)
self.appendChild(text)
def insertBefore(self, node, refNode):
index = self.element.index(refNode.element)
@@ -253,9 +389,10 @@ class Element(treebuildersbase.Node):
def reparentChildren(self, new_parent):
"""Move all of this tag's children into another tag."""
# print "MOVE", self.element.contents
# print "FROM", self.element
# print "TO", new_parent.element
# print("MOVE", self.element.contents)
# print("FROM", self.element)
# print("TO", new_parent.element)
element = self.element
new_parent_element = new_parent.element
# Determine what this tag's next_element will be once all the children
@@ -274,29 +411,35 @@ class Element(treebuildersbase.Node):
new_parents_last_descendant_next_element = new_parent_element.next_element
to_append = element.contents
append_after = new_parent_element.contents
if len(to_append) > 0:
# Set the first child's previous_element and previous_sibling
# to elements within the new parent
first_child = to_append[0]
if new_parents_last_descendant:
if new_parents_last_descendant is not None:
first_child.previous_element = new_parents_last_descendant
else:
first_child.previous_element = new_parent_element
first_child.previous_sibling = new_parents_last_child
if new_parents_last_descendant:
if new_parents_last_descendant is not None:
new_parents_last_descendant.next_element = first_child
else:
new_parent_element.next_element = first_child
if new_parents_last_child:
if new_parents_last_child is not None:
new_parents_last_child.next_sibling = first_child
# Fix the last child's next_element and next_sibling
last_child = to_append[-1]
last_child.next_element = new_parents_last_descendant_next_element
if new_parents_last_descendant_next_element:
new_parents_last_descendant_next_element.previous_element = last_child
last_child.next_sibling = None
# Find the very last element being moved. It is now the
# parent's last descendant. It has no .next_sibling and
# its .next_element is whatever the previous last
# descendant had.
last_childs_last_descendant = to_append[-1]._last_descendant(False, True)
last_childs_last_descendant.next_element = new_parents_last_descendant_next_element
if new_parents_last_descendant_next_element is not None:
# TODO: This code has no test coverage and I'm not sure
# how to get html5lib to go through this path, but it's
# just the other side of the previous line.
new_parents_last_descendant_next_element.previous_element = last_childs_last_descendant
last_childs_last_descendant.next_sibling = None
for child in to_append:
child.parent = new_parent_element
@@ -306,9 +449,9 @@ class Element(treebuildersbase.Node):
element.contents = []
element.next_element = final_next_element
# print "DONE WITH MOVE"
# print "FROM", self.element
# print "TO", new_parent_element
# print("DONE WITH MOVE")
# print("FROM", self.element)
# print("TO", new_parent_element)
def cloneNode(self):
tag = self.soup.new_tag(self.element.name, self.namespace)
@@ -321,7 +464,7 @@ class Element(treebuildersbase.Node):
return self.element.contents
def getNameTuple(self):
if self.namespace is None:
if self.namespace == None:
return namespaces["html"], self.name
else:
return self.namespace, self.name
@@ -330,7 +473,7 @@ class Element(treebuildersbase.Node):
class TextNode(Element):
def __init__(self, element, soup):
treebuildersbase.Node.__init__(self, None)
treebuilder_base.Node.__init__(self, None)
self.element = element
self.soup = soup

View File

@@ -1,35 +1,18 @@
# encoding: utf-8
"""Use the HTMLParser library to parse HTML files that aren't too bad."""
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
__all__ = [
'HTMLParserTreeBuilder',
]
from html.parser import HTMLParser
try:
from html.parser import HTMLParseError
except ImportError as e:
# HTMLParseError is removed in Python 3.5. Since it can never be
# thrown in 3.5, we can just define our own class as a placeholder.
class HTMLParseError(Exception):
pass
import sys
import warnings
# Starting in Python 3.2, the HTMLParser constructor takes a 'strict'
# argument, which we'd like to set to False. Unfortunately,
# http://bugs.python.org/issue13273 makes strict=True a better bet
# before Python 3.2.3.
#
# At the end of this file, we monkeypatch HTMLParser so that
# strict=True works well on Python 3.2.2.
major, minor, release = sys.version_info[:3]
CONSTRUCTOR_TAKES_STRICT = major == 3 and minor == 2 and release >= 3
CONSTRUCTOR_STRICT_IS_DEPRECATED = major == 3 and minor == 3
CONSTRUCTOR_TAKES_CONVERT_CHARREFS = major == 3 and minor >= 4
from bs4.element import (
CData,
Comment,
@@ -40,6 +23,8 @@ from bs4.element import (
from bs4.dammit import EntitySubstitution, UnicodeDammit
from bs4.builder import (
DetectsXMLParsedAsHTML,
ParserRejectedMarkup,
HTML,
HTMLTreeBuilder,
STRICT,
@@ -48,8 +33,84 @@ from bs4.builder import (
HTMLPARSER = 'html.parser'
class BeautifulSoupHTMLParser(HTMLParser):
def handle_starttag(self, name, attrs):
class BeautifulSoupHTMLParser(HTMLParser, DetectsXMLParsedAsHTML):
"""A subclass of the Python standard library's HTMLParser class, which
listens for HTMLParser events and translates them into calls
to Beautiful Soup's tree construction API.
"""
# Strategies for handling duplicate attributes
IGNORE = 'ignore'
REPLACE = 'replace'
def __init__(self, *args, **kwargs):
"""Constructor.
:param on_duplicate_attribute: A strategy for what to do if a
tag includes the same attribute more than once. Accepted
values are: REPLACE (replace earlier values with later
ones, the default), IGNORE (keep the earliest value
encountered), or a callable. A callable must take three
arguments: the dictionary of attributes already processed,
the name of the duplicate attribute, and the most recent value
encountered.
"""
self.on_duplicate_attribute = kwargs.pop(
'on_duplicate_attribute', self.REPLACE
)
HTMLParser.__init__(self, *args, **kwargs)
# Keep a list of empty-element tags that were encountered
# without an explicit closing tag. If we encounter a closing tag
# of this type, we'll associate it with one of those entries.
#
# This isn't a stack because we don't care about the
# order. It's a list of closing tags we've already handled and
# will ignore, assuming they ever show up.
self.already_closed_empty_element = []
self._initialize_xml_detector()
def error(self, message):
# NOTE: This method is required so long as Python 3.9 is
# supported. The corresponding code is removed from HTMLParser
# in 3.5, but not removed from ParserBase until 3.10.
# https://github.com/python/cpython/issues/76025
#
# The original implementation turned the error into a warning,
# but in every case I discovered, this made HTMLParser
# immediately crash with an error message that was less
# helpful than the warning. The new implementation makes it
# more clear that html.parser just can't parse this
# markup. The 3.10 implementation does the same, though it
# raises AssertionError rather than calling a method. (We
# catch this error and wrap it in a ParserRejectedMarkup.)
raise ParserRejectedMarkup(message)
def handle_startendtag(self, name, attrs):
"""Handle an incoming empty-element tag.
This is only called when the markup looks like <tag/>.
:param name: Name of the tag.
:param attrs: Dictionary of the tag's attributes.
"""
# is_startend() tells handle_starttag not to close the tag
# just because its name matches a known empty-element tag. We
# know that this is an empty-element tag and we want to call
# handle_endtag ourselves.
tag = self.handle_starttag(name, attrs, handle_empty_element=False)
self.handle_endtag(name)
def handle_starttag(self, name, attrs, handle_empty_element=True):
"""Handle an opening tag, e.g. '<tag>'
:param name: Name of the tag.
:param attrs: Dictionary of the tag's attributes.
:param handle_empty_element: True if this tag is known to be
an empty-element tag (i.e. there is not expected to be any
closing tag).
"""
# XXX namespace
attr_dict = {}
for key, value in attrs:
@@ -57,20 +118,78 @@ class BeautifulSoupHTMLParser(HTMLParser):
# for consistency with the other tree builders.
if value is None:
value = ''
attr_dict[key] = value
if key in attr_dict:
# A single attribute shows up multiple times in this
# tag. How to handle it depends on the
# on_duplicate_attribute setting.
on_dupe = self.on_duplicate_attribute
if on_dupe == self.IGNORE:
pass
elif on_dupe in (None, self.REPLACE):
attr_dict[key] = value
else:
on_dupe(attr_dict, key, value)
else:
attr_dict[key] = value
attrvalue = '""'
self.soup.handle_starttag(name, None, None, attr_dict)
#print("START", name)
sourceline, sourcepos = self.getpos()
tag = self.soup.handle_starttag(
name, None, None, attr_dict, sourceline=sourceline,
sourcepos=sourcepos
)
if tag and tag.is_empty_element and handle_empty_element:
# Unlike other parsers, html.parser doesn't send separate end tag
# events for empty-element tags. (It's handled in
# handle_startendtag, but only if the original markup looked like
# <tag/>.)
#
# So we need to call handle_endtag() ourselves. Since we
# know the start event is identical to the end event, we
# don't want handle_endtag() to cross off any previous end
# events for tags of this name.
self.handle_endtag(name, check_already_closed=False)
def handle_endtag(self, name):
self.soup.handle_endtag(name)
# But we might encounter an explicit closing tag for this tag
# later on. If so, we want to ignore it.
self.already_closed_empty_element.append(name)
if self._root_tag is None:
self._root_tag_encountered(name)
def handle_endtag(self, name, check_already_closed=True):
"""Handle a closing tag, e.g. '</tag>'
:param name: A tag name.
:param check_already_closed: True if this tag is expected to
be the closing portion of an empty-element tag,
e.g. '<tag></tag>'.
"""
#print("END", name)
if check_already_closed and name in self.already_closed_empty_element:
# This is a redundant end tag for an empty-element tag.
# We've already called handle_endtag() for it, so just
# check it off the list.
#print("ALREADY CLOSED", name)
self.already_closed_empty_element.remove(name)
else:
self.soup.handle_endtag(name)
def handle_data(self, data):
"""Handle some textual data that shows up between tags."""
self.soup.handle_data(data)
def handle_charref(self, name):
# XXX workaround for a bug in HTMLParser. Remove this once
# it's fixed in all supported versions.
# http://bugs.python.org/issue13633
"""Handle a numeric character reference by converting it to the
corresponding Unicode character and treating it as textual
data.
:param name: Character number, possibly in hexadecimal.
"""
# TODO: This was originally a workaround for a bug in
# HTMLParser. (http://bugs.python.org/issue13633) The bug has
# been fixed, but removing this code still makes some
# Beautiful Soup tests fail. This needs investigation.
if name.startswith('x'):
real_name = int(name.lstrip('x'), 16)
elif name.startswith('X'):
@@ -78,37 +197,71 @@ class BeautifulSoupHTMLParser(HTMLParser):
else:
real_name = int(name)
try:
data = chr(real_name)
except (ValueError, OverflowError) as e:
data = "\N{REPLACEMENT CHARACTER}"
data = None
if real_name < 256:
# HTML numeric entities are supposed to reference Unicode
# code points, but sometimes they reference code points in
# some other encoding (ahem, Windows-1252). E.g. &#147;
# instead of &#201; for LEFT DOUBLE QUOTATION MARK. This
# code tries to detect this situation and compensate.
for encoding in (self.soup.original_encoding, 'windows-1252'):
if not encoding:
continue
try:
data = bytearray([real_name]).decode(encoding)
except UnicodeDecodeError as e:
pass
if not data:
try:
data = chr(real_name)
except (ValueError, OverflowError) as e:
pass
data = data or "\N{REPLACEMENT CHARACTER}"
self.handle_data(data)
def handle_entityref(self, name):
"""Handle a named entity reference by converting it to the
corresponding Unicode character(s) and treating it as textual
data.
:param name: Name of the entity reference.
"""
character = EntitySubstitution.HTML_ENTITY_TO_CHARACTER.get(name)
if character is not None:
data = character
else:
data = "&%s;" % name
# If this were XML, it would be ambiguous whether "&foo"
# was an character entity reference with a missing
# semicolon or the literal string "&foo". Since this is
# HTML, we have a complete list of all character entity references,
# and this one wasn't found, so assume it's the literal string "&foo".
data = "&%s" % name
self.handle_data(data)
def handle_comment(self, data):
"""Handle an HTML comment.
:param data: The text of the comment.
"""
self.soup.endData()
self.soup.handle_data(data)
self.soup.endData(Comment)
def handle_decl(self, data):
"""Handle a DOCTYPE declaration.
:param data: The text of the declaration.
"""
self.soup.endData()
if data.startswith("DOCTYPE "):
data = data[len("DOCTYPE "):]
elif data == 'DOCTYPE':
# i.e. "<!DOCTYPE>"
data = ''
data = data[len("DOCTYPE "):]
self.soup.handle_data(data)
self.soup.endData(Doctype)
def unknown_decl(self, data):
"""Handle a declaration of unknown type -- probably a CDATA block.
:param data: The text of the declaration.
"""
if data.upper().startswith('CDATA['):
cls = CData
data = data[len('CDATA['):]
@@ -119,144 +272,116 @@ class BeautifulSoupHTMLParser(HTMLParser):
self.soup.endData(cls)
def handle_pi(self, data):
"""Handle a processing instruction.
:param data: The text of the instruction.
"""
self.soup.endData()
self.soup.handle_data(data)
self._document_might_be_xml(data)
self.soup.endData(ProcessingInstruction)
class HTMLParserTreeBuilder(HTMLTreeBuilder):
"""A Beautiful soup `TreeBuilder` that uses the `HTMLParser` parser,
found in the Python standard library.
"""
is_xml = False
picklable = True
NAME = HTMLPARSER
features = [NAME, HTML, STRICT]
def __init__(self, *args, **kwargs):
if CONSTRUCTOR_TAKES_STRICT and not CONSTRUCTOR_STRICT_IS_DEPRECATED:
kwargs['strict'] = False
if CONSTRUCTOR_TAKES_CONVERT_CHARREFS:
kwargs['convert_charrefs'] = False
self.parser_args = (args, kwargs)
# The html.parser knows which line number and position in the
# original file is the source of an element.
TRACKS_LINE_NUMBERS = True
def __init__(self, parser_args=None, parser_kwargs=None, **kwargs):
"""Constructor.
:param parser_args: Positional arguments to pass into
the BeautifulSoupHTMLParser constructor, once it's
invoked.
:param parser_kwargs: Keyword arguments to pass into
the BeautifulSoupHTMLParser constructor, once it's
invoked.
:param kwargs: Keyword arguments for the superclass constructor.
"""
# Some keyword arguments will be pulled out of kwargs and placed
# into parser_kwargs.
extra_parser_kwargs = dict()
for arg in ('on_duplicate_attribute',):
if arg in kwargs:
value = kwargs.pop(arg)
extra_parser_kwargs[arg] = value
super(HTMLParserTreeBuilder, self).__init__(**kwargs)
parser_args = parser_args or []
parser_kwargs = parser_kwargs or {}
parser_kwargs.update(extra_parser_kwargs)
parser_kwargs['convert_charrefs'] = False
self.parser_args = (parser_args, parser_kwargs)
def prepare_markup(self, markup, user_specified_encoding=None,
document_declared_encoding=None, exclude_encodings=None):
"""
:return: A 4-tuple (markup, original encoding, encoding
declared within markup, whether any characters had to be
replaced with REPLACEMENT CHARACTER).
"""Run any preliminary steps necessary to make incoming markup
acceptable to the parser.
:param markup: Some markup -- probably a bytestring.
:param user_specified_encoding: The user asked to try this encoding.
:param document_declared_encoding: The markup itself claims to be
in this encoding.
:param exclude_encodings: The user asked _not_ to try any of
these encodings.
:yield: A series of 4-tuples:
(markup, encoding, declared encoding,
has undergone character replacement)
Each 4-tuple represents a strategy for converting the
document to Unicode and parsing it. Each strategy will be tried
in turn.
"""
if isinstance(markup, str):
# Parse Unicode as-is.
yield (markup, None, None, False)
return
# Ask UnicodeDammit to sniff the most likely encoding.
# This was provided by the end-user; treat it as a known
# definite encoding per the algorithm laid out in the HTML5
# spec. (See the EncodingDetector class for details.)
known_definite_encodings = [user_specified_encoding]
# This was found in the document; treat it as a slightly lower-priority
# user encoding.
user_encodings = [document_declared_encoding]
try_encodings = [user_specified_encoding, document_declared_encoding]
dammit = UnicodeDammit(markup, try_encodings, is_html=True,
exclude_encodings=exclude_encodings)
dammit = UnicodeDammit(
markup,
known_definite_encodings=known_definite_encodings,
user_encodings=user_encodings,
is_html=True,
exclude_encodings=exclude_encodings
)
yield (dammit.markup, dammit.original_encoding,
dammit.declared_html_encoding,
dammit.contains_replacement_characters)
def feed(self, markup):
"""Run some incoming markup through some parsing process,
populating the `BeautifulSoup` object in self.soup.
"""
args, kwargs = self.parser_args
parser = BeautifulSoupHTMLParser(*args, **kwargs)
parser.soup = self.soup
try:
parser.feed(markup)
except HTMLParseError as e:
warnings.warn(RuntimeWarning(
"Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help."))
raise e
# Patch 3.2 versions of HTMLParser earlier than 3.2.3 to use some
# 3.2.3 code. This ensures they don't treat markup like <p></p> as a
# string.
#
# XXX This code can be removed once most Python 3 users are on 3.2.3.
if major == 3 and minor == 2 and not CONSTRUCTOR_TAKES_STRICT:
import re
attrfind_tolerant = re.compile(
r'\s*((?<=[\'"\s])[^\s/>][^\s/=>]*)(\s*=+\s*'
r'(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?')
HTMLParserTreeBuilder.attrfind_tolerant = attrfind_tolerant
locatestarttagend = re.compile(r"""
<[a-zA-Z][-.a-zA-Z0-9:_]* # tag name
(?:\s+ # whitespace before attribute name
(?:[a-zA-Z_][-.:a-zA-Z0-9_]* # attribute name
(?:\s*=\s* # value indicator
(?:'[^']*' # LITA-enclosed value
|\"[^\"]*\" # LIT-enclosed value
|[^'\">\s]+ # bare value
)
)?
)
)*
\s* # trailing whitespace
""", re.VERBOSE)
BeautifulSoupHTMLParser.locatestarttagend = locatestarttagend
from html.parser import tagfind, attrfind
def parse_starttag(self, i):
self.__starttag_text = None
endpos = self.check_for_whole_start_tag(i)
if endpos < 0:
return endpos
rawdata = self.rawdata
self.__starttag_text = rawdata[i:endpos]
# Now parse the data between i+1 and j into a tag and attrs
attrs = []
match = tagfind.match(rawdata, i+1)
assert match, 'unexpected call to parse_starttag()'
k = match.end()
self.lasttag = tag = rawdata[i+1:k].lower()
while k < endpos:
if self.strict:
m = attrfind.match(rawdata, k)
else:
m = attrfind_tolerant.match(rawdata, k)
if not m:
break
attrname, rest, attrvalue = m.group(1, 2, 3)
if not rest:
attrvalue = None
elif attrvalue[:1] == '\'' == attrvalue[-1:] or \
attrvalue[:1] == '"' == attrvalue[-1:]:
attrvalue = attrvalue[1:-1]
if attrvalue:
attrvalue = self.unescape(attrvalue)
attrs.append((attrname.lower(), attrvalue))
k = m.end()
end = rawdata[k:endpos].strip()
if end not in (">", "/>"):
lineno, offset = self.getpos()
if "\n" in self.__starttag_text:
lineno = lineno + self.__starttag_text.count("\n")
offset = len(self.__starttag_text) \
- self.__starttag_text.rfind("\n")
else:
offset = offset + len(self.__starttag_text)
if self.strict:
self.error("junk characters in start tag: %r"
% (rawdata[k:endpos][:20],))
self.handle_data(rawdata[i:endpos])
return endpos
if end.endswith('/>'):
# XHTML-style empty tag: <span attr="value" />
self.handle_startendtag(tag, attrs)
else:
self.handle_starttag(tag, attrs)
if tag in self.CDATA_CONTENT_ELEMENTS:
self.set_cdata_mode(tag)
return endpos
def set_cdata_mode(self, elem):
self.cdata_elem = elem.lower()
self.interesting = re.compile(r'</\s*%s\s*>' % self.cdata_elem, re.I)
BeautifulSoupHTMLParser.parse_starttag = parse_starttag
BeautifulSoupHTMLParser.set_cdata_mode = set_cdata_mode
CONSTRUCTOR_TAKES_STRICT = True
parser.close()
except AssertionError as e:
# html.parser raises AssertionError in rare cases to
# indicate a fatal problem with the markup, especially
# when there's an error in the doctype declaration.
raise ParserRejectedMarkup(e)
parser.already_closed_empty_element = []

View File

@@ -1,19 +1,28 @@
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
__all__ = [
'LXMLTreeBuilderForXML',
'LXMLTreeBuilder',
]
try:
from collections.abc import Callable # Python 3.6
except ImportError as e:
from collections import Callable
from io import BytesIO
from io import StringIO
import collections
from lxml import etree
from bs4.element import (
Comment,
Doctype,
NamespacedAttribute,
ProcessingInstruction,
XMLProcessingInstruction,
)
from bs4.builder import (
DetectsXMLParsedAsHTML,
FAST,
HTML,
HTMLTreeBuilder,
@@ -25,10 +34,15 @@ from bs4.dammit import EncodingDetector
LXML = 'lxml'
def _invert(d):
"Invert a dictionary."
return dict((v,k) for k, v in list(d.items()))
class LXMLTreeBuilderForXML(TreeBuilder):
DEFAULT_PARSER_CLASS = etree.XMLParser
is_xml = True
processing_instruction_class = XMLProcessingInstruction
NAME = "lxml-xml"
ALTERNATE_NAMES = ["xml"]
@@ -40,26 +54,79 @@ class LXMLTreeBuilderForXML(TreeBuilder):
# This namespace mapping is specified in the XML Namespace
# standard.
DEFAULT_NSMAPS = {'http://www.w3.org/XML/1998/namespace' : "xml"}
DEFAULT_NSMAPS = dict(xml='http://www.w3.org/XML/1998/namespace')
DEFAULT_NSMAPS_INVERTED = _invert(DEFAULT_NSMAPS)
# NOTE: If we parsed Element objects and looked at .sourceline,
# we'd be able to see the line numbers from the original document.
# But instead we build an XMLParser or HTMLParser object to serve
# as the target of parse messages, and those messages don't include
# line numbers.
# See: https://bugs.launchpad.net/lxml/+bug/1846906
def initialize_soup(self, soup):
"""Let the BeautifulSoup object know about the standard namespace
mapping.
:param soup: A `BeautifulSoup`.
"""
super(LXMLTreeBuilderForXML, self).initialize_soup(soup)
self._register_namespaces(self.DEFAULT_NSMAPS)
def _register_namespaces(self, mapping):
"""Let the BeautifulSoup object know about namespaces encountered
while parsing the document.
This might be useful later on when creating CSS selectors.
This will track (almost) all namespaces, even ones that were
only in scope for part of the document. If two namespaces have
the same prefix, only the first one encountered will be
tracked. Un-prefixed namespaces are not tracked.
:param mapping: A dictionary mapping namespace prefixes to URIs.
"""
for key, value in list(mapping.items()):
# This is 'if key' and not 'if key is not None' because we
# don't track un-prefixed namespaces. Soupselect will
# treat an un-prefixed namespace as the default, which
# causes confusion in some cases.
if key and key not in self.soup._namespaces:
# Let the BeautifulSoup object know about a new namespace.
# If there are multiple namespaces defined with the same
# prefix, the first one in the document takes precedence.
self.soup._namespaces[key] = value
def default_parser(self, encoding):
# This can either return a parser object or a class, which
# will be instantiated with default arguments.
"""Find the default parser for the given encoding.
:param encoding: A string.
:return: Either a parser object or a class, which
will be instantiated with default arguments.
"""
if self._default_parser is not None:
return self._default_parser
return etree.XMLParser(
target=self, strip_cdata=False, recover=True, encoding=encoding)
def parser_for(self, encoding):
"""Instantiate an appropriate parser for the given encoding.
:param encoding: A string.
:return: A parser object such as an `etree.XMLParser`.
"""
# Use the default parser.
parser = self.default_parser(encoding)
if isinstance(parser, collections.Callable):
if isinstance(parser, Callable):
# Instantiate the parser with default arguments
parser = parser(target=self, strip_cdata=False, encoding=encoding)
parser = parser(
target=self, strip_cdata=False, recover=True, encoding=encoding
)
return parser
def __init__(self, parser=None, empty_element_tags=None):
def __init__(self, parser=None, empty_element_tags=None, **kwargs):
# TODO: Issue a warning if parser is present but not a
# callable, since that means there's no way to create new
# parsers for different encodings.
@@ -67,8 +134,10 @@ class LXMLTreeBuilderForXML(TreeBuilder):
if empty_element_tags is not None:
self.empty_element_tags = set(empty_element_tags)
self.soup = None
self.nsmaps = [self.DEFAULT_NSMAPS]
self.nsmaps = [self.DEFAULT_NSMAPS_INVERTED]
self.active_namespace_prefixes = [dict(self.DEFAULT_NSMAPS)]
super(LXMLTreeBuilderForXML, self).__init__(**kwargs)
def _getNsTag(self, tag):
# Split the namespace URL out of a fully-qualified lxml tag
# name. Copied from lxml's src/lxml/sax.py.
@@ -80,16 +149,51 @@ class LXMLTreeBuilderForXML(TreeBuilder):
def prepare_markup(self, markup, user_specified_encoding=None,
exclude_encodings=None,
document_declared_encoding=None):
"""
:yield: A series of 4-tuples.
"""Run any preliminary steps necessary to make incoming markup
acceptable to the parser.
lxml really wants to get a bytestring and convert it to
Unicode itself. So instead of using UnicodeDammit to convert
the bytestring to Unicode using different encodings, this
implementation uses EncodingDetector to iterate over the
encodings, and tell lxml to try to parse the document as each
one in turn.
:param markup: Some markup -- hopefully a bytestring.
:param user_specified_encoding: The user asked to try this encoding.
:param document_declared_encoding: The markup itself claims to be
in this encoding.
:param exclude_encodings: The user asked _not_ to try any of
these encodings.
:yield: A series of 4-tuples:
(markup, encoding, declared encoding,
has undergone character replacement)
Each 4-tuple represents a strategy for parsing the document.
Each 4-tuple represents a strategy for converting the
document to Unicode and parsing it. Each strategy will be tried
in turn.
"""
is_html = not self.is_xml
if is_html:
self.processing_instruction_class = ProcessingInstruction
# We're in HTML mode, so if we're given XML, that's worth
# noting.
DetectsXMLParsedAsHTML.warn_if_markup_looks_like_xml(
markup, stacklevel=3
)
else:
self.processing_instruction_class = XMLProcessingInstruction
if isinstance(markup, str):
# We were given Unicode. Maybe lxml can parse Unicode on
# this system?
# TODO: This is a workaround for
# https://bugs.launchpad.net/lxml/+bug/1948551.
# We can remove it once the upstream issue is fixed.
if len(markup) > 0 and markup[0] == u'\N{BYTE ORDER MARK}':
markup = markup[1:]
yield markup, None, document_declared_encoding, False
if isinstance(markup, str):
@@ -98,14 +202,19 @@ class LXMLTreeBuilderForXML(TreeBuilder):
yield (markup.encode("utf8"), "utf8",
document_declared_encoding, False)
# Instead of using UnicodeDammit to convert the bytestring to
# Unicode using different encodings, use EncodingDetector to
# iterate over the encodings, and tell lxml to try to parse
# the document as each one in turn.
is_html = not self.is_xml
try_encodings = [user_specified_encoding, document_declared_encoding]
# This was provided by the end-user; treat it as a known
# definite encoding per the algorithm laid out in the HTML5
# spec. (See the EncodingDetector class for details.)
known_definite_encodings = [user_specified_encoding]
# This was found in the document; treat it as a slightly lower-priority
# user encoding.
user_encodings = [document_declared_encoding]
detector = EncodingDetector(
markup, try_encodings, is_html, exclude_encodings)
markup, known_definite_encodings=known_definite_encodings,
user_encodings=user_encodings, is_html=is_html,
exclude_encodings=exclude_encodings
)
for encoding in detector.encodings:
yield (detector.markup, encoding, document_declared_encoding, False)
@@ -128,25 +237,45 @@ class LXMLTreeBuilderForXML(TreeBuilder):
self.parser.feed(data)
self.parser.close()
except (UnicodeDecodeError, LookupError, etree.ParserError) as e:
raise ParserRejectedMarkup(str(e))
raise ParserRejectedMarkup(e)
def close(self):
self.nsmaps = [self.DEFAULT_NSMAPS]
self.nsmaps = [self.DEFAULT_NSMAPS_INVERTED]
def start(self, name, attrs, nsmap={}):
# Make sure attrs is a mutable dict--lxml may send an immutable dictproxy.
attrs = dict(attrs)
nsprefix = None
# Invert each namespace map as it comes in.
if len(self.nsmaps) > 1:
# There are no new namespaces for this tag, but
# non-default namespaces are in play, so we need a
# separate tag stack to know when they end.
self.nsmaps.append(None)
if len(nsmap) == 0 and len(self.nsmaps) > 1:
# There are no new namespaces for this tag, but
# non-default namespaces are in play, so we need a
# separate tag stack to know when they end.
self.nsmaps.append(None)
elif len(nsmap) > 0:
# A new namespace mapping has come into play.
inverted_nsmap = dict((value, key) for key, value in list(nsmap.items()))
self.nsmaps.append(inverted_nsmap)
# First, Let the BeautifulSoup object know about it.
self._register_namespaces(nsmap)
# Then, add it to our running list of inverted namespace
# mappings.
self.nsmaps.append(_invert(nsmap))
# The currently active namespace prefixes have
# changed. Calculate the new mapping so it can be stored
# with all Tag objects created while these prefixes are in
# scope.
current_mapping = dict(self.active_namespace_prefixes[-1])
current_mapping.update(nsmap)
# We should not track un-prefixed namespaces as we can only hold one
# and it will be recognized as the default namespace by soupsieve,
# which may be confusing in some situations.
if '' in current_mapping:
del current_mapping['']
self.active_namespace_prefixes.append(current_mapping)
# Also treat the namespace mapping as a set of attributes on the
# tag, so we can recreate it later.
attrs = attrs.copy()
@@ -171,8 +300,11 @@ class LXMLTreeBuilderForXML(TreeBuilder):
namespace, name = self._getNsTag(name)
nsprefix = self._prefix_for_namespace(namespace)
self.soup.handle_starttag(name, namespace, nsprefix, attrs)
self.soup.handle_starttag(
name, namespace, nsprefix, attrs,
namespaces=self.active_namespace_prefixes[-1]
)
def _prefix_for_namespace(self, namespace):
"""Find the currently active prefix for the given namespace."""
if namespace is None:
@@ -196,13 +328,20 @@ class LXMLTreeBuilderForXML(TreeBuilder):
if len(self.nsmaps) > 1:
# This tag, or one of its parents, introduced a namespace
# mapping, so pop it off the stack.
self.nsmaps.pop()
out_of_scope_nsmap = self.nsmaps.pop()
if out_of_scope_nsmap is not None:
# This tag introduced a namespace mapping which is no
# longer in scope. Recalculate the currently active
# namespace prefixes.
self.active_namespace_prefixes.pop()
def pi(self, target, data):
self.soup.endData()
self.soup.handle_data(target + ' ' + data)
self.soup.endData(ProcessingInstruction)
data = target + ' ' + data
self.soup.handle_data(data)
self.soup.endData(self.processing_instruction_class)
def data(self, content):
self.soup.handle_data(content)
@@ -229,6 +368,7 @@ class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML):
features = ALTERNATE_NAMES + [NAME, HTML, FAST, PERMISSIVE]
is_xml = False
processing_instruction_class = ProcessingInstruction
def default_parser(self, encoding):
return etree.HTMLParser
@@ -240,7 +380,7 @@ class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML):
self.parser.feed(markup)
self.parser.close()
except (UnicodeDecodeError, LookupError, etree.ParserError) as e:
raise ParserRejectedMarkup(str(e))
raise ParserRejectedMarkup(e)
def test_fragment_to_document(self, fragment):

274
bitbake/lib/bs4/css.py Normal file
View File

@@ -0,0 +1,274 @@
"""Integration code for CSS selectors using Soup Sieve (pypi: soupsieve)."""
# We don't use soupsieve
soupsieve = None
class CSS(object):
"""A proxy object against the soupsieve library, to simplify its
CSS selector API.
Acquire this object through the .css attribute on the
BeautifulSoup object, or on the Tag you want to use as the
starting point for a CSS selector.
The main advantage of doing this is that the tag to be selected
against doesn't need to be explicitly specified in the function
calls, since it's already scoped to a tag.
"""
def __init__(self, tag, api=soupsieve):
"""Constructor.
You don't need to instantiate this class yourself; instead,
access the .css attribute on the BeautifulSoup object, or on
the Tag you want to use as the starting point for your CSS
selector.
:param tag: All CSS selectors will use this as their starting
point.
:param api: A plug-in replacement for the soupsieve module,
designed mainly for use in tests.
"""
if api is None:
raise NotImplementedError(
"Cannot execute CSS selectors because the soupsieve package is not installed."
)
self.api = api
self.tag = tag
def escape(self, ident):
"""Escape a CSS identifier.
This is a simple wrapper around soupselect.escape(). See the
documentation for that function for more information.
"""
if soupsieve is None:
raise NotImplementedError(
"Cannot escape CSS identifiers because the soupsieve package is not installed."
)
return self.api.escape(ident)
def _ns(self, ns, select):
"""Normalize a dictionary of namespaces."""
if not isinstance(select, self.api.SoupSieve) and ns is None:
# If the selector is a precompiled pattern, it already has
# a namespace context compiled in, which cannot be
# replaced.
ns = self.tag._namespaces
return ns
def _rs(self, results):
"""Normalize a list of results to a Resultset.
A ResultSet is more consistent with the rest of Beautiful
Soup's API, and ResultSet.__getattr__ has a helpful error
message if you try to treat a list of results as a single
result (a common mistake).
"""
# Import here to avoid circular import
from bs4.element import ResultSet
return ResultSet(None, results)
def compile(self, select, namespaces=None, flags=0, **kwargs):
"""Pre-compile a selector and return the compiled object.
:param selector: A CSS selector.
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will use the prefixes it encountered while
parsing the document.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.compile() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.compile() method.
:return: A precompiled selector object.
:rtype: soupsieve.SoupSieve
"""
return self.api.compile(
select, self._ns(namespaces, select), flags, **kwargs
)
def select_one(self, select, namespaces=None, flags=0, **kwargs):
"""Perform a CSS selection operation on the current Tag and return the
first result.
This uses the Soup Sieve library. For more information, see
that library's documentation for the soupsieve.select_one()
method.
:param selector: A CSS selector.
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will use the prefixes it encountered while
parsing the document.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.select_one() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.select_one() method.
:return: A Tag, or None if the selector has no match.
:rtype: bs4.element.Tag
"""
return self.api.select_one(
select, self.tag, self._ns(namespaces, select), flags, **kwargs
)
def select(self, select, namespaces=None, limit=0, flags=0, **kwargs):
"""Perform a CSS selection operation on the current Tag.
This uses the Soup Sieve library. For more information, see
that library's documentation for the soupsieve.select()
method.
:param selector: A string containing a CSS selector.
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will pass in the prefixes it encountered while
parsing the document.
:param limit: After finding this number of results, stop looking.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.select() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.select() method.
:return: A ResultSet of Tag objects.
:rtype: bs4.element.ResultSet
"""
if limit is None:
limit = 0
return self._rs(
self.api.select(
select, self.tag, self._ns(namespaces, select), limit, flags,
**kwargs
)
)
def iselect(self, select, namespaces=None, limit=0, flags=0, **kwargs):
"""Perform a CSS selection operation on the current Tag.
This uses the Soup Sieve library. For more information, see
that library's documentation for the soupsieve.iselect()
method. It is the same as select(), but it returns a generator
instead of a list.
:param selector: A string containing a CSS selector.
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will pass in the prefixes it encountered while
parsing the document.
:param limit: After finding this number of results, stop looking.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.iselect() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.iselect() method.
:return: A generator
:rtype: types.GeneratorType
"""
return self.api.iselect(
select, self.tag, self._ns(namespaces, select), limit, flags, **kwargs
)
def closest(self, select, namespaces=None, flags=0, **kwargs):
"""Find the Tag closest to this one that matches the given selector.
This uses the Soup Sieve library. For more information, see
that library's documentation for the soupsieve.closest()
method.
:param selector: A string containing a CSS selector.
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will pass in the prefixes it encountered while
parsing the document.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.closest() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.closest() method.
:return: A Tag, or None if there is no match.
:rtype: bs4.Tag
"""
return self.api.closest(
select, self.tag, self._ns(namespaces, select), flags, **kwargs
)
def match(self, select, namespaces=None, flags=0, **kwargs):
"""Check whether this Tag matches the given CSS selector.
This uses the Soup Sieve library. For more information, see
that library's documentation for the soupsieve.match()
method.
:param: a CSS selector.
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will pass in the prefixes it encountered while
parsing the document.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.match() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.match() method.
:return: True if this Tag matches the selector; False otherwise.
:rtype: bool
"""
return self.api.match(
select, self.tag, self._ns(namespaces, select), flags, **kwargs
)
def filter(self, select, namespaces=None, flags=0, **kwargs):
"""Filter this Tag's direct children based on the given CSS selector.
This uses the Soup Sieve library. It works the same way as
passing this Tag into that library's soupsieve.filter()
method. More information, for more information see the
documentation for soupsieve.filter().
:param namespaces: A dictionary mapping namespace prefixes
used in the CSS selector to namespace URIs. By default,
Beautiful Soup will pass in the prefixes it encountered while
parsing the document.
:param flags: Flags to be passed into Soup Sieve's
soupsieve.filter() method.
:param kwargs: Keyword arguments to be passed into SoupSieve's
soupsieve.filter() method.
:return: A ResultSet of Tag objects.
:rtype: bs4.element.ResultSet
"""
return self._rs(
self.api.filter(
select, self.tag, self._ns(namespaces, select), flags, **kwargs
)
)

View File

@@ -6,61 +6,185 @@ necessary. It is heavily based on code from Mark Pilgrim's Universal
Feed Parser. It works best on XML and HTML, but it does not rewrite the
XML or HTML to reflect a new encoding; that's the tree builder's job.
"""
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
import codecs
from html.entities import codepoint2name
from collections import defaultdict
import codecs
import re
import logging
import string
# Import a library to autodetect character encodings.
chardet_type = None
# Import a library to autodetect character encodings. We'll support
# any of a number of libraries that all support the same API:
#
# * cchardet
# * chardet
# * charset-normalizer
chardet_module = None
try:
# First try the fast C implementation.
# PyPI package: cchardet
import cchardet
def chardet_dammit(s):
return cchardet.detect(s)['encoding']
import cchardet as chardet_module
except ImportError:
try:
# Fall back to the pure Python implementation
# Debian package: python-chardet
# PyPI package: chardet
import chardet
def chardet_dammit(s):
return chardet.detect(s)['encoding']
#import chardet.constants
#chardet.constants._debug = 1
import chardet as chardet_module
except ImportError:
# No chardet available.
def chardet_dammit(s):
return None
try:
# PyPI package: charset-normalizer
import charset_normalizer as chardet_module
except ImportError:
# No chardet available.
chardet_module = None
xml_encoding_re = re.compile(
r'^<\?.*encoding=[\'"](.*?)[\'"].*\?>'.encode(), re.I)
html_meta_re = re.compile(
r'<\s*meta[^>]+charset\s*=\s*["\']?([^>]*?)[ /;\'">]'.encode(), re.I)
if chardet_module:
def chardet_dammit(s):
if isinstance(s, str):
return None
return chardet_module.detect(s)['encoding']
else:
def chardet_dammit(s):
return None
# Build bytestring and Unicode versions of regular expressions for finding
# a declared encoding inside an XML or HTML document.
xml_encoding = '^\\s*<\\?.*encoding=[\'"](.*?)[\'"].*\\?>'
html_meta = '<\\s*meta[^>]+charset\\s*=\\s*["\']?([^>]*?)[ /;\'">]'
encoding_res = dict()
encoding_res[bytes] = {
'html' : re.compile(html_meta.encode("ascii"), re.I),
'xml' : re.compile(xml_encoding.encode("ascii"), re.I),
}
encoding_res[str] = {
'html' : re.compile(html_meta, re.I),
'xml' : re.compile(xml_encoding, re.I)
}
from html.entities import html5
class EntitySubstitution(object):
"""Substitute XML or HTML entities for the corresponding characters."""
"""The ability to substitute XML or HTML entities for certain characters."""
def _populate_class_variables():
lookup = {}
reverse_lookup = {}
characters_for_re = []
"""Initialize variables used by this class to manage the plethora of
HTML5 named entities.
This function returns a 3-tuple containing two dictionaries
and a regular expression:
unicode_to_name - A mapping of Unicode strings like "" to
entity names like "angmsdaa". When a single Unicode string has
multiple entity names, we try to choose the most commonly-used
name.
name_to_unicode: A mapping of entity names like "angmsdaa" to
Unicode strings like "".
named_entity_re: A regular expression matching (almost) any
Unicode string that corresponds to an HTML5 named entity.
"""
unicode_to_name = {}
name_to_unicode = {}
short_entities = set()
long_entities_by_first_character = defaultdict(set)
for name_with_semicolon, character in sorted(html5.items()):
# "It is intentional, for legacy compatibility, that many
# code points have multiple character reference names. For
# example, some appear both with and without the trailing
# semicolon, or with different capitalizations."
# - https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references
#
# The parsers are in charge of handling (or not) character
# references with no trailing semicolon, so we remove the
# semicolon whenever it appears.
if name_with_semicolon.endswith(';'):
name = name_with_semicolon[:-1]
else:
name = name_with_semicolon
# When parsing HTML, we want to recognize any known named
# entity and convert it to a sequence of Unicode
# characters.
if name not in name_to_unicode:
name_to_unicode[name] = character
# When _generating_ HTML, we want to recognize special
# character sequences that _could_ be converted to named
# entities.
unicode_to_name[character] = name
# We also need to build a regular expression that lets us
# _find_ those characters in output strings so we can
# replace them.
#
# This is tricky, for two reasons.
if (len(character) == 1 and ord(character) < 128
and character not in '<>&'):
# First, it would be annoying to turn single ASCII
# characters like | into named entities like
# &verbar;. The exceptions are <>&, which we _must_
# turn into named entities to produce valid HTML.
continue
if len(character) > 1 and all(ord(x) < 128 for x in character):
# We also do not want to turn _combinations_ of ASCII
# characters like 'fj' into named entities like '&fjlig;',
# though that's more debateable.
continue
# Second, some named entities have a Unicode value that's
# a subset of the Unicode value for some _other_ named
# entity. As an example, \u2267' is &GreaterFullEqual;,
# but '\u2267\u0338' is &NotGreaterFullEqual;. Our regular
# expression needs to match the first two characters of
# "\u2267\u0338foo", but only the first character of
# "\u2267foo".
#
# In this step, we build two sets of characters that
# _eventually_ need to go into the regular expression. But
# we won't know exactly what the regular expression needs
# to look like until we've gone through the entire list of
# named entities.
if len(character) == 1:
short_entities.add(character)
else:
long_entities_by_first_character[character[0]].add(character)
# Now that we've been through the entire list of entities, we
# can create a regular expression that matches any of them.
particles = set()
for short in short_entities:
long_versions = long_entities_by_first_character[short]
if not long_versions:
particles.add(short)
else:
ignore = "".join([x[1] for x in long_versions])
# This finds, e.g. \u2267 but only if it is _not_
# followed by \u0338.
particles.add("%s(?![%s])" % (short, ignore))
for long_entities in list(long_entities_by_first_character.values()):
for long_entity in long_entities:
particles.add(long_entity)
re_definition = "(%s)" % "|".join(particles)
# If an entity shows up in both html5 and codepoint2name, it's
# likely that HTML5 gives it several different names, such as
# 'rsquo' and 'rsquor'. When converting Unicode characters to
# named entities, the codepoint2name name should take
# precedence where possible, since that's the more easily
# recognizable one.
for codepoint, name in list(codepoint2name.items()):
character = chr(codepoint)
if codepoint != 34:
# There's no point in turning the quotation mark into
# &quot;, unless it happens within an attribute value, which
# is handled elsewhere.
characters_for_re.append(character)
lookup[character] = name
# But we do want to turn &quot; into the quotation mark.
reverse_lookup[name] = character
re_definition = "[%s]" % "".join(characters_for_re)
return lookup, reverse_lookup, re.compile(re_definition)
unicode_to_name[character] = name
return unicode_to_name, name_to_unicode, re.compile(re_definition)
(CHARACTER_TO_HTML_ENTITY, HTML_ENTITY_TO_CHARACTER,
CHARACTER_TO_HTML_ENTITY_RE) = _populate_class_variables()
@@ -72,21 +196,23 @@ class EntitySubstitution(object):
">": "gt",
}
BARE_AMPERSAND_OR_BRACKET = re.compile(r"([<>]|"
r"&(?!#\d+;|#x[0-9a-fA-F]+;|\w+;)"
r")")
BARE_AMPERSAND_OR_BRACKET = re.compile("([<>]|"
"&(?!#\\d+;|#x[0-9a-fA-F]+;|\\w+;)"
")")
AMPERSAND_OR_BRACKET = re.compile(r"([<>&])")
AMPERSAND_OR_BRACKET = re.compile("([<>&])")
@classmethod
def _substitute_html_entity(cls, matchobj):
"""Used with a regular expression to substitute the
appropriate HTML entity for a special character string."""
entity = cls.CHARACTER_TO_HTML_ENTITY.get(matchobj.group(0))
return "&%s;" % entity
@classmethod
def _substitute_xml_entity(cls, matchobj):
"""Used with a regular expression to substitute the
appropriate XML entity for an XML special character."""
appropriate XML entity for a special character string."""
entity = cls.CHARACTER_TO_XML_ENTITY[matchobj.group(0)]
return "&%s;" % entity
@@ -181,6 +307,8 @@ class EntitySubstitution(object):
containg a LATIN SMALL LETTER E WITH ACUTE, but replacing that
character with "&eacute;" will make it more readable to some
people.
:param s: A Unicode string.
"""
return cls.CHARACTER_TO_HTML_ENTITY_RE.sub(
cls._substitute_html_entity, s)
@@ -192,23 +320,65 @@ class EncodingDetector:
Order of precedence:
1. Encodings you specifically tell EncodingDetector to try first
(the override_encodings argument to the constructor).
(the known_definite_encodings argument to the constructor).
2. An encoding declared within the bytestring itself, either in an
2. An encoding determined by sniffing the document's byte-order mark.
3. Encodings you specifically tell EncodingDetector to try if
byte-order mark sniffing fails (the user_encodings argument to the
constructor).
4. An encoding declared within the bytestring itself, either in an
XML declaration (if the bytestring is to be interpreted as an XML
document), or in a <meta> tag (if the bytestring is to be
interpreted as an HTML document.)
3. An encoding detected through textual analysis by chardet,
5. An encoding detected through textual analysis by chardet,
cchardet, or a similar external library.
4. UTF-8.
5. Windows-1252.
"""
def __init__(self, markup, override_encodings=None, is_html=False,
exclude_encodings=None):
self.override_encodings = override_encodings or []
def __init__(self, markup, known_definite_encodings=None,
is_html=False, exclude_encodings=None,
user_encodings=None, override_encodings=None):
"""Constructor.
:param markup: Some markup in an unknown encoding.
:param known_definite_encodings: When determining the encoding
of `markup`, these encodings will be tried first, in
order. In HTML terms, this corresponds to the "known
definite encoding" step defined here:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding
:param user_encodings: These encodings will be tried after the
`known_definite_encodings` have been tried and failed, and
after an attempt to sniff the encoding by looking at a
byte order mark has failed. In HTML terms, this
corresponds to the step "user has explicitly instructed
the user agent to override the document's character
encoding", defined here:
https://html.spec.whatwg.org/multipage/parsing.html#determining-the-character-encoding
:param override_encodings: A deprecated alias for
known_definite_encodings. Any encodings here will be tried
immediately after the encodings in
known_definite_encodings.
:param is_html: If True, this markup is considered to be
HTML. Otherwise it's assumed to be XML.
:param exclude_encodings: These encodings will not be tried,
even if they otherwise would be.
"""
self.known_definite_encodings = list(known_definite_encodings or [])
if override_encodings:
self.known_definite_encodings += override_encodings
self.user_encodings = user_encodings or []
exclude_encodings = exclude_encodings or []
self.exclude_encodings = set([x.lower() for x in exclude_encodings])
self.chardet_encoding = None
@@ -219,6 +389,12 @@ class EncodingDetector:
self.markup, self.sniffed_encoding = self.strip_byte_order_mark(markup)
def _usable(self, encoding, tried):
"""Should we even bother to try this encoding?
:param encoding: Name of an encoding.
:param tried: Encodings that have already been tried. This will be modified
as a side effect.
"""
if encoding is not None:
encoding = encoding.lower()
if encoding in self.exclude_encodings:
@@ -230,9 +406,14 @@ class EncodingDetector:
@property
def encodings(self):
"""Yield a number of encodings that might work for this markup."""
"""Yield a number of encodings that might work for this markup.
:yield: A sequence of strings.
"""
tried = set()
for e in self.override_encodings:
# First, try the known definite encodings
for e in self.known_definite_encodings:
if self._usable(e, tried):
yield e
@@ -241,6 +422,12 @@ class EncodingDetector:
if self._usable(self.sniffed_encoding, tried):
yield self.sniffed_encoding
# Sniffing the byte-order mark did nothing; try the user
# encodings.
for e in self.user_encodings:
if self._usable(e, tried):
yield e
# Look within the document for an XML or HTML encoding
# declaration.
if self.declared_encoding is None:
@@ -263,7 +450,11 @@ class EncodingDetector:
@classmethod
def strip_byte_order_mark(cls, data):
"""If a byte-order mark is present, strip it and return the encoding it implies."""
"""If a byte-order mark is present, strip it and return the encoding it implies.
:param data: Some markup.
:return: A 2-tuple (modified data, implied encoding)
"""
encoding = None
if isinstance(data, str):
# Unicode data cannot have a byte-order mark.
@@ -295,21 +486,36 @@ class EncodingDetector:
An HTML encoding is declared in a <meta> tag, hopefully near the
beginning of the document.
:param markup: Some markup.
:param is_html: If True, this markup is considered to be HTML. Otherwise
it's assumed to be XML.
:param search_entire_document: Since an encoding is supposed to declared near the beginning
of the document, most of the time it's only necessary to search a few kilobytes of data.
Set this to True to force this method to search the entire document.
"""
if search_entire_document:
xml_endpos = html_endpos = len(markup)
else:
xml_endpos = 1024
html_endpos = max(2048, int(len(markup) * 0.05))
if isinstance(markup, bytes):
res = encoding_res[bytes]
else:
res = encoding_res[str]
xml_re = res['xml']
html_re = res['html']
declared_encoding = None
declared_encoding_match = xml_encoding_re.search(markup, endpos=xml_endpos)
declared_encoding_match = xml_re.search(markup, endpos=xml_endpos)
if not declared_encoding_match and is_html:
declared_encoding_match = html_meta_re.search(markup, endpos=html_endpos)
declared_encoding_match = html_re.search(markup, endpos=html_endpos)
if declared_encoding_match is not None:
declared_encoding = declared_encoding_match.groups()[0].decode(
'ascii', 'replace')
declared_encoding = declared_encoding_match.groups()[0]
if declared_encoding:
if isinstance(declared_encoding, bytes):
declared_encoding = declared_encoding.decode('ascii', 'replace')
return declared_encoding.lower()
return None
@@ -332,15 +538,53 @@ class UnicodeDammit:
"iso-8859-2",
]
def __init__(self, markup, override_encodings=[],
smart_quotes_to=None, is_html=False, exclude_encodings=[]):
def __init__(self, markup, known_definite_encodings=[],
smart_quotes_to=None, is_html=False, exclude_encodings=[],
user_encodings=None, override_encodings=None
):
"""Constructor.
:param markup: A bytestring representing markup in an unknown encoding.
:param known_definite_encodings: When determining the encoding
of `markup`, these encodings will be tried first, in
order. In HTML terms, this corresponds to the "known
definite encoding" step defined here:
https://html.spec.whatwg.org/multipage/parsing.html#parsing-with-a-known-character-encoding
:param user_encodings: These encodings will be tried after the
`known_definite_encodings` have been tried and failed, and
after an attempt to sniff the encoding by looking at a
byte order mark has failed. In HTML terms, this
corresponds to the step "user has explicitly instructed
the user agent to override the document's character
encoding", defined here:
https://html.spec.whatwg.org/multipage/parsing.html#determining-the-character-encoding
:param override_encodings: A deprecated alias for
known_definite_encodings. Any encodings here will be tried
immediately after the encodings in
known_definite_encodings.
:param smart_quotes_to: By default, Microsoft smart quotes will, like all other characters, be converted
to Unicode characters. Setting this to 'ascii' will convert them to ASCII quotes instead.
Setting it to 'xml' will convert them to XML entity references, and setting it to 'html'
will convert them to HTML entity references.
:param is_html: If True, this markup is considered to be HTML. Otherwise
it's assumed to be XML.
:param exclude_encodings: These encodings will not be considered, even
if the sniffing code thinks they might make sense.
"""
self.smart_quotes_to = smart_quotes_to
self.tried_encodings = []
self.contains_replacement_characters = False
self.is_html = is_html
self.log = logging.getLogger(__name__)
self.detector = EncodingDetector(
markup, override_encodings, is_html, exclude_encodings)
markup, known_definite_encodings, is_html, exclude_encodings,
user_encodings, override_encodings
)
# Short-circuit if the data is in Unicode to begin with.
if isinstance(markup, str) or markup == '':
@@ -368,9 +612,10 @@ class UnicodeDammit:
if encoding != "ascii":
u = self._convert_from(encoding, "replace")
if u is not None:
logging.warning(
self.log.warning(
"Some characters could not be decoded, and were "
"replaced with REPLACEMENT CHARACTER.")
"replaced with REPLACEMENT CHARACTER."
)
self.contains_replacement_characters = True
break
@@ -399,6 +644,10 @@ class UnicodeDammit:
return sub
def _convert_from(self, proposed, errors="strict"):
"""Attempt to convert the markup to the proposed encoding.
:param proposed: The name of a character encoding.
"""
proposed = self.find_codec(proposed)
if not proposed or (proposed, errors) in self.tried_encodings:
return None
@@ -413,30 +662,40 @@ class UnicodeDammit:
markup = smart_quotes_compiled.sub(self._sub_ms_char, markup)
try:
#print "Trying to convert document to %s (errors=%s)" % (
# proposed, errors)
#print("Trying to convert document to %s (errors=%s)" % (
# proposed, errors))
u = self._to_unicode(markup, proposed, errors)
self.markup = u
self.original_encoding = proposed
except Exception as e:
#print "That didn't work!"
#print e
#print("That didn't work!")
#print(e)
return None
#print "Correct encoding: %s" % proposed
#print("Correct encoding: %s" % proposed)
return self.markup
def _to_unicode(self, data, encoding, errors="strict"):
'''Given a string and its encoding, decodes the string into Unicode.
%encoding is a string recognized by encodings.aliases'''
"""Given a string and its encoding, decodes the string into Unicode.
:param encoding: The name of an encoding.
"""
return str(data, encoding, errors)
@property
def declared_html_encoding(self):
"""If the markup is an HTML document, returns the encoding declared _within_
the document.
"""
if not self.is_html:
return None
return self.detector.declared_encoding
def find_codec(self, charset):
"""Convert the name of a character set to a codec name.
:param charset: The name of a character set.
:return: The name of a codec.
"""
value = (self._codec(self.CHARSET_ALIASES.get(charset, charset))
or (charset and self._codec(charset.replace("-", "")))
or (charset and self._codec(charset.replace("-", "_")))
@@ -726,7 +985,7 @@ class UnicodeDammit:
0xde : b'\xc3\x9e', # Þ
0xdf : b'\xc3\x9f', # ß
0xe0 : b'\xc3\xa0', # à
0xe1 : b'\xa1', # á
0xe1 : b'\xa1', # á
0xe2 : b'\xc3\xa2', # â
0xe3 : b'\xc3\xa3', # ã
0xe4 : b'\xc3\xa4', # ä
@@ -775,12 +1034,16 @@ class UnicodeDammit:
Currently the only situation supported is Windows-1252 (or its
subset ISO-8859-1), embedded in UTF-8.
The input must be a bytestring. If you've already converted
the document to Unicode, you're too late.
The output is a bytestring in which `embedded_encoding`
characters have been converted to their `main_encoding`
equivalents.
:param in_bytes: A bytestring that you suspect contains
characters from multiple encodings. Note that this _must_
be a bytestring. If you've already converted the document
to Unicode, you're too late.
:param main_encoding: The primary encoding of `in_bytes`.
:param embedded_encoding: The encoding that was used to embed characters
in the main document.
:return: A bytestring in which `embedded_encoding`
characters have been converted to their `main_encoding`
equivalents.
"""
if embedded_encoding.replace('_', '-').lower() not in (
'windows-1252', 'windows_1252'):

View File

@@ -1,9 +1,10 @@
"""Diagnostic functions, mainly for use when doing tech support."""
# Use of this source code is governed by the MIT license.
__license__ = "MIT"
import cProfile
from io import StringIO
from io import BytesIO
from html.parser import HTMLParser
import bs4
from bs4 import BeautifulSoup, __version__
@@ -19,9 +20,13 @@ import sys
import cProfile
def diagnose(data):
"""Diagnostic suite for isolating common problems."""
print("Diagnostic running on Beautiful Soup %s" % __version__)
print("Python version %s" % sys.version)
"""Diagnostic suite for isolating common problems.
:param data: A string containing markup that needs to be explained.
:return: None; diagnostics are printed to standard output.
"""
print(("Diagnostic running on Beautiful Soup %s" % __version__))
print(("Python version %s" % sys.version))
basic_parsers = ["html.parser", "html5lib", "lxml"]
for name in basic_parsers:
@@ -35,61 +40,70 @@ def diagnose(data):
name))
if 'lxml' in basic_parsers:
basic_parsers.append(["lxml", "xml"])
basic_parsers.append("lxml-xml")
try:
from lxml import etree
print("Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION)))
print(("Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION))))
except ImportError as e:
print (
print(
"lxml is not installed or couldn't be imported.")
if 'html5lib' in basic_parsers:
try:
import html5lib
print("Found html5lib version %s" % html5lib.__version__)
print(("Found html5lib version %s" % html5lib.__version__))
except ImportError as e:
print (
print(
"html5lib is not installed or couldn't be imported.")
if hasattr(data, 'read'):
data = data.read()
elif os.path.exists(data):
print('"%s" looks like a filename. Reading data from the file.' % data)
data = open(data).read()
elif data.startswith("http:") or data.startswith("https:"):
print('"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data)
print("You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup.")
return
print()
for parser in basic_parsers:
print("Trying to parse your markup with %s" % parser)
print(("Trying to parse your markup with %s" % parser))
success = False
try:
soup = BeautifulSoup(data, parser)
soup = BeautifulSoup(data, features=parser)
success = True
except Exception as e:
print("%s could not parse the markup." % parser)
print(("%s could not parse the markup." % parser))
traceback.print_exc()
if success:
print("Here's what %s did with the markup:" % parser)
print(soup.prettify())
print(("Here's what %s did with the markup:" % parser))
print((soup.prettify()))
print("-" * 80)
print(("-" * 80))
def lxml_trace(data, html=True, **kwargs):
"""Print out the lxml events that occur during parsing.
This lets you see how lxml parses a document when no Beautiful
Soup code is running.
Soup code is running. You can use this to determine whether
an lxml-specific problem is in Beautiful Soup's lxml tree builders
or in lxml itself.
:param data: Some markup.
:param html: If True, markup will be parsed with lxml's HTML parser.
if False, lxml's XML parser will be used.
"""
from lxml import etree
for event, element in etree.iterparse(StringIO(data), html=html, **kwargs):
recover = kwargs.pop('recover', True)
if isinstance(data, str):
data = data.encode("utf8")
reader = BytesIO(data)
for event, element in etree.iterparse(
reader, html=html, recover=recover, **kwargs
):
print(("%s, %4s, %s" % (event, element.tag, element.text)))
class AnnouncingParser(HTMLParser):
"""Announces HTMLParser parse events, without doing anything else."""
"""Subclass of HTMLParser that announces parse events, without doing
anything else.
You can use this to get a picture of how html.parser sees a given
document. The easiest way to do this is to call `htmlparser_trace`.
"""
def _p(self, s):
print(s)
@@ -126,6 +140,8 @@ def htmlparser_trace(data):
This lets you see how HTMLParser parses a document when no
Beautiful Soup code is running.
:param data: Some markup.
"""
parser = AnnouncingParser()
parser.feed(data)
@@ -168,9 +184,9 @@ def rdoc(num_elements=1000):
def benchmark_parsers(num_elements=100000):
"""Very basic head-to-head performance benchmark."""
print("Comparative parser benchmark on Beautiful Soup %s" % __version__)
print(("Comparative parser benchmark on Beautiful Soup %s" % __version__))
data = rdoc(num_elements)
print("Generated a large invalid HTML document (%d bytes)." % len(data))
print(("Generated a large invalid HTML document (%d bytes)." % len(data)))
for parser in ["lxml", ["lxml", "html"], "html5lib", "html.parser"]:
success = False
@@ -180,26 +196,26 @@ def benchmark_parsers(num_elements=100000):
b = time.time()
success = True
except Exception as e:
print("%s could not parse the markup." % parser)
print(("%s could not parse the markup." % parser))
traceback.print_exc()
if success:
print("BS4+%s parsed the markup in %.2fs." % (parser, b-a))
print(("BS4+%s parsed the markup in %.2fs." % (parser, b-a)))
from lxml import etree
a = time.time()
etree.HTML(data)
b = time.time()
print("Raw lxml parsed the markup in %.2fs." % (b-a))
print(("Raw lxml parsed the markup in %.2fs." % (b-a)))
import html5lib
parser = html5lib.HTMLParser()
a = time.time()
parser.parse(data)
b = time.time()
print("Raw html5lib parsed the markup in %.2fs." % (b-a))
print(("Raw html5lib parsed the markup in %.2fs." % (b-a)))
def profile(num_elements=100000, parser="lxml"):
"""Use Python's profiler on a randomly generated document."""
filehandle = tempfile.NamedTemporaryFile()
filename = filehandle.name
@@ -212,5 +228,6 @@ def profile(num_elements=100000, parser="lxml"):
stats.sort_stats("cumulative")
stats.print_stats('_html5lib|bs4', 50)
# If this file is run as a script, standard input is diagnosed.
if __name__ == '__main__':
diagnose(sys.stdin.read())

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,185 @@
from bs4.dammit import EntitySubstitution
class Formatter(EntitySubstitution):
"""Describes a strategy to use when outputting a parse tree to a string.
Some parts of this strategy come from the distinction between
HTML4, HTML5, and XML. Others are configurable by the user.
Formatters are passed in as the `formatter` argument to methods
like `PageElement.encode`. Most people won't need to think about
formatters, and most people who need to think about them can pass
in one of these predefined strings as `formatter` rather than
making a new Formatter object:
For HTML documents:
* 'html' - HTML entity substitution for generic HTML documents. (default)
* 'html5' - HTML entity substitution for HTML5 documents, as
well as some optimizations in the way tags are rendered.
* 'minimal' - Only make the substitutions necessary to guarantee
valid HTML.
* None - Do not perform any substitution. This will be faster
but may result in invalid markup.
For XML documents:
* 'html' - Entity substitution for XHTML documents.
* 'minimal' - Only make the substitutions necessary to guarantee
valid XML. (default)
* None - Do not perform any substitution. This will be faster
but may result in invalid markup.
"""
# Registries of XML and HTML formatters.
XML_FORMATTERS = {}
HTML_FORMATTERS = {}
HTML = 'html'
XML = 'xml'
HTML_DEFAULTS = dict(
cdata_containing_tags=set(["script", "style"]),
)
def _default(self, language, value, kwarg):
if value is not None:
return value
if language == self.XML:
return set()
return self.HTML_DEFAULTS[kwarg]
def __init__(
self, language=None, entity_substitution=None,
void_element_close_prefix='/', cdata_containing_tags=None,
empty_attributes_are_booleans=False, indent=1,
):
r"""Constructor.
:param language: This should be Formatter.XML if you are formatting
XML markup and Formatter.HTML if you are formatting HTML markup.
:param entity_substitution: A function to call to replace special
characters with XML/HTML entities. For examples, see
bs4.dammit.EntitySubstitution.substitute_html and substitute_xml.
:param void_element_close_prefix: By default, void elements
are represented as <tag/> (XML rules) rather than <tag>
(HTML rules). To get <tag>, pass in the empty string.
:param cdata_containing_tags: The list of tags that are defined
as containing CDATA in this dialect. For example, in HTML,
<script> and <style> tags are defined as containing CDATA,
and their contents should not be formatted.
:param blank_attributes_are_booleans: Render attributes whose value
is the empty string as HTML-style boolean attributes.
(Attributes whose value is None are always rendered this way.)
:param indent: If indent is a non-negative integer or string,
then the contents of elements will be indented
appropriately when pretty-printing. An indent level of 0,
negative, or "" will only insert newlines. Using a
positive integer indent indents that many spaces per
level. If indent is a string (such as "\t"), that string
is used to indent each level. The default behavior is to
indent one space per level.
"""
self.language = language
self.entity_substitution = entity_substitution
self.void_element_close_prefix = void_element_close_prefix
self.cdata_containing_tags = self._default(
language, cdata_containing_tags, 'cdata_containing_tags'
)
self.empty_attributes_are_booleans=empty_attributes_are_booleans
if indent is None:
indent = 0
if isinstance(indent, int):
if indent < 0:
indent = 0
indent = ' ' * indent
elif isinstance(indent, str):
indent = indent
else:
indent = ' '
self.indent = indent
def substitute(self, ns):
"""Process a string that needs to undergo entity substitution.
This may be a string encountered in an attribute value or as
text.
:param ns: A string.
:return: A string with certain characters replaced by named
or numeric entities.
"""
if not self.entity_substitution:
return ns
from .element import NavigableString
if (isinstance(ns, NavigableString)
and ns.parent is not None
and ns.parent.name in self.cdata_containing_tags):
# Do nothing.
return ns
# Substitute.
return self.entity_substitution(ns)
def attribute_value(self, value):
"""Process the value of an attribute.
:param ns: A string.
:return: A string with certain characters replaced by named
or numeric entities.
"""
return self.substitute(value)
def attributes(self, tag):
"""Reorder a tag's attributes however you want.
By default, attributes are sorted alphabetically. This makes
behavior consistent between Python 2 and Python 3, and preserves
backwards compatibility with older versions of Beautiful Soup.
If `empty_boolean_attributes` is True, then attributes whose
values are set to the empty string will be treated as boolean
attributes.
"""
if tag.attrs is None:
return []
return sorted(
(k, (None if self.empty_attributes_are_booleans and v == '' else v))
for k, v in list(tag.attrs.items())
)
class HTMLFormatter(Formatter):
"""A generic Formatter for HTML."""
REGISTRY = {}
def __init__(self, *args, **kwargs):
super(HTMLFormatter, self).__init__(self.HTML, *args, **kwargs)
class XMLFormatter(Formatter):
"""A generic Formatter for XML."""
REGISTRY = {}
def __init__(self, *args, **kwargs):
super(XMLFormatter, self).__init__(self.XML, *args, **kwargs)
# Set up aliases for the default formatters.
HTMLFormatter.REGISTRY['html'] = HTMLFormatter(
entity_substitution=EntitySubstitution.substitute_html
)
HTMLFormatter.REGISTRY["html5"] = HTMLFormatter(
entity_substitution=EntitySubstitution.substitute_html,
void_element_close_prefix=None,
empty_attributes_are_booleans=True,
)
HTMLFormatter.REGISTRY["minimal"] = HTMLFormatter(
entity_substitution=EntitySubstitution.substitute_xml
)
HTMLFormatter.REGISTRY[None] = HTMLFormatter(
entity_substitution=None
)
XMLFormatter.REGISTRY["html"] = XMLFormatter(
entity_substitution=EntitySubstitution.substitute_html
)
XMLFormatter.REGISTRY["minimal"] = XMLFormatter(
entity_substitution=EntitySubstitution.substitute_xml
)
XMLFormatter.REGISTRY[None] = Formatter(
Formatter(Formatter.XML, entity_substitution=None)
)

View File

@@ -1,686 +0,0 @@
"""Helper classes for tests."""
__license__ = "MIT"
import pickle
import copy
import unittest
from unittest import TestCase
from bs4 import BeautifulSoup
from bs4.element import (
CharsetMetaAttributeValue,
Comment,
ContentMetaAttributeValue,
Doctype,
SoupStrainer,
)
from bs4.builder._htmlparser import HTMLParserTreeBuilder
default_builder = HTMLParserTreeBuilder
class SoupTest(unittest.TestCase):
@property
def default_builder(self):
return default_builder()
def soup(self, markup, **kwargs):
"""Build a Beautiful Soup object from markup."""
builder = kwargs.pop('builder', self.default_builder)
return BeautifulSoup(markup, builder=builder, **kwargs)
def document_for(self, markup):
"""Turn an HTML fragment into a document.
The details depend on the builder.
"""
return self.default_builder.test_fragment_to_document(markup)
def assertSoupEquals(self, to_parse, compare_parsed_to=None):
builder = self.default_builder
obj = BeautifulSoup(to_parse, builder=builder)
if compare_parsed_to is None:
compare_parsed_to = to_parse
self.assertEqual(obj.decode(), self.document_for(compare_parsed_to))
def assertConnectedness(self, element):
"""Ensure that next_element and previous_element are properly
set for all descendants of the given element.
"""
earlier = None
for e in element.descendants:
if earlier:
self.assertEqual(e, earlier.next_element)
self.assertEqual(earlier, e.previous_element)
earlier = e
class HTMLTreeBuilderSmokeTest(SoupTest):
"""A basic test of a treebuilder's competence.
Any HTML treebuilder, present or future, should be able to pass
these tests. With invalid markup, there's room for interpretation,
and different parsers can handle it differently. But with the
markup in these tests, there's not much room for interpretation.
"""
def test_pickle_and_unpickle_identity(self):
# Pickling a tree, then unpickling it, yields a tree identical
# to the original.
tree = self.soup("<a><b>foo</a>")
dumped = pickle.dumps(tree, 2)
loaded = pickle.loads(dumped)
self.assertEqual(loaded.__class__, BeautifulSoup)
self.assertEqual(loaded.decode(), tree.decode())
def assertDoctypeHandled(self, doctype_fragment):
"""Assert that a given doctype string is handled correctly."""
doctype_str, soup = self._document_with_doctype(doctype_fragment)
# Make sure a Doctype object was created.
doctype = soup.contents[0]
self.assertEqual(doctype.__class__, Doctype)
self.assertEqual(doctype, doctype_fragment)
self.assertEqual(str(soup)[:len(doctype_str)], doctype_str)
# Make sure that the doctype was correctly associated with the
# parse tree and that the rest of the document parsed.
self.assertEqual(soup.p.contents[0], 'foo')
def _document_with_doctype(self, doctype_fragment):
"""Generate and parse a document with the given doctype."""
doctype = '<!DOCTYPE %s>' % doctype_fragment
markup = doctype + '\n<p>foo</p>'
soup = self.soup(markup)
return doctype, soup
def test_normal_doctypes(self):
"""Make sure normal, everyday HTML doctypes are handled correctly."""
self.assertDoctypeHandled("html")
self.assertDoctypeHandled(
'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"')
def test_empty_doctype(self):
soup = self.soup("<!DOCTYPE>")
doctype = soup.contents[0]
self.assertEqual("", doctype.strip())
def test_public_doctype_with_url(self):
doctype = 'html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"'
self.assertDoctypeHandled(doctype)
def test_system_doctype(self):
self.assertDoctypeHandled('foo SYSTEM "http://www.example.com/"')
def test_namespaced_system_doctype(self):
# We can handle a namespaced doctype with a system ID.
self.assertDoctypeHandled('xsl:stylesheet SYSTEM "htmlent.dtd"')
def test_namespaced_public_doctype(self):
# Test a namespaced doctype with a public id.
self.assertDoctypeHandled('xsl:stylesheet PUBLIC "htmlent.dtd"')
def test_real_xhtml_document(self):
"""A real XHTML document should come out more or less the same as it went in."""
markup = b"""<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Hello.</title></head>
<body>Goodbye.</body>
</html>"""
soup = self.soup(markup)
self.assertEqual(
soup.encode("utf-8").replace(b"\n", b""),
markup.replace(b"\n", b""))
def test_processing_instruction(self):
markup = b"""<?PITarget PIContent?>"""
soup = self.soup(markup)
self.assertEqual(markup, soup.encode("utf8"))
def test_deepcopy(self):
"""Make sure you can copy the tree builder.
This is important because the builder is part of a
BeautifulSoup object, and we want to be able to copy that.
"""
copy.deepcopy(self.default_builder)
def test_p_tag_is_never_empty_element(self):
"""A <p> tag is never designated as an empty-element tag.
Even if the markup shows it as an empty-element tag, it
shouldn't be presented that way.
"""
soup = self.soup("<p/>")
self.assertFalse(soup.p.is_empty_element)
self.assertEqual(str(soup.p), "<p></p>")
def test_unclosed_tags_get_closed(self):
"""A tag that's not closed by the end of the document should be closed.
This applies to all tags except empty-element tags.
"""
self.assertSoupEquals("<p>", "<p></p>")
self.assertSoupEquals("<b>", "<b></b>")
self.assertSoupEquals("<br>", "<br/>")
def test_br_is_always_empty_element_tag(self):
"""A <br> tag is designated as an empty-element tag.
Some parsers treat <br></br> as one <br/> tag, some parsers as
two tags, but it should always be an empty-element tag.
"""
soup = self.soup("<br></br>")
self.assertTrue(soup.br.is_empty_element)
self.assertEqual(str(soup.br), "<br/>")
def test_nested_formatting_elements(self):
self.assertSoupEquals("<em><em></em></em>")
def test_double_head(self):
html = '''<!DOCTYPE html>
<html>
<head>
<title>Ordinary HEAD element test</title>
</head>
<script type="text/javascript">
alert("Help!");
</script>
<body>
Hello, world!
</body>
</html>
'''
soup = self.soup(html)
self.assertEqual("text/javascript", soup.find('script')['type'])
def test_comment(self):
# Comments are represented as Comment objects.
markup = "<p>foo<!--foobar-->baz</p>"
self.assertSoupEquals(markup)
soup = self.soup(markup)
comment = soup.find(text="foobar")
self.assertEqual(comment.__class__, Comment)
# The comment is properly integrated into the tree.
foo = soup.find(text="foo")
self.assertEqual(comment, foo.next_element)
baz = soup.find(text="baz")
self.assertEqual(comment, baz.previous_element)
def test_preserved_whitespace_in_pre_and_textarea(self):
"""Whitespace must be preserved in <pre> and <textarea> tags."""
self.assertSoupEquals("<pre> </pre>")
self.assertSoupEquals("<textarea> woo </textarea>")
def test_nested_inline_elements(self):
"""Inline elements can be nested indefinitely."""
b_tag = "<b>Inside a B tag</b>"
self.assertSoupEquals(b_tag)
nested_b_tag = "<p>A <i>nested <b>tag</b></i></p>"
self.assertSoupEquals(nested_b_tag)
double_nested_b_tag = "<p>A <a>doubly <i>nested <b>tag</b></i></a></p>"
self.assertSoupEquals(nested_b_tag)
def test_nested_block_level_elements(self):
"""Block elements can be nested."""
soup = self.soup('<blockquote><p><b>Foo</b></p></blockquote>')
blockquote = soup.blockquote
self.assertEqual(blockquote.p.b.string, 'Foo')
self.assertEqual(blockquote.b.string, 'Foo')
def test_correctly_nested_tables(self):
"""One table can go inside another one."""
markup = ('<table id="1">'
'<tr>'
"<td>Here's another table:"
'<table id="2">'
'<tr><td>foo</td></tr>'
'</table></td>')
self.assertSoupEquals(
markup,
'<table id="1"><tr><td>Here\'s another table:'
'<table id="2"><tr><td>foo</td></tr></table>'
'</td></tr></table>')
self.assertSoupEquals(
"<table><thead><tr><td>Foo</td></tr></thead>"
"<tbody><tr><td>Bar</td></tr></tbody>"
"<tfoot><tr><td>Baz</td></tr></tfoot></table>")
def test_deeply_nested_multivalued_attribute(self):
# html5lib can set the attributes of the same tag many times
# as it rearranges the tree. This has caused problems with
# multivalued attributes.
markup = '<table><div><div class="css"></div></div></table>'
soup = self.soup(markup)
self.assertEqual(["css"], soup.div.div['class'])
def test_multivalued_attribute_on_html(self):
# html5lib uses a different API to set the attributes ot the
# <html> tag. This has caused problems with multivalued
# attributes.
markup = '<html class="a b"></html>'
soup = self.soup(markup)
self.assertEqual(["a", "b"], soup.html['class'])
def test_angle_brackets_in_attribute_values_are_escaped(self):
self.assertSoupEquals('<a b="<a>"></a>', '<a b="&lt;a&gt;"></a>')
def test_entities_in_attributes_converted_to_unicode(self):
expect = '<p id="pi\N{LATIN SMALL LETTER N WITH TILDE}ata"></p>'
self.assertSoupEquals('<p id="pi&#241;ata"></p>', expect)
self.assertSoupEquals('<p id="pi&#xf1;ata"></p>', expect)
self.assertSoupEquals('<p id="pi&#Xf1;ata"></p>', expect)
self.assertSoupEquals('<p id="pi&ntilde;ata"></p>', expect)
def test_entities_in_text_converted_to_unicode(self):
expect = '<p>pi\N{LATIN SMALL LETTER N WITH TILDE}ata</p>'
self.assertSoupEquals("<p>pi&#241;ata</p>", expect)
self.assertSoupEquals("<p>pi&#xf1;ata</p>", expect)
self.assertSoupEquals("<p>pi&#Xf1;ata</p>", expect)
self.assertSoupEquals("<p>pi&ntilde;ata</p>", expect)
def test_quot_entity_converted_to_quotation_mark(self):
self.assertSoupEquals("<p>I said &quot;good day!&quot;</p>",
'<p>I said "good day!"</p>')
def test_out_of_range_entity(self):
expect = "\N{REPLACEMENT CHARACTER}"
self.assertSoupEquals("&#10000000000000;", expect)
self.assertSoupEquals("&#x10000000000000;", expect)
self.assertSoupEquals("&#1000000000;", expect)
def test_multipart_strings(self):
"Mostly to prevent a recurrence of a bug in the html5lib treebuilder."
soup = self.soup("<html><h2>\nfoo</h2><p></p></html>")
self.assertEqual("p", soup.h2.string.next_element.name)
self.assertEqual("p", soup.p.name)
self.assertConnectedness(soup)
def test_head_tag_between_head_and_body(self):
"Prevent recurrence of a bug in the html5lib treebuilder."
content = """<html><head></head>
<link></link>
<body>foo</body>
</html>
"""
soup = self.soup(content)
self.assertNotEqual(None, soup.html.body)
self.assertConnectedness(soup)
def test_multiple_copies_of_a_tag(self):
"Prevent recurrence of a bug in the html5lib treebuilder."
content = """<!DOCTYPE html>
<html>
<body>
<article id="a" >
<div><a href="1"></div>
<footer>
<a href="2"></a>
</footer>
</article>
</body>
</html>
"""
soup = self.soup(content)
self.assertConnectedness(soup.article)
def test_basic_namespaces(self):
"""Parsers don't need to *understand* namespaces, but at the
very least they should not choke on namespaces or lose
data."""
markup = b'<html xmlns="http://www.w3.org/1999/xhtml" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg"><head></head><body><mathml:msqrt>4</mathml:msqrt><b svg:fill="red"></b></body></html>'
soup = self.soup(markup)
self.assertEqual(markup, soup.encode())
html = soup.html
self.assertEqual('http://www.w3.org/1999/xhtml', soup.html['xmlns'])
self.assertEqual(
'http://www.w3.org/1998/Math/MathML', soup.html['xmlns:mathml'])
self.assertEqual(
'http://www.w3.org/2000/svg', soup.html['xmlns:svg'])
def test_multivalued_attribute_value_becomes_list(self):
markup = b'<a class="foo bar">'
soup = self.soup(markup)
self.assertEqual(['foo', 'bar'], soup.a['class'])
#
# Generally speaking, tests below this point are more tests of
# Beautiful Soup than tests of the tree builders. But parsers are
# weird, so we run these tests separately for every tree builder
# to detect any differences between them.
#
def test_can_parse_unicode_document(self):
# A seemingly innocuous document... but it's in Unicode! And
# it contains characters that can't be represented in the
# encoding found in the declaration! The horror!
markup = '<html><head><meta encoding="euc-jp"></head><body>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</body>'
soup = self.soup(markup)
self.assertEqual('Sacr\xe9 bleu!', soup.body.string)
def test_soupstrainer(self):
"""Parsers should be able to work with SoupStrainers."""
strainer = SoupStrainer("b")
soup = self.soup("A <b>bold</b> <meta/> <i>statement</i>",
parse_only=strainer)
self.assertEqual(soup.decode(), "<b>bold</b>")
def test_single_quote_attribute_values_become_double_quotes(self):
self.assertSoupEquals("<foo attr='bar'></foo>",
'<foo attr="bar"></foo>')
def test_attribute_values_with_nested_quotes_are_left_alone(self):
text = """<foo attr='bar "brawls" happen'>a</foo>"""
self.assertSoupEquals(text)
def test_attribute_values_with_double_nested_quotes_get_quoted(self):
text = """<foo attr='bar "brawls" happen'>a</foo>"""
soup = self.soup(text)
soup.foo['attr'] = 'Brawls happen at "Bob\'s Bar"'
self.assertSoupEquals(
soup.foo.decode(),
"""<foo attr="Brawls happen at &quot;Bob\'s Bar&quot;">a</foo>""")
def test_ampersand_in_attribute_value_gets_escaped(self):
self.assertSoupEquals('<this is="really messed up & stuff"></this>',
'<this is="really messed up &amp; stuff"></this>')
self.assertSoupEquals(
'<a href="http://example.org?a=1&b=2;3">foo</a>',
'<a href="http://example.org?a=1&amp;b=2;3">foo</a>')
def test_escaped_ampersand_in_attribute_value_is_left_alone(self):
self.assertSoupEquals('<a href="http://example.org?a=1&amp;b=2;3"></a>')
def test_entities_in_strings_converted_during_parsing(self):
# Both XML and HTML entities are converted to Unicode characters
# during parsing.
text = "<p>&lt;&lt;sacr&eacute;&#32;bleu!&gt;&gt;</p>"
expected = "<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>"
self.assertSoupEquals(text, expected)
def test_smart_quotes_converted_on_the_way_in(self):
# Microsoft smart quotes are converted to Unicode characters during
# parsing.
quote = b"<p>\x91Foo\x92</p>"
soup = self.soup(quote)
self.assertEqual(
soup.p.string,
"\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}")
def test_non_breaking_spaces_converted_on_the_way_in(self):
soup = self.soup("<a>&nbsp;&nbsp;</a>")
self.assertEqual(soup.a.string, "\N{NO-BREAK SPACE}" * 2)
def test_entities_converted_on_the_way_out(self):
text = "<p>&lt;&lt;sacr&eacute;&#32;bleu!&gt;&gt;</p>"
expected = "<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>".encode("utf-8")
soup = self.soup(text)
self.assertEqual(soup.p.encode("utf-8"), expected)
def test_real_iso_latin_document(self):
# Smoke test of interrelated functionality, using an
# easy-to-understand document.
# Here it is in Unicode. Note that it claims to be in ISO-Latin-1.
unicode_html = '<html><head><meta content="text/html; charset=ISO-Latin-1" http-equiv="Content-type"/></head><body><p>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</p></body></html>'
# That's because we're going to encode it into ISO-Latin-1, and use
# that to test.
iso_latin_html = unicode_html.encode("iso-8859-1")
# Parse the ISO-Latin-1 HTML.
soup = self.soup(iso_latin_html)
# Encode it to UTF-8.
result = soup.encode("utf-8")
# What do we expect the result to look like? Well, it would
# look like unicode_html, except that the META tag would say
# UTF-8 instead of ISO-Latin-1.
expected = unicode_html.replace("ISO-Latin-1", "utf-8")
# And, of course, it would be in UTF-8, not Unicode.
expected = expected.encode("utf-8")
# Ta-da!
self.assertEqual(result, expected)
def test_real_shift_jis_document(self):
# Smoke test to make sure the parser can handle a document in
# Shift-JIS encoding, without choking.
shift_jis_html = (
b'<html><head></head><body><pre>'
b'\x82\xb1\x82\xea\x82\xcdShift-JIS\x82\xc5\x83R\x81[\x83f'
b'\x83B\x83\x93\x83O\x82\xb3\x82\xea\x82\xbd\x93\xfa\x96{\x8c'
b'\xea\x82\xcc\x83t\x83@\x83C\x83\x8b\x82\xc5\x82\xb7\x81B'
b'</pre></body></html>')
unicode_html = shift_jis_html.decode("shift-jis")
soup = self.soup(unicode_html)
# Make sure the parse tree is correctly encoded to various
# encodings.
self.assertEqual(soup.encode("utf-8"), unicode_html.encode("utf-8"))
self.assertEqual(soup.encode("euc_jp"), unicode_html.encode("euc_jp"))
def test_real_hebrew_document(self):
# A real-world test to make sure we can convert ISO-8859-9 (a
# Hebrew encoding) to UTF-8.
hebrew_document = b'<html><head><title>Hebrew (ISO 8859-8) in Visual Directionality</title></head><body><h1>Hebrew (ISO 8859-8) in Visual Directionality</h1>\xed\xe5\xec\xf9</body></html>'
soup = self.soup(
hebrew_document, from_encoding="iso8859-8")
self.assertEqual(soup.original_encoding, 'iso8859-8')
self.assertEqual(
soup.encode('utf-8'),
hebrew_document.decode("iso8859-8").encode("utf-8"))
def test_meta_tag_reflects_current_encoding(self):
# Here's the <meta> tag saying that a document is
# encoded in Shift-JIS.
meta_tag = ('<meta content="text/html; charset=x-sjis" '
'http-equiv="Content-type"/>')
# Here's a document incorporating that meta tag.
shift_jis_html = (
'<html><head>\n%s\n'
'<meta http-equiv="Content-language" content="ja"/>'
'</head><body>Shift-JIS markup goes here.') % meta_tag
soup = self.soup(shift_jis_html)
# Parse the document, and the charset is seemingly unaffected.
parsed_meta = soup.find('meta', {'http-equiv': 'Content-type'})
content = parsed_meta['content']
self.assertEqual('text/html; charset=x-sjis', content)
# But that value is actually a ContentMetaAttributeValue object.
self.assertTrue(isinstance(content, ContentMetaAttributeValue))
# And it will take on a value that reflects its current
# encoding.
self.assertEqual('text/html; charset=utf8', content.encode("utf8"))
# For the rest of the story, see TestSubstitutions in
# test_tree.py.
def test_html5_style_meta_tag_reflects_current_encoding(self):
# Here's the <meta> tag saying that a document is
# encoded in Shift-JIS.
meta_tag = ('<meta id="encoding" charset="x-sjis" />')
# Here's a document incorporating that meta tag.
shift_jis_html = (
'<html><head>\n%s\n'
'<meta http-equiv="Content-language" content="ja"/>'
'</head><body>Shift-JIS markup goes here.') % meta_tag
soup = self.soup(shift_jis_html)
# Parse the document, and the charset is seemingly unaffected.
parsed_meta = soup.find('meta', id="encoding")
charset = parsed_meta['charset']
self.assertEqual('x-sjis', charset)
# But that value is actually a CharsetMetaAttributeValue object.
self.assertTrue(isinstance(charset, CharsetMetaAttributeValue))
# And it will take on a value that reflects its current
# encoding.
self.assertEqual('utf8', charset.encode("utf8"))
def test_tag_with_no_attributes_can_have_attributes_added(self):
data = self.soup("<a>text</a>")
data.a['foo'] = 'bar'
self.assertEqual('<a foo="bar">text</a>', data.a.decode())
class XMLTreeBuilderSmokeTest(SoupTest):
def test_pickle_and_unpickle_identity(self):
# Pickling a tree, then unpickling it, yields a tree identical
# to the original.
tree = self.soup("<a><b>foo</a>")
dumped = pickle.dumps(tree, 2)
loaded = pickle.loads(dumped)
self.assertEqual(loaded.__class__, BeautifulSoup)
self.assertEqual(loaded.decode(), tree.decode())
def test_docstring_generated(self):
soup = self.soup("<root/>")
self.assertEqual(
soup.encode(), b'<?xml version="1.0" encoding="utf-8"?>\n<root/>')
def test_xml_declaration(self):
markup = b"""<?xml version="1.0" encoding="utf8"?>\n<foo/>"""
soup = self.soup(markup)
self.assertEqual(markup, soup.encode("utf8"))
def test_real_xhtml_document(self):
"""A real XHTML document should come out *exactly* the same as it went in."""
markup = b"""<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Hello.</title></head>
<body>Goodbye.</body>
</html>"""
soup = self.soup(markup)
self.assertEqual(
soup.encode("utf-8"), markup)
def test_formatter_processes_script_tag_for_xml_documents(self):
doc = """
<script type="text/javascript">
</script>
"""
soup = BeautifulSoup(doc, "lxml-xml")
# lxml would have stripped this while parsing, but we can add
# it later.
soup.script.string = 'console.log("< < hey > > ");'
encoded = soup.encode()
self.assertTrue(b"&lt; &lt; hey &gt; &gt;" in encoded)
def test_can_parse_unicode_document(self):
markup = '<?xml version="1.0" encoding="euc-jp"><root>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</root>'
soup = self.soup(markup)
self.assertEqual('Sacr\xe9 bleu!', soup.root.string)
def test_popping_namespaced_tag(self):
markup = '<rss xmlns:dc="foo"><dc:creator>b</dc:creator><dc:date>2012-07-02T20:33:42Z</dc:date><dc:rights>c</dc:rights><image>d</image></rss>'
soup = self.soup(markup)
self.assertEqual(
str(soup.rss), markup)
def test_docstring_includes_correct_encoding(self):
soup = self.soup("<root/>")
self.assertEqual(
soup.encode("latin1"),
b'<?xml version="1.0" encoding="latin1"?>\n<root/>')
def test_large_xml_document(self):
"""A large XML document should come out the same as it went in."""
markup = (b'<?xml version="1.0" encoding="utf-8"?>\n<root>'
+ b'0' * (2**12)
+ b'</root>')
soup = self.soup(markup)
self.assertEqual(soup.encode("utf-8"), markup)
def test_tags_are_empty_element_if_and_only_if_they_are_empty(self):
self.assertSoupEquals("<p>", "<p/>")
self.assertSoupEquals("<p>foo</p>")
def test_namespaces_are_preserved(self):
markup = '<root xmlns:a="http://example.com/" xmlns:b="http://example.net/"><a:foo>This tag is in the a namespace</a:foo><b:foo>This tag is in the b namespace</b:foo></root>'
soup = self.soup(markup)
root = soup.root
self.assertEqual("http://example.com/", root['xmlns:a'])
self.assertEqual("http://example.net/", root['xmlns:b'])
def test_closing_namespaced_tag(self):
markup = '<p xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>20010504</dc:date></p>'
soup = self.soup(markup)
self.assertEqual(str(soup.p), markup)
def test_namespaced_attributes(self):
markup = '<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><bar xsi:schemaLocation="http://www.example.com"/></foo>'
soup = self.soup(markup)
self.assertEqual(str(soup.foo), markup)
def test_namespaced_attributes_xml_namespace(self):
markup = '<foo xml:lang="fr">bar</foo>'
soup = self.soup(markup)
self.assertEqual(str(soup.foo), markup)
class HTML5TreeBuilderSmokeTest(HTMLTreeBuilderSmokeTest):
"""Smoke test for a tree builder that supports HTML5."""
def test_real_xhtml_document(self):
# Since XHTML is not HTML5, HTML5 parsers are not tested to handle
# XHTML documents in any particular way.
pass
def test_html_tags_have_namespace(self):
markup = "<a>"
soup = self.soup(markup)
self.assertEqual("http://www.w3.org/1999/xhtml", soup.a.namespace)
def test_svg_tags_have_namespace(self):
markup = '<svg><circle/></svg>'
soup = self.soup(markup)
namespace = "http://www.w3.org/2000/svg"
self.assertEqual(namespace, soup.svg.namespace)
self.assertEqual(namespace, soup.circle.namespace)
def test_mathml_tags_have_namespace(self):
markup = '<math><msqrt>5</msqrt></math>'
soup = self.soup(markup)
namespace = 'http://www.w3.org/1998/Math/MathML'
self.assertEqual(namespace, soup.math.namespace)
self.assertEqual(namespace, soup.msqrt.namespace)
def test_xml_declaration_becomes_comment(self):
markup = '<?xml version="1.0" encoding="utf-8"?><html></html>'
soup = self.soup(markup)
self.assertTrue(isinstance(soup.contents[0], Comment))
self.assertEqual(soup.contents[0], '?xml version="1.0" encoding="utf-8"?')
self.assertEqual("html", soup.contents[0].next_element.name)
def skipIf(condition, reason):
def nothing(test, *args, **kwargs):
return None
def decorator(test_item):
if condition:
return nothing
else:
return test_item
return decorator

View File

@@ -1 +0,0 @@
"The beautifulsoup tests."

View File

@@ -1,147 +0,0 @@
"""Tests of the builder registry."""
import unittest
import warnings
from bs4 import BeautifulSoup
from bs4.builder import (
builder_registry as registry,
HTMLParserTreeBuilder,
TreeBuilderRegistry,
)
try:
from bs4.builder import HTML5TreeBuilder
HTML5LIB_PRESENT = True
except ImportError:
HTML5LIB_PRESENT = False
try:
from bs4.builder import (
LXMLTreeBuilderForXML,
LXMLTreeBuilder,
)
LXML_PRESENT = True
except ImportError:
LXML_PRESENT = False
class BuiltInRegistryTest(unittest.TestCase):
"""Test the built-in registry with the default builders registered."""
def test_combination(self):
if LXML_PRESENT:
self.assertEqual(registry.lookup('fast', 'html'),
LXMLTreeBuilder)
if LXML_PRESENT:
self.assertEqual(registry.lookup('permissive', 'xml'),
LXMLTreeBuilderForXML)
self.assertEqual(registry.lookup('strict', 'html'),
HTMLParserTreeBuilder)
if HTML5LIB_PRESENT:
self.assertEqual(registry.lookup('html5lib', 'html'),
HTML5TreeBuilder)
def test_lookup_by_markup_type(self):
if LXML_PRESENT:
self.assertEqual(registry.lookup('html'), LXMLTreeBuilder)
self.assertEqual(registry.lookup('xml'), LXMLTreeBuilderForXML)
else:
self.assertEqual(registry.lookup('xml'), None)
if HTML5LIB_PRESENT:
self.assertEqual(registry.lookup('html'), HTML5TreeBuilder)
else:
self.assertEqual(registry.lookup('html'), HTMLParserTreeBuilder)
def test_named_library(self):
if LXML_PRESENT:
self.assertEqual(registry.lookup('lxml', 'xml'),
LXMLTreeBuilderForXML)
self.assertEqual(registry.lookup('lxml', 'html'),
LXMLTreeBuilder)
if HTML5LIB_PRESENT:
self.assertEqual(registry.lookup('html5lib'),
HTML5TreeBuilder)
self.assertEqual(registry.lookup('html.parser'),
HTMLParserTreeBuilder)
def test_beautifulsoup_constructor_does_lookup(self):
with warnings.catch_warnings(record=True) as w:
# This will create a warning about not explicitly
# specifying a parser, but we'll ignore it.
# You can pass in a string.
BeautifulSoup("", features="html")
# Or a list of strings.
BeautifulSoup("", features=["html", "fast"])
# You'll get an exception if BS can't find an appropriate
# builder.
self.assertRaises(ValueError, BeautifulSoup,
"", features="no-such-feature")
class RegistryTest(unittest.TestCase):
"""Test the TreeBuilderRegistry class in general."""
def setUp(self):
self.registry = TreeBuilderRegistry()
def builder_for_features(self, *feature_list):
cls = type('Builder_' + '_'.join(feature_list),
(object,), {'features' : feature_list})
self.registry.register(cls)
return cls
def test_register_with_no_features(self):
builder = self.builder_for_features()
# Since the builder advertises no features, you can't find it
# by looking up features.
self.assertEqual(self.registry.lookup('foo'), None)
# But you can find it by doing a lookup with no features, if
# this happens to be the only registered builder.
self.assertEqual(self.registry.lookup(), builder)
def test_register_with_features_makes_lookup_succeed(self):
builder = self.builder_for_features('foo', 'bar')
self.assertEqual(self.registry.lookup('foo'), builder)
self.assertEqual(self.registry.lookup('bar'), builder)
def test_lookup_fails_when_no_builder_implements_feature(self):
builder = self.builder_for_features('foo', 'bar')
self.assertEqual(self.registry.lookup('baz'), None)
def test_lookup_gets_most_recent_registration_when_no_feature_specified(self):
builder1 = self.builder_for_features('foo')
builder2 = self.builder_for_features('bar')
self.assertEqual(self.registry.lookup(), builder2)
def test_lookup_fails_when_no_tree_builders_registered(self):
self.assertEqual(self.registry.lookup(), None)
def test_lookup_gets_most_recent_builder_supporting_all_features(self):
has_one = self.builder_for_features('foo')
has_the_other = self.builder_for_features('bar')
has_both_early = self.builder_for_features('foo', 'bar', 'baz')
has_both_late = self.builder_for_features('foo', 'bar', 'quux')
lacks_one = self.builder_for_features('bar')
has_the_other = self.builder_for_features('foo')
# There are two builders featuring 'foo' and 'bar', but
# the one that also features 'quux' was registered later.
self.assertEqual(self.registry.lookup('foo', 'bar'),
has_both_late)
# There is only one builder featuring 'foo', 'bar', and 'baz'.
self.assertEqual(self.registry.lookup('foo', 'bar', 'baz'),
has_both_early)
def test_lookup_fails_when_cannot_reconcile_requested_features(self):
builder1 = self.builder_for_features('foo', 'bar')
builder2 = self.builder_for_features('foo', 'baz')
self.assertEqual(self.registry.lookup('bar', 'baz'), None)

View File

@@ -1,32 +0,0 @@
"Test harness for doctests."
# pylint: disable-msg=E0611,W0142
__metaclass__ = type
__all__ = [
'additional_tests',
]
import doctest
#from pkg_resources import (
# resource_filename, resource_exists, resource_listdir, cleanup_resources)
DOCTEST_FLAGS = (
doctest.ELLIPSIS |
doctest.NORMALIZE_WHITESPACE |
doctest.REPORT_NDIFF)
# def additional_tests():
# "Run the doc tests (README.txt and docs/*, if any exist)"
# doctest_files = [
# os.path.abspath(resource_filename('bs4', 'README.txt'))]
# if resource_exists('bs4', 'docs'):
# for name in resource_listdir('bs4', 'docs'):
# if name.endswith('.txt'):
# doctest_files.append(
# os.path.abspath(
# resource_filename('bs4', 'docs/%s' % name)))
# kwargs = dict(module_relative=False, optionflags=DOCTEST_FLAGS)
# atexit.register(cleanup_resources)
# return unittest.TestSuite((
# doctest.DocFileSuite(*doctest_files, **kwargs)))

View File

@@ -1,98 +0,0 @@
"""Tests to ensure that the html5lib tree builder generates good trees."""
import warnings
try:
from bs4.builder import HTML5TreeBuilder
HTML5LIB_PRESENT = True
except ImportError as e:
HTML5LIB_PRESENT = False
from bs4.element import SoupStrainer
from bs4.testing import (
HTML5TreeBuilderSmokeTest,
SoupTest,
skipIf,
)
@skipIf(
not HTML5LIB_PRESENT,
"html5lib seems not to be present, not testing its tree builder.")
class HTML5LibBuilderSmokeTest(SoupTest, HTML5TreeBuilderSmokeTest):
"""See ``HTML5TreeBuilderSmokeTest``."""
@property
def default_builder(self):
return HTML5TreeBuilder()
def test_soupstrainer(self):
# The html5lib tree builder does not support SoupStrainers.
strainer = SoupStrainer("b")
markup = "<p>A <b>bold</b> statement.</p>"
with warnings.catch_warnings(record=True) as w:
soup = self.soup(markup, parse_only=strainer)
self.assertEqual(
soup.decode(), self.document_for(markup))
self.assertTrue(
"the html5lib tree builder doesn't support parse_only" in
str(w[0].message))
def test_correctly_nested_tables(self):
"""html5lib inserts <tbody> tags where other parsers don't."""
markup = ('<table id="1">'
'<tr>'
"<td>Here's another table:"
'<table id="2">'
'<tr><td>foo</td></tr>'
'</table></td>')
self.assertSoupEquals(
markup,
'<table id="1"><tbody><tr><td>Here\'s another table:'
'<table id="2"><tbody><tr><td>foo</td></tr></tbody></table>'
'</td></tr></tbody></table>')
self.assertSoupEquals(
"<table><thead><tr><td>Foo</td></tr></thead>"
"<tbody><tr><td>Bar</td></tr></tbody>"
"<tfoot><tr><td>Baz</td></tr></tfoot></table>")
def test_xml_declaration_followed_by_doctype(self):
markup = '''<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>foo</p>
</body>
</html>'''
soup = self.soup(markup)
# Verify that we can reach the <p> tag; this means the tree is connected.
self.assertEqual(b"<p>foo</p>", soup.p.encode())
def test_reparented_markup(self):
markup = '<p><em>foo</p>\n<p>bar<a></a></em></p>'
soup = self.soup(markup)
self.assertEqual("<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p></body>", soup.body.decode())
self.assertEqual(2, len(soup.find_all('p')))
def test_reparented_markup_ends_with_whitespace(self):
markup = '<p><em>foo</p>\n<p>bar<a></a></em></p>\n'
soup = self.soup(markup)
self.assertEqual("<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p>\n</body>", soup.body.decode())
self.assertEqual(2, len(soup.find_all('p')))
def test_processing_instruction(self):
"""Processing instructions become comments."""
markup = b"""<?PITarget PIContent?>"""
soup = self.soup(markup)
assert str(soup).startswith("<!--?PITarget PIContent?-->")
def test_cloned_multivalue_node(self):
markup = b"""<a class="my_class"><p></a>"""
soup = self.soup(markup)
a1, a2 = soup.find_all('a')
self.assertEqual(a1, a2)
assert a1 is not a2

View File

@@ -1,31 +0,0 @@
"""Tests to ensure that the html.parser tree builder generates good
trees."""
import pickle
from bs4.testing import SoupTest, HTMLTreeBuilderSmokeTest
from bs4.builder import HTMLParserTreeBuilder
class HTMLParserTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest):
@property
def default_builder(self):
return HTMLParserTreeBuilder()
def test_namespaced_system_doctype(self):
# html.parser can't handle namespaced doctypes, so skip this one.
pass
def test_namespaced_public_doctype(self):
# html.parser can't handle namespaced doctypes, so skip this one.
pass
def test_builder_is_pickled(self):
"""Unlike most tree builders, HTMLParserTreeBuilder and will
be restored after pickling.
"""
tree = self.soup("<a><b>foo</a>")
dumped = pickle.dumps(tree, 2)
loaded = pickle.loads(dumped)
self.assertTrue(isinstance(loaded.builder, type(tree.builder)))

View File

@@ -1,70 +0,0 @@
"""Tests to ensure that the lxml tree builder generates good trees."""
import warnings
try:
import lxml.etree
LXML_PRESENT = True
LXML_VERSION = lxml.etree.LXML_VERSION
except ImportError as e:
LXML_PRESENT = False
LXML_VERSION = (0,)
if LXML_PRESENT:
from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML
from bs4 import BeautifulStoneSoup
from bs4.testing import skipIf
from bs4.testing import (
HTMLTreeBuilderSmokeTest,
XMLTreeBuilderSmokeTest,
SoupTest,
skipIf,
)
@skipIf(
not LXML_PRESENT,
"lxml seems not to be present, not testing its tree builder.")
class LXMLTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest):
"""See ``HTMLTreeBuilderSmokeTest``."""
@property
def default_builder(self):
return LXMLTreeBuilder()
def test_out_of_range_entity(self):
self.assertSoupEquals(
"<p>foo&#10000000000000;bar</p>", "<p>foobar</p>")
self.assertSoupEquals(
"<p>foo&#x10000000000000;bar</p>", "<p>foobar</p>")
self.assertSoupEquals(
"<p>foo&#1000000000;bar</p>", "<p>foobar</p>")
# In lxml < 2.3.5, an empty doctype causes a segfault. Skip this
# test if an old version of lxml is installed.
@skipIf(
not LXML_PRESENT or LXML_VERSION < (2,3,5,0),
"Skipping doctype test for old version of lxml to avoid segfault.")
def test_empty_doctype(self):
soup = self.soup("<!DOCTYPE>")
doctype = soup.contents[0]
self.assertEqual("", doctype.strip())
def test_beautifulstonesoup_is_xml_parser(self):
# Make sure that the deprecated BSS class uses an xml builder
# if one is installed.
with warnings.catch_warnings(record=True) as w:
soup = BeautifulStoneSoup("<b />")
self.assertEqual("<b/>", str(soup.b))
self.assertTrue("BeautifulStoneSoup class is deprecated" in str(w[0].message))
@skipIf(
not LXML_PRESENT,
"lxml seems not to be present, not testing its XML tree builder.")
class LXMLXMLTreeBuilderSmokeTest(SoupTest, XMLTreeBuilderSmokeTest):
"""See ``HTMLTreeBuilderSmokeTest``."""
@property
def default_builder(self):
return LXMLTreeBuilderForXML()

View File

@@ -1,479 +0,0 @@
# -*- coding: utf-8 -*-
"""Tests of Beautiful Soup as a whole."""
import logging
import unittest
import sys
import tempfile
from bs4 import BeautifulSoup
from bs4.element import (
CharsetMetaAttributeValue,
ContentMetaAttributeValue,
SoupStrainer,
NamespacedAttribute,
)
import bs4.dammit
from bs4.dammit import (
EntitySubstitution,
UnicodeDammit,
EncodingDetector,
)
from bs4.testing import (
SoupTest,
skipIf,
)
import warnings
try:
from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML
LXML_PRESENT = True
except ImportError as e:
LXML_PRESENT = False
PYTHON_2_PRE_2_7 = (sys.version_info < (2,7))
PYTHON_3_PRE_3_2 = (sys.version_info[0] == 3 and sys.version_info < (3,2))
class TestConstructor(SoupTest):
def test_short_unicode_input(self):
data = "<h1>éé</h1>"
soup = self.soup(data)
self.assertEqual("éé", soup.h1.string)
def test_embedded_null(self):
data = "<h1>foo\0bar</h1>"
soup = self.soup(data)
self.assertEqual("foo\0bar", soup.h1.string)
def test_exclude_encodings(self):
utf8_data = "Räksmörgås".encode("utf-8")
soup = self.soup(utf8_data, exclude_encodings=["utf-8"])
self.assertEqual("windows-1252", soup.original_encoding)
class TestWarnings(SoupTest):
def _no_parser_specified(self, s, is_there=True):
v = s.startswith(BeautifulSoup.NO_PARSER_SPECIFIED_WARNING[:80])
self.assertTrue(v)
def test_warning_if_no_parser_specified(self):
with warnings.catch_warnings(record=True) as w:
soup = self.soup("<a><b></b></a>")
msg = str(w[0].message)
self._assert_no_parser_specified(msg)
def test_warning_if_parser_specified_too_vague(self):
with warnings.catch_warnings(record=True) as w:
soup = self.soup("<a><b></b></a>", "html")
msg = str(w[0].message)
self._assert_no_parser_specified(msg)
def test_no_warning_if_explicit_parser_specified(self):
with warnings.catch_warnings(record=True) as w:
soup = self.soup("<a><b></b></a>", "html.parser")
self.assertEqual([], w)
def test_parseOnlyThese_renamed_to_parse_only(self):
with warnings.catch_warnings(record=True) as w:
soup = self.soup("<a><b></b></a>", parseOnlyThese=SoupStrainer("b"))
msg = str(w[0].message)
self.assertTrue("parseOnlyThese" in msg)
self.assertTrue("parse_only" in msg)
self.assertEqual(b"<b></b>", soup.encode())
def test_fromEncoding_renamed_to_from_encoding(self):
with warnings.catch_warnings(record=True) as w:
utf8 = b"\xc3\xa9"
soup = self.soup(utf8, fromEncoding="utf8")
msg = str(w[0].message)
self.assertTrue("fromEncoding" in msg)
self.assertTrue("from_encoding" in msg)
self.assertEqual("utf8", soup.original_encoding)
def test_unrecognized_keyword_argument(self):
self.assertRaises(
TypeError, self.soup, "<a>", no_such_argument=True)
class TestWarnings(SoupTest):
def test_disk_file_warning(self):
filehandle = tempfile.NamedTemporaryFile()
filename = filehandle.name
try:
with warnings.catch_warnings(record=True) as w:
soup = self.soup(filename)
msg = str(w[0].message)
self.assertTrue("looks like a filename" in msg)
finally:
filehandle.close()
# The file no longer exists, so Beautiful Soup will no longer issue the warning.
with warnings.catch_warnings(record=True) as w:
soup = self.soup(filename)
self.assertEqual(0, len(w))
def test_url_warning(self):
with warnings.catch_warnings(record=True) as w:
soup = self.soup("http://www.crummy.com/")
msg = str(w[0].message)
self.assertTrue("looks like a URL" in msg)
with warnings.catch_warnings(record=True) as w:
soup = self.soup("http://www.crummy.com/ is great")
self.assertEqual(0, len(w))
class TestSelectiveParsing(SoupTest):
def test_parse_with_soupstrainer(self):
markup = "No<b>Yes</b><a>No<b>Yes <c>Yes</c></b>"
strainer = SoupStrainer("b")
soup = self.soup(markup, parse_only=strainer)
self.assertEqual(soup.encode(), b"<b>Yes</b><b>Yes <c>Yes</c></b>")
class TestEntitySubstitution(unittest.TestCase):
"""Standalone tests of the EntitySubstitution class."""
def setUp(self):
self.sub = EntitySubstitution
def test_simple_html_substitution(self):
# Unicode characters corresponding to named HTML entites
# are substituted, and no others.
s = "foo\u2200\N{SNOWMAN}\u00f5bar"
self.assertEqual(self.sub.substitute_html(s),
"foo&forall;\N{SNOWMAN}&otilde;bar")
def test_smart_quote_substitution(self):
# MS smart quotes are a common source of frustration, so we
# give them a special test.
quotes = b"\x91\x92foo\x93\x94"
dammit = UnicodeDammit(quotes)
self.assertEqual(self.sub.substitute_html(dammit.markup),
"&lsquo;&rsquo;foo&ldquo;&rdquo;")
def test_xml_converstion_includes_no_quotes_if_make_quoted_attribute_is_false(self):
s = 'Welcome to "my bar"'
self.assertEqual(self.sub.substitute_xml(s, False), s)
def test_xml_attribute_quoting_normally_uses_double_quotes(self):
self.assertEqual(self.sub.substitute_xml("Welcome", True),
'"Welcome"')
self.assertEqual(self.sub.substitute_xml("Bob's Bar", True),
'"Bob\'s Bar"')
def test_xml_attribute_quoting_uses_single_quotes_when_value_contains_double_quotes(self):
s = 'Welcome to "my bar"'
self.assertEqual(self.sub.substitute_xml(s, True),
"'Welcome to \"my bar\"'")
def test_xml_attribute_quoting_escapes_single_quotes_when_value_contains_both_single_and_double_quotes(self):
s = 'Welcome to "Bob\'s Bar"'
self.assertEqual(
self.sub.substitute_xml(s, True),
'"Welcome to &quot;Bob\'s Bar&quot;"')
def test_xml_quotes_arent_escaped_when_value_is_not_being_quoted(self):
quoted = 'Welcome to "Bob\'s Bar"'
self.assertEqual(self.sub.substitute_xml(quoted), quoted)
def test_xml_quoting_handles_angle_brackets(self):
self.assertEqual(
self.sub.substitute_xml("foo<bar>"),
"foo&lt;bar&gt;")
def test_xml_quoting_handles_ampersands(self):
self.assertEqual(self.sub.substitute_xml("AT&T"), "AT&amp;T")
def test_xml_quoting_including_ampersands_when_they_are_part_of_an_entity(self):
self.assertEqual(
self.sub.substitute_xml("&Aacute;T&T"),
"&amp;Aacute;T&amp;T")
def test_xml_quoting_ignoring_ampersands_when_they_are_part_of_an_entity(self):
self.assertEqual(
self.sub.substitute_xml_containing_entities("&Aacute;T&T"),
"&Aacute;T&amp;T")
def test_quotes_not_html_substituted(self):
"""There's no need to do this except inside attribute values."""
text = 'Bob\'s "bar"'
self.assertEqual(self.sub.substitute_html(text), text)
class TestEncodingConversion(SoupTest):
# Test Beautiful Soup's ability to decode and encode from various
# encodings.
def setUp(self):
super(TestEncodingConversion, self).setUp()
self.unicode_data = '<html><head><meta charset="utf-8"/></head><body><foo>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</foo></body></html>'
self.utf8_data = self.unicode_data.encode("utf-8")
# Just so you know what it looks like.
self.assertEqual(
self.utf8_data,
b'<html><head><meta charset="utf-8"/></head><body><foo>Sacr\xc3\xa9 bleu!</foo></body></html>')
def test_ascii_in_unicode_out(self):
# ASCII input is converted to Unicode. The original_encoding
# attribute is set to 'utf-8', a superset of ASCII.
chardet = bs4.dammit.chardet_dammit
logging.disable(logging.WARNING)
try:
def noop(str):
return None
# Disable chardet, which will realize that the ASCII is ASCII.
bs4.dammit.chardet_dammit = noop
ascii = b"<foo>a</foo>"
soup_from_ascii = self.soup(ascii)
unicode_output = soup_from_ascii.decode()
self.assertTrue(isinstance(unicode_output, str))
self.assertEqual(unicode_output, self.document_for(ascii.decode()))
self.assertEqual(soup_from_ascii.original_encoding.lower(), "utf-8")
finally:
logging.disable(logging.NOTSET)
bs4.dammit.chardet_dammit = chardet
def test_unicode_in_unicode_out(self):
# Unicode input is left alone. The original_encoding attribute
# is not set.
soup_from_unicode = self.soup(self.unicode_data)
self.assertEqual(soup_from_unicode.decode(), self.unicode_data)
self.assertEqual(soup_from_unicode.foo.string, 'Sacr\xe9 bleu!')
self.assertEqual(soup_from_unicode.original_encoding, None)
def test_utf8_in_unicode_out(self):
# UTF-8 input is converted to Unicode. The original_encoding
# attribute is set.
soup_from_utf8 = self.soup(self.utf8_data)
self.assertEqual(soup_from_utf8.decode(), self.unicode_data)
self.assertEqual(soup_from_utf8.foo.string, 'Sacr\xe9 bleu!')
def test_utf8_out(self):
# The internal data structures can be encoded as UTF-8.
soup_from_unicode = self.soup(self.unicode_data)
self.assertEqual(soup_from_unicode.encode('utf-8'), self.utf8_data)
@skipIf(
PYTHON_2_PRE_2_7 or PYTHON_3_PRE_3_2,
"Bad HTMLParser detected; skipping test of non-ASCII characters in attribute name.")
def test_attribute_name_containing_unicode_characters(self):
markup = '<div><a \N{SNOWMAN}="snowman"></a></div>'
self.assertEqual(self.soup(markup).div.encode("utf8"), markup.encode("utf8"))
class TestUnicodeDammit(unittest.TestCase):
"""Standalone tests of UnicodeDammit."""
def test_unicode_input(self):
markup = "I'm already Unicode! \N{SNOWMAN}"
dammit = UnicodeDammit(markup)
self.assertEqual(dammit.unicode_markup, markup)
def test_smart_quotes_to_unicode(self):
markup = b"<foo>\x91\x92\x93\x94</foo>"
dammit = UnicodeDammit(markup)
self.assertEqual(
dammit.unicode_markup, "<foo>\u2018\u2019\u201c\u201d</foo>")
def test_smart_quotes_to_xml_entities(self):
markup = b"<foo>\x91\x92\x93\x94</foo>"
dammit = UnicodeDammit(markup, smart_quotes_to="xml")
self.assertEqual(
dammit.unicode_markup, "<foo>&#x2018;&#x2019;&#x201C;&#x201D;</foo>")
def test_smart_quotes_to_html_entities(self):
markup = b"<foo>\x91\x92\x93\x94</foo>"
dammit = UnicodeDammit(markup, smart_quotes_to="html")
self.assertEqual(
dammit.unicode_markup, "<foo>&lsquo;&rsquo;&ldquo;&rdquo;</foo>")
def test_smart_quotes_to_ascii(self):
markup = b"<foo>\x91\x92\x93\x94</foo>"
dammit = UnicodeDammit(markup, smart_quotes_to="ascii")
self.assertEqual(
dammit.unicode_markup, """<foo>''""</foo>""")
def test_detect_utf8(self):
utf8 = b"Sacr\xc3\xa9 bleu! \xe2\x98\x83"
dammit = UnicodeDammit(utf8)
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
self.assertEqual(dammit.unicode_markup, 'Sacr\xe9 bleu! \N{SNOWMAN}')
def test_convert_hebrew(self):
hebrew = b"\xed\xe5\xec\xf9"
dammit = UnicodeDammit(hebrew, ["iso-8859-8"])
self.assertEqual(dammit.original_encoding.lower(), 'iso-8859-8')
self.assertEqual(dammit.unicode_markup, '\u05dd\u05d5\u05dc\u05e9')
def test_dont_see_smart_quotes_where_there_are_none(self):
utf_8 = b"\343\202\261\343\203\274\343\202\277\343\202\244 Watch"
dammit = UnicodeDammit(utf_8)
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
self.assertEqual(dammit.unicode_markup.encode("utf-8"), utf_8)
def test_ignore_inappropriate_codecs(self):
utf8_data = "Räksmörgås".encode("utf-8")
dammit = UnicodeDammit(utf8_data, ["iso-8859-8"])
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
def test_ignore_invalid_codecs(self):
utf8_data = "Räksmörgås".encode("utf-8")
for bad_encoding in ['.utf8', '...', 'utF---16.!']:
dammit = UnicodeDammit(utf8_data, [bad_encoding])
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
def test_exclude_encodings(self):
# This is UTF-8.
utf8_data = "Räksmörgås".encode("utf-8")
# But if we exclude UTF-8 from consideration, the guess is
# Windows-1252.
dammit = UnicodeDammit(utf8_data, exclude_encodings=["utf-8"])
self.assertEqual(dammit.original_encoding.lower(), 'windows-1252')
# And if we exclude that, there is no valid guess at all.
dammit = UnicodeDammit(
utf8_data, exclude_encodings=["utf-8", "windows-1252"])
self.assertEqual(dammit.original_encoding, None)
def test_encoding_detector_replaces_junk_in_encoding_name_with_replacement_character(self):
detected = EncodingDetector(
b'<?xml version="1.0" encoding="UTF-\xdb" ?>')
encodings = list(detected.encodings)
assert 'utf-\N{REPLACEMENT CHARACTER}' in encodings
def test_detect_html5_style_meta_tag(self):
for data in (
b'<html><meta charset="euc-jp" /></html>',
b"<html><meta charset='euc-jp' /></html>",
b"<html><meta charset=euc-jp /></html>",
b"<html><meta charset=euc-jp/></html>"):
dammit = UnicodeDammit(data, is_html=True)
self.assertEqual(
"euc-jp", dammit.original_encoding)
def test_last_ditch_entity_replacement(self):
# This is a UTF-8 document that contains bytestrings
# completely incompatible with UTF-8 (ie. encoded with some other
# encoding).
#
# Since there is no consistent encoding for the document,
# Unicode, Dammit will eventually encode the document as UTF-8
# and encode the incompatible characters as REPLACEMENT
# CHARACTER.
#
# If chardet is installed, it will detect that the document
# can be converted into ISO-8859-1 without errors. This happens
# to be the wrong encoding, but it is a consistent encoding, so the
# code we're testing here won't run.
#
# So we temporarily disable chardet if it's present.
doc = b"""\357\273\277<?xml version="1.0" encoding="UTF-8"?>
<html><b>\330\250\330\252\330\261</b>
<i>\310\322\321\220\312\321\355\344</i></html>"""
chardet = bs4.dammit.chardet_dammit
logging.disable(logging.WARNING)
try:
def noop(str):
return None
bs4.dammit.chardet_dammit = noop
dammit = UnicodeDammit(doc)
self.assertEqual(True, dammit.contains_replacement_characters)
self.assertTrue("\ufffd" in dammit.unicode_markup)
soup = BeautifulSoup(doc, "html.parser")
self.assertTrue(soup.contains_replacement_characters)
finally:
logging.disable(logging.NOTSET)
bs4.dammit.chardet_dammit = chardet
def test_byte_order_mark_removed(self):
# A document written in UTF-16LE will have its byte order marker stripped.
data = b'\xff\xfe<\x00a\x00>\x00\xe1\x00\xe9\x00<\x00/\x00a\x00>\x00'
dammit = UnicodeDammit(data)
self.assertEqual("<a>áé</a>", dammit.unicode_markup)
self.assertEqual("utf-16le", dammit.original_encoding)
def test_detwingle(self):
# Here's a UTF8 document.
utf8 = ("\N{SNOWMAN}" * 3).encode("utf8")
# Here's a Windows-1252 document.
windows_1252 = (
"\N{LEFT DOUBLE QUOTATION MARK}Hi, I like Windows!"
"\N{RIGHT DOUBLE QUOTATION MARK}").encode("windows_1252")
# Through some unholy alchemy, they've been stuck together.
doc = utf8 + windows_1252 + utf8
# The document can't be turned into UTF-8:
self.assertRaises(UnicodeDecodeError, doc.decode, "utf8")
# Unicode, Dammit thinks the whole document is Windows-1252,
# and decodes it into "☃☃☃“Hi, I like Windows!”☃☃☃"
# But if we run it through fix_embedded_windows_1252, it's fixed:
fixed = UnicodeDammit.detwingle(doc)
self.assertEqual(
"☃☃☃“Hi, I like Windows!”☃☃☃", fixed.decode("utf8"))
def test_detwingle_ignores_multibyte_characters(self):
# Each of these characters has a UTF-8 representation ending
# in \x93. \x93 is a smart quote if interpreted as
# Windows-1252. But our code knows to skip over multibyte
# UTF-8 characters, so they'll survive the process unscathed.
for tricky_unicode_char in (
"\N{LATIN SMALL LIGATURE OE}", # 2-byte char '\xc5\x93'
"\N{LATIN SUBSCRIPT SMALL LETTER X}", # 3-byte char '\xe2\x82\x93'
"\xf0\x90\x90\x93", # This is a CJK character, not sure which one.
):
input = tricky_unicode_char.encode("utf8")
self.assertTrue(input.endswith(b'\x93'))
output = UnicodeDammit.detwingle(input)
self.assertEqual(output, input)
class TestNamedspacedAttribute(SoupTest):
def test_name_may_be_none(self):
a = NamespacedAttribute("xmlns", None)
self.assertEqual(a, "xmlns")
def test_attribute_is_equivalent_to_colon_separated_string(self):
a = NamespacedAttribute("a", "b")
self.assertEqual("a:b", a)
def test_attributes_are_equivalent_if_prefix_and_name_identical(self):
a = NamespacedAttribute("a", "b", "c")
b = NamespacedAttribute("a", "b", "c")
self.assertEqual(a, b)
# The actual namespace is not considered.
c = NamespacedAttribute("a", "b", None)
self.assertEqual(a, c)
# But name and prefix are important.
d = NamespacedAttribute("a", "z", "c")
self.assertNotEqual(a, d)
e = NamespacedAttribute("z", "b", "c")
self.assertNotEqual(a, e)
class TestAttributeValueWithCharsetSubstitution(unittest.TestCase):
def test_content_meta_attribute_value(self):
value = CharsetMetaAttributeValue("euc-jp")
self.assertEqual("euc-jp", value)
self.assertEqual("euc-jp", value.original_value)
self.assertEqual("utf8", value.encode("utf8"))
def test_content_meta_attribute_value(self):
value = ContentMetaAttributeValue("text/html; charset=euc-jp")
self.assertEqual("text/html; charset=euc-jp", value)
self.assertEqual("text/html; charset=euc-jp", value.original_value)
self.assertEqual("text/html; charset=utf8", value.encode("utf8"))

File diff suppressed because it is too large Load Diff

View File

@@ -13,6 +13,7 @@ from bb.asyncrpc.client import parse_address, ADDR_TYPE_UNIX, ADDR_TYPE_WS
User = namedtuple("User", ("username", "permissions"))
def create_server(
addr,
dbname,
@@ -25,6 +26,7 @@ def create_server(
anon_perms=None,
admin_username=None,
admin_password=None,
reuseport=False,
):
def sqlite_engine():
from .sqlite import DatabaseEngine
@@ -60,9 +62,9 @@ def create_server(
s.start_unix_server(*a)
elif typ == ADDR_TYPE_WS:
url = urlparse(a[0])
s.start_websocket_server(url.hostname, url.port)
s.start_websocket_server(url.hostname, url.port, reuseport=reuseport)
else:
s.start_tcp_server(*a)
s.start_tcp_server(*a, reuseport=reuseport)
return s

View File

@@ -5,6 +5,7 @@
import logging
import socket
import asyncio
import bb.asyncrpc
import json
from . import create_async_client
@@ -13,6 +14,66 @@ from . import create_async_client
logger = logging.getLogger("hashserv.client")
class Batch(object):
def __init__(self):
self.done = False
self.cond = asyncio.Condition()
self.pending = []
self.results = []
self.sent_count = 0
async def recv(self, socket):
while True:
async with self.cond:
await self.cond.wait_for(lambda: self.pending or self.done)
if not self.pending:
if self.done:
return
continue
r = await socket.recv()
self.results.append(r)
async with self.cond:
self.pending.pop(0)
async def send(self, socket, msgs):
try:
# In the event of a restart due to a reconnect, all in-flight
# messages need to be resent first to keep to result count in sync
for m in self.pending:
await socket.send(m)
for m in msgs:
# Add the message to the pending list before attempting to send
# it so that if the send fails it will be retried
async with self.cond:
self.pending.append(m)
self.cond.notify()
self.sent_count += 1
await socket.send(m)
finally:
async with self.cond:
self.done = True
self.cond.notify()
async def process(self, socket, msgs):
await asyncio.gather(
self.recv(socket),
self.send(socket, msgs),
)
if len(self.results) != self.sent_count:
raise ValueError(
f"Expected result count {len(self.results)}. Expected {self.sent_count}"
)
return self.results
class AsyncClient(bb.asyncrpc.AsyncClient):
MODE_NORMAL = 0
MODE_GET_STREAM = 1
@@ -36,32 +97,52 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
if become:
await self.become_user(become)
async def send_stream(self, mode, msg):
async def send_stream_batch(self, mode, msgs):
"""
Does a "batch" process of stream messages. This sends the query
messages as fast as possible, and simultaneously attempts to read the
messages back. This helps to mitigate the effects of latency to the
hash equivalence server be allowing multiple queries to be "in-flight"
at once
The implementation does more complicated tracking using a count of sent
messages so that `msgs` can be a generator function (i.e. its length is
unknown)
"""
b = Batch()
async def proc():
nonlocal b
await self._set_mode(mode)
await self.socket.send(msg)
return await self.socket.recv()
return await b.process(self.socket, msgs)
return await self._send_wrapper(proc)
async def invoke(self, *args, **kwargs):
async def invoke(self, *args, skip_mode=False, **kwargs):
# It's OK if connection errors cause a failure here, because the mode
# is also reset to normal on a new connection
await self._set_mode(self.MODE_NORMAL)
if not skip_mode:
await self._set_mode(self.MODE_NORMAL)
return await super().invoke(*args, **kwargs)
async def _set_mode(self, new_mode):
async def stream_to_normal():
# Check if already in normal mode (e.g. due to a connection reset)
if self.mode == self.MODE_NORMAL:
return "ok"
await self.socket.send("END")
return await self.socket.recv()
async def normal_to_stream(command):
r = await self.invoke({command: None})
r = await self.invoke({command: None}, skip_mode=True)
if r != "ok":
self.check_invoke_error(r)
raise ConnectionError(
f"Unable to transition to stream mode: Bad response from server {r!r}"
)
self.logger.debug("Mode is now %s", command)
if new_mode == self.mode:
@@ -89,10 +170,15 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
self.mode = new_mode
async def get_unihash(self, method, taskhash):
r = await self.send_stream(self.MODE_GET_STREAM, "%s %s" % (method, taskhash))
if not r:
return None
return r
r = await self.get_unihash_batch([(method, taskhash)])
return r[0]
async def get_unihash_batch(self, args):
result = await self.send_stream_batch(
self.MODE_GET_STREAM,
(f"{method} {taskhash}" for method, taskhash in args),
)
return [r if r else None for r in result]
async def report_unihash(self, taskhash, method, outhash, unihash, extra={}):
m = extra.copy()
@@ -115,8 +201,12 @@ class AsyncClient(bb.asyncrpc.AsyncClient):
)
async def unihash_exists(self, unihash):
r = await self.send_stream(self.MODE_EXIST_STREAM, unihash)
return r == "true"
r = await self.unihash_exists_batch([unihash])
return r[0]
async def unihash_exists_batch(self, unihashes):
result = await self.send_stream_batch(self.MODE_EXIST_STREAM, unihashes)
return [r == "true" for r in result]
async def get_outhash(self, method, outhash, taskhash, with_unihash=True):
return await self.invoke(
@@ -237,10 +327,12 @@ class Client(bb.asyncrpc.Client):
"connect_tcp",
"connect_websocket",
"get_unihash",
"get_unihash_batch",
"report_unihash",
"report_unihash_equiv",
"get_taskhash",
"unihash_exists",
"unihash_exists_batch",
"get_outhash",
"get_stats",
"reset_stats",
@@ -264,83 +356,3 @@ class Client(bb.asyncrpc.Client):
def _get_async_client(self):
return AsyncClient(self.username, self.password)
class ClientPool(bb.asyncrpc.ClientPool):
def __init__(
self,
address,
max_clients,
*,
username=None,
password=None,
become=None,
):
super().__init__(max_clients)
self.address = address
self.username = username
self.password = password
self.become = become
async def _new_client(self):
client = await create_async_client(
self.address,
username=self.username,
password=self.password,
)
if self.become:
await client.become_user(self.become)
return client
def _run_key_tasks(self, queries, call):
results = {key: None for key in queries.keys()}
def make_task(key, args):
async def task(client):
nonlocal results
unihash = await call(client, args)
results[key] = unihash
return task
def gen_tasks():
for key, args in queries.items():
yield make_task(key, args)
self.run_tasks(gen_tasks())
return results
def get_unihashes(self, queries):
"""
Query multiple unihashes in parallel.
The queries argument is a dictionary with arbitrary key. The values
must be a tuple of (method, taskhash).
Returns a dictionary with a corresponding key for each input key, and
the value is the queried unihash (which might be none if the query
failed)
"""
async def call(client, args):
method, taskhash = args
return await client.get_unihash(method, taskhash)
return self._run_key_tasks(queries, call)
def unihashes_exist(self, queries):
"""
Query multiple unihash existence checks in parallel.
The queries argument is a dictionary with arbitrary key. The values
must be a unihash.
Returns a dictionary with a corresponding key for each input key, and
the value is True or False if the unihash is known by the server (or
None if there was a failure)
"""
async def call(client, unihash):
return await client.unihash_exists(unihash)
return self._run_key_tasks(queries, call)

View File

@@ -8,7 +8,6 @@
from . import create_server, create_client
from .server import DEFAULT_ANON_PERMS, ALL_PERMISSIONS
from bb.asyncrpc import InvokeError
from .client import ClientPool
import hashlib
import logging
import multiprocessing
@@ -94,9 +93,6 @@ class HashEquivalenceTestSetup(object):
return self.start_client(self.auth_server_address, user["username"], user["token"])
def setUp(self):
if sys.version_info < (3, 5, 0):
self.skipTest('Python 3.5 or later required')
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-hashserv')
self.addCleanup(self.temp_dir.cleanup)
@@ -555,8 +551,7 @@ class HashEquivalenceCommonTests(object):
# shares a taskhash with Task 2
self.assertClientGetHash(self.client, taskhash2, unihash2)
def test_client_pool_get_unihashes(self):
def test_get_unihash_batch(self):
TEST_INPUT = (
# taskhash outhash unihash
('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e','218e57509998197d570e2c98512d0105985dffc9'),
@@ -573,28 +568,27 @@ class HashEquivalenceCommonTests(object):
"6b6be7a84ab179b4240c4302518dc3f6",
)
with ClientPool(self.server_address, 10) as client_pool:
for taskhash, outhash, unihash in TEST_INPUT:
self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
for taskhash, outhash, unihash in TEST_INPUT:
self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
query = {idx: (self.METHOD, data[0]) for idx, data in enumerate(TEST_INPUT)}
for idx, taskhash in enumerate(EXTRA_QUERIES):
query[idx + len(TEST_INPUT)] = (self.METHOD, taskhash)
result = client_pool.get_unihashes(query)
result = self.client.get_unihash_batch(
[(self.METHOD, data[0]) for data in TEST_INPUT] +
[(self.METHOD, e) for e in EXTRA_QUERIES]
)
self.assertDictEqual(result, {
0: "218e57509998197d570e2c98512d0105985dffc9",
1: "218e57509998197d570e2c98512d0105985dffc9",
2: "218e57509998197d570e2c98512d0105985dffc9",
3: "3b5d3d83f07f259e9086fcb422c855286e18a57d",
4: "f46d3fbb439bd9b921095da657a4de906510d2cd",
5: "f46d3fbb439bd9b921095da657a4de906510d2cd",
6: "05d2a63c81e32f0a36542ca677e8ad852365c538",
7: None,
})
self.assertListEqual(result, [
"218e57509998197d570e2c98512d0105985dffc9",
"218e57509998197d570e2c98512d0105985dffc9",
"218e57509998197d570e2c98512d0105985dffc9",
"3b5d3d83f07f259e9086fcb422c855286e18a57d",
"f46d3fbb439bd9b921095da657a4de906510d2cd",
"f46d3fbb439bd9b921095da657a4de906510d2cd",
"05d2a63c81e32f0a36542ca677e8ad852365c538",
None,
])
def test_client_pool_unihash_exists(self):
def test_unihash_exists_batch(self):
TEST_INPUT = (
# taskhash outhash unihash
('8aa96fcffb5831b3c2c0cb75f0431e3f8b20554a', 'afe240a439959ce86f5e322f8c208e1fedefea9e813f2140c81af866cc9edf7e','218e57509998197d570e2c98512d0105985dffc9'),
@@ -614,28 +608,24 @@ class HashEquivalenceCommonTests(object):
result_unihashes = set()
with ClientPool(self.server_address, 10) as client_pool:
for taskhash, outhash, unihash in TEST_INPUT:
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
result_unihashes.add(result["unihash"])
for taskhash, outhash, unihash in TEST_INPUT:
result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash)
result_unihashes.add(result["unihash"])
query = {}
expected = {}
query = []
expected = []
for _, _, unihash in TEST_INPUT:
idx = len(query)
query[idx] = unihash
expected[idx] = unihash in result_unihashes
for _, _, unihash in TEST_INPUT:
query.append(unihash)
expected.append(unihash in result_unihashes)
for unihash in EXTRA_QUERIES:
idx = len(query)
query[idx] = unihash
expected[idx] = False
result = client_pool.unihashes_exist(query)
self.assertDictEqual(result, expected)
for unihash in EXTRA_QUERIES:
query.append(unihash)
expected.append(False)
result = self.client.unihash_exists_batch(query)
self.assertListEqual(result, expected)
def test_auth_read_perms(self):
admin_client = self.start_auth_server()

View File

@@ -4,17 +4,92 @@
# SPDX-License-Identifier: GPL-2.0-only
#
__version__ = "1.0.0"
import os, time
import sys, logging
__version__ = "2.0.0"
def init_logger(logfile, loglevel):
numeric_level = getattr(logging, loglevel.upper(), None)
if not isinstance(numeric_level, int):
raise ValueError("Invalid log level: %s" % loglevel)
FORMAT = "%(asctime)-15s %(message)s"
logging.basicConfig(level=numeric_level, filename=logfile, format=FORMAT)
import logging
logger = logging.getLogger("BitBake.PRserv")
class NotFoundError(Exception):
pass
from bb.asyncrpc.client import parse_address, ADDR_TYPE_UNIX, ADDR_TYPE_WS
def create_server(addr, dbpath, upstream=None, read_only=False):
from . import serv
s = serv.PRServer(dbpath, upstream=upstream, read_only=read_only)
host, port = addr.split(":")
s.start_tcp_server(host, int(port))
return s
def increase_revision(ver):
"""Take a revision string such as "1" or "1.2.3" or even a number and increase its last number
This fails if the last number is not an integer"""
fields=str(ver).split('.')
last = fields[-1]
try:
val = int(last)
except Exception as e:
logger.critical("Unable to increase revision value %s: %s" % (ver, e))
raise e
return ".".join(fields[0:-1] + list(str(val + 1)))
def _revision_greater_or_equal(rev1, rev2):
"""Compares x.y.z revision numbers, using integer comparison
Returns True if rev1 is greater or equal to rev2"""
fields1 = rev1.split(".")
fields2 = rev2.split(".")
l1 = len(fields1)
l2 = len(fields2)
for i in range(l1):
val1 = int(fields1[i])
if i < l2:
val2 = int(fields2[i])
if val2 < val1:
return True
elif val2 > val1:
return False
else:
return True
return True
def revision_smaller(rev1, rev2):
"""Compares x.y.z revision numbers, using integer comparison
Returns True if rev1 is strictly smaller than rev2"""
return not(_revision_greater_or_equal(rev1, rev2))
def revision_greater(rev1, rev2):
"""Compares x.y.z revision numbers, using integer comparison
Returns True if rev1 is strictly greater than rev2"""
return _revision_greater_or_equal(rev1, rev2) and (rev1 != rev2)
def create_client(addr):
from . import client
c = client.PRClient()
try:
(typ, a) = parse_address(addr)
c.connect_tcp(*a)
return c
except Exception as e:
c.close()
raise e
async def create_async_client(addr):
from . import client
c = client.PRAsyncClient()
try:
(typ, a) = parse_address(addr)
await c.connect_tcp(*a)
return c
except Exception as e:
await c.close()
raise e

View File

@@ -6,6 +6,7 @@
import logging
import bb.asyncrpc
from . import create_async_client
logger = logging.getLogger("BitBake.PRserv")
@@ -13,16 +14,16 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient):
def __init__(self):
super().__init__("PRSERVICE", "1.0", logger)
async def getPR(self, version, pkgarch, checksum):
async def getPR(self, version, pkgarch, checksum, history=False):
response = await self.invoke(
{"get-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum}}
{"get-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "history": history}}
)
if response:
return response["value"]
async def test_pr(self, version, pkgarch, checksum):
async def test_pr(self, version, pkgarch, checksum, history=False):
response = await self.invoke(
{"test-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum}}
{"test-pr": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "history": history}}
)
if response:
return response["value"]
@@ -48,9 +49,9 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient):
if response:
return response["value"]
async def export(self, version, pkgarch, checksum, colinfo):
async def export(self, version, pkgarch, checksum, colinfo, history=False):
response = await self.invoke(
{"export": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "colinfo": colinfo}}
{"export": {"version": version, "pkgarch": pkgarch, "checksum": checksum, "colinfo": colinfo, "history": history}}
)
if response:
return (response["metainfo"], response["datainfo"])
@@ -65,7 +66,7 @@ class PRAsyncClient(bb.asyncrpc.AsyncClient):
class PRClient(bb.asyncrpc.Client):
def __init__(self):
super().__init__()
self._add_methods("getPR", "test_pr", "test_package", "importone", "export", "is_readonly")
self._add_methods("getPR", "test_pr", "test_package", "max_package_pr", "importone", "export", "is_readonly")
def _get_async_client(self):
return PRAsyncClient()

View File

@@ -8,19 +8,13 @@ import logging
import os.path
import errno
import prserv
import time
import sqlite3
try:
import sqlite3
except ImportError:
from pysqlite2 import dbapi2 as sqlite3
from contextlib import closing
from . import increase_revision, revision_greater, revision_smaller
logger = logging.getLogger("BitBake.PRserv")
sqlversion = sqlite3.sqlite_version_info
if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
raise Exception("sqlite3 version 3.3.0 or later is required.")
#
# "No History" mode - for a given query tuple (version, pkgarch, checksum),
# the returned value will be the largest among all the values of the same
@@ -29,287 +23,232 @@ if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
# "History" mode - Return a new higher value for previously unseen query
# tuple (version, pkgarch, checksum), otherwise return historical value.
# Value can decrement if returning to a previous build.
#
class PRTable(object):
def __init__(self, conn, table, nohist, read_only):
def __init__(self, conn, table, read_only):
self.conn = conn
self.nohist = nohist
self.read_only = read_only
self.dirty = False
if nohist:
self.table = "%s_nohist" % table
else:
self.table = "%s_hist" % table
self.table = table
if self.read_only:
table_exists = self._execute(
"SELECT count(*) FROM sqlite_master \
WHERE type='table' AND name='%s'" % (self.table))
if not table_exists:
raise prserv.NotFoundError
else:
self._execute("CREATE TABLE IF NOT EXISTS %s \
# Creating the table even if the server is read-only.
# This avoids a race condition if a shared database
# is accessed by a read-only server first.
with closing(self.conn.cursor()) as cursor:
cursor.execute("CREATE TABLE IF NOT EXISTS %s \
(version TEXT NOT NULL, \
pkgarch TEXT NOT NULL, \
checksum TEXT NOT NULL, \
value INTEGER, \
PRIMARY KEY (version, pkgarch, checksum));" % self.table)
def _execute(self, *query):
"""Execute a query, waiting to acquire a lock if necessary"""
start = time.time()
end = start + 20
while True:
try:
return self.conn.execute(*query)
except sqlite3.OperationalError as exc:
if "is locked" in str(exc) and end > time.time():
continue
raise exc
def sync(self):
if not self.read_only:
value TEXT, \
PRIMARY KEY (version, pkgarch, checksum, value));" % self.table)
self.conn.commit()
self._execute("BEGIN EXCLUSIVE TRANSACTION")
def sync_if_dirty(self):
if self.dirty:
self.sync()
self.dirty = False
def _extremum_value(self, rows, is_max):
value = None
for row in rows:
current_value = row[0]
if value is None:
value = current_value
else:
if is_max:
is_new_extremum = revision_greater(current_value, value)
else:
is_new_extremum = revision_smaller(current_value, value)
if is_new_extremum:
value = current_value
return value
def _max_value(self, rows):
return self._extremum_value(rows, True)
def _min_value(self, rows):
return self._extremum_value(rows, False)
def test_package(self, version, pkgarch):
"""Returns whether the specified package version is found in the database for the specified architecture"""
# Just returns the value if found or None otherwise
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=?;" % self.table,
(version, pkgarch))
row=data.fetchone()
if row is not None:
return True
else:
return False
with closing(self.conn.cursor()) as cursor:
data=cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=?;" % self.table,
(version, pkgarch))
row=data.fetchone()
if row is not None:
return True
else:
return False
def test_checksum_value(self, version, pkgarch, checksum, value):
"""Returns whether the specified value is found in the database for the specified package, architecture and checksum"""
with closing(self.conn.cursor()) as cursor:
data=cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? and checksum=? and value=?;" % self.table,
(version, pkgarch, checksum, value))
row=data.fetchone()
if row is not None:
return True
else:
return False
def test_value(self, version, pkgarch, value):
"""Returns whether the specified value is found in the database for the specified package and architecture"""
# Just returns the value if found or None otherwise
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? and value=?;" % self.table,
(version, pkgarch, value))
row=data.fetchone()
if row is not None:
return True
else:
return False
with closing(self.conn.cursor()) as cursor:
data=cursor.execute("SELECT value FROM %s WHERE version=? AND pkgarch=? and value=?;" % self.table,
(version, pkgarch, value))
row=data.fetchone()
if row is not None:
return True
else:
return False
def find_value(self, version, pkgarch, checksum):
"""Returns the value for the specified checksum if found or None otherwise."""
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
if row is not None:
return row[0]
else:
return None
def find_max_value(self, version, pkgarch):
def find_package_max_value(self, version, pkgarch):
"""Returns the greatest value for (version, pkgarch), or None if not found. Doesn't create a new value"""
data = self._execute("SELECT max(value) FROM %s where version=? AND pkgarch=?;" % (self.table),
(version, pkgarch))
row = data.fetchone()
if row is not None:
return row[0]
with closing(self.conn.cursor()) as cursor:
data = cursor.execute("SELECT value FROM %s where version=? AND pkgarch=?;" % (self.table),
(version, pkgarch))
rows = data.fetchall()
value = self._max_value(rows)
return value
def find_value(self, version, pkgarch, checksum, history=False):
"""Returns the value for the specified checksum if found or None otherwise."""
if history:
return self.find_min_value(version, pkgarch, checksum)
else:
return None
return self.find_max_value(version, pkgarch, checksum)
def _get_value_hist(self, version, pkgarch, checksum):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
if row is not None:
return row[0]
else:
#no value found, try to insert
if self.read_only:
data = self._execute("SELECT ifnull(max(value)+1, 0) FROM %s where version=? AND pkgarch=?;" % (self.table),
(version, pkgarch))
row = data.fetchone()
if row is not None:
return row[0]
else:
return 0
try:
self._execute("INSERT INTO %s VALUES (?, ?, ?, (select ifnull(max(value)+1, 0) from %s where version=? AND pkgarch=?));"
% (self.table, self.table),
(version, pkgarch, checksum, version, pkgarch))
except sqlite3.IntegrityError as exc:
logger.error(str(exc))
def _find_extremum_value(self, version, pkgarch, checksum, is_max):
"""Returns the maximum (if is_max is True) or minimum (if is_max is False) value
for (version, pkgarch, checksum), or None if not found. Doesn't create a new value"""
self.dirty = True
with closing(self.conn.cursor()) as cursor:
data = cursor.execute("SELECT value FROM %s where version=? AND pkgarch=? AND checksum=?;" % (self.table),
(version, pkgarch, checksum))
rows = data.fetchall()
return self._extremum_value(rows, is_max)
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
if row is not None:
return row[0]
def find_max_value(self, version, pkgarch, checksum):
return self._find_extremum_value(version, pkgarch, checksum, True)
def find_min_value(self, version, pkgarch, checksum):
return self._find_extremum_value(version, pkgarch, checksum, False)
def find_new_subvalue(self, version, pkgarch, base):
"""Take and increase the greatest "<base>.y" value for (version, pkgarch), or return "<base>.0" if not found.
This doesn't store a new value."""
with closing(self.conn.cursor()) as cursor:
data = cursor.execute("SELECT value FROM %s where version=? AND pkgarch=? AND value LIKE '%s.%%';" % (self.table, base),
(version, pkgarch))
rows = data.fetchall()
value = self._max_value(rows)
if value is not None:
return increase_revision(value)
else:
raise prserv.NotFoundError
return base + ".0"
def _get_value_no_hist(self, version, pkgarch, checksum):
data=self._execute("SELECT value FROM %s \
WHERE version=? AND pkgarch=? AND checksum=? AND \
value >= (select max(value) from %s where version=? AND pkgarch=?);"
% (self.table, self.table),
(version, pkgarch, checksum, version, pkgarch))
row=data.fetchone()
if row is not None:
return row[0]
else:
#no value found, try to insert
if self.read_only:
data = self._execute("SELECT ifnull(max(value)+1, 0) FROM %s where version=? AND pkgarch=?;" % (self.table),
(version, pkgarch))
return data.fetchone()[0]
def store_value(self, version, pkgarch, checksum, value):
"""Store value in the database"""
try:
self._execute("INSERT OR REPLACE INTO %s VALUES (?, ?, ?, (select ifnull(max(value)+1, 0) from %s where version=? AND pkgarch=?));"
% (self.table, self.table),
(version, pkgarch, checksum, version, pkgarch))
except sqlite3.IntegrityError as exc:
logger.error(str(exc))
self.conn.rollback()
self.dirty = True
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row=data.fetchone()
if row is not None:
return row[0]
else:
raise prserv.NotFoundError
def get_value(self, version, pkgarch, checksum):
if self.nohist:
return self._get_value_no_hist(version, pkgarch, checksum)
else:
return self._get_value_hist(version, pkgarch, checksum)
def _import_hist(self, version, pkgarch, checksum, value):
if self.read_only:
return None
val = None
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row = data.fetchone()
if row is not None:
val=row[0]
else:
#no value found, try to insert
try:
self._execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table),
if not self.read_only and not self.test_checksum_value(version, pkgarch, checksum, value):
with closing(self.conn.cursor()) as cursor:
cursor.execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table),
(version, pkgarch, checksum, value))
except sqlite3.IntegrityError as exc:
logger.error(str(exc))
self.conn.commit()
self.dirty = True
def _get_value(self, version, pkgarch, checksum, history):
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))
row = data.fetchone()
if row is not None:
val = row[0]
return val
max_value = self.find_package_max_value(version, pkgarch)
def _import_no_hist(self, version, pkgarch, checksum, value):
if self.read_only:
return None
if max_value is None:
# version, pkgarch completely unknown. Return initial value.
return "0"
try:
#try to insert
self._execute("INSERT INTO %s VALUES (?, ?, ?, ?);" % (self.table),
(version, pkgarch, checksum, value))
except sqlite3.IntegrityError as exc:
#already have the record, try to update
try:
self._execute("UPDATE %s SET value=? WHERE version=? AND pkgarch=? AND checksum=? AND value<?"
% (self.table),
(value, version, pkgarch, checksum, value))
except sqlite3.IntegrityError as exc:
logger.error(str(exc))
value = self.find_value(version, pkgarch, checksum, history)
self.dirty = True
if value is None:
# version, pkgarch found but not checksum. Create a new value from the maximum one
return increase_revision(max_value)
data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table,
(version, pkgarch, checksum, value))
row=data.fetchone()
if row is not None:
return row[0]
if history:
return value
# "no history" mode - If the value is not the maximum value for the package, need to increase it.
if max_value > value:
return increase_revision(max_value)
else:
return None
return value
def get_value(self, version, pkgarch, checksum, history):
value = self._get_value(version, pkgarch, checksum, history)
if not self.read_only:
self.store_value(version, pkgarch, checksum, value)
return value
def importone(self, version, pkgarch, checksum, value):
if self.nohist:
return self._import_no_hist(version, pkgarch, checksum, value)
else:
return self._import_hist(version, pkgarch, checksum, value)
self.store_value(version, pkgarch, checksum, value)
return value
def export(self, version, pkgarch, checksum, colinfo):
def export(self, version, pkgarch, checksum, colinfo, history=False):
metainfo = {}
#column info
if colinfo:
metainfo["tbl_name"] = self.table
metainfo["core_ver"] = prserv.__version__
metainfo["col_info"] = []
data = self._execute("PRAGMA table_info(%s);" % self.table)
with closing(self.conn.cursor()) as cursor:
#column info
if colinfo:
metainfo["tbl_name"] = self.table
metainfo["core_ver"] = prserv.__version__
metainfo["col_info"] = []
data = cursor.execute("PRAGMA table_info(%s);" % self.table)
for row in data:
col = {}
col["name"] = row["name"]
col["type"] = row["type"]
col["notnull"] = row["notnull"]
col["dflt_value"] = row["dflt_value"]
col["pk"] = row["pk"]
metainfo["col_info"].append(col)
#data info
datainfo = []
if history:
sqlstmt = "SELECT * FROM %s as T1 WHERE 1=1 " % self.table
else:
sqlstmt = "SELECT T1.version, T1.pkgarch, T1.checksum, T1.value FROM %s as T1, \
(SELECT version, pkgarch, max(value) as maxvalue FROM %s GROUP BY version, pkgarch) as T2 \
WHERE T1.version=T2.version AND T1.pkgarch=T2.pkgarch AND T1.value=T2.maxvalue " % (self.table, self.table)
sqlarg = []
where = ""
if version:
where += "AND T1.version=? "
sqlarg.append(str(version))
if pkgarch:
where += "AND T1.pkgarch=? "
sqlarg.append(str(pkgarch))
if checksum:
where += "AND T1.checksum=? "
sqlarg.append(str(checksum))
sqlstmt += where + ";"
if len(sqlarg):
data = cursor.execute(sqlstmt, tuple(sqlarg))
else:
data = cursor.execute(sqlstmt)
for row in data:
col = {}
col["name"] = row["name"]
col["type"] = row["type"]
col["notnull"] = row["notnull"]
col["dflt_value"] = row["dflt_value"]
col["pk"] = row["pk"]
metainfo["col_info"].append(col)
#data info
datainfo = []
if self.nohist:
sqlstmt = "SELECT T1.version, T1.pkgarch, T1.checksum, T1.value FROM %s as T1, \
(SELECT version, pkgarch, max(value) as maxvalue FROM %s GROUP BY version, pkgarch) as T2 \
WHERE T1.version=T2.version AND T1.pkgarch=T2.pkgarch AND T1.value=T2.maxvalue " % (self.table, self.table)
else:
sqlstmt = "SELECT * FROM %s as T1 WHERE 1=1 " % self.table
sqlarg = []
where = ""
if version:
where += "AND T1.version=? "
sqlarg.append(str(version))
if pkgarch:
where += "AND T1.pkgarch=? "
sqlarg.append(str(pkgarch))
if checksum:
where += "AND T1.checksum=? "
sqlarg.append(str(checksum))
sqlstmt += where + ";"
if len(sqlarg):
data = self._execute(sqlstmt, tuple(sqlarg))
else:
data = self._execute(sqlstmt)
for row in data:
if row["version"]:
col = {}
col["version"] = row["version"]
col["pkgarch"] = row["pkgarch"]
col["checksum"] = row["checksum"]
col["value"] = row["value"]
datainfo.append(col)
if row["version"]:
col = {}
col["version"] = row["version"]
col["pkgarch"] = row["pkgarch"]
col["checksum"] = row["checksum"]
col["value"] = row["value"]
datainfo.append(col)
return (metainfo, datainfo)
def dump_db(self, fd):
@@ -322,9 +261,8 @@ class PRTable(object):
class PRData(object):
"""Object representing the PR database"""
def __init__(self, filename, nohist=True, read_only=False):
def __init__(self, filename, read_only=False):
self.filename=os.path.abspath(filename)
self.nohist=nohist
self.read_only = read_only
#build directory hierarchy
try:
@@ -334,14 +272,15 @@ class PRData(object):
raise e
uri = "file:%s%s" % (self.filename, "?mode=ro" if self.read_only else "")
logger.debug("Opening PRServ database '%s'" % (uri))
self.connection=sqlite3.connect(uri, uri=True, isolation_level="EXCLUSIVE", check_same_thread = False)
self.connection=sqlite3.connect(uri, uri=True)
self.connection.row_factory=sqlite3.Row
if not self.read_only:
self.connection.execute("pragma synchronous = off;")
self.connection.execute("PRAGMA journal_mode = MEMORY;")
self.connection.execute("PRAGMA synchronous = OFF;")
self.connection.execute("PRAGMA journal_mode = WAL;")
self.connection.commit()
self._tables={}
def disconnect(self):
self.connection.commit()
self.connection.close()
def __getitem__(self, tblname):
@@ -351,7 +290,7 @@ class PRData(object):
if tblname in self._tables:
return self._tables[tblname]
else:
tableobj = self._tables[tblname] = PRTable(self.connection, tblname, self.nohist, self.read_only)
tableobj = self._tables[tblname] = PRTable(self.connection, tblname, self.read_only)
return tableobj
def __delitem__(self, tblname):
@@ -359,3 +298,4 @@ class PRData(object):
del self._tables[tblname]
logger.info("drop table %s" % (tblname))
self.connection.execute("DROP TABLE IF EXISTS %s;" % tblname)
self.connection.commit()

View File

@@ -12,6 +12,7 @@ import sqlite3
import prserv
import prserv.db
import errno
from . import create_async_client, revision_smaller, increase_revision
import bb.asyncrpc
logger = logging.getLogger("BitBake.PRserv")
@@ -41,18 +42,16 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
try:
return await super().dispatch_message(msg)
except:
self.server.table.sync()
raise
else:
self.server.table.sync_if_dirty()
async def handle_test_pr(self, request):
'''Finds the PR value corresponding to the request. If not found, returns None and doesn't insert a new value'''
version = request["version"]
pkgarch = request["pkgarch"]
checksum = request["checksum"]
history = request["history"]
value = self.server.table.find_value(version, pkgarch, checksum)
value = self.server.table.find_value(version, pkgarch, checksum, history)
return {"value": value}
async def handle_test_package(self, request):
@@ -68,22 +67,110 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
version = request["version"]
pkgarch = request["pkgarch"]
value = self.server.table.find_max_value(version, pkgarch)
value = self.server.table.find_package_max_value(version, pkgarch)
return {"value": value}
async def handle_get_pr(self, request):
version = request["version"]
pkgarch = request["pkgarch"]
checksum = request["checksum"]
history = request["history"]
if self.upstream_client is None:
value = self.server.table.get_value(version, pkgarch, checksum, history)
return {"value": value}
# We have an upstream server.
# Check whether the local server already knows the requested configuration.
# If the configuration is a new one, the generated value we will add will
# depend on what's on the upstream server. That's why we're calling find_value()
# instead of get_value() directly.
value = self.server.table.find_value(version, pkgarch, checksum, history)
upstream_max = await self.upstream_client.max_package_pr(version, pkgarch)
if value is not None:
# The configuration is already known locally.
if history:
value = self.server.table.get_value(version, pkgarch, checksum, history)
else:
existing_value = value
# In "no history", we need to make sure the value doesn't decrease
# and is at least greater than the maximum upstream value
# and the maximum local value
local_max = self.server.table.find_package_max_value(version, pkgarch)
if revision_smaller(value, local_max):
value = increase_revision(local_max)
if revision_smaller(value, upstream_max):
# Ask upstream whether it knows the checksum
upstream_value = await self.upstream_client.test_pr(version, pkgarch, checksum)
if upstream_value is None:
# Upstream doesn't have our checksum, let create a new one
value = upstream_max + ".0"
else:
# Fine to take the same value as upstream
value = upstream_max
if not value == existing_value and not self.server.read_only:
self.server.table.store_value(version, pkgarch, checksum, value)
return {"value": value}
# The configuration is a new one for the local server
# Let's ask the upstream server whether it knows it
known_upstream = await self.upstream_client.test_package(version, pkgarch)
if not known_upstream:
# The package is not known upstream, must be a local-only package
# Let's compute the PR number using the local-only method
value = self.server.table.get_value(version, pkgarch, checksum, history)
return {"value": value}
# The package is known upstream, let's ask the upstream server
# whether it knows our new output hash
value = await self.upstream_client.test_pr(version, pkgarch, checksum)
if value is not None:
# Upstream knows this output hash, let's store it and use it too.
if not self.server.read_only:
self.server.table.store_value(version, pkgarch, checksum, value)
# If the local server is read only, won't be able to store the new
# value in the database and will have to keep asking the upstream server
return {"value": value}
# The output hash doesn't exist upstream, get the most recent number from upstream (x)
# Then, we want to have a new PR value for the local server: x.y
upstream_max = await self.upstream_client.max_package_pr(version, pkgarch)
# Here we know that the package is known upstream, so upstream_max can't be None
subvalue = self.server.table.find_new_subvalue(version, pkgarch, upstream_max)
if not self.server.read_only:
self.server.table.store_value(version, pkgarch, checksum, subvalue)
return {"value": subvalue}
async def process_requests(self):
if self.server.upstream is not None:
self.upstream_client = await create_async_client(self.server.upstream)
else:
self.upstream_client = None
response = None
try:
value = self.server.table.get_value(version, pkgarch, checksum)
response = {"value": value}
except prserv.NotFoundError:
self.logger.error("failure storing value in database for (%s, %s)",version, checksum)
return response
await super().process_requests()
finally:
if self.upstream_client is not None:
await self.upstream_client.close()
async def handle_import_one(self, request):
response = None
@@ -104,9 +191,10 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
pkgarch = request["pkgarch"]
checksum = request["checksum"]
colinfo = request["colinfo"]
history = request["history"]
try:
(metainfo, datainfo) = self.server.table.export(version, pkgarch, checksum, colinfo)
(metainfo, datainfo) = self.server.table.export(version, pkgarch, checksum, colinfo, history)
except sqlite3.Error as exc:
self.logger.error(str(exc))
metainfo = datainfo = None
@@ -117,11 +205,12 @@ class PRServerClient(bb.asyncrpc.AsyncServerConnection):
return {"readonly": self.server.read_only}
class PRServer(bb.asyncrpc.AsyncServer):
def __init__(self, dbfile, read_only=False):
def __init__(self, dbfile, read_only=False, upstream=None):
super().__init__(logger)
self.dbfile = dbfile
self.table = None
self.read_only = read_only
self.upstream = upstream
def accept_client(self, socket):
return PRServerClient(socket, self)
@@ -134,27 +223,25 @@ class PRServer(bb.asyncrpc.AsyncServer):
self.logger.info("Started PRServer with DBfile: %s, Address: %s, PID: %s" %
(self.dbfile, self.address, str(os.getpid())))
if self.upstream is not None:
self.logger.info("And upstream PRServer: %s " % (self.upstream))
return tasks
async def stop(self):
self.table.sync_if_dirty()
self.db.disconnect()
await super().stop()
def signal_handler(self):
super().signal_handler()
if self.table:
self.table.sync()
class PRServSingleton(object):
def __init__(self, dbfile, logfile, host, port):
def __init__(self, dbfile, logfile, host, port, upstream):
self.dbfile = dbfile
self.logfile = logfile
self.host = host
self.port = port
self.upstream = upstream
def start(self):
self.prserv = PRServer(self.dbfile)
self.prserv = PRServer(self.dbfile, upstream=self.upstream)
self.prserv.start_tcp_server(socket.gethostbyname(self.host), self.port)
self.process = self.prserv.serve_as_process(log_level=logging.WARNING)
@@ -233,7 +320,7 @@ def run_as_daemon(func, pidfile, logfile):
os.remove(pidfile)
os._exit(0)
def start_daemon(dbfile, host, port, logfile, read_only=False):
def start_daemon(dbfile, host, port, logfile, read_only=False, upstream=None):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
@@ -249,7 +336,7 @@ def start_daemon(dbfile, host, port, logfile, read_only=False):
dbfile = os.path.abspath(dbfile)
def daemon_main():
server = PRServer(dbfile, read_only=read_only)
server = PRServer(dbfile, read_only=read_only, upstream=upstream)
server.start_tcp_server(ip, port)
server.serve_forever()
@@ -336,6 +423,9 @@ def auto_start(d):
host = host_params[0].strip().lower()
port = int(host_params[1])
upstream = d.getVar("PRSERV_UPSTREAM") or None
if is_local_special(host, port):
import bb.utils
cachedir = (d.getVar("PERSISTENT_DIR") or d.getVar("CACHE"))
@@ -350,7 +440,7 @@ def auto_start(d):
auto_shutdown()
if not singleton:
bb.utils.mkdirhier(cachedir)
singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), host, port)
singleton = PRServSingleton(os.path.abspath(dbfile), os.path.abspath(logfile), host, port, upstream)
singleton.start()
if singleton:
host = singleton.host

386
bitbake/lib/prserv/tests.py Normal file
View File

@@ -0,0 +1,386 @@
#! /usr/bin/env python3
#
# Copyright (C) 2024 BitBake Contributors
#
# SPDX-License-Identifier: GPL-2.0-only
#
from . import create_server, create_client, increase_revision, revision_greater, revision_smaller, _revision_greater_or_equal
import prserv.db as db
from bb.asyncrpc import InvokeError
import logging
import os
import sys
import tempfile
import unittest
import socket
import subprocess
from pathlib import Path
THIS_DIR = Path(__file__).parent
BIN_DIR = THIS_DIR.parent.parent / "bin"
version = "dummy-1.0-r0"
pkgarch = "core2-64"
other_arch = "aarch64"
checksumX = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4f0"
checksum0 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a0"
checksum1 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a1"
checksum2 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a2"
checksum3 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a3"
checksum4 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a4"
checksum5 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a5"
checksum6 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a6"
checksum7 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a7"
checksum8 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a8"
checksum9 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4a9"
checksum10 = "51bf8189dbe9ea81fa6dd89608bf19380c437a9cf12f6c6239887801ba4ab4aa"
def server_prefunc(server, name):
logging.basicConfig(level=logging.DEBUG, filename='prserv-%s.log' % name, filemode='w',
format='%(levelname)s %(filename)s:%(lineno)d %(message)s')
server.logger.debug("Running server %s" % name)
sys.stdout = open('prserv-stdout-%s.log' % name, 'w')
sys.stderr = sys.stdout
class PRTestSetup(object):
def start_server(self, name, dbfile, upstream=None, read_only=False, prefunc=server_prefunc):
def cleanup_server(server):
if server.process.exitcode is not None:
return
server.process.terminate()
server.process.join()
server = create_server(socket.gethostbyname("localhost") + ":0",
dbfile,
upstream=upstream,
read_only=read_only)
server.serve_as_process(prefunc=prefunc, args=(name,))
self.addCleanup(cleanup_server, server)
return server
def start_client(self, server_address):
def cleanup_client(client):
client.close()
client = create_client(server_address)
self.addCleanup(cleanup_client, client)
return client
class FunctionTests(unittest.TestCase):
def setUp(self):
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
self.addCleanup(self.temp_dir.cleanup)
def test_increase_revision(self):
self.assertEqual(increase_revision("1"), "2")
self.assertEqual(increase_revision("1.0"), "1.1")
self.assertEqual(increase_revision("1.1.1"), "1.1.2")
self.assertEqual(increase_revision("1.1.1.3"), "1.1.1.4")
self.assertRaises(ValueError, increase_revision, "1.a")
self.assertRaises(ValueError, increase_revision, "1.")
self.assertRaises(ValueError, increase_revision, "")
def test_revision_greater_or_equal(self):
self.assertTrue(_revision_greater_or_equal("2", "2"))
self.assertTrue(_revision_greater_or_equal("2", "1"))
self.assertTrue(_revision_greater_or_equal("10", "2"))
self.assertTrue(_revision_greater_or_equal("1.10", "1.2"))
self.assertFalse(_revision_greater_or_equal("1.2", "1.10"))
self.assertTrue(_revision_greater_or_equal("1.10", "1"))
self.assertTrue(_revision_greater_or_equal("1.10.1", "1.10"))
self.assertFalse(_revision_greater_or_equal("1.10.1", "1.10.2"))
self.assertTrue(_revision_greater_or_equal("1.10.1", "1.10.1"))
self.assertTrue(_revision_greater_or_equal("1.10.1", "1"))
self.assertTrue(revision_greater("1.20", "1.3"))
self.assertTrue(revision_smaller("1.3", "1.20"))
# DB tests
def test_db(self):
dbfile = os.path.join(self.temp_dir.name, "testtable.sqlite3")
self.db = db.PRData(dbfile)
self.table = self.db["PRMAIN"]
self.table.store_value(version, pkgarch, checksum0, "0")
self.table.store_value(version, pkgarch, checksum1, "1")
# "No history" mode supports multiple PRs for the same checksum
self.table.store_value(version, pkgarch, checksum0, "2")
self.table.store_value(version, pkgarch, checksum2, "1.0")
self.assertTrue(self.table.test_package(version, pkgarch))
self.assertFalse(self.table.test_package(version, other_arch))
self.assertTrue(self.table.test_value(version, pkgarch, "0"))
self.assertTrue(self.table.test_value(version, pkgarch, "1"))
self.assertTrue(self.table.test_value(version, pkgarch, "2"))
self.assertEqual(self.table.find_package_max_value(version, pkgarch), "2")
self.assertEqual(self.table.find_min_value(version, pkgarch, checksum0), "0")
self.assertEqual(self.table.find_max_value(version, pkgarch, checksum0), "2")
# Test history modes
self.assertEqual(self.table.find_value(version, pkgarch, checksum0, True), "0")
self.assertEqual(self.table.find_value(version, pkgarch, checksum0, False), "2")
self.assertEqual(self.table.find_new_subvalue(version, pkgarch, "3"), "3.0")
self.assertEqual(self.table.find_new_subvalue(version, pkgarch, "1"), "1.1")
# Revision comparison tests
self.table.store_value(version, pkgarch, checksum1, "1.3")
self.table.store_value(version, pkgarch, checksum1, "1.20")
self.assertEqual(self.table.find_min_value(version, pkgarch, checksum1), "1")
self.assertEqual(self.table.find_max_value(version, pkgarch, checksum1), "1.20")
class PRBasicTests(PRTestSetup, unittest.TestCase):
def setUp(self):
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
self.addCleanup(self.temp_dir.cleanup)
dbfile = os.path.join(self.temp_dir.name, "prtest-basic.sqlite3")
self.server1 = self.start_server("basic", dbfile)
self.client1 = self.start_client(self.server1.address)
def test_basic(self):
# Checks on non existing configuration
result = self.client1.test_pr(version, pkgarch, checksum0)
self.assertIsNone(result, "test_pr should return 'None' for a non existing PR")
result = self.client1.test_package(version, pkgarch)
self.assertFalse(result, "test_package should return 'False' for a non existing PR")
result = self.client1.max_package_pr(version, pkgarch)
self.assertIsNone(result, "max_package_pr should return 'None' for a non existing PR")
# Add a first configuration
result = self.client1.getPR(version, pkgarch, checksum0)
self.assertEqual(result, "0", "getPR: initial PR of a package should be '0'")
result = self.client1.test_pr(version, pkgarch, checksum0)
self.assertEqual(result, "0", "test_pr should return '0' here, matching the result of getPR")
result = self.client1.test_package(version, pkgarch)
self.assertTrue(result, "test_package should return 'True' for an existing PR")
result = self.client1.max_package_pr(version, pkgarch)
self.assertEqual(result, "0", "max_package_pr should return '0' in the current test series")
# Check that the same request gets the same value
result = self.client1.getPR(version, pkgarch, checksum0)
self.assertEqual(result, "0", "getPR: asking for the same PR a second time in a row should return the same value.")
# Add new configurations
result = self.client1.getPR(version, pkgarch, checksum1)
self.assertEqual(result, "1", "getPR: second PR of a package should be '1'")
result = self.client1.test_pr(version, pkgarch, checksum1)
self.assertEqual(result, "1", "test_pr should return '1' here, matching the result of getPR")
result = self.client1.max_package_pr(version, pkgarch)
self.assertEqual(result, "1", "max_package_pr should return '1' in the current test series")
result = self.client1.getPR(version, pkgarch, checksum2)
self.assertEqual(result, "2", "getPR: second PR of a package should be '2'")
result = self.client1.test_pr(version, pkgarch, checksum2)
self.assertEqual(result, "2", "test_pr should return '2' here, matching the result of getPR")
result = self.client1.max_package_pr(version, pkgarch)
self.assertEqual(result, "2", "max_package_pr should return '2' in the current test series")
result = self.client1.getPR(version, pkgarch, checksum3)
self.assertEqual(result, "3", "getPR: second PR of a package should be '3'")
result = self.client1.test_pr(version, pkgarch, checksum3)
self.assertEqual(result, "3", "test_pr should return '3' here, matching the result of getPR")
result = self.client1.max_package_pr(version, pkgarch)
self.assertEqual(result, "3", "max_package_pr should return '3' in the current test series")
# Ask again for the first configuration
result = self.client1.getPR(version, pkgarch, checksum0)
self.assertEqual(result, "4", "getPR: should return '4' in this configuration")
# Ask again with explicit "no history" mode
result = self.client1.getPR(version, pkgarch, checksum0, False)
self.assertEqual(result, "4", "getPR: should return '4' in this configuration")
# Ask again with explicit "history" mode. This should return the first recorded PR for checksum0
result = self.client1.getPR(version, pkgarch, checksum0, True)
self.assertEqual(result, "0", "getPR: should return '0' in this configuration")
# Check again that another pkgarg resets the counters
result = self.client1.test_pr(version, other_arch, checksum0)
self.assertIsNone(result, "test_pr should return 'None' for a non existing PR")
result = self.client1.test_package(version, other_arch)
self.assertFalse(result, "test_package should return 'False' for a non existing PR")
result = self.client1.max_package_pr(version, other_arch)
self.assertIsNone(result, "max_package_pr should return 'None' for a non existing PR")
# Now add the configuration
result = self.client1.getPR(version, other_arch, checksum0)
self.assertEqual(result, "0", "getPR: initial PR of a package should be '0'")
result = self.client1.test_pr(version, other_arch, checksum0)
self.assertEqual(result, "0", "test_pr should return '0' here, matching the result of getPR")
result = self.client1.test_package(version, other_arch)
self.assertTrue(result, "test_package should return 'True' for an existing PR")
result = self.client1.max_package_pr(version, other_arch)
self.assertEqual(result, "0", "max_package_pr should return '0' in the current test series")
result = self.client1.is_readonly()
self.assertFalse(result, "Server should not be described as 'read-only'")
class PRUpstreamTests(PRTestSetup, unittest.TestCase):
def setUp(self):
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
self.addCleanup(self.temp_dir.cleanup)
dbfile2 = os.path.join(self.temp_dir.name, "prtest-upstream2.sqlite3")
self.server2 = self.start_server("upstream2", dbfile2)
self.client2 = self.start_client(self.server2.address)
dbfile1 = os.path.join(self.temp_dir.name, "prtest-upstream1.sqlite3")
self.server1 = self.start_server("upstream1", dbfile1, upstream=self.server2.address)
self.client1 = self.start_client(self.server1.address)
dbfile0 = os.path.join(self.temp_dir.name, "prtest-local.sqlite3")
self.server0 = self.start_server("local", dbfile0, upstream=self.server1.address)
self.client0 = self.start_client(self.server0.address)
self.shared_db = dbfile0
def test_upstream_and_readonly(self):
# For identical checksums, all servers should return the same PR
result = self.client2.getPR(version, pkgarch, checksum0)
self.assertEqual(result, "0", "getPR: initial PR of a package should be '0'")
result = self.client1.getPR(version, pkgarch, checksum0)
self.assertEqual(result, "0", "getPR: initial PR of a package should be '0' (same as upstream)")
result = self.client0.getPR(version, pkgarch, checksum0)
self.assertEqual(result, "0", "getPR: initial PR of a package should be '0' (same as upstream)")
# Now introduce new checksums on server1 for, same version
result = self.client1.getPR(version, pkgarch, checksum1)
self.assertEqual(result, "0.0", "getPR: first PR of a package which has a different checksum upstream should be '0.0'")
result = self.client1.getPR(version, pkgarch, checksum2)
self.assertEqual(result, "0.1", "getPR: second PR of a package that has a different checksum upstream should be '0.1'")
# Now introduce checksums on server0 for, same version
result = self.client1.getPR(version, pkgarch, checksum1)
self.assertEqual(result, "0.2", "getPR: can't decrease for known PR")
result = self.client1.getPR(version, pkgarch, checksum2)
self.assertEqual(result, "0.3")
result = self.client1.max_package_pr(version, pkgarch)
self.assertEqual(result, "0.3")
result = self.client0.getPR(version, pkgarch, checksum3)
self.assertEqual(result, "0.3.0", "getPR: first PR of a package that doesn't exist upstream should be '0.3.0'")
result = self.client0.getPR(version, pkgarch, checksum4)
self.assertEqual(result, "0.3.1", "getPR: second PR of a package that doesn't exist upstream should be '0.3.1'")
result = self.client0.getPR(version, pkgarch, checksum3)
self.assertEqual(result, "0.3.2")
# More upstream updates
# Here, we assume no communication between server2 and server0. server2 only impacts server0
# after impacting server1
self.assertEqual(self.client2.getPR(version, pkgarch, checksum5), "1")
self.assertEqual(self.client1.getPR(version, pkgarch, checksum6), "1.0")
self.assertEqual(self.client1.getPR(version, pkgarch, checksum7), "1.1")
self.assertEqual(self.client0.getPR(version, pkgarch, checksum8), "1.1.0")
self.assertEqual(self.client0.getPR(version, pkgarch, checksum9), "1.1.1")
# "history" mode tests
self.assertEqual(self.client2.getPR(version, pkgarch, checksum0, True), "0")
self.assertEqual(self.client1.getPR(version, pkgarch, checksum2, True), "0.1")
self.assertEqual(self.client0.getPR(version, pkgarch, checksum3, True), "0.3.0")
# More "no history" mode tests
self.assertEqual(self.client2.getPR(version, pkgarch, checksum0), "2")
self.assertEqual(self.client1.getPR(version, pkgarch, checksum0), "2") # Same as upstream
self.assertEqual(self.client0.getPR(version, pkgarch, checksum0), "2") # Same as upstream
self.assertEqual(self.client1.getPR(version, pkgarch, checksum7), "3") # This could be surprising, but since the previous revision was "2", increasing it yields "3".
# We don't know how many upstream servers we have
# Start read-only server with server1 as upstream
self.server_ro = self.start_server("local-ro", self.shared_db, upstream=self.server1.address, read_only=True)
self.client_ro = self.start_client(self.server_ro.address)
self.assertTrue(self.client_ro.is_readonly(), "Database should be described as 'read-only'")
# Checks on non existing configurations
self.assertIsNone(self.client_ro.test_pr(version, pkgarch, checksumX))
self.assertFalse(self.client_ro.test_package("unknown", pkgarch))
# Look up existing configurations
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum0), "3") # "no history" mode
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum0, True), "0") # "history" mode
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum3), "3")
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum3, True), "0.3.0")
self.assertEqual(self.client_ro.max_package_pr(version, pkgarch), "2") # normal as "3" was never saved
# Try to insert a new value. Here this one is know upstream.
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum7), "3")
# Try to insert a completely new value. As the max upstream value is already "3", it should be "3.0"
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum10), "3.0")
# Same with another value which only exists in the upstream upstream server
# This time, as the upstream server doesn't know it, it will ask its upstream server. So that's a known one.
self.assertEqual(self.client_ro.getPR(version, pkgarch, checksum9), "3")
class ScriptTests(unittest.TestCase):
def setUp(self):
self.temp_dir = tempfile.TemporaryDirectory(prefix='bb-prserv')
self.addCleanup(self.temp_dir.cleanup)
self.dbfile = os.path.join(self.temp_dir.name, "prtest.sqlite3")
def test_1_start_bitbake_prserv(self):
try:
subprocess.check_call([BIN_DIR / "bitbake-prserv", "--start", "-f", self.dbfile])
except subprocess.CalledProcessError as e:
self.fail("Failed to start bitbake-prserv: %s" % e.returncode)
def test_2_stop_bitbake_prserv(self):
try:
subprocess.check_call([BIN_DIR / "bitbake-prserv", "--stop"])
except subprocess.CalledProcessError as e:
self.fail("Failed to stop bitbake-prserv: %s" % e.returncode)

View File

@@ -251,11 +251,17 @@ an entire Linux distribution, including the toolchain, from source.
To use such mirrors, uncomment the below lines in your ``conf/local.conf``
file in the :term:`Build Directory`::
BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
BB_HASHSERVE_UPSTREAM = "wss://hashserv.yoctoproject.org/ws"
SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
BB_HASHSERVE = "auto"
BB_SIGNATURE_HANDLER = "OEEquivHash"
The hash equivalence server needs the websockets python module version 9.1
or later. Debian GNU/Linux 12 (Bookworm) and later, Fedora, CentOS Stream
9 and later, and Ubuntu 22.04 (LTS) and later, all have a recent enough
package. Other supported distributions need to get the module some other
place than their package feed, e.g. via ``pip``.
#. **Start the Build:** Continue with the following command to build an OS
image for the target, which is ``core-image-sato`` in this example:

View File

@@ -57,6 +57,10 @@ applied and that the issue needs to be investigated. ``Ignored`` means that afte
analysis, it has been deemed to ignore the issue as it for example affects
the software component on a different operating system platform.
By default, no NVD API key is used to retrieve data from the CVE database, which
results in larger delays between NVD API requests. See the :term:`NVDCVE_API_KEY`
documentation on how to request and set a NVD API key.
After a build with CVE check enabled, reports for each compiled source recipe will be
found in ``build/tmp/deploy/cve``.

View File

@@ -12,6 +12,7 @@ to move to one release of the Yocto Project from the previous one.
.. toctree::
migration-general
release-5.1
release-5.0
release-4.3
release-4.2

View File

@@ -0,0 +1,143 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release 5.1 (styhead)
=====================
Migration notes for 5.1 (styhead)
------------------------------------
This section provides migration information for moving to the Yocto
Project 5.1 Release (codename "styhead") from the prior release.
.. _migration-5.1-supported-kernel-versions:
:term:`WORKDIR` changes
~~~~~~~~~~~~~~~~~~~~~~~
S = ${WORKDIR} no longer supported
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer
supported, and an error will be issued. The recipe should be changed to::
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced
should be changed to :term:`S`. These are commonly in :ref:`ref-tasks-compile`,
:ref:`ref-tasks-compile`, :ref:`ref-tasks-install` and :term:`LIC_FILES_CHKSUM`.
:term:`WORKDIR` references in recipes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:term:`WORKDIR` references in other recipes need auditing. If they reference
files from :term:`SRC_URI`, they likely need changing to :term:`UNPACKDIR`.
These are commonly in :ref:`ref-tasks-compile` and :ref:`ref-tasks-install`
for things like service or configuration files. One unusual case is
``${WORKDIR}/${BP}`` which should probably be set to ``${S}``.
References to ``../`` in :term:`LIC_FILES_CHKSUM` or elsewhere may need changing
to :term:`UNPACKDIR`. References to :term:`WORKDIR` in ``sed`` commands are
usually left as they are.
General notes
^^^^^^^^^^^^^
Files from :ref:`ref-tasks-unpack` now unpack to ``WORKDIR/sources-unpack/``
rather than ``WORKDIR/``.
If :term:`S` is set to a subdirectory under :term:`WORKDIR` and that
subdirectory exists in ``sources-unpack`` after :ref:`ref-tasks-unpack` runs,
it is moved to :term:`WORKDIR`. This means that ``S = "${WORKDIR}/${BP}"``,
``S = "${WORKDIR}/git"`` and also deeper paths continue to work as expected
without changes. We cannot use symlinks to do this as it breaks autotools
based recipes. Keeping all sources under ``sources-unpack`` wasn't considered
as it meant more invasive recipes changes. The key objective was separating the
:ref:`ref-tasks-unpack` task output from :term:`WORKDIR`.
Previously, :term:`S` was always created but after the recent changes it is no
longer the case. This means the check in ``do_unpack_qa`` triggers where
:term:`S` is not created by a recipe while it didn't happen before. This can
require to add an :term:`S` definition to a recipe that only uses
``file://`` :term:`SRC_URI` entries. To be consistent, the following pattern is
recommended::
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at
it does not work as the debug prefix mapping doesn't handle that.
``devtool`` and ``recipetool`` have been updated to handle this and their
support for ``S = WORKDIR`` and ``oe-local-files`` has been removed.
Supported kernel versions
~~~~~~~~~~~~~~~~~~~~~~~~~
The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that
out the box, older kernels are not supported. See :ref:`4.3 migration notes
<migration-4.3-supported-kernel-versions>` for details.
.. _migration-5.1-supported-distributions:
Supported distributions
~~~~~~~~~~~~~~~~~~~~~~~
Compared to the previous releases, running BitBake is supported on new
GNU/Linux distributions:
On the other hand, some earlier distributions are no longer supported:
See :ref:`all supported distributions <system-requirements-supported-distros>`.
.. _migration-5.1-go-changes:
Go language changes
~~~~~~~~~~~~~~~~~~~
.. _migration-5.1-systemd-changes:
systemd changes
~~~~~~~~~~~~~~~
.. _migration-5.1-recipe-changes:
Recipe changes
~~~~~~~~~~~~~~
.. _migration-5.1-deprecated-variables:
Deprecated variables
~~~~~~~~~~~~~~~~~~~~
.. _migration-5.1-removed-variables:
Removed variables
~~~~~~~~~~~~~~~~~
The following variables have been removed:
.. _migration-5.1-removed-recipes:
Removed recipes
~~~~~~~~~~~~~~~
The following recipes have been removed in this release:
.. _migration-5.1-removed-classes:
Removed classes
~~~~~~~~~~~~~~~
No classes have been removed in this release.
.. _migration-5.1-qemu-changes:
QEMU changes
~~~~~~~~~~~~
.. _migration-5.1-misc-changes:
Miscellaneous changes
~~~~~~~~~~~~~~~~~~~~~

View File

@@ -24,3 +24,4 @@ Release 4.0 (kirkstone)
release-notes-4.0.15
release-notes-4.0.16
release-notes-4.0.17
release-notes-4.0.18

View File

@@ -7,3 +7,4 @@ Release 5.0 (scarthgap)
migration-5.0
release-notes-5.0
release-notes-5.0.1

View File

@@ -0,0 +1,9 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release 5.1 (styhead)
=======================
.. toctree::
migration-5.1
release-notes-5.1

View File

@@ -0,0 +1,191 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release notes for Yocto-4.0.18 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- curl: Fix :cve:`2024-2398`
- expat: fix :cve:`2023-52426` and :cve:`2024-28757`
- libssh2: fix :cve:`2023-48795`
- ncurses: Fix :cve:`2023-50495`
- nghttp2: Fix :cve:`2024-28182` and :cve:`2023-44487`
- openssh: Ignore :cve:`2023-51767`
- openssl: Fix :cve:`2024-2511`
- perl: Ignore :cve:`2023-47100`
- python3-cryptography: Fix :cve:`2024-26130`
- python3-urllib3: Fix :cve:`2023-45803`
- qemu: Fix :cve:`2023-6683`
- ruby: fix :cve_mitre:`2024-27281`
- rust: Ignore :cve:`2024-24576`
- tiff: Fix :cve:`2023-52356` and :cve:`2023-6277`
- xserver-xorg: Fix :cve:`2024-31080` and :cve:`2024-31081`
- xwayland: Fix :cve:`2023-6816`, :cve:`2024-0408` and :cve:`2024-0409`
Fixes in Yocto-4.0.18
~~~~~~~~~~~~~~~~~~~~~
- build-appliance-image: Update to kirkstone head revision
- common-licenses: backport LGPL-3.0-with-zeromq-exception license
- contributor-guide: add notes for tests
- contributor-guide: be more specific about meta-* trees
- cups: fix typo in :cve:`2023-32360` backport patch
- cve-update-nvd2-native: Add an age threshold for incremental update
- cve-update-nvd2-native: Fix CVE configuration update
- cve-update-nvd2-native: Fix typo in comment
- cve-update-nvd2-native: Remove duplicated CVE_CHECK_DB_FILE definition
- cve-update-nvd2-native: Remove rejected CVE from database
- cve-update-nvd2-native: nvd_request_next: Improve comment
- dev-manual: improve descriptions of 'bitbake -S printdiff'
- dev-manual: packages: fix capitalization
- docs: conf.py: properly escape backslashes for latex_elements
- gcc: Backport sanitizer fix for 32-bit ALSR
- glibc: Fix subscript typos for get_nscd_addresses
- kernel-dev: join mkdir commands with -p
- linux-firmware: Upgrade to 20240220
- manuals: add initial sphinx-lint support
- manuals: add initial stylechecks with Vale
- manuals: document VIRTUAL-RUNTIME variables
- manuals: fix duplicate "stylecheck" target
- manuals: fix incorrect double backticks
- manuals: fix trailing spaces
- manuals: refer to new yocto-patches mailing list wherever appropriate
- manuals: remove tab characters
- manuals: replace hyphens with em dashes
- manuals: use "manual page(s)"
- migration-guides: add release notes for 4.0.17
- poky.conf: bump version for 4.0.18
- profile-manual: usage.rst: fix reference to bug report
- profile-manual: usage.rst: formatting fixes
- profile-manual: usage.rst: further style improvements
- python3-urllib3: Upgrade to v1.26.18
- ref-manual: add documentation of the variable :term:`SPDX_NAMESPACE_PREFIX`
- ref-manual: tasks: do_cleanall: recommend using '-f' instead
- ref-manual: tasks: do_cleansstate: recommend using '-f' instead for a shared sstate
- ref-manual: variables: adding multiple groups in :term:`GROUPADD_PARAM`
- ref-manual: variables: correct sdk installation default path
- stress-ng: avoid calling sync during do_compile
- systemd: Fix vlan qos mapping
- tcl: Add a way to skip ptests
- tcl: skip async and event tests in run-ptest
- tcl: skip timing-dependent tests in run-ptest
- valgrind: skip intermittently failing ptest
- wireless-regdb: Upgrade to 2024.01.23
- yocto-uninative: Update to 4.4 for glibc 2.39
Known Issues in Yocto-4.0.18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Alex Kiernan
- Alex Stewart
- Alexander Kanavin
- BELOUARGA Mohamed
- Claus Stovgaard
- Colin McAllister
- Geoff Parker
- Haitao Liu
- Harish Sadineni
- Johan Bezem
- Jonathan GUILLOT
- Jörg Sommer
- Khem Raj
- Lee Chee Yang
- Luca Ceresoli
- Martin Jansa
- Meenali Gupta
- Michael Halstead
- Michael Opdenacker
- Peter Marko
- Quentin Schulz
- Ross Burton
- Sana Kazi
- Simone Weiß
- Soumya Sambu
- Steve Sakoman
- Tan Wen Yan
- Vijay Anusuri
- Wang Mingyu
- Yoann Congal
- Yogita Urade
- Zahir Hussain
Repositories / Downloads for Yocto-4.0.18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.18 </poky/log/?h=yocto-4.0.18>`
- Git Revision: :yocto_git:`31751bba1c789f15f574773a659b8017d7bcf440 </poky/commit/?id=31751bba1c789f15f574773a659b8017d7bcf440>`
- Release Artefact: poky-31751bba1c789f15f574773a659b8017d7bcf440
- sha: 72d5aa65c3c37766ebc24b212740272c1d52342468548f9c070241d3522ad2ca
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/poky-31751bba1c789f15f574773a659b8017d7bcf440.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/poky-31751bba1c789f15f574773a659b8017d7bcf440.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
- Tag: :oe_git:`yocto-4.0.18 </openembedded-core/log/?h=yocto-4.0.18>`
- Git Revision: :oe_git:`b7182571242dc4e23e5250a449d90348e62a6abc </openembedded-core/commit/?id=b7182571242dc4e23e5250a449d90348e62a6abc>`
- Release Artefact: oecore-b7182571242dc4e23e5250a449d90348e62a6abc
- sha: 6f257e50c10ebae673dcf61a833b3270db6d22781f02f6794a370aac839f1020
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/oecore-b7182571242dc4e23e5250a449d90348e62a6abc.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/oecore-b7182571242dc4e23e5250a449d90348e62a6abc.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.18 </meta-mingw/log/?h=yocto-4.0.18>`
- Git Revision: :yocto_git:`f6b38ce3c90e1600d41c2ebb41e152936a0357d7 </meta-mingw/commit/?id=f6b38ce3c90e1600d41c2ebb41e152936a0357d7>`
- Release Artefact: meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7
- sha: 7d57167c19077f4ab95623d55a24c2267a3a3fb5ed83688659b4c03586373b25
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
meta-gplv2
- Repository Location: :yocto_git:`/meta-gplv2`
- Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.18 </meta-gplv2/log/?h=yocto-4.0.18>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
- Tag: :oe_git:`yocto-4.0.18 </bitbake/log/?h=yocto-4.0.18>`
- Git Revision: :oe_git:`40fd5f4eef7460ca67f32cfce8e229e67e1ff607 </bitbake/commit/?id=40fd5f4eef7460ca67f32cfce8e229e67e1ff607>`
- Release Artefact: bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607
- sha: 5d20a0e4c5d0fce44bd84778168714a261a30a4b83f67c88df3b8a7e7115e444
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.18/bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.18/bitbake-40fd5f4eef7460ca67f32cfce8e229e67e1ff607.tar.bz2
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.18 </yocto-docs/log/?h=yocto-4.0.18>`
- Git Revision: :yocto_git:`fd1423141e7458ba557db465c171b0b4e9063987 </yocto-docs/commit/?id=fd1423141e7458ba557db465c171b0b4e9063987>`

View File

@@ -0,0 +1,134 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release notes for Yocto-5.0.1 (Scarthgap)
-----------------------------------------
Security Fixes in Yocto-5.0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Fixes in Yocto-5.0.1
~~~~~~~~~~~~~~~~~~~~
- babeltrace2: upgrade 2.0.5 -> 2.0.6
- bind: upgrade 9.18.24 -> 9.18.25
- bitbake: cooker: Use hash client to ping upstream server
- build-appliance-image: Update to scarthgap head revision (b9b47b1a392b...)
- docs: add support for scarthgap 5.0 release
- docs: brief-yoctoprojectqs: explicit version dependency on websockets python module
- docs: brief-yoctoprojectqs: Update to the correct hash equivalence server address
- documentation/poky.yaml.in: drop mesa/sdl from essential host packages
- ell: upgrade 0.63 -> 0.64
- gcr: upgrade 4.2.0 -> 4.2.1
- icu: update 74-1 -> 74-2
- libdnf: upgrade 0.73.0 -> 0.73.1
- libsdl2: upgrade 2.30.0 -> 2.30.1
- libx11: upgrade 1.8.7 -> 1.8.9
- libxcursor: upgrade 1.2.1 -> 1.2.2
- libxml2: upgrade 2.12.5 -> 2.12.6
- local.conf.sample: Fix hashequivalence server address
- lttng-tools: upgrade 2.13.11 -> 2.13.13
- manuals: standards.md: add standard for project names
- mesa: upgrade 24.0.2 -> 24.0.3
- migration-notes: add release notes for 4.0.18
- mpg123: upgrade 1.32.5 -> 1.32.6
- pango: upgrade 1.52.0 -> 1.52.1
- poky.conf: bump version for 5.0.1
- python3: skip test_concurrent_futures/test_shutdown
- ref-manual: update releases.svg
- ref-manual: variables: add :term:`USERADD_DEPENDS`
- release-notes-5.0: update Repositories / Downloads section
- release-notes-5.0: update recipes changes
- release-notes-5.0: update new features
- rootfs-postcommands.bbclass: Only set DROPBEAR_RSAKEY_DIR once
- rpm: update 4.19.1 -> 4.19.1.1
- scripts/oe-setup-build: write a build environment initialization one-liner into the build directory
- sstate.bbclass: Add _SSTATE_EXCLUDEDEPS_SYSROOT to vardepsexclude
- systemd: sed :term:`ROOT_HOME` only if sysusers :term:`PACKAGECONFIG` is set
Known Issues in Yocto-5.0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-5.0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Alexander Kanavin
- Christian Bräuner Sørensen
- Joshua Watt
- Lee Chee Yang
- Mark Hatle
- Michael Glembotzki
- Michael Halstead
- Michael Opdenacker
- Paul Eggleton
- Quentin Schulz
- Richard Purdie
- Steve Sakoman
- Trevor Gamblin
- Wang Mingyu
Repositories / Downloads for Yocto-5.0.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`scarthgap </poky/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.1 </poky/log/?h=yocto-5.0.1>`
- Git Revision: :yocto_git:`4b07a5316ed4b858863dfdb7cab63859d46d1810 </poky/commit/?id=4b07a5316ed4b858863dfdb7cab63859d46d1810>`
- Release Artefact: poky-4b07a5316ed4b858863dfdb7cab63859d46d1810
- sha: 51d0c84da7dbcc8db04a674da39cfc73ea78aac22ee646ede5b6229937d4666a
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0.1/poky-4b07a5316ed4b858863dfdb7cab63859d46d1810.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0.1/poky-4b07a5316ed4b858863dfdb7cab63859d46d1810.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`scarthgap </openembedded-core/log/?h=scarthgap>`
- Tag: :oe_git:`yocto-5.0.1 </openembedded-core/log/?h=yocto-5.0.1>`
- Git Revision: :oe_git:`294a7dbe44f6b7c8d3a1de8c2cc182af37c4f916 </openembedded-core/commit/?id=294a7dbe44f6b7c8d3a1de8c2cc182af37c4f916>`
- Release Artefact: oecore-294a7dbe44f6b7c8d3a1de8c2cc182af37c4f916
- sha: e9be51a3b1fe8a1f420483b912caf91bc429dcca303d462381876a643b73045e
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0.1/oecore-294a7dbe44f6b7c8d3a1de8c2cc182af37c4f916.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0.1/oecore-294a7dbe44f6b7c8d3a1de8c2cc182af37c4f916.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`scarthgap </meta-mingw/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.1 </meta-mingw/log/?h=yocto-5.0.1>`
- Git Revision: :yocto_git:`acbba477893ef87388effc4679b7f40ee49fc852 </meta-mingw/commit/?id=acbba477893ef87388effc4679b7f40ee49fc852>`
- Release Artefact: meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852
- sha: 3b7c2f475dad5130bace652b150367f587d44b391218b1364a8bbc430b48c54c
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0.1/meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0.1/meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.8 </bitbake/log/?h=2.8>`
- Tag: :oe_git:`yocto-5.0.1 </bitbake/log/?h=yocto-5.0.1>`
- Git Revision: :oe_git:`8f90d10f9efc9a32e13f6bd031992aece79fe7cc </bitbake/commit/?id=8f90d10f9efc9a32e13f6bd031992aece79fe7cc>`
- Release Artefact: bitbake-8f90d10f9efc9a32e13f6bd031992aece79fe7cc
- sha: 519f02d5de7fbfac411532161d521123814dd9cc7d6b55488b5e7a547c1a6977
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0.1/bitbake-8f90d10f9efc9a32e13f6bd031992aece79fe7cc.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0.1/bitbake-8f90d10f9efc9a32e13f6bd031992aece79fe7cc.tar.bz2
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`scarthgap </yocto-docs/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0.1 </yocto-docs/log/?h=yocto-5.0.1>`
- Git Revision: :yocto_git:`875dfe69e93bf8fee3b8c07818a6ac059f228a13 </yocto-docs/commit/?id=875dfe69e93bf8fee3b8c07818a6ac059f228a13>`

View File

@@ -25,6 +25,10 @@ New Features / Enhancements in 5.0
- :term:`TARGET_DBGSRC_DIR`: specifies the target path to debug source files
- :term:`USERADD_DEPENDS`: provides a way to declare dependencies on the users
and/or groups created by other recipes, resolving a long-standing build
ordering issue
- Architecture-specific enhancements:
- ``genericarm64``: a new :term:`MACHINE` to represent a 64-bit General Arm
@@ -84,6 +88,9 @@ New Features / Enhancements in 5.0
a Sphinx extension to include jQuery on newer Sphinx releases. Recent
versions of ``python3-sphinx-rtd-theme`` depend on it.
- `python3-websockets <https://pypi.org/project/websockets/>`__: a
library for building WebSocket servers and clients in Python.
- `python3-yamllint <https://github.com/adrienverge/yamllint>`__: a linter
for YAML files. In U-Boot, the ``binman`` tool uses this linter to verify the
configurations at compile time.
@@ -155,6 +162,12 @@ New Features / Enhancements in 5.0
- Testing:
- Move `patchtest` to the core (as ``scripts/patchtest``, test cases under
``meta/lib/patchtest/tests``) and make a number of improvements to enable
it to validate patches submitted on the mailing list again. Additionally,
make it work with the original upstream version of
`Patchwork <http://jk.ozlabs.org/projects/patchwork/>`__.
- Add an optional ``unimplemented-ptest`` QA warning to detect upstream
packages with tests, that do not use ptest.
@@ -163,6 +176,9 @@ New Features / Enhancements in 5.0
- ``oeqa``, ``oe-selftest``: add test cases for Maturin (SDK and runtime).
- Proof-of-concept of screenshot-based runtime UI test
(``meta/lib/oeqa/runtime/cases/login.py``)
- Enable ptests for ``python3-attrs``, ``python3-pyyaml``, ``xz``
- Utility script changes:
@@ -191,8 +207,6 @@ New Features / Enhancements in 5.0
extra tasks if the system load is too high, especially in distributions
where ``/proc/pressure`` is disabled.
- Add garbage collection to remove unused unihashes from the database.
- ``taskexp_ncurses``: add ncurses version of ``taskexp``, the dependency
explorer originally implemented with GTK.
@@ -208,6 +222,17 @@ New Features / Enhancements in 5.0
- ``git-make-shallow`` script: add support for Git's ``safe.bareRepository=explicit``
configuration setting.
- Hash equivalence gained a number of scalability improvements including:
- Support for a wide range of database backends through `SQLAlchemy`
- Support for hash equivalence server and client to communicate over websockets
- Support for per-user permissions in the hashserver, and on the client side
specifying credentials via the environment or ``.netrc``
- Add garbage collection to remove unused unihashes from the database.
- devtool improvements:
- Introduce a new ``ide-sdk`` plugin to generate a configuration to use
@@ -255,6 +280,12 @@ New Features / Enhancements in 5.0
incremental update can be configured with :term:`CVE_DB_INCR_UPDATE_AGE_THRES`
variable.
- Toaster Web UI improvements:
- Numerous bugfixes, and additional input validation
- Add `pytest` support and add/update test cases
- Prominent documentation updates:
- Documentation for using the new ``devtool ide-sdk`` command and features.
@@ -318,6 +349,7 @@ The following corrections have been made to the :term:`LICENSE` values set by re
- ``elfutils``: split license for libraries & backend and utilities.
- ``ghostscript``: correct :term:`LICENSE` to ``AGPL-3.0-or-later``.
- ``kbd``: update license for consolefont and keymaps.
- ``libsystemd``: set its own :term:`LICENSE` value (``LGPL-2.1-or-later``) to add more granularity.
- ``libtest-warnings-perl``: update :term:`LICENSE` ``Artistic-1.0`` to ``Artistic-1.0-Perl``.
- ``linux-firmware``: set package :term:`LICENSE` appropriately for ``carl9170``, ``rockchip`` and ``powerpr``.
@@ -350,7 +382,7 @@ Security Fixes in 5.0
- libxml2: :cve:`2023-45322` (ignored)
- linux-yocto/6.6: :cve:`2020-16119`
- openssh: :cve:`2023-48795`, :cve:`2023-51384`, :cve:`2023-51385`
- openssl: :cve:`2023-5363`, :cve:`2023-5678`, :cve:`2023-6129`, :cve_mitre:`2023-6237`, :cve:`2024-0727`
- openssl: :cve:`2023-5363`, :cve:`2023-5678`, :cve:`2023-6129`, :cve_mitre:`2023-6237`, :cve:`2024-0727`, :cve:`2024-2511`
- perl: :cve:`2023-47100`
- pixman: :cve:`2023-37769` (ignored)
- python3-cryptography{-vectors}: :cve:`2023-49083`, :cve:`2024-26130`
@@ -526,7 +558,7 @@ Recipe Upgrades in 5.0
- linux-yocto-dev 6.6+git -> 6.9+git
- linux-yocto-rt 6.1.78+git, 6.5.13+git -> 6.6.23+git
- linux-yocto-tiny 6.1.78+git, 6.5.13+git -> 6.6.23+git
- llvm 17.0.3 -> 18.1.2
- llvm 17.0.3 -> 18.1.3
- lsof 4.98.0 -> 4.99.3
- ltp 20230516 -> 20240129
- lttng-modules 2.13.10 -> 2.13.12
@@ -562,7 +594,7 @@ Recipe Upgrades in 5.0
- ptest-runner 2.4.2+git -> 2.4.3+git
- pulseaudio 16.1 -> 17.0
- puzzles 0.0+git (2d9e414ee316…) -> 0.0+git (80aac3104096…)
- python3 3.11.5 -> 3.12.2
- python3 3.11.5 -> 3.12.3
- python3-alabaster 0.7.13 -> 0.7.16
- python3-attrs 23.1.0 -> 23.2.0
- python3-babel 2.12.1 -> 2.14.0
@@ -904,3 +936,58 @@ Thanks to the following people who contributed to this release:
Repositories / Downloads for Yocto-5.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`scarthgap </poky/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0 </poky/log/?h=yocto-5.0>`
- Git Revision: :yocto_git:`fb91a49387cfb0c8d48303bb3354325ba2a05587 </poky/commit/?id=fb91a49387cfb0c8d48303bb3354325ba2a05587>`
- Release Artefact: poky-fb91a49387cfb0c8d48303bb3354325ba2a05587
- sha: 8a0dff4b677b9414ab814ed35d1880196123732ea16ab2fafa388bcc509b32ab
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/poky-fb91a49387cfb0c8d48303bb3354325ba2a05587.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0/poky-fb91a49387cfb0c8d48303bb3354325ba2a05587.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`scarthgap </openembedded-core/log/?h=scarthgap>`
- Tag: :oe_git:`yocto-5.0 </openembedded-core/log/?h=yocto-5.0>`
- Git Revision: :oe_git:`b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277 </openembedded-core/commit/?id=b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277>`
- Release Artefact: oecore-b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277
- sha: c7fd05d1a00c70acba2540e60dce01a1bdc4701ebff9a808784960240c69261d
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/oecore-b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0/oecore-b65b4e5a8e4473d8ca43835ba17bc8bd4bdca277.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`scarthgap </meta-mingw/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0 </meta-mingw/log/?h=yocto-5.0>`
- Git Revision: :yocto_git:`acbba477893ef87388effc4679b7f40ee49fc852 </meta-mingw/commit/?id=acbba477893ef87388effc4679b7f40ee49fc852>`
- Release Artefact: meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852
- sha: 3b7c2f475dad5130bace652b150367f587d44b391218b1364a8bbc430b48c54c
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0/meta-mingw-acbba477893ef87388effc4679b7f40ee49fc852.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.8 </bitbake/log/?h=2.8>`
- Tag: :oe_git:`yocto-5.0 </bitbake/log/?h=yocto-5.0>`
- Git Revision: :oe_git:`c86466d51e8ff14e57a734c1eec5bb651fdc73ef </bitbake/commit/?id=c86466d51e8ff14e57a734c1eec5bb651fdc73ef>`
- Release Artefact: bitbake-c86466d51e8ff14e57a734c1eec5bb651fdc73ef
- sha: 45c91294c1fa5a0044f1bb72a9bb69456bb458747114115af85c7664bf672d48
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-5.0/bitbake-c86466d51e8ff14e57a734c1eec5bb651fdc73ef.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-5.0/bitbake-c86466d51e8ff14e57a734c1eec5bb651fdc73ef.tar.bz2
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`scarthgap </yocto-docs/log/?h=scarthgap>`
- Tag: :yocto_git:`yocto-5.0 </yocto-docs/log/?h=yocto-5.0>`
- Git Revision: :yocto_git:`0cdc0afd3332459d30cfc8f4c2e62bdcc23f5ed5 </yocto-docs/commit/?id=0cdc0afd3332459d30cfc8f4c2e62bdcc23f5ed5>`

View File

@@ -0,0 +1,67 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release notes for 5.1 (styhead)
---------------------------------
New Features / Enhancements in 5.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Linux kernel 6.X, gcc 14.X, glibc 2.X, LLVM 18.X, and over XXX other recipe upgrades
- New variables:
- Architecture-specific enhancements:
- Kernel-related enhancements:
- New core recipes:
- QEMU / ``runqemu`` enhancements:
- Rust improvements:
- wic Image Creator enhancements:
- SDK-related improvements:
- Testing:
- Utility script changes:
- BitBake improvements:
- devtool improvements:
- recipetool improvements:
- Packaging changes:
- Security improvements:
- Toaster Web UI improvements:
- Prominent documentation updates:
- Miscellaneous changes:
Known Issues in 5.1
~~~~~~~~~~~~~~~~~~~
Recipe License changes in 5.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following corrections have been made to the :term:`LICENSE` values set by recipes:
Security Fixes in 5.1
~~~~~~~~~~~~~~~~~~~~~
Recipe Upgrades in 5.1
~~~~~~~~~~~~~~~~~~~~~~
Contributors to 5.1
~~~~~~~~~~~~~~~~~~~
Thanks to the following people who contributed to this release:
Repositories / Downloads for Yocto-5.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -1,10 +1,10 @@
DISTRO : "4.3"
DISTRO_NAME_NO_CAP : "nanbield"
DISTRO_NAME : "Nanbield"
DISTRO_NAME_NO_CAP_MINUS_ONE : "mickledore"
DISTRO_NAME_NO_CAP_LTS : "kirkstone"
YOCTO_DOC_VERSION : "4.3"
DISTRO_REL_TAG : "yocto-4.3"
DISTRO : "5.0"
DISTRO_NAME_NO_CAP : "scarthgap"
DISTRO_NAME : "Scarthgap"
DISTRO_NAME_NO_CAP_MINUS_ONE : "nanbield"
DISTRO_NAME_NO_CAP_LTS : "scarthgap"
YOCTO_DOC_VERSION : "5.0"
DISTRO_REL_TAG : "yocto-5.0"
DOCCONF_VERSION : "dev"
BITBAKE_SERIES : ""
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
@@ -12,18 +12,18 @@ YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
YOCTO_RELEASE_DL_URL : "&YOCTO_DL_URL;/releases/yocto/yocto-&DISTRO;"
UBUNTU_HOST_PACKAGES_ESSENTIAL : "gawk wget git diffstat unzip texinfo gcc \
build-essential chrpath socat cpio python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
python3-subunit mesa-common-dev zstd liblz4-tool file locales libacl1
xz-utils debianutils iputils-ping python3-git python3-jinja2 \
python3-subunit zstd liblz4-tool file locales libacl1
\n\ $ sudo locale-gen en_US.UTF-8"
FEDORA_HOST_PACKAGES_ESSENTIAL : "gawk make wget tar bzip2 gzip python3 unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \
python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython \
python3-jinja2 SDL-devel rpcgen mesa-libGL-devel perl-FindBin perl-File-Compare \
python3-jinja2 rpcgen perl-FindBin perl-File-Compare \
perl-File-Copy perl-locale zstd lz4 hostname glibc-langpack-en libacl"
OPENSUSE_HOST_PACKAGES_ESSENTIAL : "python gcc gcc-c++ git chrpath make wget python-xml \
diffstat makeinfo python-curses patch socat python3 python3-curses tar python3-pip \
python3-pexpect xz which python3-Jinja2 Mesa-libEGL1 libSDL-devel rpcgen Mesa-dri-devel \
python3-pexpect xz which python3-Jinja2 rpcgen \
zstd lz4 bzip2 gzip hostname libacl1
\n\ $ sudo pip3 install GitPython"
ALMALINUX_HOST_PACKAGES_ESSENTIAL : "-y epel-release
@@ -33,8 +33,8 @@ ALMALINUX_HOST_PACKAGES_ESSENTIAL : "-y epel-release
\n\ $ sudo dnf install gawk make wget tar bzip2 gzip python3 unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache \
socat perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue python3-pip \
python3-GitPython python3-jinja2 python3-pexpect xz which SDL-devel \
rpcgen mesa-libGL-devel zstd lz4 cpio glibc-langpack-en libacl"
python3-GitPython python3-jinja2 python3-pexpect xz which \
rpcgen zstd lz4 cpio glibc-langpack-en libacl"
PIP3_HOST_PACKAGES_DOC : "$ sudo pip3 install sphinx sphinx_rtd_theme pyyaml"
MIN_PYTHON_VERSION : "3.8.0"
MIN_TAR_VERSION : "1.28"

View File

@@ -3,8 +3,8 @@
version="1.1"
id="svg2"
width="2040.0006"
height="624.30518"
viewBox="0 0 2040.0006 624.30515"
height="669.30511"
viewBox="0 0 2040.0006 669.30509"
sodipodi:docname="releases.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -409,8 +409,8 @@
id="namedview4"
showgrid="true"
inkscape:zoom="1.4472045"
inkscape:cx="736.24703"
inkscape:cy="312.32629"
inkscape:cx="987.76641"
inkscape:cy="357.93145"
inkscape:window-x="1728"
inkscape:window-y="0"
inkscape:window-maximized="1"
@@ -427,13 +427,13 @@
type="xygrid"
id="grid1257"
originx="-289.99936"
originy="325" />
originy="369.99998" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
inkscape:label="Image"
id="g10"
transform="translate(-289.99936,325.00004)">
transform="translate(-289.99936,370.00003)">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 1080,220.00003 v -515.00007 0 0"
@@ -669,11 +669,11 @@
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-1-4">4.2</tspan></text>
<g
id="g1379">
id="g1258">
<rect
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-4-5-38"
width="140.00003"
width="120.00002"
height="45.000004"
x="1220"
y="-230.00005"
@@ -696,53 +696,76 @@
id="tspan10317-2-9-1-4-6">4.3</tspan></text>
</g>
<rect
style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-4-5-3-9"
width="979.99994"
style="opacity:0.75;fill:#241f31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-4-5-3-9-2"
width="140"
height="45.000004"
x="1320"
y="-285.00003"
x="1440"
y="-340.00003"
ry="2.2558987" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1373.233"
y="-265.32928"
id="text1185-3-55-4-0-0-0-1-1-6"><tspan
x="1487.233"
y="-320.32928"
id="text1185-3-55-4-0-0-0-1-1-6-4"><tspan
sodipodi:role="line"
x="1373.233"
y="-265.32928"
x="1487.233"
y="-320.32928"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan957-2-8-6-3-9-7-4-2">Scarthgap</tspan><tspan
id="tspan957-2-8-6-3-9-7-4-2-0">Styhead</tspan><tspan
sodipodi:role="line"
x="1373.233"
y="-247.33261"
x="1487.233"
y="-302.33261"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-1-4-6-5">5.0</tspan></text>
<rect
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-9"
width="960.00012"
height="45.000004"
x="859.99994"
y="-64.999992"
ry="2.2558987" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="928.49872"
y="-45.648258"
id="text1185-3-55-4-0-0-9"><tspan
sodipodi:role="line"
id="tspan10317-2-9-1-4-6-5-6">5.1</tspan></text>
<g
id="g1591">
<rect
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-9"
width="960.00012"
height="45.000004"
x="859.99994"
y="-64.999992"
ry="2.2558987" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="928.49872"
y="-45.648258"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan
id="text1185-3-55-4-0-0-9"><tspan
sodipodi:role="line"
x="928.49872"
y="-45.648258"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan
sodipodi:role="line"
x="928.49872"
y="-27.651579"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-0">4.0</tspan></text>
</g>
<path
id="rect917-0-0-4-4-9-9-9"
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
d="m 1322.3015,-285.00003 c -1.2753,0 -2.302,1.00609 -2.302,2.25586 v 40.48828 c 0,1.24977 1.0267,2.25586 2.302,2.25586 h 975.0412 c 1.2754,0 2.302,-1.00609 2.302,-2.25586 v -40.48828 c 0,-1.24977 -1.0266,-2.25586 -2.302,-2.25586 z" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1390.4988"
y="-265.64832"
id="text1185-3-55-4-0-0-9-0"><tspan
sodipodi:role="line"
x="928.49872"
y="-27.651579"
x="1390.4988"
y="-265.64832"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-0">4.0</tspan></text>
id="tspan957-2-8-6-3-6-8">Scarthgap (LTS)</tspan><tspan
sodipodi:role="line"
x="1390.4988"
y="-247.65164"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-0-1">5.0</tspan></text>
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

@@ -412,12 +412,11 @@ them. You can learn more by looking at the
-------------
Unpacks the source code into a working directory pointed to by
``${``\ :term:`WORKDIR`\ ``}``. The :term:`S`
variable also plays a role in where unpacked source files ultimately
reside. For more information on how source files are unpacked, see the
``${``\ :term:`UNPACKDIR`\ ``}``. A legacy way to specify
this directory is through the :term:`S` and :term:`WORKDIR` variables.
For more information on how source files are unpacked, see the
":ref:`overview-manual/concepts:source fetching`"
section in the Yocto Project Overview and Concepts Manual and also see
the :term:`WORKDIR` and :term:`S` variable descriptions.
section in the Yocto Project Overview and Concepts Manual.
Manually Called Tasks
=====================

View File

@@ -5585,6 +5585,21 @@ system and gives an overview of their function and contents.
NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot"
:term:`NVDCVE_API_KEY`
The NVD API key used to retrieve data from the CVE database when
using :ref:`ref-classes-cve-check`.
By default, no API key is used, which results in larger delays between API
requests and limits the number of queries to the public rate limits posted
at the `NVD developer's page <https://nvd.nist.gov/developers/start-here>`__.
NVD API keys can be requested through the
`Request an API Key <https://nvd.nist.gov/developers/request-an-api-key>`__
page. You can set this variable to the NVD API key in your ``local.conf`` file.
Example::
NVDCVE_API_KEY = "fe753&7a2-1427-347d-23ff-b2e2b7ca5f3"
:term:`OBJCOPY`
The minimal command and arguments to run ``objcopy``.
@@ -6829,6 +6844,19 @@ system and gives an overview of their function and contents.
explicitly if that will not match the package name (e.g. where the
package name has a prefix, underscores, uppercase letters etc.)
:term:`PYPI_PACKAGE_EXT`
When inheriting the :ref:`ref-classes-pypi` class, specifies the
file extension to use when fetching a package from `PyPI
<https://pypi.org/>`__. Default is ``tar.gz``.
:term:`PYPI_SRC_URI`
When inheriting the :ref:`ref-classes-pypi` class, specifies the
full `pythonhosted <https://files.pythonhosted.org/>`__ URI for
fetching the package to be built. The default value is constructed
based upon :term:`PYPI_PACKAGE`, :term:`PYPI_PACKAGE_EXT`, and
:term:`PV`. Most recipes will not need to set this variable unless
they are building an unstable (i.e. development) version.
:term:`PYTHON_ABI`
When used by recipes that inherit the :ref:`ref-classes-setuptools3`
class, denotes the Application Binary Interface (ABI) currently in use
@@ -9670,6 +9698,11 @@ system and gives an overview of their function and contents.
:ref:`ref-classes-insane` class and is only enabled if the
recipe inherits the :ref:`ref-classes-autotools` class.
:term:`UNPACKDIR`
This variable, used by the :ref:`ref-classes-base` class,
specifies where fetches sources should be unpacked by the
:ref:`ref-tasks-unpack` task.
:term:`UPDATERCPN`
For recipes inheriting the
:ref:`ref-classes-update-rc.d` class, :term:`UPDATERCPN`
@@ -9771,6 +9804,12 @@ system and gives an overview of their function and contents.
``meta-poky/conf/templates/default/local.conf.sample`` in the
:term:`Source Directory`.
:term:`USERADD_DEPENDS`
Specifies a list of recipes that create users / groups (via
:term:`USERADD_PARAM` / :term:`GROUPADD_PARAM`) which a recipe
depends upon. This ensures that those users / groups are available
when building a recipe.
:term:`USERADD_ERROR_DYNAMIC`
If set to ``error``, forces the OpenEmbedded build system to produce
an error if the user identification (``uid``) and group

View File

@@ -26,9 +26,9 @@ ourversion = None
if len(sys.argv) == 2:
ourversion = sys.argv[1]
activereleases = ["nanbield", "kirkstone", "dunfell"]
devbranch = "scarthgap"
ltsseries = ["kirkstone", "dunfell"]
activereleases = ["scarthgap", "nanbield", "kirkstone", "dunfell"]
devbranch = "styhead"
ltsseries = ["scarthgap", "kirkstone", "dunfell"]
# used by run-docs-builds to get the default page
if ourversion == "getlatest":
@@ -36,6 +36,7 @@ if ourversion == "getlatest":
sys.exit(0)
release_series = collections.OrderedDict()
release_series["styhead"] = "5.1"
release_series["scarthgap"] = "5.0"
release_series["nanbield"] = "4.3"
release_series["mickledore"] = "4.2"
@@ -68,6 +69,7 @@ release_series["laverne"] = "0.9"
bitbake_mapping = {
"styhead" : "2.10",
"scarthgap" : "2.8",
"nanbield" : "2.6",
"mickledore" : "2.4",

View File

@@ -70,28 +70,31 @@ cannot be split without infringing syntactic rules
or reducing readability, as well as for command output
which should be kept unmodified.
### Project names
Project names should be capitalized in the same
way they are on Wikipedia, in particular:
* BitBake
* OpenEmbedded
There are exceptions in which such names can be used
in lower case:
* When referring to a package name
* When referring to the corresponding command name
* When used in a cross-reference title. Such
titles are usually in lower case.
### File, tool and command names
File, tool and command names should be double tick-quoted.
File, tool, command and package names should be double tick-quoted.
For example, ``` ``conf/local.conf`` ``` is preferred over
`"conf/local.conf"`.
### Project names
Project names should be introduced with single quotes, to have them rendered
with an italic font and make them easier to distinguish from command names
(double tick-quoted) and from regular English words.
An exception is when project names appear in hyperlinks, as nested markup
is not supported by Sphinx yet.
Project names should also be capitalized (or not) in the same way they are on
Wikipedia, or on their own project pages if they are not described on
Wikipedia. If a project name isn't capitalized, it should remain so even
at the beginning of a sentence.
For example:
* ``` `BitBake` ```
* ``` `ftrace` ```
### Variables
Every variable should be mentioned with:

View File

@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
DISTRO_VERSION = "5.0"
DISTRO_CODENAME = "scarthgap"
DISTRO_VERSION = "5.0+snapshot-${METADATA_REVISION}"
DISTRO_CODENAME = "styhead"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
SDK_VERSION[vardepvalue] = "${SDK_VERSION}"

View File

@@ -238,7 +238,7 @@ BB_DISKMON_DIRS ??= "\
# (CDN) kindly provided by JSDelivr, uncomment one of the SSTATE_MIRRORS lines, not both.
# Using the CDN rather than the yoctoproject.org address is suggested/preferred.
#
#BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
#BB_HASHSERVE_UPSTREAM = 'wss://hashserv.yoctoproject.org/ws'
#SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
#
###SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH"

View File

@@ -937,8 +937,8 @@ CONFIG_FEATURE_FANCY_PING=y
CONFIG_ROUTE=y
# CONFIG_SLATTACH is not set
CONFIG_SSL_CLIENT=y
CONFIG_TC=y
CONFIG_FEATURE_TC_INGRESS=y
# CONFIG_TC is not set
# CONFIG_FEATURE_TC_INGRESS is not set
# CONFIG_TCPSVD is not set
# CONFIG_UDPSVD is not set
CONFIG_TELNET=y

View File

@@ -11,7 +11,8 @@ SRC_URI = "file://init \
file://rc.local.sample \
"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
do_configure() {
:
@@ -23,8 +24,8 @@ do_compile() {
do_install() {
install -d ${D}${sysconfdir}
install -m 0755 ${WORKDIR}/init ${D}
install -m 0755 ${WORKDIR}/rc.local.sample ${D}${sysconfdir}
install -m 0755 ${S}/init ${D}
install -m 0755 ${S}/rc.local.sample ${D}${sysconfdir}
}
FILES:${PN} = "/init ${sysconfdir}/rc.local.sample"

View File

@@ -0,0 +1,27 @@
# Create a subset of the package feed that just contain the
# packages depended on by this recipe.
LOCALPKGFEED_DIR = "${WORKDIR}/localpkgfeed"
addtask localpkgfeed after do_build
do_localpkgfeed[cleandirs] = "${LOCALPKGFEED_DIR}"
do_localpkgfeed[nostamp] = "1"
def get_packaging_class(d):
package_class = d.getVar("PACKAGE_CLASSES").split()[0]
return package_class.replace("package_", "")
python () {
packaging = get_packaging_class(d)
d.setVarFlag("do_localpkgfeed", "rdeptask", "do_package_write_" + packaging)
}
python do_localpkgfeed() {
import oe.package_manager
packaging = get_packaging_class(d)
deploydir = d.getVar("DEPLOY_DIR_" + packaging.upper())
task = "package_write_" + packaging
oe.package_manager.create_packages_dir(d, d.getVar("LOCALPKGFEED_DIR"), deploydir, task, True, True)
}

View File

@@ -11,4 +11,4 @@ BBFILE_PRIORITY_selftest = "5"
addpylib ${LAYERDIR}/lib oeqa
LAYERSERIES_COMPAT_selftest = "scarthgap"
LAYERSERIES_COMPAT_selftest = "styhead"

View File

@@ -19,6 +19,7 @@ SRC_URI = "\
file://run-ptest \
"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
inherit ptest

View File

@@ -6,5 +6,8 @@ SRC_URI = "file://file1 \
SRC_URI:append:class-native = " file://file3"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
EXCLUDE_FROM_WORLD = "1"
BBCLASSEXTEND = "native"

View File

@@ -11,7 +11,7 @@ SECURITY_CFLAGS = ""
SECURITY_LDFLAGS = ""
do_compile() {
${FC} ${LDFLAGS} ${WORKDIR}/hello.f95 -o ${B}/fortran-hello
${FC} ${LDFLAGS} ${UNPACKDIR}/hello.f95 -o ${B}/fortran-hello
}
do_install() {

View File

@@ -17,20 +17,20 @@ SRC_URI = "file://installscript.sh \
EXCLUDE_FROM_WORLD = "1"
install_extrafunc() {
install -m 0644 ${WORKDIR}/selftest-replaceme-inst-func ${D}${datadir}/selftest-replaceme-inst-func
install -m 0644 ${UNPACKDIR}/selftest-replaceme-inst-func ${D}${datadir}/selftest-replaceme-inst-func
}
do_install() {
install -d ${D}${datadir}/
install -m 0644 ${WORKDIR}/selftest-replaceme-orig ${D}${datadir}/selftest-replaceme-orig
install -m 0644 ${WORKDIR}/selftest-replaceme-todir ${D}${datadir}
install -m 0644 ${WORKDIR}/file1 ${D}${datadir}/selftest-replaceme-renamed
install -m 0644 ${WORKDIR}/subdir/fileinsubdir ${D}${datadir}/selftest-replaceme-subdir
cp ${WORKDIR}/selftest-replaceme-inst-glob* ${D}${datadir}/selftest-replaceme-inst-globfile
cp ${WORKDIR}/selftest-replaceme-inst-todir-glob* ${D}${datadir}
install -m 0644 ${UNPACKDIR}/selftest-replaceme-orig ${D}${datadir}/selftest-replaceme-orig
install -m 0644 ${UNPACKDIR}/selftest-replaceme-todir ${D}${datadir}
install -m 0644 ${UNPACKDIR}/file1 ${D}${datadir}/selftest-replaceme-renamed
install -m 0644 ${UNPACKDIR}/subdir/fileinsubdir ${D}${datadir}/selftest-replaceme-subdir
cp ${UNPACKDIR}/selftest-replaceme-inst-glob* ${D}${datadir}/selftest-replaceme-inst-globfile
cp ${UNPACKDIR}/selftest-replaceme-inst-todir-glob* ${D}${datadir}
install -d ${D}${sysconfdir}
install -m 0644 ${S}/file2 ${D}${sysconfdir}/selftest-replaceme-patched
sh ${WORKDIR}/installscript.sh ${D}${datadir}
sh ${UNPACKDIR}/installscript.sh ${D}${datadir}
install_extrafunc
}

View File

@@ -3,9 +3,12 @@ SUMMARY = "Test recipe for recipeutils.patch_recipe()"
require recipeutils-test.inc
LICENSE = "HPND"
LIC_FILES_CHKSUM = "file://${WORKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
DEPENDS += "zlib"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
BBCLASSEXTEND = "native nativesdk"
SRC_URI += "file://somefile"

View File

@@ -5,7 +5,8 @@ LICENSE = "MIT"
DEPENDS += "coreutils-native"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
inherit useradd allarch

View File

@@ -6,7 +6,8 @@ SRC_URI = "file://hello.c \
file://gdb.sh \
"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
do_compile () {
${CC} hello.c -o hello1 ${CFLAGS} ${LDFLAGS}
@@ -14,7 +15,7 @@ do_compile () {
do_install () {
install -d ${D}${bindir}
install -m 755 ${WORKDIR}/gdb.sh ${D}${bindir}/
install -m 755 ${S}/gdb.sh ${D}${bindir}/
install -m 755 hello1 ${D}${bindir}/hello1
ln ${D}${bindir}/hello1 ${D}${bindir}/hello2

View File

@@ -5,7 +5,8 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} helloworld.c -o helloworld
@@ -16,4 +17,4 @@ do_install() {
install -m 0755 helloworld ${D}${bindir}
}
BBCLASSEXTEND = "native nativesdk"
BBCLASSEXTEND = "native nativesdk"

View File

@@ -3,7 +3,8 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
LICENSE = "MIT"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
EXCLUDE_FROM_WORLD="1"

View File

@@ -7,7 +7,8 @@ LICENSE = "MIT"
USERADD_DEPENDS = "acreategroup ccreategroup"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
EXCLUDE_FROM_WORLD="1"

View File

@@ -5,7 +5,8 @@ LICENSE = "MIT"
USERADD_DEPENDS = "acreategroup"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
EXCLUDE_FROM_WORLD="1"

View File

@@ -3,7 +3,8 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
LICENSE = "MIT"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
inherit useradd allarch

View File

@@ -5,7 +5,8 @@ LICENSE = "MIT"
USERADD_DEPENDS = "creategroup1"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
inherit useradd allarch

View File

@@ -5,7 +5,8 @@ LICENSE = "MIT"
USERADD_DEPENDS = "bcreategroup"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
EXCLUDE_FROM_WORLD="1"

View File

@@ -5,7 +5,8 @@ LICENSE = "MIT"
DEPENDS:append = "coreutils-native"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
inherit useradd allarch

View File

@@ -6,6 +6,9 @@ LICENSE = "MIT"
SRC_URI = "file://testfile.txt"
INHIBIT_DEFAULT_DEPS = "1"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
do_compile(){
echo "testdata" > ${B}/"file with [brackets].txt"
echo "testdata" > ${B}/"file with (parentheses).txt"

View File

@@ -9,7 +9,7 @@ EXCLUDE_FROM_WORLD = "1"
do_install() {
install -d ${D}${bindir}
# was not able to make ownership preservation check
install -m 0400 ${WORKDIR}/test.awk ${D}${bindir}/test
install -m 0400 ${UNPACKDIR}/test.awk ${D}${bindir}/test
perm_old="$(stat --format='%a' ${D}${bindir}/test)"
sed -i -e 's|@AWK_BIN@|${bindir}/awk|g' ${D}${bindir}/test

View File

@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
LAYERDEPENDS_skeleton = "core"
LAYERSERIES_COMPAT_skeleton = "scarthgap"
LAYERSERIES_COMPAT_skeleton = "styhead"

View File

@@ -10,7 +10,8 @@ SRC_URI = "file://Makefile \
file://COPYING \
"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
# The inherit of module.bbclass will automatically name module packages with
# "kernel-module-" prefix as required by the oe-core build environment.

View File

@@ -7,7 +7,7 @@ SUMMARY = "An example kernel recipe that uses the linux-yocto and oe-core"
# To use linux-yocto-custom in your layer, copy this recipe (optionally
# rename it as well) and modify it appropriately for your machine. i.e.:
#
# COMPATIBLE_MACHINE_yourmachine = "yourmachine"
# COMPATIBLE_MACHINE:yourmachine = "yourmachine"
#
# You must also provide a Linux kernel configuration. The most direct
# method is to copy your .config to files/defconfig in your layer,

View File

@@ -5,7 +5,8 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
SRC_URI = "file://helloworld.c"
S = "${WORKDIR}"
S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"
do_compile() {
${CC} ${LDFLAGS} helloworld.c -o helloworld

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