diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2022-09-30 21:13:31 +0300 |
---|---|---|
committer | Andrew Geissler <andrew@geissonator.com> | 2022-10-03 05:08:14 +0300 |
commit | 87f5cff0cfca11f43851cb3d7d49dd96ced7fe03 (patch) | |
tree | 5a748b271a6f682219155ce8292ca034c1b0411c /poky | |
parent | 251ad11cced0e148ba7529369597bf1d8d851032 (diff) | |
download | openbmc-87f5cff0cfca11f43851cb3d7d49dd96ced7fe03.tar.xz |
subtree updates
meta-raspberrypi: c57b464b88..45d56d82b7:
Andrei Gherzan (8):
linux-firmware-rpidistro: Fix wireless on Raspberry Pi 4
sdcard_image-rpi.bbclass: Move SDIMG_KERNELIMAGE definitions to their machines
raspberrypi0-2w.conf: Include the RPi 0-2w dtb for all 32-bit machines
rpi-base.inc: Split IMAGE_BOOT_FILES for kernel image
Add support for a ARMv7 machine supporting multiple Raspberry Pi boards
ci: Add raspberrypi-armv7 to the build matrix
Add support for a ARMv8 machine supporting multiple Raspberry Pi boards
ci: Add raspberrypi-armv8 to the build matrix
Chris Blättermann (1):
meta-raspberrypi: Include the device tree for Raspberry Pi CM4S
Khem Raj (2):
rpidistro-vlc,rpidistro-ffmpeg: Limit scope to just rpi machines
layers: Add langdale to LAYERSERIES_COMPAT
Vincent Davis Jr (4):
raspidistro-ffmpeg: add support for building raspidistro ffmpeg
rpidistro-vlc: add rpidistro VLC build (with MMAL enabled)
Add support for optional selection of vlc and ffmpeg
docs: add info for raspberrypi distro vlc
Vinicius Aquino (1):
raspberrypi-firmware: Update to 20220830 snapshot
meta-openembedded: a755af4fb5..0782ea454a:
Adrian Freihofer (1):
networkmanager: update 1.38.0 -> 1.40.0
Alejandro Enedino Hernandez Samaniego (1):
emacs: Update to version 28.2
Alex Kiernan (2):
libcoap: Fix gnutls/openssl/mbedtls PACKAGECONFIG conflicts
libcoap: Upgrade 4.3.0 -> 4.3.1
Alexander Kanavin (7):
mozjs-91: update to 91.13.0
collectd: add a python PACKAGECONFIG, off by default
zbar: disable python3 support as incompatible with py 3.11
libsigrockdecode: add python 3.11 compatibility
minifi-cpp: disable python support as incompatible with python 3.11
mozjs-91: backport a python 3.11 compatibility patch
mozjs-78: remove the recipe
Andreas Müller (1):
octave: upgrade 7.1.0 -> 7.2.0
Andrej Kozemcak (1):
squid: upgrade 4.15 -> 5.7
Andres Beltran (1):
Make graph dependencies optional
Bernhard Messerklinger (1):
libconfig-tiny-perl: add recipe
Chen Qi (2):
passwdqc: fix the libpasswdqc FILES setting
polkit: refresh patch
Frank de Brabander (1):
ntp: add missing runtime dependency on libgcc for sntp
Gianfranco Costamagna (1):
vboxguestdrivers: upgrade 6.1.36 -> 6.1.38
Hitendra Prajapati (1):
wireshark: CVE-2022-3190 Infinite loop in legacy style dissector
Howard Cochran (1):
ufw: Fix "could not find required binary 'iptables'"
Ivan Maidanski (1):
bdwgc: Fix typo in EXTRA_OECONF and remove unneeded extra CFLAGS
Jan Vermaete (1):
makeself: upate anonymous git access and dropped man page.
Khem Raj (140):
gtk+: Fix function signature of create_menu()
ippool: Fix build with clang15
corosync: Upgrade to 3.1.6
dlm: Upgrade to 4.1.1
dante: Upgrade to 1.4.3
ez-ipupdate: Fix build with clang
openflow: Include sys/stat.h for fchmod
nautilus: Backport a patch to fix build with clang-15
mctp: Update to latest tip of trunk
ypbind-mt: Upgrade to 2.7.2
packagegroup-meta-networking: Remove ypbind-mt on musl
fping: Fix build with musl
iscsi-initiator-utils: Upgrade to 2.1.7
radvd: Fix build on musl
linux-atm: Include missing string.h
memcached: Upgrade to 1.6.17
openlldp: Upgrade to 1.1.0
ettercap: Pass -D_GNU_SOURCE
rdma-core: Fix build with musl
openl2tp: Provide prototype for l2tp_api_rpc_check_request
iscsi-initiator-utils: Avoid hardcoding sed to /usr/bin/sed
toybox: Remove mount.h conflict fix
libuser: Upgrade to 0.63
gnome-keyring: Upgrade to 42.1
folks: Disable LTO and implicit-function-declaration as error
libgtop: Fix build with clang
ot-daemon,ot-br-posix: Fix mbedtls module builds
libcurses-perl: Fix main prototype in testtyp.c
rasdaemon: Upgrade to 0.6.8
psqlodbc: Upgrade to 13.02.0000
soci: Fix build with clang 15
geany-plugins: Fix type error found with clang 15
nlohmann-fifo: Update to tip of trunk
xfce4-dev-tools: Fix configure check for libX11
frr: Fix configure check for libreadline
quagga: Fix AC_CHECK_LIB for libreadline
libutempter: Upgrade to 1.2.2-alt1
libuio: Update to latest tip of trunk
serial-forward: Correct typo in specifying string.h header
mcelog: Upgrade to v189
fvwm: Disable int-conversion and implicit-int warnings as errors
hddtemp: Add missing prototype for ata_get_powermode in sata.c
nana: Include stdlib.h form exit() and abort() functions
libsmi: Fix build with clang 15
ckermit: Fix build with clang
linuxptp: Include string.h for strncpy()
wifi-test-suite: Fix build with clang
xf86-video-nouveau: Do not treat implicit-function-declaration as error
android-tools: Add protoype declaration for b64_pton
libio-pty-perl: Fix build on musl
xrdp: Fix build with clang-15
libpwquality: Do not use fgetpwent_r on musl
lmbench: Add patch to fix typo including string.h header
lxdm: Fix msghdr initialization on musl
zabbix: Upgrade to 6.2.2
epeg: Fix AC_CHECK_LIB for libjpeg and libexif
gensio: Fix AC_CHECK_LIB for libwrap
pam-plugin-ccreds: Fix AC_CHECK_LIB for libdb
sblim-sfcb: Fix AC_CHECK_LIB tests for various libraries
rdfind: Fix AC_CHECK_LIB for libnettle
srecord: Fix AC_CHECK_LIB for gpg-error
tokyocabinet: Fix AC_CHECK_LIB test functions
libcereal: Do not use uniform_int_distribution<char> template
raptor2: Match reutrn type from RAPTOR_ASSERT_OBJECT_POINTER_RETURN_VALUE
pam-ssh-agent-auth: Fix __progname configure check
daemontools: Fix build with clang15 and musl
pmtools: Update patch to include string.h and function prototype for main
uw-imap: Fix build with clang/musl
libx86: Fix pointer typecasting in assignment
obconf: Add fixes for missing function prototypes
sblim-sfcc: Fix build with clang
sblim-sfcb: Add missing headers file for clang/musl
sanlock: Add missing prototype for mem* functions
geis: Add missing prototypes to functions
libgxim: Enable debug mode
hplip: Upgrade to 3.22.6
scsirastools: Pass -D_LARGEFILE64_SOURCE via CFLAGS
con2fbmap: Include string.h for strerror
directfb-examples: Fix pthread_t assignment type
uml-utilities: Add missing headers for exit and str+ functions
oprofile: Fix configure check for perf_events support
libmcrypt: Suppress implicit-int warnings as errors
gtkperf: Define prototype for setup_appdata
cyrus-sasl: Fix time.h detection logic in configure
enscript: Include string.h form str* function prototypes
glm: Disable clang specific warnings
mg: Upgrade to 20220614 release
gphoto2: Upgrade to 2.5.28
ipmiutil: Add missing headers for protypes of free/malloc/atoi
cdrkit: Add missing header for function prototypes
fluentbit: Drop redundant patch
minifi-cpp: Disable gnu extention of strerror_r when using musl
augeas: Check for __GLIBC__ to use gnu extention for strerror_r
nlohmann-fifo: Disable cpp11 shuffle with clang/libc++
ipmitool: Update to 1.8.19
autofs: Backport innetgr and strerror_r musl patches
linux-atm: Remove AC_CHECK_LIB for libresolv
hdf5: Upgrade to 1.13.2
openldap: Fix configure check for pthread_detach
libimobiledevice: Explicitly pass -D_GNU_SOURCE via cflags
jq: Upgrade to latest and fix configure tests
lcdproc: Fix build on non-x86 and arm architectures
libsmi: Define _DEFAULT_SOURCE for timegm API
tftp-hpa: Fix includes for bsd_signal()
sblim-sfcb: Include config.h before using CONFIG_ERROR_H
minifi-cpp: Disable lto.
ntp: Fix check for pthread_detach
netkit-telnet: Add time.h from strftime/time prototypes
passwdqc: Upgrade to 2.0.2
lmbench: Fix build time tests and use the scripts/build
mcpp: Fix build with clang
ot-br-posix: Fix unused variable error
sthttpd: Define _GNU_SOURCE if HAVE_SIGSET is set
libesmtp: Enable gnu strerror_r on glibc
android-tools: Use local strlcpy implementation on glibc
uw-imap: Avoid programs using gets()
matplotlib: Upgrade to 3.5.3
cockpit: Update to 276
geary: Fix build with clang
toybox: Fix build on 32bit arches with 64bit time_t defaults
libcdio: Define _LARGEFILE64_SOURCE
rocksdb: Upgrade to 7.5.3 release
fwupd: Upgrade to 1.8.4
luajit: Use builtin for __clear_cache on clang
kexec-tools-klibc: Fix type mismatch in calls to dtb_set_initrd on mips
minifi-cpp: Fix build on musl
aom: Provide missing function prototypes
vulkan-cts,opengl-es-cts: Upgrade to1.3.3.1 and 3.2.8 respectively
python3-lxml: Delete
fwupd: Fix tostring() call to not have xml_declaration param
sox: Enable -D_FILE_OFFSET_BITS=64 and depend on libtool
rdfind: Fix patch-fuzz warnings
fwupd: Drop sqlite3 from default deps
sqlite: Drop sqlite2 recipe
wvstreams: Add missing dependency on boost
jack: Upgrade to 1.19.21
python3-grpcio-tools: Disable clang's musttail attribute on mips
fwupd: Replace python3.7 patch with upstreamed one
mdio-tools,mdio-netlink: Upgrade recipes to 1.2.0
python3-requests-unixsocket: Fix override syntax
Lei Maohui (5):
fltk: Fix buildpaths warning.
exiv2: Fix buildpaths warning.
tracker-miners: Fix buildpaths warning.
gexiv2: Fix buildpaths warning.
mariadb: Fix buildpaths warning.
Leon Anavi (24):
python3-imageio: Upgrade 2.21.1 -> 2.21.2
python3-prompt-toolkit: Upgrade 3.0.30 -> 3.0.31
python3-haversine: Upgrade 2.6.0 -> 2.7.0
python3-transitions: Upgrade 0.8.11 -> 0.9.0
python3-astroid: Upgrade 2.12.5 -> 2.12.9
python3-imageio: Upgrade 2.21.2 -> 2.21.3
python3-portion: Upgrade 2.2.0 -> 2.3.0
python3-networkx: Upgrade 2.8.5 -> 2.8.6
python3-prettytable: Upgrade 3.3.0 -> 3.4.1
python3-pydantic: Upgrade 1.9.1 -> 1.10.2
python3-soupsieve: Upgrade 2.3.1 -> 2.3.2.post1
python3-awesomeversion: Upgrade 22.8.0 -> 22.9.0
python3-ujson: Upgrade 5.4.0 -> 5.5.0
python3-marshmallow: Upgrade 3.17.1 -> 3.18.0
python3-elementpath: Upgrade 3.0.1 -> 3.0.2
python3-traitlets: Upgrade 5.3.0 -> 5.4.0
python3-joblib: Upgrade 1.1.0 -> 1.2.0
python3-astroid: Upgrade 2.12.9 -> 2.12.10
python3-imageio: Upgrade 2.21.3 -> 2.22.0
python3-email-validator: Upgrade 1.2.1 -> 1.3.0
python3-termcolor: Upgrade 1.1.0 -> 2.0.1
python3-aiohttp: Upgrade 3.8.1 -> 3.8.3
python3-pytz-deprecation-shim: Runtime dependencies
python3-license-expression: Upgrade 21.6.14 -> 30.0.0
Luca Boccassi (1):
dbus-broker: update to v32
Markus Volk (4):
pipewire: update 0.3.56 -> 0.3.57
flatbuffers: upgrade 2.0.6 -> 2.0.8
appstream-glib: fix manpage generation
jansson: use cmake instead of autotools
Martin Jansa (2):
lvm2: use bfd even with ld-is-gold in DISTRO_FEATURES
libcec: fix runtime dependencies for ${PN}-examples
Ming Liu (1):
libusbgx: add PACKAGECONFIG to make build predicable
Mingli Yu (2):
python3-pyzmq: Fix buildpaths issue
python3-pyzmq: Add RDEPENDS for python3-pyzmq-ptest
Naveen Saini (1):
ocl-icd: add nativesdk support
Ovidiu Panait (1):
redis: build with USE_SYSTEMD=yes when systemd is enabled
Patrick Williams (1):
unifex: remove recipe
Philippe Coval (3):
lvgl: Add dialog-lvgl recipe as demo example
pim435: Relocate sources to eclipse
ot-br-posix: Add dep to ipset as used by firewall
Riyaz Khan (2):
sdbus-c++: Upgrade sdbus-c++ 1.1.0 to 1.2.0
sdbus-c++-tools: Upgrade sdbus-c++-tools 1.1.0 to 1.2.0
Sergio Prado (1):
polkit: refresh patch to fix warning
Steffen Olsen (1):
postgreql: Fix pg_config not working after buildpaths patch
Vincent Davis Jr (1):
cglm: New recipe for cglm-0.8.5
Wang Mingyu (16):
abseil-cpp: upgrade 20220623.0 -> 20220623.1
chrony: upgrade 4.2 -> 4.3
ctags: upgrade 5.9.20220821.0 -> 5.9.20220828.0
fio: upgrade 3.31 -> 3.32
libblockdev: upgrade 2.26 -> 2.27
libdev-checklib-perl: upgrade 1.14 -> 1.16
lvm2/libdevmapper: upgrade 2.03.11 -> 2.03.16
libforms: upgrade 1.2.3 -> 1.2.4
python3-astroid: upgrade 2.12.4 -> 2.12.5
python3-colorlog: upgrade 6.6.0 -> 6.7.0
python3-django: upgrade 3.2.12 -> 4.1
python3-google-api-core: upgrade 2.8.2 -> 2.10.0
python3-google-api-python-client: upgrade 2.57.0 -> 2.58.0
python3-grpcio: upgrade 1.48.0 -> 1.48.1
python3-grpcio-tools: upgrade 1.48.0 -> 1.48.1
cli11: upgrade 1.9.1 -> 2.2.0
Xu Huan (5):
python3-greenlet: upgrade 1.1.2 -> 1.1.3
python3-marshmallow: upgrade 3.17.0 -> 3.17.1
python3-pyudev: upgrade 0.23.2 -> 0.24.0
python3-websocket-client: upgrade 1.3.3 -> 1.4.0
python3-xmlschema: upgrade 2.0.2 -> 2.0.3
Yi Zhao (1):
tcpreplay: fix buildpaths issue
Zheng Qiu (2):
jq: add ptest
rsyslog: update 8.2206->8.2208
hongxu (1):
python3-h5py: fix wrong file driver version
wangmy (78):
fuse3: upgrade 3.11.0 -> 3.12.0
xfstests: upgrade 2022.08.07 -> 2022.08.21
gnome-bluetooth: upgrade 42.3 -> 42.4
libadwaita: upgrade 1.1.4 -> 1.1.5
networkmanager-openvpn: upgrade 1.8.18 -> 1.10.0
open-isns: upgrade 0.101 -> 0.102
boost-sml: upgrade 1.1.5 -> 1.1.6
ctags: upgrade 5.9.20220828.0 -> 5.9.20220904.0
hwdata: upgrade 0.361 -> 0.362
modemmanager: upgrade 1.18.10 -> 1.18.12
php: upgrade 8.1.9 -> 8.1.10
poppler: upgrade 22.08.0 -> 22.09.0
syslog-ng: upgrade 3.37.1 -> 3.38.1
libio-socket-ssl-perl: upgrade 2.074 -> 2.075
python3-aiofiles: upgrade 0.8.0 -> 22.1.0
python3-antlr4-runtime: upgrade 4.10 -> 4.11.1
python3-croniter: upgrade 1.3.5 -> 1.3.7
python3-google-api-python-client: upgrade 2.58.0 -> 2.60.0
python3-langtable: upgrade 0.0.58 -> 0.0.59
python3-oauthlib: upgrade 3.2.0 -> 3.2.1
python3-pymetno: upgrade 0.9.0 -> 0.10.0
python3-sqlalchemy: upgrade 1.4.40 -> 1.4.41
python3-twisted: upgrade 22.4.0 -> 22.8.0
python3-websocket-client: upgrade 1.4.0 -> 1.4.1
python3-xmlschema: upgrade 2.0.3 -> 2.0.4
libadwaita: upgrade 1.1.5 -> 1.2.0
bats: upgrade 1.7.0 -> 1.8.0
ctags: upgrade 5.9.20220904.0 -> 5.9.20220911.0
iceauth: upgrade 1.0.8 -> 1.0.9
iwd: upgrade 1.29 -> 1.30
libblockdev: upgrade 2.27 -> 2.28
libjcat: upgrade 0.1.11 -> 0.1.12
libpfm4: upgrade 4.11.0 -> 4.12.0
libxmlb: upgrade 0.3.9 -> 0.3.10
neon: upgrade 0.32.2 -> 0.32.4
setxkbmap: upgrade 1.3.2 -> 1.3.3
xclock: upgrade 1.0.9 -> 1.1.1
xkbutils: upgrade 1.0.4 -> 1.0.5
xlsfonts: upgrade 1.0.6 -> 1.0.7
xmag: upgrade 1.0.6 -> 1.0.7
xwud: upgrade 1.0.5 -> 1.0.6
python3-cachecontrol: upgrade 0.12.11 -> 0.12.12
python3-cantools: upgrade 37.1.2 -> 37.2.0
python3-eth-typing: upgrade 3.1.0 -> 3.2.0
python3-fasteners: upgrade 0.17.3 -> 0.18
python3-flask-socketio: upgrade 5.3.0 -> 5.3.1
python3-google-api-core: upgrade 2.10.0 -> 2.10.1
python3-google-api-python-client: upgrade 2.60.0 -> 2.61.0
python3-grpcio-tools: upgrade 1.48.1 -> 1.49.0
python3-grpcio: upgrade 1.48.1 -> 1.49.0
python3-jsonrpcserver: upgrade 5.0.8 -> 5.0.9
python3-protobuf: upgrade 4.21.5 -> 4.21.6
xfstests: upgrade 2022.08.21 -> 2022.09.04
gnome-font-viewer: upgrade 42.0 -> 43.0
tracker: upgrade 3.3.3 -> 3.4.0
yelp-xsl: upgrade 42.0 -> 42.1
dnsmasq: upgrade 2.86 -> 2.87
unbound: upgrade 1.16.2 -> 1.16.3
cairomm-1.16: upgrade 1.16.1 -> 1.16.2
ctags: upgrade 5.9.20220911.0 -> 5.9.20220925.0
libgee: upgrade 0.20.5 -> 0.20.6
libpeas: upgrade 1.32.0 -> 1.34.0
opencl-headers: upgrade 2022.05.18 -> 2022.09.23
pangomm-2.48: upgrade 2.50.0 -> 2.50.1
thrift: upgrade 0.16.0 -> 0.17.0
zabbix: upgrade 6.2.2 -> 6.2.3
python3-djangorestframework: upgrade 3.13.1 -> 3.14.0
python3-google-api-python-client: upgrade 2.61.0 -> 2.62.0
python3-google-auth: upgrade 2.11.0 -> 2.11.1
python3-grpcio-tools: upgrade 1.49.0 -> 1.49.1
python3-grpcio: upgrade 1.49.0 -> 1.49.1
python3-h11: upgrade 0.13.0 -> 0.14.0
python3-humanize: upgrade 4.3.0 -> 4.4.0
python3-langtable: upgrade 0.0.59 -> 0.0.60
python3-ldap: upgrade 3.4.2 -> 3.4.3
python3-pandas: upgrade 1.4.4 -> 1.5.0
python3-path: upgrade 16.4.0 -> 16.5.0
python3-xmlschema: upgrade 2.0.4 -> 2.1.0
zhengrq.fnst (8):
python3-astroid: upgrade 2.12.2 -> 2.12.4
python3-flatbuffers: upgrade 2.0.6 -> 2.0.7
python3-flask-socketio: upgrade 5.2.0 -> 5.3.0
python3-gnupg: upgrade 0.4.9 -> 0.5.0
python3-natsort: upgrade 8.1.0 -> 8.2.0
python3-sympy: upgrade 1.10.1 -> 1.11.1
python3-pandas: upgrade 1.4.3 -> 1.4.4
python3-parsimonious: upgrade 0.9.0 -> 0.10.0
zhengruoqin (15):
wolfssl: upgrade 5.4.0 -> 5.5.0
ser2net: upgrade 4.3.7 -> 4.3.8
tree: upgrade 2.0.3 -> 2.0.4
xorgxrdp: upgrade 0.2.18 -> 0.9.19
python3-zeroconf: upgrade 0.39.0 -> 0.39.1
smarty: upgrade 4.2.0 -> 4.2.1
python3-pycocotools: upgrade 2.0.4 -> 2.0.5
python3-pyproj: upgrade 3.3.1 -> 3.4.0
python3-pyzmq: upgrade 23.2.1 -> 24.0.0
python3-regex: upgrade 2022.8.17 -> 2022.9.13
python3-pyjwt: upgrade 2.4.0 -> 2.5.0
python3-pyscaffold: upgrade 4.3 -> 4.3.1
python3-pyzmq: upgrade 24.0.0 -> 24.0.1
python3-sqlparse: upgrade 0.4.2 -> 0.4.3
python3-web3: upgrade 5.30.0 -> 5.31.0
meta-security: 10fdc2b13a..824d2762f6:
Armin Kuster (4):
suricata: fix compile issue
cryptmount: fix systemd service install
update sssd to 2.7.4
update chipsec to 1.8.8
poky: 9b1db65e7d..5200799866:
Alejandro Hernandez Samaniego (1):
rootfs.py: dont try to list installed packages for baremetal images
Alexander Kanavin (15):
selftest/cases/bblayers.py: build python3-jsonschema only once
oe-setup-builddir: do not suggest local.conf as a source of examples
init-system-helpers: exclude experimental tags from version check
ref-manual: correct the location of default configuration template
dev-manual: common-tasks.rst: drop the output of 'bitbake-layers --help'
common-tasks.rst: describe the layer setup tooling
dev-manual: common-tasks.rst: describe the newly added layer setup and template config commands
dev-manual: common-tasks.rst: rewrite the section about configuration templates
github-releases: add a class that consolidates version checks
meta: fix version checks in all github recipes using the github-releases class
virglrenderer: use https for fetching from gitlab
local.conf.sample: correct the location of public hashserv
scripts/oe-setup-builddir: do not read TEMPLATECONF from templateconf.cfg
rpm: update 4.18.0-rc1 -> 4.18.0-release
tzdata: update to 2022d
Alexandre Belloni (2):
runqemu: display host uptime when starting
oeqa/runtime/dnf: fix typo
Andrei Gherzan (6):
depmodwrapper-cross: Take into consideration kernel package name
kernel.bbclass: Pass the kernel package name to depmodwrapper
kernel-module-split.bbclass: Pass the kernel package name to depmodwrapper
rootfs.py: Run depmod(wrapper) against each compiled kernel
rootfs.py: Drop FAKEROOT support in exec function
grub: Allow build on armv7ve/a with softfp
Aryaman Gupta (1):
bitbake: doc: bitbake-user-manual: Add definition for BB_PRESSURE_MAX variables
Bob Henz (1):
systemd-systemctl: Fix WantedBy processing
Bruce Ashfield (11):
linux-yocto/5.15: update to v5.15.63
linux-yocto/5.19: update to v5.19.5
linux-yocto/5.19: update to v5.19.7
linux-yocto/5.15: update to v5.15.65
kern-tools: fix queue processing in relative TOPDIR configurations
kern-tools: allow 'y' or 'm' to avoid config audit warnings
linux-yocto/5.19: update to v5.19.9
linux-yocto/5.15: update to v5.15.68
linux-yocto/5.19: cfg: fix ACPI warnings for -tiny
linux-yocto/5.15: cfg: fix ACPI warnings for -tiny
linux-yocto/5.19: fix gcc-11 warning
Changhyeok Bae (2):
iproute2: Unset CLEANBROKEN
iproute2: merge .inc into .bb
Changqing Li (1):
parselogs.py: ignore systemd-logind warning message
Chen Qi (2):
shadow-securetty: allow ttyS4 for amd-snowyowl-64
useradd-example: do not use unsupported clear text password
Daniel Gomez (3):
rootfs-postcommands: Remove dropbear inconsistent comment
gtk-icon-cache: Fix GTKIC_CMD if-else condition
dropbear: Add enable-x11-forwarding PACKAGECONFIG option
Daniel McGregor (2):
coreutils: add openssl PACKAGECONFIG
gcc: set the default target arch
Denys Dmytriyenko (1):
glibc-locale: explicitly remove empty dirs in ${libdir}
Dmitry Baryshkov (2):
linux-firmware: upgrade 20220708 -> 20220913
linux-firmware: package new Qualcomm firmware
Etienne Cordonnier (2):
python3: add PACKAGECONFIG[editline]
opkg: add option for zstd support
Fabio Estevam (1):
README.hardware.md: Fix the tftp example
Florin Diaconescu (1):
expat: upgrade 2.4.8 -> 2.4.9
He Zhe (2):
lttng-tools: Disable on qemuriscv32
lttng-tools: Disable on riscv32
Johan Korsnes (1):
ref-manual: variables: document KERNEL_IMAGETYPES
John Edward Broadbent (1):
externalsrc: git submodule--helper list unsupported
Jose Quaresma (2):
bitbake: lib/bb: warning when the debug message is invalid
bitbake: fetch2/crate fixup c212b0f3 loglevel
Joshua Watt (2):
oeqa: qemurunner: Report UNIX Epoch timestamp on login
bitbake: bitbake: Fix a few more logger debug() calls
Kai Kang (2):
binutils: handle symlink files for gprofng
binutils: another way to clear GPROFNG_ALTS for clang and musl
Khem Raj (20):
autoconf: Update K & R stype functions
webkitgtk: Update to 2.6.37
rust: Use variable to specify extra tools to install
boost: Refrain bjam from poking into host includes
gobject-introspection: Do not hardcode objdump name
binutils-cross-canadian: Do not package gprofng.rc
webkitgtk: Fix build on 32bit arm
python3-lxml: Add recipe
bitbake.conf: Define TC_CXX_RUNTIME
rust: Use libc++ runtime when using clang with llvm runtime
glibc: Upgrade to tip of 2.36 branch
binutils: Ignore CVE-2022-38126 CVE-2022-38127
inetutils: Fix remote DoS vulnerability in inetutils-telnetd
curl: Add missing perl modules in ptest rdepends
elfutils: Enable ptests on musl targets
grub: Apply backports to fix build with clang on x86
apt: Fix type mismatches and ptest builds
linux-yocto: Enable mdio for qemu
gcompat: Add __getauxval wrapper needed on aarch64
ref-manual: Define TC_CXX_RUNTIME
Konrad Weihmann (1):
python3-idna: migrate to flit-core
Kristian Amlie (1):
externalsrc: Don't wipe out src dir when EXPORT_FUNCTIONS is used.
Leon Anavi (1):
python3-manifest.json: Add zoneinfo
Markus Volk (5):
squashfs-tools: build with lzo support
libsdl2: update 2.0.22 -> 2.24.0
libdrm: upgrade 2.4.112 -> 2.4.113
mesa: upgrade 22.1.6 -> 22.2.0
virglrenderer: upgrade 0.9.1 -> 0.10.3
Martin Jansa (3):
webkitgtk: fix gstreamer include paths
libxml2: Port gentest.py to Python-3
create-pull-request: don't switch the git remote protocol to git://
Mattias Jernberg (1):
bitbake: utils: Add enable_loopback_networking()
Michael Opdenacker (8):
bitbake: bitbake-user-manual: mention pydevshell in OE
dev-manual: common-tasks.rst: refer to Python functions in BitBake manual
ref-manual: features.rst: add missing default distro features
ref-manual: variables.rst: remove BBPATH
ref-manual: structure.rst: add reference to the contents of the build directory
ref-manual: structure.rst: improve information about build/cache/
ref-manual: variables.rst: correct templateconf.cfg file name
ref-manual: structure.rst: add more subsection levels
Mikko Rapeli (7):
u-boot: switch from append to += in SRC_URI
glibc-tests: use += instead of :append
go-native: switch from SRC_URI:append to SRC_URI +=
python3-rfc3986-validator: switch from SRC_URI:append to SRC_URI +=
linux-libc-headers: switch from SRC_URI:append to SRC_URI +=
common-tasks.rst: remove SRC_URI:append from examples
kernel-dev/common.rst: remove SRC_URI:append from examples
Mingli Yu (1):
busybox: add devmem 128-bit support
Otavio Salvador (2):
bitbake: toaster: fix kirkstone version
rust-hello-world: move to recipes-extended
Pascal Bach (1):
bitbake: fetch2/ssh.py: fix checkstatus
Paulo Neves (2):
watchdog: Remove unneeded tirpc dependency
bitbake: fetch2: Remove unneeded conditional
Pavel Zhukov (1):
core-image.bbclass: Exclude openssh complementary packages
Peter Bergin (1):
rootfs-postcommands.bbclass: avoid moving ssh host keys if etc is writable
Peter Kjellerstedt (6):
cairo: Adapt the license information based on what is being built
oe-setup-builddir: Correct when validation of the templates dir is run
oe-setup-builddir: Simplify error handling
oe-setup-builddir: Avoid shellcheck warnings
oe-setup-builddir: Keep templateconf.cfg relative if $TEMPLATECONF is
oe-setup-builddir: Always update templateconf.cfg
Petr Vorel (1):
ltp: Update list of tests not buildable on musl
Richard Purdie (54):
bitbake: wget: Avoid bad checksum race issues
bitbake: asyncrpc/client: Fix unix domain socket chdir race issues
build-appliance-image: Update to master head revision
sstate: Fix sstate file mirroring checksum issue
bitbake: fetch2: Ensure mirror tarballs don't enforce checksum
qemu: Upgrade 7.0.0 -> 7.1.0
qemurunner: Update to match qmp changes
build-appliance-image: Update to master head revision
vim: Upgrade 9.0.0341 -> 9.0.0453
selftest/qemurunner: Work around possible control character contamination
oetest: Drop unused variable
oetest: Drop getResults usage from oeRuntimeTest
oeqa/utils/decorators: Drop unused decorators
oeqa/utils/decorators: Drop getResults
autoconf-archive: upgrade 2022.02.11 -> 2022.09.03
ofono: upgrade 1.34 -> 2.0
ccache: upgrade 4.6.2 -> 4.6.3
btrfs-tools: upgrade 5.19 -> 5.19.1
dnf: upgrade 4.13.0 -> 4.14.0
git: upgrade 2.37.2 -> 2.37.3
ell: upgrade 0.52 -> 0.53
file: upgrade 5.42 -> 5.43
ninja: upgrade 1.11.0 -> 1.11.1
libcomps: upgrade 0.1.18 -> 0.1.19
python3-hatchling: upgrade 1.8.1 -> 1.9.0
meson: upgrade 0.63.1 -> 0.63.2
python3-idna: upgrade 3.3 -> 3.4
librepo: upgrade 1.14.4 -> 1.14.5
python3-hypothesis: upgrade 6.46.11 -> 6.54.5
python3-numpy: upgrade 1.23.2 -> 1.23.3
libdnf: upgrade 0.68.0 -> 0.69.0
python3-psutil: upgrade 5.9.1 -> 5.9.2
ffmpeg: upgrade 5.1 -> 5.1.1
repo: upgrade 2.29.1 -> 2.29.2
nghttp2: upgrade 1.48.0 -> 1.49.0
libjitterentropy: upgrade 3.4.0 -> 3.4.1
sqlite3: upgrade 3.39.2 -> 3.39.3
diffoscope: upgrade 220 -> 221
python3-certifi: upgrade 2022.6.15 -> 2022.9.14
libpng: upgrade 1.6.37 -> 1.6.38
numactl: upgrade 2.0.14 -> 2.0.15
rpm: Upgrade 4.17.1 -> 4.18rc1
perf: Fix for recent kernel upgrades
oeqa/runtime/virgl: Update test to match new mesa version
vim: Upgrade 9.0.453 -> 9.0.541
vim: Upgrade 9.0.0541 -> 9.0.0598
qemu: Add patch to address arm qemu upgrade issues
layer.conf: Update to use langdale as the core layer name
poky: Update to 4.1 version
poky: Update to match poky version numbers
bitbake: bitbake: Bump to version 2.2.0
build-appliance-image: Update to master head revision
go: Fix reproducibility failures
build-appliance-image: Update to master head revision
Robert Joslyn (6):
xorg-lib-common: Add variable to set tarball type
libxfont2: Update 2.0.5 to 2.0.6
libxau: Update 1.0.9 to 1.0.10
libfontenc: Update 1.1.4 to 1.1.6
flac: Update 1.3.4 to 1.4.0
tzdata: Update from 2022b to 2022c
Ross Burton (16):
meta-selftest/poison: improve sysroot poisoning test case
gcc-cross: pass -Werror=poison-system-directories to compiler stages
gcc: remove obsolete 0012-export-CPP.patch
xmlto: remove redundant patches
tiff: backport fix for CVE-2022-2953
gcc: remove obsolete poisoned calloc workaround
gcc: remove obsolete MinGW patch
oeqa/selftest/debuginfod: don't re-use the database
libgcrypt: disable bench-slope test case
libxml2: don't override XML_CATALOG_FILES in xmllint wrapper if already set
glibc: mark a CVE where we have merged the fix
qemu: re-add the fix for CVE-2022-1050
qemu: fix CVE-2022-2962
dnf: add dummy packages for testing
oeqa/runtime/dnf: use dnf-test packages
Revert "wic/plugins/images/direct: Allow changes in fstab on rootfs"
Ruiqiang Hao (1):
tune-neoversen2: support tune-neoversen2 base on armv9a
Samuli Piippo (2):
Revert "gcc-cross-canadian: Add symlink to real-ld alongside other symlinks"
gcc-cross-canadian: add default plugin linker
Stefano Babic (1):
libubootenv: upgrade 0.3.2 -> 0.3.3
Sundeep KOKKONDA (1):
rust-cross-canadian: Fix for the issue caused by using sdk shell
Teoh Jay Shen (1):
bind: upgrade 9.18.6 -> 9.18.7
Tom Hochstein (2):
cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDK
connman: Drop redundant nfsroot handling
Ulrich Ölmann (5):
icecc.bbclass: fix typos
icecc.bbclass: delete 'rm' command
manuals: fix paths to default templates & clean up whitespaces
icecc.bbclass: fix filename of recipe in comment
manuals: fix typos in the context of 'icecc' & clean up whitespaces
Vyacheslav Yurkov (5):
oeqa/selftest: drop image_feature test from overlayfs
classes: Update overlayfs classes to use new bitbake functionality
files: overlayfs-etc: refactor preinit template
classes: files: Extend overlayfs-etc class
oeqa/selftest: Add lower layer test for overlayfs-etc
niko.mauno@vaisala.com (2):
systemd: Add 'no-dns-fallback' PACKAGECONFIG option
systemd: Fix unwritable /var/lock when no sysvinit handling
pgowda (4):
rust: Add linker configurations for cross compilation
rust: Enable verbose-tests to get the test results in readable format
binutils : CVE-2022-38533
binutils : Fix CVE-2022-38128
wangmy (9):
cracklib: upgrade 2.9.7 -> 2.9.8
kmscube: upgrade to latest revision
piglit: upgrade to latest revision
python3-dtschema: upgrade 2022.8.1 -> 2022.8.3
python3-mako: upgrade 1.2.1 -> 1.2.2
python3-pathspec: upgrade 0.9.0 -> 0.10.1
python3-pytest: upgrade 7.1.2 -> 7.1.3
vala: upgrade 0.56.2 -> 0.56.3
less: upgrade 600 -> 608
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I1705b78d8a5ef5762fe770a69ed9b866fac52ccf
Diffstat (limited to 'poky')
301 files changed, 4717 insertions, 3138 deletions
diff --git a/poky/bitbake/bin/bitbake b/poky/bitbake/bin/bitbake index b56f6207c6..7cbf88f480 100755 --- a/poky/bitbake/bin/bitbake +++ b/poky/bitbake/bin/bitbake @@ -28,7 +28,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException if sys.getfilesystemencoding() != "utf-8": sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") -__version__ = "2.0.1" +__version__ = "2.2.0" if __name__ == "__main__": if __version__ != bb.__version__: diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst index 337821612c..af9947199c 100644 --- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst +++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst @@ -1922,6 +1922,15 @@ looking at the source code of the ``bb`` module, which is in the commonly used functions ``bb.utils.contains()`` and ``bb.utils.mkdirhier()``, which come with docstrings. +Testing and Debugging BitBake Python code +----------------------------------------- + +The OpenEmbedded build system implements a convenient ``pydevshell`` target which +you can use to access the BitBake datastore and experiment with your own Python +code. See :yocto_docs:`Using a Python Development Shell +</dev-manual/common-tasks.html#using-a-python-development-shell>` in the Yocto +Project manual for details. + Task Checksums and Setscene =========================== diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst index 12aef3cbb7..725e6c2cd5 100644 --- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst +++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst @@ -483,6 +483,31 @@ overview of their function and contents. You must set this variable in the external environment in order for it to work. + :term:`BB_PRESSURE_MAX_CPU` + The threshold for maximum CPU pressure before BitBake prevents the + scheduling of new tasks. Once the :term:`BB_PRESSURE_MAX_CPU` threshold + is exceeded, new tasks are not started until the pressure subsides to + below the threshold. If :term:`BB_PRESSURE_MAX_CPU` is not set, CPU + pressure is not monitored. A threshold can be set in ``conf/local.conf`` + as:: + + BB_PRESSURE_MAX_CPU = "500" + + :term:`BB_PRESSURE_MAX_IO` + The threshold for maximum IO pressure experienced before BitBake + prevents the scheduling of new tasks. The IO pressure is regulated in the + same way as :term:`BB_PRESSURE_MAX_CPU`. At this point in time, + experiments show that IO pressure tends to be short-lived and regulating + just the CPU can help to reduce it. + + :term:`BB_PRESSURE_MAX_MEMORY` + The threshold for maximum memory pressure experienced before BitBake + prevents the scheduling of new tasks. The memory pressure is regulated in + the same way as :term:`BB_PRESSURE_MAX_CPU`. Note that any memory + pressure indicates that a system is being pushed beyond its capacity. At + this point in time, experiments show that memory pressure tends to be + short-lived and regulating just the CPU can help to reduce it. + :term:`BB_RUNFMT` Specifies the name of the executable script files (i.e. run files) saved into ``${``\ :term:`T`\ ``}``. By default, the diff --git a/poky/bitbake/lib/bb/__init__.py b/poky/bitbake/lib/bb/__init__.py index 6b470aa195..99cb5a0101 100644 --- a/poky/bitbake/lib/bb/__init__.py +++ b/poky/bitbake/lib/bb/__init__.py @@ -9,7 +9,7 @@ # SPDX-License-Identifier: GPL-2.0-only # -__version__ = "2.0.1" +__version__ = "2.2.0" import sys if sys.version_info < (3, 6, 0): @@ -60,6 +60,10 @@ class BBLoggerMixin(object): return if loglevel < bb.msg.loggerDefaultLogLevel: return + + if not isinstance(level, int) or not isinstance(msg, str): + mainlogger.warning("Invalid arguments in bbdebug: %s" % repr((level, msg,) + args)) + return self.log(loglevel, msg, *args, **kwargs) def plain(self, msg, *args, **kwargs): diff --git a/poky/bitbake/lib/bb/asyncrpc/client.py b/poky/bitbake/lib/bb/asyncrpc/client.py index 881434d2e9..fa042bbe87 100644 --- a/poky/bitbake/lib/bb/asyncrpc/client.py +++ b/poky/bitbake/lib/bb/asyncrpc/client.py @@ -31,7 +31,17 @@ class AsyncClient(object): async def connect_unix(self, path): async def connect_sock(): - return await asyncio.open_unix_connection(path) + # AF_UNIX has path length issues so chdir here to workaround + cwd = os.getcwd() + try: + os.chdir(os.path.dirname(path)) + # The socket must be opened synchronously so that CWD doesn't get + # changed out from underneath us so we pass as a sock into asyncio + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM, 0) + sock.connect(os.path.basename(path)) + finally: + os.chdir(cwd) + return await asyncio.open_unix_connection(sock=sock) self._connect_sock = connect_sock @@ -150,14 +160,8 @@ class Client(object): setattr(self, m, self._get_downcall_wrapper(downcall)) def connect_unix(self, path): - # AF_UNIX has path length issues so chdir here to workaround - cwd = os.getcwd() - try: - os.chdir(os.path.dirname(path)) - self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path))) - self.loop.run_until_complete(self.client.connect()) - finally: - os.chdir(cwd) + self.loop.run_until_complete(self.client.connect_unix(path)) + self.loop.run_until_complete(self.client.connect()) @property def max_chunk(self): diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index 1b6ee3032c..32a529f0f9 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -425,7 +425,7 @@ class BBCooker: sock = socket.create_connection(upstream.split(":"), 5) sock.close() except socket.error as e: - bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s" + bb.warn("BB_HASHSERVE_UPSTREAM is not valid, unable to connect hash equivalence server at '%s': %s" % (upstream, repr(e))) self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR") @@ -1277,15 +1277,15 @@ class BBCooker: except bb.utils.VersionStringException as vse: bb.fatal('Error parsing LAYERRECOMMENDS_%s: %s' % (c, str(vse))) if not res: - parselog.debug(3,"Layer '%s' recommends version %s of layer '%s', but version %s is currently enabled in your configuration. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, rec, layerver) + parselog.debug3("Layer '%s' recommends version %s of layer '%s', but version %s is currently enabled in your configuration. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, rec, layerver) continue else: - parselog.debug(3,"Layer '%s' recommends version %s of layer '%s', which exists in your configuration but does not specify a version. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, rec) + parselog.debug3("Layer '%s' recommends version %s of layer '%s', which exists in your configuration but does not specify a version. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, rec) continue - parselog.debug(3,"Layer '%s' recommends layer '%s', so we are adding it", c, rec) + parselog.debug3("Layer '%s' recommends layer '%s', so we are adding it", c, rec) collection_depends[c].append(rec) else: - parselog.debug(3,"Layer '%s' recommends layer '%s', but this layer is not enabled in your configuration", c, rec) + parselog.debug3("Layer '%s' recommends layer '%s', but this layer is not enabled in your configuration", c, rec) # Recursively work out collection priorities based on dependencies def calc_layer_priority(collection): @@ -1297,7 +1297,7 @@ class BBCooker: if depprio > max_depprio: max_depprio = depprio max_depprio += 1 - parselog.debug(1, "Calculated priority of layer %s as %d", collection, max_depprio) + parselog.debug("Calculated priority of layer %s as %d", collection, max_depprio) collection_priorities[collection] = max_depprio # Calculate all layer priorities using calc_layer_priority and store in bbfile_config_priorities @@ -1309,7 +1309,7 @@ class BBCooker: errors = True continue elif regex == "": - parselog.debug(1, "BBFILE_PATTERN_%s is empty" % c) + parselog.debug("BBFILE_PATTERN_%s is empty" % c) cre = re.compile('^NULL$') errors = False else: @@ -1678,7 +1678,7 @@ class BBCooker: self.state = state.parsing if not self.parser.parse_next(): - collectlog.debug(1, "parsing complete") + collectlog.debug("parsing complete") if self.parser.error: raise bb.BBHandledException() self.show_appends_with_no_recipes() @@ -1723,7 +1723,7 @@ class BBCooker: if 'universe' in pkgs_to_build: parselog.verbnote("The \"universe\" target is only intended for testing and may produce errors.") - parselog.debug(1, "collating packages for \"universe\"") + parselog.debug("collating packages for \"universe\"") pkgs_to_build.remove('universe') for mc in self.multiconfigs: for t in self.recipecaches[mc].universe_target: @@ -1836,7 +1836,7 @@ class CookerCollectFiles(object): """Collect all available .bb build files""" masked = 0 - collectlog.debug(1, "collecting .bb files") + collectlog.debug("collecting .bb files") files = (config.getVar( "BBFILES") or "").split() @@ -1923,7 +1923,7 @@ class CookerCollectFiles(object): bbappend = [] for f in newfiles: if bbmask and bbmask_compiled.search(f): - collectlog.debug(1, "skipping masked file %s", f) + collectlog.debug("skipping masked file %s", f) masked += 1 continue if f.endswith('.bb'): @@ -1931,7 +1931,7 @@ class CookerCollectFiles(object): elif f.endswith('.bbappend'): bbappend.append(f) else: - collectlog.debug(1, "skipping %s: unknown file extension", f) + collectlog.debug("skipping %s: unknown file extension", f) # Build a list of .bbappend files for each .bb file for f in bbappend: diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py index 9706948ab3..8a354fed7c 100644 --- a/poky/bitbake/lib/bb/cookerdata.py +++ b/poky/bitbake/lib/bb/cookerdata.py @@ -356,7 +356,7 @@ class CookerDataBuilder(object): layerconf = self._findLayerConf(data) if layerconf: - parselog.debug(2, "Found bblayers.conf (%s)", layerconf) + parselog.debug2("Found bblayers.conf (%s)", layerconf) # By definition bblayers.conf is in conf/ of TOPDIR. # We may have been called with cwd somewhere else so reset TOPDIR data.setVar("TOPDIR", os.path.dirname(os.path.dirname(layerconf))) @@ -384,7 +384,7 @@ class CookerDataBuilder(object): raise bb.BBHandledException() for layer in layers: - parselog.debug(2, "Adding layer %s", layer) + parselog.debug2("Adding layer %s", layer) if 'HOME' in approved and '~' in layer: layer = os.path.expanduser(layer) if layer.endswith('/'): diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py index 0fb718b23e..893ec6f6bd 100644 --- a/poky/bitbake/lib/bb/fetch2/__init__.py +++ b/poky/bitbake/lib/bb/fetch2/__init__.py @@ -545,7 +545,7 @@ def mirror_from_string(data): bb.warn('Invalid mirror data %s, should have paired members.' % data) return list(zip(*[iter(mirrors)]*2)) -def verify_checksum(ud, d, precomputed={}): +def verify_checksum(ud, d, precomputed={}, localpath=None, fatal_nochecksum=True): """ verify the MD5 and SHA256 checksum for downloaded src @@ -563,13 +563,16 @@ def verify_checksum(ud, d, precomputed={}): if ud.ignore_checksums or not ud.method.supports_checksum(ud): return {} + if localpath is None: + localpath = ud.localpath + def compute_checksum_info(checksum_id): checksum_name = getattr(ud, "%s_name" % checksum_id) if checksum_id in precomputed: checksum_data = precomputed[checksum_id] else: - checksum_data = getattr(bb.utils, "%s_file" % checksum_id)(ud.localpath) + checksum_data = getattr(bb.utils, "%s_file" % checksum_id)(localpath) checksum_expected = getattr(ud, "%s_expected" % checksum_id) @@ -595,7 +598,7 @@ def verify_checksum(ud, d, precomputed={}): checksum_lines = ["SRC_URI[%s] = \"%s\"" % (ci["name"], ci["data"])] # If no checksum has been provided - if ud.method.recommends_checksum(ud) and all(ci["expected"] is None for ci in checksum_infos): + if fatal_nochecksum and ud.method.recommends_checksum(ud) and all(ci["expected"] is None for ci in checksum_infos): messages = [] strict = d.getVar("BB_STRICT_CHECKSUM") or "0" @@ -627,7 +630,7 @@ def verify_checksum(ud, d, precomputed={}): for ci in checksum_infos: if ci["expected"] and ci["expected"] != ci["data"]: messages.append("File: '%s' has %s checksum '%s' when '%s' was " \ - "expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"])) + "expected" % (localpath, ci["id"], ci["data"], ci["expected"])) bad_checksum = ci["data"] if bad_checksum: @@ -977,6 +980,7 @@ def build_mirroruris(origud, mirrors, ld): try: newud = FetchData(newuri, ld) + newud.ignore_checksums = True newud.setup_localpath(ld) except bb.fetch2.BBFetchException as e: logger.debug("Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url)) diff --git a/poky/bitbake/lib/bb/fetch2/crate.py b/poky/bitbake/lib/bb/fetch2/crate.py index f4ddc782a9..f091200dd9 100644 --- a/poky/bitbake/lib/bb/fetch2/crate.py +++ b/poky/bitbake/lib/bb/fetch2/crate.py @@ -71,7 +71,7 @@ class Crate(Wget): ud.parm['downloadfilename'] = "%s-%s.crate" % (name, version) ud.parm['name'] = name - logger.debug("Fetching %s to %s" % (ud.url, ud.parm['downloadfilename'])) + logger.debug2("Fetching %s to %s" % (ud.url, ud.parm['downloadfilename'])) def unpack(self, ud, rootdir, d): """ diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py index 4534bd7580..17d4904927 100644 --- a/poky/bitbake/lib/bb/fetch2/git.py +++ b/poky/bitbake/lib/bb/fetch2/git.py @@ -567,13 +567,12 @@ class Git(FetchMethod): source_found = False source_error = [] - if not source_found: - clonedir_is_up_to_date = not self.clonedir_need_update(ud, d) - if clonedir_is_up_to_date: - runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d) - source_found = True - else: - source_error.append("clone directory not available or not up to date: " + ud.clonedir) + clonedir_is_up_to_date = not self.clonedir_need_update(ud, d) + if clonedir_is_up_to_date: + runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d) + source_found = True + else: + source_error.append("clone directory not available or not up to date: " + ud.clonedir) if not source_found: if ud.shallow: diff --git a/poky/bitbake/lib/bb/fetch2/ssh.py b/poky/bitbake/lib/bb/fetch2/ssh.py index 8d082b38c1..0cbb2a6f25 100644 --- a/poky/bitbake/lib/bb/fetch2/ssh.py +++ b/poky/bitbake/lib/bb/fetch2/ssh.py @@ -150,8 +150,6 @@ class SSH(FetchMethod): ) check_network_access(d, cmd, urldata.url) + runfetchcmd(cmd, d) - if runfetchcmd(cmd, d): - return True - - return False + return True diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py index b2b542e1dc..821afa5b58 100644 --- a/poky/bitbake/lib/bb/fetch2/wget.py +++ b/poky/bitbake/lib/bb/fetch2/wget.py @@ -132,6 +132,11 @@ class Wget(FetchMethod): self._runwget(ud, d, fetchcmd, False) + # 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) + bb.fetch2.verify_checksum(ud, d, localpath=localpath, fatal_nochecksum=False) + # Remove the ".tmp" and move the file into position atomically # Our lock prevents multiple writers but mirroring code may grab incomplete files os.rename(localpath, localpath[:-4]) diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py index 92d44c5260..e6e21e20fe 100644 --- a/poky/bitbake/lib/bb/utils.py +++ b/poky/bitbake/lib/bb/utils.py @@ -29,6 +29,8 @@ import collections import copy import ctypes import random +import socket +import struct import tempfile from subprocess import getstatusoutput from contextlib import contextmanager @@ -1603,6 +1605,44 @@ def set_process_name(name): except: pass +def enable_loopback_networking(): + # From bits/ioctls.h + SIOCGIFFLAGS = 0x8913 + SIOCSIFFLAGS = 0x8914 + SIOCSIFADDR = 0x8916 + SIOCSIFNETMASK = 0x891C + + # if.h + IFF_UP = 0x1 + IFF_RUNNING = 0x40 + + # bits/socket.h + AF_INET = 2 + + # char ifr_name[IFNAMSIZ=16] + ifr_name = struct.pack("@16s", b"lo") + def netdev_req(fd, req, data = b""): + # Pad and add interface name + data = ifr_name + data + (b'\x00' * (16 - len(data))) + # Return all data after interface name + return fcntl.ioctl(fd, req, data)[16:] + + with socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_IP) as sock: + fd = sock.fileno() + + # struct sockaddr_in ifr_addr { unsigned short family; uint16_t sin_port ; uint32_t in_addr; } + req = struct.pack("@H", AF_INET) + struct.pack("=H4B", 0, 127, 0, 0, 1) + netdev_req(fd, SIOCSIFADDR, req) + + # short ifr_flags + flags = struct.unpack_from('@h', netdev_req(fd, SIOCGIFFLAGS))[0] + flags |= IFF_UP | IFF_RUNNING + netdev_req(fd, SIOCSIFFLAGS, struct.pack('@h', flags)) + + # struct sockaddr_in ifr_netmask + req = struct.pack("@H", AF_INET) + struct.pack("=H4B", 0, 255, 0, 0, 0) + netdev_req(fd, SIOCSIFNETMASK, req) + def disable_network(uid=None, gid=None): """ Disable networking in the current process if the kernel supports it, else @@ -1624,7 +1664,7 @@ def disable_network(uid=None, gid=None): ret = libc.unshare(CLONE_NEWNET | CLONE_NEWUSER) if ret != 0: - logger.debug("System doesn't suport disabling network without admin privs") + logger.debug("System doesn't support disabling network without admin privs") return with open("/proc/self/uid_map", "w") as f: f.write("%s %s 1" % (uid, uid)) diff --git a/poky/bitbake/lib/toaster/orm/fixtures/poky.xml b/poky/bitbake/lib/toaster/orm/fixtures/poky.xml index ed86114ebe..20fcc01767 100644 --- a/poky/bitbake/lib/toaster/orm/fixtures/poky.xml +++ b/poky/bitbake/lib/toaster/orm/fixtures/poky.xml @@ -42,7 +42,7 @@ <!-- Releases available --> <object model="orm.release" pk="1"> <field type="CharField" name="name">kirkstone</field> - <field type="CharField" name="description">Yocto Project 3.5 "Kirkstone"</field> + <field type="CharField" name="description">Yocto Project 4.0 "Kirkstone"</field> <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field> <field type="CharField" name="branch_name">kirkstone</field> <field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=kirkstone">Yocto Project Kirkstone branch</a>.</field> diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst index b08a55331d..559709d6f3 100644 --- a/poky/documentation/dev-manual/common-tasks.rst +++ b/poky/documentation/dev-manual/common-tasks.rst @@ -653,39 +653,6 @@ For help on the BitBake layer management tool, use the following command:: $ bitbake-layers --help - NOTE: Starting bitbake server... - usage: bitbake-layers [-d] [-q] [-F] [--color COLOR] [-h] <subcommand> ... - - BitBake layers utility - - optional arguments: - -d, --debug Enable debug output - -q, --quiet Print only errors - -F, --force Force add without recipe parse verification - --color COLOR Colorize output (where COLOR is auto, always, never) - -h, --help show this help message and exit - - subcommands: - <subcommand> - layerindex-fetch Fetches a layer from a layer index along with its - dependent layers, and adds them to conf/bblayers.conf. - layerindex-show-depends - Find layer dependencies from layer index. - add-layer Add one or more layers to bblayers.conf. - remove-layer Remove one or more layers from bblayers.conf. - flatten flatten layer configuration into a separate output - directory. - show-layers show current configured layers. - show-overlayed list overlayed recipes (where the same recipe exists - in another layer) - show-recipes list available recipes, showing the layer they are - provided by - show-appends list bbappend files and recipe files they apply to - show-cross-depends Show dependencies between recipes that cross layer - boundaries. - create-layer Create a basic layer - - Use bitbake-layers <subcommand> --help to get help on a specific command The following list describes the available commands: @@ -759,8 +726,18 @@ The following list describes the available commands: - ``layerindex-show-depends``: Finds layer dependencies from the layer index. +- ``save-build-conf``: Saves the currently active build configuration + (``conf/local.conf``, ``conf/bblayers.conf``) as a template into a layer. + This template can later be used for setting up builds via :term:``TEMPLATECONF``. + For information about saving and using configuration templates, see + ":ref:`dev-manual/common-tasks:creating a custom template configuration directory`". + - ``create-layer``: Creates a basic layer. +- ``create-layers-setup``: Writes out a configuration file and/or a script that + can replicate the directory structure and revisions of the layers in a current build. + For more information, see ":ref:`dev-manual/common-tasks:saving and restoring the layers setup`". + Creating a General Layer Using the ``bitbake-layers`` Script ------------------------------------------------------------ @@ -880,6 +857,62 @@ enables the build system to locate the layer during the build. During a build, the OpenEmbedded build system looks in the layers from the top of the list down to the bottom in that order. +Saving and restoring the layers setup +------------------------------------- + +Once you have a working build with the correct set of layers, it is beneficial +to capture the layer setup --- what they are, which repositories they come from +and which SCM revisions they're at --- into a configuration file, so that this +setup can be easily replicated later, perhaps on a different machine. Here's +how to do this:: + + $ bitbake-layers create-layers-setup /srv/work/alex/meta-alex/ + NOTE: Starting bitbake server... + NOTE: Created /srv/work/alex/meta-alex/setup-layers.json + NOTE: Created /srv/work/alex/meta-alex/setup-layers + +The tool needs a single argument which tells where to place the output, consisting +of a json formatted layer configuration, and a ``setup-layers`` script that can use that configuration +to restore the layers in a different location, or on a different host machine. The argument +can point to a custom layer (which is then deemed a "bootstrap" layer that needs to be +checked out first), or into a completely independent location. + +The replication of the layers is performed by running the ``setup-layers`` script provided +above: + +1. Clone the bootstrap layer or some other repository to obtain + the json config and the setup script that can use it. + +2. Run the script directly with no options:: + + alex@Zen2:/srv/work/alex/my-build$ meta-alex/setup-layers + Note: not checking out source meta-alex, use --force-bootstraplayer-checkout to override. + + Setting up source meta-intel, revision 15.0-hardknott-3.3-310-g0a96edae, branch master + Running 'git init -q /srv/work/alex/my-build/meta-intel' + Running 'git remote remove origin > /dev/null 2>&1; git remote add origin git://git.yoctoproject.org/meta-intel' in /srv/work/alex/my-build/meta-intel + Running 'git fetch -q origin || true' in /srv/work/alex/my-build/meta-intel + Running 'git checkout -q 0a96edae609a3f48befac36af82cf1eed6786b4a' in /srv/work/alex/my-build/meta-intel + + Setting up source poky, revision 4.1_M1-372-g55483d28f2, branch akanavin/setup-layers + Running 'git init -q /srv/work/alex/my-build/poky' + Running 'git remote remove origin > /dev/null 2>&1; git remote add origin git://git.yoctoproject.org/poky' in /srv/work/alex/my-build/poky + Running 'git fetch -q origin || true' in /srv/work/alex/my-build/poky + Running 'git remote remove poky-contrib > /dev/null 2>&1; git remote add poky-contrib ssh://git@push.yoctoproject.org/poky-contrib' in /srv/work/alex/my-build/poky + Running 'git fetch -q poky-contrib || true' in /srv/work/alex/my-build/poky + Running 'git checkout -q 11db0390b02acac1324e0f827beb0e2e3d0d1d63' in /srv/work/alex/my-build/poky + +.. note:: + This will work to update an existing checkout as well. + +.. note:: + The script is self-sufficient and requires only python3 + and git on the build machine. + +.. note:: + Both the ``create-layers-setup`` and the ``setup-layers`` provided several additional options + that customize their behavior - you are welcome to study them via ``--help`` command line parameter. + Customizing Images ================== @@ -2577,7 +2610,7 @@ chapter of the BitBake User Manual. S = "${WORKDIR}/postfix-${PV}" CFLAGS += "-DNO_ASM" - SRC_URI:append = " file://fixup.patch" + CFLAGS:append = " --enable-important-feature" - *Functions:* Functions provide a series of actions to be performed. You usually use functions to override the default implementation of a @@ -2708,19 +2741,21 @@ in the BitBake User Manual. to existing variables. This operator does not add any additional space. Also, the operator is applied after all the ``+=``, and ``=+`` operators have been applied and after all ``=`` assignments have - occurred. + occurred. This means that if ``:append`` is used in a recipe, it can + only be overridden by another layer using the special ``:remove`` + operator, which in turn will prevent further layers from adding it back. The following example shows the space being explicitly added to the start to ensure the appended value is not merged with the existing value:: - SRC_URI:append = " file://fix-makefile.patch" + CFLAGS:append = " --enable-important-feature" You can also use the ``:append`` operator with overrides, which results in the actions only being performed for the specified target or machine:: - SRC_URI:append:sh4 = " file://fix-makefile.patch" + CFLAGS:append:sh4 = " --enable-important-sh4-specific-feature" - *Prepending (:prepend):* Use the ``:prepend`` operator to prepend values to existing variables. This operator does not add any @@ -3560,6 +3595,9 @@ functions:: pydevshell> bb.build.exec_func("do_unpack", d) pydevshell> +See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:functions you can call from within python`" +section in the BitBake User Manual for details about available functions. + The commands execute just as if the OpenEmbedded build system were executing them. Consequently, working this way can be helpful when debugging a build or preparing software to be used with the @@ -6431,71 +6469,51 @@ Creating a Custom Template Configuration Directory ================================================== If you are producing your own customized version of the build system for -use by other users, you might want to customize the message shown by the -setup script or you might want to change the template configuration -files (i.e. ``local.conf`` and ``bblayers.conf``) that are created in a -new build directory. - -The OpenEmbedded build system uses the environment variable -:term:`TEMPLATECONF` to locate the directory from which it gathers -configuration information that ultimately ends up in the -:term:`Build Directory` ``conf`` directory. -By default, :term:`TEMPLATECONF` is set as follows in the ``poky`` -repository:: +use by other users, you might want to provide a custom build configuration +that includes all the necessary settings and layers (i.e. ``local.conf`` and +``bblayers.conf`` that are created in a new build directory) and a custom +message that is shown when setting up the build. This can be done by +creating one or more template configuration directories in your +custom distribution layer. - TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf} +This can be done by using ``bitbake-layers save-build-conf``:: -This is the -directory used by the build system to find templates from which to build -some key configuration files. If you look at this directory, you will -see the ``bblayers.conf.sample``, ``local.conf.sample``, and -``conf-notes.txt`` files. The build system uses these files to form the -respective ``bblayers.conf`` file, ``local.conf`` file, and display the -list of BitBake targets when running the setup script. - -To override these default configuration files with configurations you -want used within every new Build Directory, simply set the -:term:`TEMPLATECONF` variable to your directory. The :term:`TEMPLATECONF` -variable is set in the ``.templateconf`` file, which is in the top-level -:term:`Source Directory` folder -(e.g. ``poky``). Edit the ``.templateconf`` so that it can locate your -directory. + $ bitbake-layers save-build-conf ../../meta-alex/ test-1 + NOTE: Starting bitbake server... + NOTE: Configuration template placed into /srv/work/alex/meta-alex/conf/templates/test-1 + Please review the files in there, and particularly provide a configuration description in /srv/work/alex/meta-alex/conf/templates/test-1/conf-notes.txt + You can try out the configuration with + TEMPLATECONF=/srv/work/alex/meta-alex/conf/templates/test-1 . /srv/work/alex/poky/oe-init-build-env build-try-test-1 -Best practices dictate that you should keep your template configuration -directory in your custom distribution layer. For example, suppose you -have a layer named ``meta-mylayer`` located in your home directory and -you want your template configuration directory named ``myconf``. -Changing the ``.templateconf`` as follows causes the OpenEmbedded build -system to look in your directory and base its configuration files on the -``*.sample`` configuration files it finds. The final configuration files -(i.e. ``local.conf`` and ``bblayers.conf`` ultimately still end up in -your Build Directory, but they are based on your ``*.sample`` files. -:: +The above command takes the config files from the currently active build directory under ``conf``, +replaces site-specific paths in ``bblayers.conf`` with ``##OECORE##``-relative paths, and copies +the config files into a specified layer under a specified template name. - TEMPLATECONF=${TEMPLATECONF:-meta-mylayer/myconf} +To use those saved templates as a starting point for a build, users should point +to one of them with :term:`TEMPLATECONF` environment variable:: -Aside from the ``*.sample`` configuration files, the ``conf-notes.txt`` -also resides in the default ``meta-poky/conf`` directory. The script -that sets up the build environment (i.e. -:ref:`structure-core-script`) uses this file to -display BitBake targets as part of the script output. Customizing this -``conf-notes.txt`` file is a good way to make sure your list of custom -targets appears as part of the script's output. + TEMPLATECONF=/srv/work/alex/meta-alex/conf/templates/test-1 . /srv/work/alex/poky/oe-init-build-env build-try-test-1 -Here is the default list of targets displayed as a result of running -either of the setup scripts:: +The OpenEmbedded build system uses the environment variable +:term:`TEMPLATECONF` to locate the directory from which it gathers +configuration information that ultimately ends up in the +:term:`Build Directory` ``conf`` directory. - You can now run 'bitbake <target>' +If :term:`TEMPLATECONF` is not set, the default value is obtained +from ``.templateconf`` file that is read from the same directory as +``oe-init-build-env`` script. For the Poky reference distribution this +would be:: - Common targets are: - core-image-minimal - core-image-sato - meta-toolchain - meta-ide-support + TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf/templates/default} -Changing the listed common targets is as easy as editing your version of -``conf-notes.txt`` in your custom template configuration directory and -making sure you have :term:`TEMPLATECONF` set to your directory. +If you look at a configuration template directory, you will +see the ``bblayers.conf.sample``, ``local.conf.sample``, and +``conf-notes.txt`` files. The build system uses these files to form the +respective ``bblayers.conf`` file, ``local.conf`` file, and show +users a note about the build they're setting up +when running the ``oe-init-build-env`` setup script. These can be +edited further if needed to improve or change the build configurations +available to the users. Conserving Disk Space ===================== @@ -11417,12 +11435,12 @@ example: # clean up the .git repos $ find . -name ".git" -type d -exec rm -rf {} \; -One -thing a development organization might want to consider for end-user -convenience is to modify ``meta-poky/conf/bblayers.conf.sample`` to -ensure that when the end user utilizes the released build system to -build an image, the development organization's layers are included in -the ``bblayers.conf`` file automatically:: +One thing a development organization might want to consider for end-user +convenience is to modify +``meta-poky/conf/templates/default/bblayers.conf.sample`` to ensure that when +the end user utilizes the released build system to build an image, the +development organization's layers are included in the ``bblayers.conf`` file +automatically:: # POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly @@ -11451,9 +11469,9 @@ The spdx module has been integrated to a layer named meta-spdxscanner. meta-spdxscanner provides several kinds of scanner. If you want to enable this function, you have to follow the following steps: -1. Add meta-spdxscanner layer into ``bblayers.conf``. +1. Add meta-spdxscanner layer into ``bblayers.conf``. -2. Refer to the README in meta-spdxscanner to setup the environment (e.g, +2. Refer to the README in meta-spdxscanner to setup the environment (e.g, setup a fossology server) needed for the scanner. 3. Meta-spdxscanner provides several methods within the bbclass to create spdx files. diff --git a/poky/documentation/kernel-dev/common.rst b/poky/documentation/kernel-dev/common.rst index 16ef6453bd..fb8d7cd029 100644 --- a/poky/documentation/kernel-dev/common.rst +++ b/poky/documentation/kernel-dev/common.rst @@ -360,9 +360,9 @@ home directory: FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" - SRC_URI:append = " file://patch-file-one.patch" - SRC_URI:append = " file://patch-file-two.patch" - SRC_URI:append = " file://patch-file-three.patch" + SRC_URI += "file://patch-file-one.patch" + SRC_URI += "file://patch-file-two.patch" + SRC_URI += "file://patch-file-three.patch" The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements enable the OpenEmbedded build system to find patch files. For more @@ -1002,7 +1002,7 @@ Section. contents:: FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" - SRC_URI:append = " file://0001-calibrate.c-Added-some-printk-statements.patch" + SRC_URI += "file://0001-calibrate.c-Added-some-printk-statements.patch" The :term:`FILESEXTRAPATHS` and :term:`SRC_URI` statements enable the OpenEmbedded build system to find the patch file. @@ -1875,7 +1875,7 @@ build. 2. *Add the Feature File to SRC_URI:* Add the ``.scc`` file to the recipe's :term:`SRC_URI` statement:: - SRC_URI:append = " file://test.scc" + SRC_URI += "file://test.scc" The leading space before the path is important as the path is appended to the existing path. @@ -1884,7 +1884,7 @@ build. :term:`KERNEL_FEATURES` statement to specify the feature as a kernel feature:: - KERNEL_FEATURES:append = " test.scc" + KERNEL_FEATURES += "test.scc" The OpenEmbedded build system processes the kernel feature when it builds the kernel. diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst index 83339da98f..8e0303f0e0 100644 --- a/poky/documentation/overview-manual/concepts.rst +++ b/poky/documentation/overview-manual/concepts.rst @@ -269,7 +269,7 @@ The ``local.conf`` file provides many basic variables that define a build environment. Here is a list of a few. To see the default configurations in a ``local.conf`` file created by the build environment script, see the -:yocto_git:`local.conf.sample </poky/tree/meta-poky/conf/local.conf.sample>` +:yocto_git:`local.conf.sample </poky/tree/meta-poky/conf/templates/default/local.conf.sample>` in the ``meta-poky`` layer: - *Target Machine Selection:* Controlled by the @@ -1006,7 +1006,7 @@ data files are deleted from the root filesystem. As part of the final stage of package installation, post installation scripts that are part of the packages are run. Any scripts that fail to run on the build host are run on the target when the target system is first booted. If you are -using a +using a :ref:`read-only root filesystem <dev-manual/common-tasks:creating a read-only root filesystem>`, all the post installation scripts must succeed on the build host during the package installation phase since the root filesystem on the target diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst index 424c505715..11e0d472e8 100644 --- a/poky/documentation/ref-manual/classes.rst +++ b/poky/documentation/ref-manual/classes.rst @@ -580,8 +580,8 @@ Finally, here is an example that sets the root password:: .. note:: From a security perspective, hardcoding a default password is not - generally a good idea or even legal in some jurisdictions. It is - recommended that you do not do this if you are building a production + generally a good idea or even legal in some jurisdictions. It is + recommended that you do not do this if you are building a production image. @@ -792,7 +792,7 @@ The class stages directories with symlinks from ``gcc`` and ``g++`` to ``icecc``, for both native and cross compilers. Depending on each configure or compile, the OpenEmbedded build system adds the directories at the head of the ``PATH`` list and then sets the ``ICECC_CXX`` and -``ICEC_CC`` variables, which are the paths to the ``g++`` and ``gcc`` +``ICECC_CC`` variables, which are the paths to the ``g++`` and ``gcc`` compilers, respectively. For the cross compiler, the class creates a ``tar.gz`` file that @@ -800,8 +800,8 @@ contains the Yocto Project toolchain and sets ``ICECC_VERSION``, which is the version of the cross-compiler used in the cross-development toolchain, accordingly. -The class handles all three different compile stages (i.e native -,cross-kernel and target) and creates the necessary environment +The class handles all three different compile stages (i.e native, +cross-kernel and target) and creates the necessary environment ``tar.gz`` file to be used by the remote machines. The class also supports SDK generation. @@ -811,12 +811,13 @@ using ``which``. If :term:`ICECC_ENV_EXEC` is set in your ``local.conf`` file, the variable should point to the ``icecc-create-env`` script provided by the user. If you do not point to a user-provided script, the build system uses the default script -provided by the recipe ``icecc-create-env-native.bb``. +provided by the recipe :oe_git:`icecc-create-env_0.1.bb +</openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>`. .. note:: This script is a modified version and not the one that comes with - icecc. + ``icecream``. If you do not want the Icecream distributed compile support to apply to specific recipes or classes, you can ask them to be ignored by Icecream diff --git a/poky/documentation/ref-manual/faq.rst b/poky/documentation/ref-manual/faq.rst index 2fcbf7da96..61049523a0 100644 --- a/poky/documentation/ref-manual/faq.rst +++ b/poky/documentation/ref-manual/faq.rst @@ -137,9 +137,10 @@ To use them, remove the comments:: #use_proxy = on The Yocto Project also includes a -``meta-poky/conf/site.conf.sample`` file that shows how to configure CVS -and Git proxy servers if needed. For more information on setting up -various proxy types and configuring proxy servers, see the +``meta-poky/conf/templates/default/site.conf.sample`` file that shows +how to configure CVS and Git proxy servers if needed. For more +information on setting up various proxy types and configuring proxy +servers, see the ":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`" Wiki page. diff --git a/poky/documentation/ref-manual/features.rst b/poky/documentation/ref-manual/features.rst index 8dfe29d66a..5e853caa2c 100644 --- a/poky/documentation/ref-manual/features.rst +++ b/poky/documentation/ref-manual/features.rst @@ -113,10 +113,15 @@ configuration level. See the information. This list only represents features as shipped with the Yocto Project -metadata: +metadata, as extra layers can define their own: -- *alsa:* Include ALSA support (OSS compatibility kernel modules - installed if available). +- *3g:* Include support for cellular data. + +- *acl:* Include + `Access Control List <https://en.wikipedia.org/wiki/Access-control_list>`__ support. + +- *alsa:* Include `Advanced Linux Sound Architecture <https://en.wikipedia.org/wiki/Advanced_Linux_Sound_Architecture>`__ + support (OSS compatibility kernel modules installed if available). - *api-documentation:* Enables generation of API documentation during recipe builds. The resulting documentation is added to SDK tarballs @@ -129,6 +134,10 @@ metadata: - *cramfs:* Include CramFS support. +- *debuginfod:* Include support for getting ELF debugging information through + a :ref:`debuginfod <dev-manual/common-tasks:using the debuginfod server method>` + server. + - *directfb:* Include DirectFB support. - *ext2:* Include tools for supporting for devices with internal @@ -136,14 +145,25 @@ metadata: - *ipsec:* Include IPSec support. +- *ipv4:* Include IPv4 support. + - *ipv6:* Include IPv6 support. - *keyboard:* Include keyboard support (e.g. keymaps will be loaded during boot). +- *largefile:* Enable building applications with + `argefile support <https://en.wikipedia.org/wiki/Large-file_support>`__. + +- *multiarch:* Enable building applications with multiple architecture + support. + - *ldconfig:* Include support for ldconfig and ``ld.so.conf`` on the target. +- *nfc:* Include support for + `Near Field Communication <https://en.wikipedia.org/wiki/Near-field_communication>`__. + - *nfs:* Include NFS client support (for mounting NFS exports on device). @@ -162,6 +182,11 @@ metadata: ":ref:`dev-manual/common-tasks:testing packages with ptest`" section in the Yocto Project Development Tasks Manual. +- *seccomp:* Enables building applications with + `seccomp <https://en.wikipedia.org/wiki/Seccomp>`__ support, to + allow them to strictly restrict the system calls that they are allowed + to invoke. + - *smbfs:* Include SMB networks client support (for mounting Samba/Microsoft Windows shares on device). @@ -180,6 +205,12 @@ metadata: directories into their respective counterparts in the ``/usr`` directory to provide better package and application compatibility. +- *vfat:* Include `FAT filesystem <https://en.wikipedia.org/wiki/File_Allocation_Table>`__ + support. + +- *vulkan:* Include support for the + `Vulkan API <https://en.wikipedia.org/wiki/Vulkan>`__. + - *wayland:* Include the Wayland display server protocol and the library that supports it. @@ -187,6 +218,12 @@ metadata: - *x11:* Include the X server and libraries. +- *xattr:* Include support for + `extended file attributes <https://en.wikipedia.org/wiki/Extended_file_attributes>`__. + +- *zeroconf:* Include support for + `zero configuration networking <https://en.wikipedia.org/wiki/Zero-configuration_networking>`__. + .. _ref-features-image: Image Features diff --git a/poky/documentation/ref-manual/structure.rst b/poky/documentation/ref-manual/structure.rst index bdcffc1947..429f81e14c 100644 --- a/poky/documentation/ref-manual/structure.rst +++ b/poky/documentation/ref-manual/structure.rst @@ -68,6 +68,9 @@ information on separating output from your local Source Directory files (commonly described as an "out of tree" build), see the ":ref:`structure-core-script`" section. +See the ":ref:`The Build Directory --- build/ <structure-build>`" section for details +about the contents of the :term:`Build Directory`. + .. _handbook: ``documentation/`` @@ -189,7 +192,7 @@ Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`:: $ source oe-init-build-env ~/mybuilds The OpenEmbedded build system uses the template configuration files, which -are found by default in the ``meta-poky/conf/`` directory in the Source +are found by default in the ``meta-poky/conf/templates/default`` directory in the Source Directory. See the ":ref:`dev-manual/common-tasks:creating a custom template configuration directory`" section in the Yocto Project Development Tasks Manual for more @@ -237,6 +240,18 @@ subdirectories. For information on the build history feature, see the ":ref:`dev-manual/common-tasks:maintaining build output quality`" section in the Yocto Project Development Tasks Manual. +.. _structure-build-cache: + +``build/cache/`` +---------------- + +This directory contains several internal files used by the OpenEmbedded +build system. + +It also contains ``sanity_info``, a text file keeping track of important +build information such as the values of :term:`TMPDIR`, :term:`SSTATE_DIR`, +as well as the name and version of the host distribution. + .. _structure-build-conf-local.conf: ``build/conf/local.conf`` @@ -261,15 +276,15 @@ OpenEmbedded build system creates it from ``local.conf.sample`` when you :ref:`structure-core-script`. The source ``local.conf.sample`` file used depends on the -:term:`TEMPLATECONF` script variable, which defaults to ``meta-poky/conf/`` +:term:`TEMPLATECONF` script variable, which defaults to ``meta-poky/conf/templates/default`` when you are building from the Yocto Project development environment, -and to ``meta/conf/`` when you are building from the OpenEmbedded-Core +and to ``meta/conf/templates/default`` when you are building from the OpenEmbedded-Core environment. Because the script variable points to the source of the ``local.conf.sample`` file, this implies that you can configure your build environment from any layer by setting the variable in the top-level build environment setup script as follows:: - TEMPLATECONF=your_layer/conf + TEMPLATECONF=your_layer/conf/templates/your_template_name Once the build process gets the sample file, it uses ``sed`` to substitute final @@ -281,7 +296,7 @@ file, it uses ``sed`` to substitute final You can see how the :term:`TEMPLATECONF` variable is used by looking at the ``scripts/oe-setup-builddir`` script in the :term:`Source Directory`. You can find the Yocto Project version of the ``local.conf.sample`` file in - the ``meta-poky/conf`` directory. + the ``meta-poky/conf/templates/default`` directory. .. _structure-build-conf-bblayers.conf: @@ -301,14 +316,14 @@ you ``source`` the top-level build environment setup script (i.e. As with the ``local.conf`` file, the source ``bblayers.conf.sample`` file used depends on the :term:`TEMPLATECONF` script variable, which -defaults to ``meta-poky/conf/`` when you are building from the Yocto -Project development environment, and to ``meta/conf/`` when you are +defaults to ``meta-poky/conf/templates/default`` when you are building from the Yocto +Project development environment, and to ``meta/conf/templates/default`` when you are building from the OpenEmbedded-Core environment. Because the script variable points to the source of the ``bblayers.conf.sample`` file, this implies that you can base your build from any layer by setting the variable in the top-level build environment setup script as follows:: - TEMPLATECONF=your_layer/conf + TEMPLATECONF=your_layer/conf/templates/your_template_name Once the build process gets the sample file, it uses ``sed`` to substitute final ``${``\ :term:`OEROOT`\ ``}`` values for all ``##OEROOT##`` values. @@ -317,17 +332,9 @@ Once the build process gets the sample file, it uses ``sed`` to substitute final You can see how the :term:`TEMPLATECONF` variable is defined by the ``scripts/oe-setup-builddir`` script in the :term:`Source Directory`. You can find the Yocto Project - version of the ``bblayers.conf.sample`` file in the ``meta-poky/conf/`` + version of the ``bblayers.conf.sample`` file in the ``meta-poky/conf/templates/default`` directory. -.. _structure-build-conf-sanity_info: - -``build/cache/sanity_info`` ---------------------------- - -This file indicates the state of the sanity checks and is created during -the build. - .. _structure-build-downloads: ``build/downloads/`` @@ -366,14 +373,14 @@ remove the ``build/sstate-cache`` directory. .. _structure-build-tmp-buildstats: ``build/tmp/buildstats/`` -------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~ This directory stores the build statistics. .. _structure-build-tmp-cache: ``build/tmp/cache/`` --------------------- +~~~~~~~~~~~~~~~~~~~~ When BitBake parses the metadata (recipes and configuration files), it caches the results in ``build/tmp/cache/`` to speed up future builds. @@ -389,7 +396,7 @@ cache is reused. If the file has changed, it is reparsed. .. _structure-build-tmp-deploy: ``build/tmp/deploy/`` ---------------------- +~~~~~~~~~~~~~~~~~~~~~ This directory contains any "end result" output from the OpenEmbedded build process. The :term:`DEPLOY_DIR` variable points @@ -402,7 +409,7 @@ Project Overview and Concepts Manual. .. _structure-build-tmp-deploy-deb: ``build/tmp/deploy/deb/`` -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ This directory receives any ``.deb`` packages produced by the build process. The packages are sorted into feeds for different architecture @@ -411,7 +418,7 @@ types. .. _structure-build-tmp-deploy-rpm: ``build/tmp/deploy/rpm/`` -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ This directory receives any ``.rpm`` packages produced by the build process. The packages are sorted into feeds for different architecture @@ -420,14 +427,14 @@ types. .. _structure-build-tmp-deploy-ipk: ``build/tmp/deploy/ipk/`` -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ This directory receives ``.ipk`` packages produced by the build process. .. _structure-build-tmp-deploy-licenses: ``build/tmp/deploy/licenses/`` ------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This directory receives package licensing information. For example, the directory contains sub-directories for ``bash``, ``busybox``, and @@ -440,7 +447,7 @@ section in the Yocto Project Development Tasks Manual. .. _structure-build-tmp-deploy-images: ``build/tmp/deploy/images/`` ----------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This directory is populated with the basic output objects of the build (think of them as the "generated artifacts" of the build process), @@ -467,7 +474,7 @@ the kernel files:: .. _structure-build-tmp-deploy-sdk: ``build/tmp/deploy/sdk/`` -------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^ The OpenEmbedded build system creates this directory to hold toolchain installer scripts which, when executed, install the sysroot that matches @@ -479,7 +486,7 @@ Software Development Kit (eSDK) manual. .. _structure-build-tmp-sstate-control: ``build/tmp/sstate-control/`` ------------------------------ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The OpenEmbedded build system uses this directory for the shared state manifest files. The shared state code uses these files to record the @@ -492,7 +499,7 @@ another. .. _structure-build-tmp-sysroots-components: ``build/tmp/sysroots-components/`` ----------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This directory is the location of the sysroot contents that the task :ref:`ref-tasks-prepare_recipe_sysroot` @@ -507,7 +514,7 @@ should be automatic, and recipes should not directly reference .. _structure-build-tmp-sysroots: ``build/tmp/sysroots/`` ------------------------ +~~~~~~~~~~~~~~~~~~~~~~~ Previous versions of the OpenEmbedded build system used to create a global shared sysroot per machine along with a native sysroot. Since @@ -525,7 +532,7 @@ recipe-specific :term:`WORKDIR` directories. Thus, the .. _structure-build-tmp-stamps: ``build/tmp/stamps/`` ---------------------- +~~~~~~~~~~~~~~~~~~~~~ This directory holds information that BitBake uses for accounting purposes to track what tasks have run and when they have run. The @@ -545,7 +552,7 @@ section in the Yocto Project Overview and Concepts Manual. .. _structure-build-tmp-log: ``build/tmp/log/`` ------------------- +~~~~~~~~~~~~~~~~~~ This directory contains general logs that are not otherwise placed using the package's :term:`WORKDIR`. Examples of logs are the output from the @@ -555,7 +562,7 @@ necessarily mean this directory is created. .. _structure-build-tmp-work: ``build/tmp/work/`` -------------------- +~~~~~~~~~~~~~~~~~~~ This directory contains architecture-specific work sub-directories for packages built by BitBake. All tasks execute from the appropriate work @@ -587,7 +594,7 @@ install" places its output that is then split into sub-packages within .. _structure-build-tmp-work-tunearch-recipename-version: ``build/tmp/work/tunearch/recipename/version/`` ------------------------------------------------ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The recipe work directory --- ``${WORKDIR}``. @@ -645,7 +652,7 @@ Here are key subdirectories within each recipe work directory: .. _structure-build-work-shared: ``build/tmp/work-shared/`` --------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~ For efficiency, the OpenEmbedded build system creates and uses this directory to hold recipes that share a work directory with other @@ -695,7 +702,7 @@ distribution configuration file. .. _structure-meta-conf-machine: ``meta/conf/machine/`` ----------------------- +~~~~~~~~~~~~~~~~~~~~~~ This directory contains all the machine configuration files. If you set ``MACHINE = "qemux86"``, the OpenEmbedded build system looks for a @@ -706,7 +713,7 @@ support for a new machine to the Yocto Project, look in this directory. .. _structure-meta-conf-distro: ``meta/conf/distro/`` ---------------------- +~~~~~~~~~~~~~~~~~~~~~ The contents of this directory controls any distribution-specific configurations. For the Yocto Project, the ``defaultsetup.conf`` is the @@ -718,7 +725,7 @@ file mainly inherits its configuration from Poky. .. _structure-meta-conf-machine-sdk: ``meta/conf/machine-sdk/`` --------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~ The OpenEmbedded build system searches this directory for configuration files that correspond to the value of diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst index cf817e9540..2971654531 100644 --- a/poky/documentation/ref-manual/variables.rst +++ b/poky/documentation/ref-manual/variables.rst @@ -135,7 +135,6 @@ system and gives an overview of their function and contents. appear in :term:`DISTRO_FEATURES` within the current configuration, then the recipe will be skipped, and if the build system attempts to build the recipe then an error will be triggered. - :term:`APPEND` An override list of append strings for each target specified with @@ -729,22 +728,6 @@ system and gives an overview of their function and contents. ":ref:`dev-manual/common-tasks:building images for multiple targets using multiple configurations`" section in the Yocto Project Development Tasks Manual. - :term:`BBPATH` - Used by BitBake to locate ``.bbclass`` and configuration files. This - variable is analogous to the ``PATH`` variable. - - .. note:: - - If you run BitBake from a directory outside of the - :term:`Build Directory`, you must be sure to set :term:`BBPATH` - to point to the Build Directory. Set the variable as you would any - environment variable and then run BitBake:: - - $ BBPATH = "build_directory" - $ export BBPATH - $ bitbake target - - :term:`BBSERVER` If defined in the BitBake environment, :term:`BBSERVER` points to the BitBake remote server. @@ -2386,8 +2369,8 @@ system and gives an overview of their function and contents. .. note:: From a security perspective, hardcoding a default password is not - generally a good idea or even legal in some jurisdictions. It is - recommended that you do not do this if you are building a production + generally a good idea or even legal in some jurisdictions. It is + recommended that you do not do this if you are building a production image. Additionally there is a special ``passwd-expire`` command that will @@ -2967,8 +2950,10 @@ system and gives an overview of their function and contents. If you do not point to a script that you provide, the OpenEmbedded build system uses the default script provided by the - ``icecc-create-env.bb`` recipe, which is a modified version and not - the one that comes with ``icecc``. + :oe_git:`icecc-create-env_0.1.bb + </openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>` + recipe, which is a modified version and not the one that comes with + ``icecream``. :term:`ICECC_PARALLEL_MAKE` Extra options passed to the ``make`` command during the @@ -3690,10 +3675,10 @@ system and gives an overview of their function and contents. to "core-image-minimal-initramfs". You can also find more information by referencing the - ``meta-poky/conf/local.conf.sample.extended`` configuration file in - the Source Directory, the :ref:`image <ref-classes-image>` class, - and the :ref:`kernel <ref-classes-kernel>` class to see how to use - the :term:`INITRAMFS_IMAGE` variable. + ``meta-poky/conf/templates/default/local.conf.sample.extended`` + configuration file in the Source Directory, the :ref:`image + <ref-classes-image>` class, and the :ref:`kernel <ref-classes-kernel>` + class to see how to use the :term:`INITRAMFS_IMAGE` variable. If :term:`INITRAMFS_IMAGE` is empty, which is the default, then no initramfs image is built. @@ -3752,7 +3737,7 @@ system and gives an overview of their function and contents. configuration file. You cannot set the variable in a recipe file. See the - :yocto_git:`local.conf.sample.extended </poky/tree/meta-poky/conf/local.conf.sample.extended>` + :yocto_git:`local.conf.sample.extended </poky/tree/meta-poky/conf/templates/default/local.conf.sample.extended>` file for additional information. Also, for information on creating an initramfs, see the ":ref:`dev-manual/common-tasks:building an initial ram filesystem (initramfs) image`" section in the Yocto Project Development Tasks Manual. @@ -3984,11 +3969,10 @@ system and gives an overview of their function and contents. KCONFIG_MODE = "alldefconfig" - :term:`KERNEL_ALT_IMAGETYPE` Specifies an alternate kernel image type for creation in addition to - the kernel image type specified using the - :term:`KERNEL_IMAGETYPE` variable. + the kernel image type specified using the :term:`KERNEL_IMAGETYPE` and + :term:`KERNEL_IMAGETYPES` variables. :term:`KERNEL_ARTIFACT_NAME` Specifies the name of all of the build artifacts. You can change the @@ -4172,9 +4156,12 @@ system and gives an overview of their function and contents. when building the kernel and is passed to ``make`` as the target to build. - If you want to build an alternate kernel image type in addition to that - specified by :term:`KERNEL_IMAGETYPE`, use the :term:`KERNEL_ALT_IMAGETYPE` - variable. + To build additional kernel image types, use :term:`KERNEL_IMAGETYPES`. + + :term:`KERNEL_IMAGETYPES` + Lists additional types of kernel images to build for a device in addition + to image type specified in :term:`KERNEL_IMAGETYPE`. Usually set by the + machine configuration files. :term:`KERNEL_MODULE_AUTOLOAD` Lists kernel modules that need to be auto-loaded during boot. @@ -6075,9 +6062,9 @@ system and gives an overview of their function and contents. :term:`PRSERV_HOST` The network based :term:`PR` service host and port. - The ``conf/local.conf.sample.extended`` configuration file in the - :term:`Source Directory` shows how the - :term:`PRSERV_HOST` variable is set:: + The ``conf/templates/default/local.conf.sample.extended`` configuration + file in the :term:`Source Directory` shows how the :term:`PRSERV_HOST` + variable is set:: PRSERV_HOST = "localhost:0" @@ -6588,7 +6575,7 @@ system and gives an overview of their function and contents. :term:`SDK_CUSTOM_TEMPLATECONF` When building the extensible SDK, if :term:`SDK_CUSTOM_TEMPLATECONF` is set to - "1" and a ``conf/templateconf.conf`` file exists in the build directory + "1" and a ``conf/templateconf.cfg`` file exists in the build directory (:term:`TOPDIR`) then this will be copied into the SDK. :term:`SDK_DEPLOY` @@ -7973,6 +7960,12 @@ system and gives an overview of their function and contents. toolchain. You can use ``meta-sourcery`` as a template for adding support for other external toolchains. + :term:`TC_CXX_RUNTIME` + Specifies the C/C++ STL and runtime variant to use during + the build process. Default value is 'gnu' + + You can select "gnu", "llvm", or "android". + :term:`TEMPLATECONF` Specifies the directory used by the build system to find templates from which to build the ``bblayers.conf`` and ``local.conf`` files. @@ -8666,7 +8659,8 @@ system and gives an overview of their function and contents. USER_CLASSES ?= "buildstats" For more information, see - ``meta-poky/conf/local.conf.sample`` in the :term:`Source Directory`. + ``meta-poky/conf/templates/default/local.conf.sample`` in the + :term:`Source Directory`. :term:`USERADD_ERROR_DYNAMIC` If set to ``error``, forces the OpenEmbedded build system to produce @@ -8924,4 +8918,3 @@ system and gives an overview of their function and contents. On systems where many tasks run in parallel, setting a limit to this can be helpful in controlling system resource usage. - diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf index 856c88554d..4dc5db4f2e 100644 --- a/poky/meta-poky/conf/distro/poky.conf +++ b/poky/meta-poky/conf/distro/poky.conf @@ -1,6 +1,7 @@ DISTRO = "poky" DISTRO_NAME = "Poky (Yocto Project Reference Distro)" -DISTRO_VERSION = "4.1+snapshot-${METADATA_REVISION}" +#DISTRO_VERSION = "4.1+snapshot-${METADATA_REVISION}" +DISTRO_VERSION = "4.1" DISTRO_CODENAME = "langdale" SDK_VENDOR = "-pokysdk" SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}" @@ -33,8 +34,8 @@ TCLIBCAPPEND = "" PACKAGE_CLASSES ?= "package_rpm" SANITY_TESTED_DISTROS ?= " \ - poky-3.3 \n \ - poky-3.4 \n \ + poky-4.0 \n \ + poky-4.1 \n \ ubuntu-18.04 \n \ ubuntu-20.04 \n \ ubuntu-21.10 \n \ diff --git a/poky/meta-poky/conf/templates/default/local.conf.sample b/poky/meta-poky/conf/templates/default/local.conf.sample index b96dc908f4..7be423ffed 100644 --- a/poky/meta-poky/conf/templates/default/local.conf.sample +++ b/poky/meta-poky/conf/templates/default/local.conf.sample @@ -234,7 +234,7 @@ BB_DISKMON_DIRS ??= "\ # which will depend on your network. # Note: For this to work you also need hash-equivalence passthrough to the matching server # -#BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687" +#BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687" #SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH" # diff --git a/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py b/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py index 144decdd6b..f19cdee9f0 100644 --- a/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py +++ b/poky/meta-selftest/lib/oeqa/runtime/cases/virgl.py @@ -15,4 +15,4 @@ class VirglTest(OERuntimeTestCase): def test_kmscube(self): status, output = self.target.run('kmscube') self.assertEqual(status, 0, "kmscube exited with non-zero status %d and output:\n%s" %(status, output)) - self.assertIn('renderer: "virgl"', output, "kmscube does not seem to use virgl:\n%s" %(output)) + self.assertIn('renderer: "virgl', output, "kmscube does not seem to use virgl:\n%s" %(output)) diff --git a/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb b/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb index 913a4d1fdb..50cba9514b 100644 --- a/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb +++ b/poky/meta-selftest/recipes-test/overlayfs-user/overlayfs-user.bb @@ -12,6 +12,11 @@ OVERLAYFS_WRITABLE_PATHS[mnt-overlay] += "/usr/share/my-application" do_install() { install -d ${D}/usr/share/my-application + install -d ${D}${sysconfdir} + echo "Original file in /etc" >> ${D}${sysconfdir}/lower-layer-test.txt } -FILES:${PN} += "/usr" +FILES:${PN} += "\ + ${exec_prefix} \ + ${sysconfdir \ +" diff --git a/poky/meta-selftest/recipes-test/poison/poison.bb b/poky/meta-selftest/recipes-test/poison/poison.bb index 7ace901cc3..e9eee0cdba 100644 --- a/poky/meta-selftest/recipes-test/poison/poison.bb +++ b/poky/meta-selftest/recipes-test/poison/poison.bb @@ -9,8 +9,12 @@ inherit nopackages # will result in compiler errors. This recipe should will fail to build and # oe-selftest has a test that verifies that. do_compile() { - touch empty.c - ${CPP} ${CFLAGS} -I/usr/include empty.c + bbnote Testing preprocessor + echo "int main(int argc, char** argv) {}" | ${CPP} -I/usr/include - + bbnote Testing C compiler + echo "int main(int argc, char** argv) {}" | ${CC} -x c -I/usr/include - + bbnote Testing C++ compiler + echo "int main(int argc, char** argv) {}" | ${CC} -x c++ -I/usr/include - } EXCLUDE_FROM_WORLD = "1" diff --git a/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb b/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb index 3f4c42d714..cff624e2f9 100644 --- a/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb +++ b/poky/meta-skeleton/recipes-skeleton/useradd/useradd-example.bb @@ -33,8 +33,8 @@ USERADD_PACKAGES = "${PN} ${PN}-user3" USERADD_PARAM:${PN} = "-u 1200 -d /home/user1 -r -s /bin/bash user1; -u 1201 -d /home/user2 -r -s /bin/bash user2" # user3 will be managed in the useradd-example-user3 pacakge: -# As an example, we use the -P option to set clear text password for user3 -USERADD_PARAM:${PN}-user3 = "-u 1202 -d /home/user3 -r -s /bin/bash -P 'user3' user3" +# As an example, we use the -p option to set password ('user3') for user3 +USERADD_PARAM:${PN}-user3 = "-u 1202 -d /home/user3 -r -s /bin/bash -p '\$6\$XAWr.8nc\$bUE4pYYaVb8n6BbnBitU0zeJMtfhTpFpiOBLL9zRl4e4YQo88UU4r/1kjRzmTimCy.BvDh4xoFwVqcO.pihLa1' user3" # GROUPADD_PARAM works the same way, which you set to the options # you'd normally pass to the groupadd command. This will create diff --git a/poky/meta-yocto-bsp/README.hardware.md b/poky/meta-yocto-bsp/README.hardware.md index 9151d641d5..44dbb35b93 100644 --- a/poky/meta-yocto-bsp/README.hardware.md +++ b/poky/meta-yocto-bsp/README.hardware.md @@ -203,7 +203,7 @@ Load the kernel, and boot the system as follows: 5. Download the kernel and boot: - => tftp tftp $loadaddr vmlinux + => tftp $loadaddr vmlinux => bootoctlinux $loadaddr coremask=0x3 root=/dev/nfs rw nfsroot=<nfsroot ip>:<rootfs path> ip=<board ip>:<server ip>:<gateway ip>:<netmask>:edgerouter:eth0:off mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom) --- Booting from USB disk --- diff --git a/poky/meta/classes-global/sstate.bbclass b/poky/meta/classes-global/sstate.bbclass index cd77c58dbf..2c8e7b8cc2 100644 --- a/poky/meta/classes-global/sstate.bbclass +++ b/poky/meta/classes-global/sstate.bbclass @@ -784,6 +784,7 @@ def pstaging_fetch(sstatefetch, d): uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)] for srcuri in uris: + localdata.delVar('SRC_URI') localdata.setVar('SRC_URI', srcuri) try: fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False) diff --git a/poky/meta/classes-recipe/core-image.bbclass b/poky/meta/classes-recipe/core-image.bbclass index 4b5f2c99c4..90d9eb9d3f 100644 --- a/poky/meta/classes-recipe/core-image.bbclass +++ b/poky/meta/classes-recipe/core-image.bbclass @@ -62,6 +62,10 @@ FEATURE_PACKAGES_hwcodecs = "${MACHINE_HWCODECS}" # IMAGE_FEATURES_REPLACES_foo = 'bar1 bar2' # Including image feature foo would replace the image features bar1 and bar2 IMAGE_FEATURES_REPLACES_ssh-server-openssh = "ssh-server-dropbear" +# Do not install openssh complementary packages if either packagegroup-core-ssh-dropbear or dropbear +# is installed # to avoid openssh-dropbear conflict +# see [Yocto #14858] for more information +PACKAGE_EXCLUDE_COMPLEMENTARY:append = "${@bb.utils.contains_any('PACKAGE_INSTALL', 'packagegroup-core-ssh-dropbear dropbear', 'openssh', '' , d)}" # IMAGE_FEATURES_CONFLICTS_foo = 'bar1 bar2' # An error exception would be raised if both image features foo and bar1(or bar2) are included diff --git a/poky/meta/classes-recipe/externalsrc.bbclass b/poky/meta/classes-recipe/externalsrc.bbclass index 51dbe9ea5a..06a9548a20 100644 --- a/poky/meta/classes-recipe/externalsrc.bbclass +++ b/poky/meta/classes-recipe/externalsrc.bbclass @@ -91,16 +91,18 @@ python () { # Since configure will likely touch ${S}, ensure only we lock so one task has access at a time d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock") - for funcname in [task, "base_" + task, "kernel_" + task]: + for v in d.keys(): + cleandirs = d.getVarFlag(v, "cleandirs", False) + if cleandirs: # We do not want our source to be wiped out, ever (kernel.bbclass does this for do_clean) - cleandirs = oe.recipeutils.split_var_value(d.getVarFlag(funcname, 'cleandirs', False) or '') + cleandirs = oe.recipeutils.split_var_value(cleandirs) setvalue = False for cleandir in cleandirs[:]: if oe.path.is_path_parent(externalsrc, d.expand(cleandir)): cleandirs.remove(cleandir) setvalue = True if setvalue: - d.setVarFlag(funcname, 'cleandirs', ' '.join(cleandirs)) + d.setVarFlag(v, 'cleandirs', ' '.join(cleandirs)) fetch_tasks = ['do_fetch', 'do_unpack'] # If we deltask do_patch, there's no dependency to ensure do_unpack gets run, so add one @@ -228,15 +230,16 @@ def srctree_hash_files(d, srcdir=None): env['GIT_INDEX_FILE'] = tmp_index.name subprocess.check_output(['git', 'add', '-A', '.'], cwd=s_dir, env=env) git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8") - submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8") - for line in submodule_helper.splitlines(): - module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1]) - if os.path.isdir(module_dir): - proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) - proc.communicate() - proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) - stdout, _ = proc.communicate() - git_sha1 += stdout.decode("utf-8") + if os.path.exists(".gitmodules"): + submodule_helper = subprocess.check_output(["git", "config", "--file", ".gitmodules", "--get-regexp", "path"], cwd=s_dir, env=env).decode("utf-8") + for line in submodule_helper.splitlines(): + module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1]) + if os.path.isdir(module_dir): + proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + proc.communicate() + proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) + stdout, _ = proc.communicate() + git_sha1 += stdout.decode("utf-8") sha1 = hashlib.sha1(git_sha1.encode("utf-8")).hexdigest() with open(oe_hash_file, 'w') as fobj: fobj.write(sha1) diff --git a/poky/meta/classes-recipe/github-releases.bbclass b/poky/meta/classes-recipe/github-releases.bbclass new file mode 100644 index 0000000000..ed83b83731 --- /dev/null +++ b/poky/meta/classes-recipe/github-releases.bbclass @@ -0,0 +1,3 @@ +GITHUB_BASE_URI ?= "https://github.com/${BPN}/${BPN}/releases/" +UPSTREAM_CHECK_URI ?= "${GITHUB_BASE_URI}" +UPSTREAM_CHECK_REGEX ?= "releases/tag/v?(?P<pver>\d+(\.\d+)+)" diff --git a/poky/meta/classes-recipe/gtk-icon-cache.bbclass b/poky/meta/classes-recipe/gtk-icon-cache.bbclass index 17c7eb7a33..9ecb49916c 100644 --- a/poky/meta/classes-recipe/gtk-icon-cache.bbclass +++ b/poky/meta/classes-recipe/gtk-icon-cache.bbclass @@ -9,7 +9,7 @@ FILES:${PN} += "${datadir}/icons/hicolor" GTKIC_VERSION ??= '3' GTKPN = "${@ 'gtk4' if d.getVar('GTKIC_VERSION') == '4' else 'gtk+3' }" -GTKIC_CMD = "${@ 'gtk-update-icon-cache-3.0.0' if d.getVar('GTKIC_VERSION') == '4' else 'gtk4-update-icon-cache' }" +GTKIC_CMD = "${@ 'gtk4-update-icon-cache' if d.getVar('GTKIC_VERSION') == '4' else 'gtk-update-icon-cache-3.0' }" #gtk+3/gtk4 require GTK3DISTROFEATURES, DEPENDS on it make all the #recipes inherit this class require GTK3DISTROFEATURES diff --git a/poky/meta/classes-recipe/kernel-module-split.bbclass b/poky/meta/classes-recipe/kernel-module-split.bbclass index 1b4c864a63..08c2e54e86 100644 --- a/poky/meta/classes-recipe/kernel-module-split.bbclass +++ b/poky/meta/classes-recipe/kernel-module-split.bbclass @@ -18,7 +18,7 @@ pkg_postrm:modules () { if [ -z "$D" ]; then depmod -a ${KERNEL_VERSION} else - depmodwrapper -a -b $D ${KERNEL_VERSION} + depmodwrapper -a -b $D ${KERNEL_VERSION} ${KERNEL_PACKAGE_NAME} fi } diff --git a/poky/meta/classes-recipe/kernel.bbclass b/poky/meta/classes-recipe/kernel.bbclass index de1b80d0ae..e4e69e0763 100644 --- a/poky/meta/classes-recipe/kernel.bbclass +++ b/poky/meta/classes-recipe/kernel.bbclass @@ -677,7 +677,7 @@ pkg_postinst:${KERNEL_PACKAGE_NAME}-base () { mkdir -p $D/lib/modules/${KERNEL_VERSION} fi if [ -n "$D" ]; then - depmodwrapper -a -b $D ${KERNEL_VERSION} + depmodwrapper -a -b $D ${KERNEL_VERSION} ${KERNEL_PACKAGE_NAME} else depmod -a ${KERNEL_VERSION} fi diff --git a/poky/meta/classes/overlayfs-etc.bbclass b/poky/meta/classes-recipe/overlayfs-etc.bbclass index d0bc3ecfac..f8343106f3 100644 --- a/poky/meta/classes/overlayfs-etc.bbclass +++ b/poky/meta/classes-recipe/overlayfs-etc.bbclass @@ -40,6 +40,7 @@ OVERLAYFS_ETC_DEVICE ??= "" OVERLAYFS_ETC_USE_ORIG_INIT_NAME ??= "1" OVERLAYFS_ETC_MOUNT_OPTIONS ??= "defaults" OVERLAYFS_ETC_INIT_TEMPLATE ??= "${COREBASE}/meta/files/overlayfs-etc-preinit.sh.in" +OVERLAYFS_ETC_EXPOSE_LOWER ??= "0" python create_overlayfs_etc_preinit() { overlayEtcMountPoint = d.getVar("OVERLAYFS_ETC_MOUNT_POINT") @@ -60,13 +61,15 @@ python create_overlayfs_etc_preinit() { preinitPath = oe.path.join(d.getVar("IMAGE_ROOTFS"), d.getVar("base_sbindir"), "preinit") initBaseName = oe.path.join(d.getVar("base_sbindir"), "init") origInitNameSuffix = ".orig" + exposeLower = oe.types.boolean(d.getVar('OVERLAYFS_ETC_EXPOSE_LOWER')) args = { 'OVERLAYFS_ETC_MOUNT_POINT': overlayEtcMountPoint, 'OVERLAYFS_ETC_MOUNT_OPTIONS': d.getVar('OVERLAYFS_ETC_MOUNT_OPTIONS'), 'OVERLAYFS_ETC_FSTYPE': overlayEtcFsType, 'OVERLAYFS_ETC_DEVICE': overlayEtcDevice, - 'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName + 'SBIN_INIT_NAME': initBaseName + origInitNameSuffix if useOrigInit else initBaseName, + 'OVERLAYFS_ETC_EXPOSE_LOWER': "true" if exposeLower else "false" } if useOrigInit: diff --git a/poky/meta/classes/overlayfs.bbclass b/poky/meta/classes-recipe/overlayfs.bbclass index bdc6dd9d57..bdc6dd9d57 100644 --- a/poky/meta/classes/overlayfs.bbclass +++ b/poky/meta/classes-recipe/overlayfs.bbclass diff --git a/poky/meta/classes-recipe/rootfs-postcommands.bbclass b/poky/meta/classes-recipe/rootfs-postcommands.bbclass index 215e38e33d..690fa976aa 100644 --- a/poky/meta/classes-recipe/rootfs-postcommands.bbclass +++ b/poky/meta/classes-recipe/rootfs-postcommands.bbclass @@ -22,7 +22,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'deb # Create /etc/timestamp during image construction to give a reasonably sane default time setting ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp; " -# Tweak the mount options for rootfs in /etc/fstab if read-only-rootfs is enabled +# Tweak files in /etc if read-only-rootfs is enabled ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", "read_only_rootfs_hook; ", "",d)}' # We also need to do the same for the kernel boot parameters, @@ -111,20 +111,24 @@ read_only_rootfs_hook () { # If we're using openssh and the /etc/ssh directory has no pre-generated keys, # we should configure openssh to use the configuration file /etc/ssh/sshd_config_readonly # and the keys under /var/run/ssh. - if [ -d ${IMAGE_ROOTFS}/etc/ssh ]; then - if [ -e ${IMAGE_ROOTFS}/etc/ssh/ssh_host_rsa_key ]; then - echo "SYSCONFDIR=\${SYSCONFDIR:-/etc/ssh}" >> ${IMAGE_ROOTFS}/etc/default/ssh - echo "SSHD_OPTS=" >> ${IMAGE_ROOTFS}/etc/default/ssh - else - echo "SYSCONFDIR=\${SYSCONFDIR:-/var/run/ssh}" >> ${IMAGE_ROOTFS}/etc/default/ssh - echo "SSHD_OPTS='-f /etc/ssh/sshd_config_readonly'" >> ${IMAGE_ROOTFS}/etc/default/ssh + # If overlayfs-etc is used this is not done as /etc is treated as writable + # If stateless-rootfs is enabled this is always done as we don't want to save keys then + if ${@ 'true' if not bb.utils.contains('IMAGE_FEATURES', 'overlayfs-etc', True, False, d) or bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else 'false'}; then + if [ -d ${IMAGE_ROOTFS}/etc/ssh ]; then + if [ -e ${IMAGE_ROOTFS}/etc/ssh/ssh_host_rsa_key ]; then + echo "SYSCONFDIR=\${SYSCONFDIR:-/etc/ssh}" >> ${IMAGE_ROOTFS}/etc/default/ssh + echo "SSHD_OPTS=" >> ${IMAGE_ROOTFS}/etc/default/ssh + else + echo "SYSCONFDIR=\${SYSCONFDIR:-/var/run/ssh}" >> ${IMAGE_ROOTFS}/etc/default/ssh + echo "SSHD_OPTS='-f /etc/ssh/sshd_config_readonly'" >> ${IMAGE_ROOTFS}/etc/default/ssh + fi fi - fi - # Also tweak the key location for dropbear in the same way. - if [ -d ${IMAGE_ROOTFS}/etc/dropbear ]; then - if [ ! -e ${IMAGE_ROOTFS}/etc/dropbear/dropbear_rsa_host_key ]; then - echo "DROPBEAR_RSAKEY_DIR=/var/lib/dropbear" >> ${IMAGE_ROOTFS}/etc/default/dropbear + # Also tweak the key location for dropbear in the same way. + if [ -d ${IMAGE_ROOTFS}/etc/dropbear ]; then + if [ ! -e ${IMAGE_ROOTFS}/etc/dropbear/dropbear_rsa_host_key ]; then + echo "DROPBEAR_RSAKEY_DIR=/var/lib/dropbear" >> ${IMAGE_ROOTFS}/etc/default/dropbear + fi fi fi @@ -200,6 +204,7 @@ ssh_allow_root_login () { if [ -e ${IMAGE_ROOTFS}${sbindir}/dropbear ] ; then if grep -q DROPBEAR_EXTRA_ARGS ${IMAGE_ROOTFS}${sysconfdir}/default/dropbear 2>/dev/null ; then sed -i '/^DROPBEAR_EXTRA_ARGS=/ s/-w//' ${IMAGE_ROOTFS}${sysconfdir}/default/dropbear + sed -i '/^# Disallow root/d' ${IMAGE_ROOTFS}${sysconfdir}/default/dropbear fi fi } diff --git a/poky/meta/classes-recipe/testimage.bbclass b/poky/meta/classes-recipe/testimage.bbclass index 8d2fab21df..5cc408b0c4 100644 --- a/poky/meta/classes-recipe/testimage.bbclass +++ b/poky/meta/classes-recipe/testimage.bbclass @@ -189,11 +189,7 @@ def get_testimage_boot_patterns(d): search_login_succeeded,search_cmd_finished\n Make sure your TESTIMAGE_BOOT_PATTERNS=%s \ contains an accepted flag.' % d.getVar('TESTIMAGE_BOOT_PATTERNS')) return - # We know boot prompt is searched through in binary format, others might be expressions - if flag == 'search_reached_prompt': - boot_patterns[flag] = flagval.encode() - else: - boot_patterns[flag] = flagval.encode().decode('unicode-escape') + boot_patterns[flag] = flagval.encode().decode('unicode-escape') return boot_patterns @@ -472,10 +468,7 @@ def create_rpm_index(d): package_list = glob.glob(idx_path + "*/*.rpm") for pkg in package_list: - if os.path.basename(pkg).startswith(("curl-ptest")): - bb.utils.remove(pkg) - - if not os.path.basename(pkg).startswith(("rpm", "run-postinsts", "busybox", "bash", "update-alternatives", "libc6", "curl", "musl")): + if not os.path.basename(pkg).startswith(("dnf-test-", "busybox", "update-alternatives", "libc6", "musl")): bb.utils.remove(pkg) bb.utils.unlockfile(lf) diff --git a/poky/meta/classes/icecc.bbclass b/poky/meta/classes/icecc.bbclass index a11e781f00..312e0f17b5 100644 --- a/poky/meta/classes/icecc.bbclass +++ b/poky/meta/classes/icecc.bbclass @@ -4,35 +4,35 @@ # SPDX-License-Identifier: MIT # -# IceCream distributed compiling support +# Icecream distributed compiling support # # Stages directories with symlinks from gcc/g++ to icecc, for both # native and cross compilers. Depending on each configure or compile, # the directories are added at the head of the PATH list and ICECC_CXX -# and ICEC_CC are set. +# and ICECC_CC are set. # # For the cross compiler, creates a tar.gz of our toolchain and sets # ICECC_VERSION accordingly. # # The class now handles all 3 different compile 'stages' (i.e native ,cross-kernel and target) creating the # necessary environment tar.gz file to be used by the remote machines. -# It also supports meta-toolchain generation +# It also supports meta-toolchain generation. # # If ICECC_PATH is not set in local.conf then the class will try to locate it using 'bb.utils.which' -# but nothing is sure ;) +# but nothing is sure. ;) # # If ICECC_ENV_EXEC is set in local.conf, then it should point to the icecc-create-env script provided by the user -# or the default one provided by icecc-create-env.bb will be used -# (NOTE that this is a modified version of the script need it and *not the one that comes with icecc* +# or the default one provided by icecc-create-env_0.1.bb will be used. +# (NOTE that this is a modified version of the needed script and *not the one that comes with icecream*). # -# User can specify if specific recipes or recipes belonging to class should not use icecc to distribute -# compile jobs to remote machines, but handled locally, by defining ICECC_CLASS_DISABLE and ICECC_RECIPE_DISABLE +# User can specify if specific recipes or recipes inheriting specific classes should not use icecc to distribute +# compile jobs to remote machines, but handle them locally by defining ICECC_CLASS_DISABLE and ICECC_RECIPE_DISABLE # with the appropriate values in local.conf. In addition the user can force to enable icecc for recipes # which set an empty PARALLEL_MAKE variable by defining ICECC_RECIPE_ENABLE. # ######################################################################################### -#Error checking is kept to minimum so double check any parameters you pass to the class -########################################################################################### +# Error checking is kept to minimum so double check any parameters you pass to the class +######################################################################################### BB_BASEHASH_IGNORE_VARS += "ICECC_PARALLEL_MAKE ICECC_DISABLED ICECC_RECIPE_DISABLE \ ICECC_CLASS_DISABLE ICECC_RECIPE_ENABLE ICECC_PATH ICECC_ENV_EXEC \ @@ -50,7 +50,7 @@ HOSTTOOLS_NONFATAL += "icecc patchelf" # invalidate the version on the compile nodes. Changing it will cause a new # environment to be created. # -# A useful thing to do for testing Icecream changes locally is to add a +# A useful thing to do for testing icecream changes locally is to add a # subversion in local.conf: # ICECC_ENV_VERSION:append = "-my-ver-1" ICECC_ENV_VERSION = "2" @@ -72,16 +72,16 @@ CXXFLAGS += "${ICECC_CFLAGS}" ICECC_ENV_DEBUG ??= "" # Disable recipe list contains a list of recipes that can not distribute -# compile tasks for one reason or the other. When adding new entry, please +# compile tasks for one reason or the other. When adding a new entry, please # document why (how it failed) so that we can re-evaluate it later e.g. when -# there is new version +# there is a new version. # # libgcc-initial - fails with CPP sanity check error if host sysroot contains -# cross gcc built for another target tune/variant +# cross gcc built for another target tune/variant. # pixman - prng_state: TLS reference mismatches non-TLS reference, possibly due to -# pragma omp threadprivate(prng_state) +# pragma omp threadprivate(prng_state). # systemtap - _HelperSDT.c undefs macros and uses the identifiers in macros emitting -# inline assembly +# inline assembly. # target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL # prefix" error. ICECC_RECIPE_DISABLE += "\ @@ -91,10 +91,10 @@ ICECC_RECIPE_DISABLE += "\ target-sdk-provides-dummy \ " -# Classes that should not use icecc. When adding new entry, please -# document why (how it failed) so that we can re-evaluate it later +# Classes that should not use icecc. When adding a new entry, please +# document why (how it failed) so that we can re-evaluate it later. # -# image - Image aren't compiling, but the testing framework for images captures +# image - images aren't compiling, but the testing framework for images captures # PARALLEL_MAKE as part of the test environment. Many tests won't use # icecream, but leaving the high level of parallelism can cause them to # consume an unnecessary amount of resources. @@ -103,7 +103,7 @@ ICECC_CLASS_DISABLE += "\ " def get_icecc_dep(d): - # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not + # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command. Whether or not # we need that built is the responsibility of the patch function / class, not # the application. if not d.getVar('INHIBIT_DEFAULT_DEPS'): @@ -259,7 +259,7 @@ def icecc_get_tool_link(tool, d): def icecc_get_path_tool(tool, d): # This is a little ugly, but we want to make sure we add an actual # compiler to the toolchain, not ccache. Some distros (e.g. Fedora) - # have ccache enabled by default using symlinks PATH, meaning ccache + # have ccache enabled by default using symlinks in PATH, meaning ccache # would be found first when looking for the compiler. paths = os.getenv("PATH").split(':') while True: @@ -380,7 +380,6 @@ set_icecc_env() { fi for compiler in $compilers; do ln -sf $ICECC_BIN $ICE_PATH/symlinks/$compiler - rm -f $ICE_PATH/$compiler cat <<-__EOF__ > $ICE_PATH/$compiler #!/bin/sh -e export ICECC_VERSION=$ICECC_VERSION @@ -449,11 +448,11 @@ do_install:prepend() { set_icecc_env } -# IceCream is not (currently) supported in the extensible SDK +# Icecream is not (currently) supported in the extensible SDK ICECC_SDK_HOST_TASK = "nativesdk-icecc-toolchain" ICECC_SDK_HOST_TASK:task-populate-sdk-ext = "" -# Don't include IceCream in uninative tarball +# Don't include icecream in uninative tarball ICECC_SDK_HOST_TASK:pn-uninative-tarball = "" # Add the toolchain scripts to the SDK diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index 52a36d788b..62cdd9aa9c 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -389,6 +389,7 @@ FILESYSTEM_PERMS_TABLES ?= "${@'files/fs-perms.txt' if oe.types.boolean(d.getVar TCMODE ??= "default" TCLIBC ??= "glibc" +TC_CXX_RUNTIME ??= "gnu" TMPDIR ?= "${TOPDIR}/tmp" CACHE = "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}" diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc index 3c80a3a617..fee4e52b10 100644 --- a/poky/meta/conf/distro/include/maintainers.inc +++ b/poky/meta/conf/distro/include/maintainers.inc @@ -626,6 +626,7 @@ RECIPE_MAINTAINER:pn-python3-jinja2 = "Richard Purdie <richard.purdie@linuxfound RECIPE_MAINTAINER:pn-python3-jsonpointer = "Bruce Ashfield <bruce.ashfield@gmail.com>" RECIPE_MAINTAINER:pn-python3-jsonschema = "Bruce Ashfield <bruce.ashfield@gmail.com>" RECIPE_MAINTAINER:pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>" +RECIPE_MAINTAINER:pn-python3-lxml = "Khem Raj <raj.khem@gmail.com>" RECIPE_MAINTAINER:pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>" RECIPE_MAINTAINER:pn-python3-mako = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>" RECIPE_MAINTAINER:pn-python3-markdown = "Alexander Kanavin <alex.kanavin@gmail.com>" diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc index 9abd121e3a..59b226e62f 100644 --- a/poky/meta/conf/distro/include/tcmode-default.inc +++ b/poky/meta/conf/distro/include/tcmode-default.inc @@ -22,7 +22,7 @@ BINUVERSION ?= "2.39%" GDBVERSION ?= "12.%" GLIBCVERSION ?= "2.36" LINUXLIBCVERSION ?= "5.19%" -QEMUVERSION ?= "7.0%" +QEMUVERSION ?= "7.1%" GOVERSION ?= "1.19%" # This can not use wildcards like 8.0.% since it is also used in mesa to denote # llvm version being used, so always bump it with llvm recipe version bump diff --git a/poky/meta/conf/layer.conf b/poky/meta/conf/layer.conf index 1387539734..0ce90355ba 100644 --- a/poky/meta/conf/layer.conf +++ b/poky/meta/conf/layer.conf @@ -7,7 +7,7 @@ BBFILE_COLLECTIONS += "core" BBFILE_PATTERN_core = "^${LAYERDIR}/" BBFILE_PRIORITY_core = "5" -LAYERSERIES_CORENAMES = "kirkstone langdale" +LAYERSERIES_CORENAMES = "langdale" # This should only be incremented on significant changes that will # cause compatibility issues with other layers diff --git a/poky/meta/conf/machine/include/arm/arch-armv9a.inc b/poky/meta/conf/machine/include/arm/arch-armv9a.inc new file mode 100644 index 0000000000..c38d6cfdf6 --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv9a.inc @@ -0,0 +1,28 @@ +DEFAULTTUNE ?= "armv9a-crc" + +TUNEVALID[armv9a] = "Enable instructions for ARMv9-a" +TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', ' -march=armv9-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv9a', 'armv9a:', '', d)}" + +require conf/machine/include/arm/arch-arm64.inc +require conf/machine/include/arm/feature-arm-crc.inc +require conf/machine/include/arm/feature-arm-crypto.inc + +# Little Endian base configs +AVAILTUNES += "armv9a armv9a-crc armv9a-crc-crypto armv9a-crypto" +ARMPKGARCH:tune-armv9a ?= "armv9a" +ARMPKGARCH:tune-armv9a-crc ?= "armv9a" +ARMPKGARCH:tune-armv9a-crypto ?= "armv9a" +ARMPKGARCH:tune-armv9a-crc-crypto ?= "armv9a" +TUNE_FEATURES:tune-armv9a = "aarch64 armv9a" +TUNE_FEATURES:tune-armv9a-crc = "${TUNE_FEATURES:tune-armv9a} crc" +TUNE_FEATURES:tune-armv9a-crypto = "${TUNE_FEATURES:tune-armv9a} crypto" +TUNE_FEATURES:tune-armv9a-crc-crypto = "${TUNE_FEATURES:tune-armv9a-crc} crypto" +PACKAGE_EXTRA_ARCHS:tune-armv9a = "aarch64 armv9a" +PACKAGE_EXTRA_ARCHS:tune-armv9a-crc = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crc" +PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} armv9a-crypto" +PACKAGE_EXTRA_ARCHS:tune-armv9a-crc-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crc} armv9a-crypto armv9a-crc-crypto" +BASE_LIB:tune-armv9a = "lib64" +BASE_LIB:tune-armv9a-crc = "lib64" +BASE_LIB:tune-armv9a-crypto = "lib64" +BASE_LIB:tune-armv9a-crc-crypto = "lib64" diff --git a/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc b/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc index 36355f7bed..d26ab25e48 100644 --- a/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc +++ b/poky/meta/conf/machine/include/arm/armv9a/tune-neoversen2.inc @@ -6,17 +6,15 @@ DEFAULTTUNE ?= "neoversen2" TUNEVALID[neoversen2] = "Enable Neoverse-N2 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'neoversen2', ' -mcpu=neoverse-n2', '', d)}" -# Even though the Neoverse N2 core implemnts the Arm v9.0-A architecture, -# but the support of it in GCC is based on the Arm v8.5-A architecture. -require conf/machine/include/arm/arch-armv8-5a.inc +require conf/machine/include/arm/arch-armv9a.inc # Little Endian base configs AVAILTUNES += "neoversen2 neoversen2-crypto" ARMPKGARCH:tune-neoversen2 = "neoversen2" ARMPKGARCH:tune-neoversen2-crypto = "neoversen2-crypto" -TUNE_FEATURES:tune-neoversen2 = "${TUNE_FEATURES:tune-armv8-5a} neoversen2" +TUNE_FEATURES:tune-neoversen2 = "${TUNE_FEATURES:tune-armv9a} neoversen2" TUNE_FEATURES:tune-neoversen2-crypto = "${TUNE_FEATURES:tune-neoversen2} crypto" -PACKAGE_EXTRA_ARCHS:tune-neoversen2 = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a} neoversen2" -PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8-5a-crypto} neoversen2 neoversen2-crypto" +PACKAGE_EXTRA_ARCHS:tune-neoversen2 = "${PACKAGE_EXTRA_ARCHS:tune-armv9a} neoversen2" +PACKAGE_EXTRA_ARCHS:tune-neoversen2-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv9a-crypto} neoversen2 neoversen2-crypto" BASE_LIB:tune-neoversen2 = "lib64" BASE_LIB:tune-neoversen2-crypto = "lib64" diff --git a/poky/meta/files/overlayfs-etc-preinit.sh.in b/poky/meta/files/overlayfs-etc-preinit.sh.in index 43c9b04eb9..8db076f4ba 100644 --- a/poky/meta/files/overlayfs-etc-preinit.sh.in +++ b/poky/meta/files/overlayfs-etc-preinit.sh.in @@ -15,19 +15,32 @@ mount -t sysfs sysfs /sys [ -z "$CONSOLE" ] && CONSOLE="/dev/console" +BASE_OVERLAY_ETC_DIR={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc +UPPER_DIR=$BASE_OVERLAY_ETC_DIR/upper +WORK_DIR=$BASE_OVERLAY_ETC_DIR/work +LOWER_DIR=$BASE_OVERLAY_ETC_DIR/lower + mkdir -p {OVERLAYFS_ETC_MOUNT_POINT} if mount -n -t {OVERLAYFS_ETC_FSTYPE} \ -o {OVERLAYFS_ETC_MOUNT_OPTIONS} \ {OVERLAYFS_ETC_DEVICE} {OVERLAYFS_ETC_MOUNT_POINT} then - mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper - mkdir -p {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work + mkdir -p $UPPER_DIR + mkdir -p $WORK_DIR + + if {OVERLAYFS_ETC_EXPOSE_LOWER}; then + mkdir -p $LOWER_DIR + + # provide read-only access to original /etc content + mount -o bind,ro /etc $LOWER_DIR + fi + mount -n -t overlay \ - -o upperdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper \ + -o upperdir=$UPPER_DIR \ -o lowerdir=/etc \ - -o workdir={OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/work \ + -o workdir=$WORK_DIR \ -o index=off,xino=off,redirect_dir=off,metacopy=off \ - {OVERLAYFS_ETC_MOUNT_POINT}/overlay-etc/upper /etc || \ + $UPPER_DIR /etc || \ echo "PREINIT: Mounting etc-overlay failed!" else echo "PREINIT: Mounting </data> failed!" diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py index 0b9911e3a6..890ba5f039 100644 --- a/poky/meta/lib/oe/rootfs.py +++ b/poky/meta/lib/oe/rootfs.py @@ -173,14 +173,8 @@ class Rootfs(object, metaclass=ABCMeta): bb.utils.rename(self.image_rootfs + '-orig', self.image_rootfs) def _exec_shell_cmd(self, cmd): - fakerootcmd = self.d.getVar('FAKEROOT') - if fakerootcmd is not None: - exec_cmd = [fakerootcmd, cmd] - else: - exec_cmd = cmd - try: - subprocess.check_output(exec_cmd, stderr=subprocess.STDOUT) + subprocess.check_output(cmd, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: return("Command '%s' returned %d:\n%s" % (e.cmd, e.returncode, e.output)) @@ -325,19 +319,29 @@ class Rootfs(object, metaclass=ABCMeta): bb.note("No Kernel Modules found, not running depmod") return - kernel_abi_ver_file = oe.path.join(self.d.getVar('PKGDATA_DIR'), "kernel-depmod", - 'kernel-abiversion') - if not os.path.exists(kernel_abi_ver_file): - bb.fatal("No kernel-abiversion file found (%s), cannot run depmod, aborting" % kernel_abi_ver_file) + pkgdatadir = self.d.getVar('PKGDATA_DIR') + + # PKGDATA_DIR can include multiple kernels so we run depmod for each + # one of them. + for direntry in os.listdir(pkgdatadir): + match = re.match('(.*)-depmod', direntry) + if not match: + continue + kernel_package_name = match.group(1) + + kernel_abi_ver_file = oe.path.join(pkgdatadir, direntry, kernel_package_name + '-abiversion') + if not os.path.exists(kernel_abi_ver_file): + bb.fatal("No kernel-abiversion file found (%s), cannot run depmod, aborting" % kernel_abi_ver_file) - with open(kernel_abi_ver_file) as f: - kernel_ver = f.read().strip(' \n') + with open(kernel_abi_ver_file) as f: + kernel_ver = f.read().strip(' \n') - versioned_modules_dir = os.path.join(self.image_rootfs, modules_dir, kernel_ver) + versioned_modules_dir = os.path.join(self.image_rootfs, modules_dir, kernel_ver) - bb.utils.mkdirhier(versioned_modules_dir) + bb.utils.mkdirhier(versioned_modules_dir) - self._exec_shell_cmd(['depmodwrapper', '-a', '-b', self.image_rootfs, kernel_ver]) + bb.note("Running depmodwrapper for %s ..." % versioned_modules_dir) + self._exec_shell_cmd(['depmodwrapper', '-a', '-b', self.image_rootfs, kernel_ver, kernel_package_name]) """ Create devfs: @@ -386,6 +390,10 @@ def create_rootfs(d, manifest_dir=None, progress_reporter=None, logcatcher=None) def image_list_installed_packages(d, rootfs_dir=None): + # Theres no rootfs for baremetal images + if bb.data.inherits_class('baremetal-image', d): + return "" + if not rootfs_dir: rootfs_dir = d.getVar('IMAGE_ROOTFS') diff --git a/poky/meta/lib/oeqa/oetest.py b/poky/meta/lib/oeqa/oetest.py index 9c84466dd0..cf417db0d4 100644 --- a/poky/meta/lib/oeqa/oetest.py +++ b/poky/meta/lib/oeqa/oetest.py @@ -28,7 +28,7 @@ try: import oeqa.sdkext except ImportError: pass -from oeqa.utils.decorators import LogResults, gettag, getResults +from oeqa.utils.decorators import LogResults, gettag logger = logging.getLogger("BitBake") @@ -57,7 +57,6 @@ def filterByTagExp(testsuite, tagexp): @LogResults class oeTest(unittest.TestCase): - pscmd = "ps" longMessage = True @classmethod @@ -110,20 +109,6 @@ class oeRuntimeTest(oeTest): def tearDown(self): # Uninstall packages in the DUT self.tc.install_uninstall_packages(self.id(), False) - - res = getResults() - # If a test fails or there is an exception dump - # for QemuTarget only - if (type(self.target).__name__ == "QemuTarget" and - (self.id() in res.getErrorList() or - self.id() in res.getFailList())): - self.tc.host_dumper.create_dir(self._testMethodName) - self.tc.host_dumper.dump_host() - self.target.target_dumper.dump_target( - self.tc.host_dumper.dump_dir) - print ("%s dump data stored in %s" % (self._testMethodName, - self.tc.host_dumper.dump_dir)) - self.tearDownLocal() # Method to be run after tearDown and implemented by child classes @@ -398,11 +383,6 @@ class RuntimeTestContext(TestContext): def _get_test_suites_required(self): return [t for t in self.d.getVar("TEST_SUITES").split() if t != "auto"] - def loadTests(self): - super(RuntimeTestContext, self).loadTests() - if oeTest.hasPackage("procps"): - oeRuntimeTest.pscmd = "ps -ef" - def extract_packages(self): """ Find packages that will be needed during runtime. diff --git a/poky/meta/lib/oeqa/runtime/cases/dnf.py b/poky/meta/lib/oeqa/runtime/cases/dnf.py index a8e23e596e..410d456bdf 100644 --- a/poky/meta/lib/oeqa/runtime/cases/dnf.py +++ b/poky/meta/lib/oeqa/runtime/cases/dnf.py @@ -75,48 +75,43 @@ class DnfRepoTest(DnfTest): def test_dnf_makecache(self): self.dnf_with_repo('makecache') - -# Does not work when repo is specified on the command line -# @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) -# def test_dnf_repolist(self): -# self.dnf_with_repo('repolist') - @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) def test_dnf_repoinfo(self): self.dnf_with_repo('repoinfo') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) def test_dnf_install(self): - output = self.dnf_with_repo('list run-postinsts-dev') - if 'Installed Packages' in output: - self.dnf_with_repo('remove -y run-postinsts-dev') - self.dnf_with_repo('install -y run-postinsts-dev') + self.dnf_with_repo('remove -y dnf-test-*') + self.dnf_with_repo('install -y dnf-test-dep') @OETestDepends(['dnf.DnfRepoTest.test_dnf_install']) def test_dnf_install_dependency(self): - self.dnf_with_repo('remove -y run-postinsts') - self.dnf_with_repo('install -y run-postinsts-dev') + self.dnf_with_repo('remove -y dnf-test-*') + self.dnf_with_repo('install -y dnf-test-main') + output = self.dnf('list --installed dnf-test-*') + self.assertIn("dnf-test-main.", output) + self.assertIn("dnf-test-dep.", output) @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_dependency']) def test_dnf_install_from_disk(self): - self.dnf_with_repo('remove -y run-postinsts-dev') - self.dnf_with_repo('install -y --downloadonly run-postinsts-dev') - status, output = self.target.run('find /var/cache/dnf -name run-postinsts-dev*rpm', 1500) + self.dnf_with_repo('remove -y dnf-test-dep') + self.dnf_with_repo('install -y --downloadonly dnf-test-dep') + status, output = self.target.run('find /var/cache/dnf -name dnf-test-dep*rpm') self.assertEqual(status, 0, output) self.dnf_with_repo('install -y %s' % output) @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_from_disk']) def test_dnf_install_from_http(self): - output = subprocess.check_output('%s %s -name run-postinsts-dev*' % (bb.utils.which(os.getenv('PATH'), "find"), + output = subprocess.check_output('%s %s -name dnf-test-dep*' % (bb.utils.which(os.getenv('PATH'), "find"), os.path.join(self.tc.td['WORKDIR'], 'oe-testimage-repo')), shell=True).decode("utf-8") rpm_path = output.split("/")[-2] + "/" + output.split("/")[-1] url = 'http://%s:%s/%s' %(self.target.server_ip, self.repo_server.port, rpm_path) - self.dnf_with_repo('remove -y run-postinsts-dev') + self.dnf_with_repo('remove -y dnf-test-dep') self.dnf_with_repo('install -y %s' % url) @OETestDepends(['dnf.DnfRepoTest.test_dnf_install']) def test_dnf_reinstall(self): - self.dnf_with_repo('reinstall -y run-postinsts-dev') + self.dnf_with_repo('reinstall -y dnf-test-main') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge') @@ -139,14 +134,14 @@ class DnfRepoTest(DnfTest): self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) - self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) + self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox' % rootpath) status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) self.assertEqual(0, status, output) status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) self.assertEqual(0, status, output) @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) - @skipIfNotInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when enable usrmege') + @skipIfNotInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when enable usrmerge') @OEHasPackage('busybox') def test_dnf_installroot_usrmerge(self): rootpath = '/home/root/chroot/test' @@ -171,7 +166,7 @@ class DnfRepoTest(DnfTest): self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) - self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) + self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox' % rootpath) status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) self.assertEqual(0, status, output) status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) @@ -179,15 +174,8 @@ class DnfRepoTest(DnfTest): @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) def test_dnf_exclude(self): - excludepkg = 'curl-dev' - self.dnf_with_repo('install -y curl*') - self.dnf('list %s' % excludepkg, 0) - #Avoid remove dependencies to skip some errors on different archs and images - self.dnf_with_repo('remove --setopt=clean_requirements_on_remove=0 -y curl*') - #check curl-dev is not installed adter removing all curl occurrences - status, output = self.target.run('dnf list --installed | grep %s'% excludepkg, 1500) - self.assertEqual(1, status, "%s was not removed, is listed as installed"%excludepkg) - self.dnf_with_repo('install -y --exclude=%s --exclude=curl-staticdev curl*' % excludepkg) - #check curl-dev is not installed after being excluded - status, output = self.target.run('dnf list --installed | grep %s'% excludepkg , 1500) - self.assertEqual(1, status, "%s was not excluded, is listed as installed"%excludepkg) + self.dnf_with_repo('remove -y dnf-test-*') + self.dnf_with_repo('install -y --exclude=dnf-test-dep dnf-test-*') + output = self.dnf('list --installed dnf-test-*') + self.assertIn("dnf-test-main.", output) + self.assertNotIn("dnf-test-dev.", output) diff --git a/poky/meta/lib/oeqa/runtime/cases/parselogs.py b/poky/meta/lib/oeqa/runtime/cases/parselogs.py index e16c230dfa..e67d3750da 100644 --- a/poky/meta/lib/oeqa/runtime/cases/parselogs.py +++ b/poky/meta/lib/oeqa/runtime/cases/parselogs.py @@ -67,6 +67,8 @@ common_errors = [ "was skipped because of a failed condition check", "was skipped because all trigger condition checks failed", "xf86OpenConsole: Switching VT failed", + "Failed to read LoaderConfigTimeoutOneShot variable, ignoring: Operation not supported", + "Failed to read LoaderEntryOneShot variable, ignoring: Operation not supported", ] video_related = [ diff --git a/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/poky/meta/lib/oeqa/selftest/cases/bblayers.py index c6bd5a1f6a..b048948386 100644 --- a/poky/meta/lib/oeqa/selftest/cases/bblayers.py +++ b/poky/meta/lib/oeqa/selftest/cases/bblayers.py @@ -14,7 +14,9 @@ from oeqa.selftest.case import OESelftestTestCase class BitbakeLayers(OESelftestTestCase): - def setUpLocal(self): + @classmethod + def setUpClass(cls): + super(BitbakeLayers, cls).setUpClass() bitbake("python3-jsonschema-native") bitbake("-c addto_recipe_sysroot python3-jsonschema-native") diff --git a/poky/meta/lib/oeqa/selftest/cases/debuginfod.py b/poky/meta/lib/oeqa/selftest/cases/debuginfod.py index 01359ec649..3c40119282 100644 --- a/poky/meta/lib/oeqa/selftest/cases/debuginfod.py +++ b/poky/meta/lib/oeqa/selftest/cases/debuginfod.py @@ -10,16 +10,24 @@ import subprocess from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake, get_bb_var, runqemu + class Debuginfod(OESelftestTestCase): def test_debuginfod(self): - self.write_config(""" + self.write_config( + """ DISTRO_FEATURES:append = " debuginfod" CORE_IMAGE_EXTRA_INSTALL += "elfutils" - """) + """ + ) bitbake("core-image-minimal elfutils-native:do_addto_recipe_sysroot") native_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "elfutils-native") - cmd = [os.path.join(native_sysroot, "usr", "bin", "debuginfod"), "--verbose", get_bb_var("DEPLOY_DIR")] + cmd = [ + os.path.join(native_sysroot, "usr", "bin", "debuginfod"), + "--verbose", + "--database=:memory:", + get_bb_var("DEPLOY_DIR"), + ] for format in get_bb_var("PACKAGE_CLASSES").split(): if format == "package_deb": cmd.append("--scan-deb-dir") @@ -36,7 +44,10 @@ CORE_IMAGE_EXTRA_INSTALL += "elfutils" debuginfod = subprocess.Popen(cmd) with runqemu("core-image-minimal", runqemuparams="nographic") as qemu: - cmd = "DEBUGINFOD_URLS=http://%s:%d/ debuginfod-find debuginfo /usr/bin/debuginfod" % (qemu.server_ip, port) + cmd = ( + "DEBUGINFOD_URLS=http://%s:%d/ debuginfod-find debuginfo /usr/bin/debuginfod" + % (qemu.server_ip, port) + ) status, output = qemu.run_serial(cmd) # This should be more comprehensive self.assertIn("/.cache/debuginfod_client/", output) diff --git a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py index bff22f21b6..57a8c8bdb6 100644 --- a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py +++ b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py @@ -333,24 +333,14 @@ EXTRA_IMAGE_FEATURES += "package-management" self.assertTrue("overlayfs-etc" in res.output, msg=res.output) self.assertTrue("package-management" in res.output, msg=res.output) - def test_image_feature_is_missing_class_included(self): - configAppend = """ -INHERIT += "overlayfs-etc" -""" - self.run_check_image_feature(configAppend) - def test_image_feature_is_missing(self): - self.run_check_image_feature() - - def run_check_image_feature(self, appendToConfig=""): """ Summary: Overlayfs-etc class is not applied when image feature is not set - even if we inherit it directly, Expected: Image is created successfully but /etc is not an overlay Author: Vyacheslav Yurkov <uvv.mail@gmail.com> """ - config = f""" + config = """ DISTRO_FEATURES:append = " systemd" # Use systemd as init manager @@ -366,7 +356,6 @@ EXTRA_IMAGE_FEATURES += "read-only-rootfs" # Image configuration for overlayfs-etc OVERLAYFS_ETC_MOUNT_POINT = "/data" OVERLAYFS_ETC_DEVICE = "/dev/sda3" -{appendToConfig} """ self.write_config(config) @@ -392,28 +381,7 @@ OVERLAYFS_ETC_DEVICE = "/dev/sda3" Author: Vyacheslav Yurkov <uvv.mail@gmail.com> """ - config = """ -DISTRO_FEATURES:append = " systemd" - -# Use systemd as init manager -VIRTUAL-RUNTIME_init_manager = "systemd" - -# enable overlayfs in the kernel -KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc" - -IMAGE_FSTYPES += "wic" -OVERLAYFS_INIT_OPTION = "{OVERLAYFS_INIT_OPTION}" -WKS_FILE = "overlayfs_etc.wks.in" - -EXTRA_IMAGE_FEATURES += "read-only-rootfs" -# Image configuration for overlayfs-etc -EXTRA_IMAGE_FEATURES += "overlayfs-etc" -IMAGE_FEATURES:remove = "package-management" -OVERLAYFS_ETC_MOUNT_POINT = "/data" -OVERLAYFS_ETC_FSTYPE = "ext4" -OVERLAYFS_ETC_DEVICE = "/dev/sda3" -OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}" -""" + config = self.get_working_config() args = { 'OVERLAYFS_INIT_OPTION': "" if origInit else "init=/sbin/preinit", @@ -434,6 +402,11 @@ OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}" line = getline_qemu(output, "upperdir=/data/overlay-etc/upper") self.assertTrue(line and line.startswith("/data/overlay-etc/upper on /etc type overlay"), msg=output) + # check that lower layer is not available + status, output = qemu.run_serial("ls -1 /data/overlay-etc/lower") + line = getline_qemu(output, "No such file or directory") + self.assertTrue(line, msg=output) + status, output = qemu.run_serial("touch " + testFile) status, output = qemu.run_serial("sync") status, output = qemu.run_serial("ls -1 " + testFile) @@ -445,3 +418,65 @@ OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}" status, output = qemu.run_serial("ls -1 " + testFile) line = getline_qemu(output, testFile) self.assertTrue(line and line.startswith(testFile), msg=output) + + def test_lower_layer_access(self): + """ + Summary: Test that lower layer of /etc is available read-only when configured + Expected: Can't write to lower layer. The files on lower and upper different after + modification + Author: Vyacheslav Yurkov <uvv.mail@gmail.com> + """ + + config = self.get_working_config() + + configLower = """ +OVERLAYFS_ETC_EXPOSE_LOWER = "1" +IMAGE_INSTALL:append = " overlayfs-user" +""" + testFile = "lower-layer-test.txt" + + args = { + 'OVERLAYFS_INIT_OPTION': "", + 'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': 1 + } + + self.write_config(config.format(**args)) + + self.append_config(configLower) + bitbake('core-image-minimal') + + with runqemu('core-image-minimal', image_fstype='wic') as qemu: + status, output = qemu.run_serial("echo \"Modified in upper\" > /etc/" + testFile) + status, output = qemu.run_serial("diff /etc/" + testFile + " /data/overlay-etc/lower/" + testFile) + line = getline_qemu(output, "Modified in upper") + self.assertTrue(line, msg=output) + line = getline_qemu(output, "Original file") + self.assertTrue(line, msg=output) + + status, output = qemu.run_serial("touch /data/overlay-etc/lower/ro-test.txt") + line = getline_qemu(output, "Read-only file system") + self.assertTrue(line, msg=output) + + def get_working_config(self): + return """ +DISTRO_FEATURES:append = " systemd" + +# Use systemd as init manager +VIRTUAL-RUNTIME_init_manager = "systemd" + +# enable overlayfs in the kernel +KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc" + +IMAGE_FSTYPES += "wic" +OVERLAYFS_INIT_OPTION = "{OVERLAYFS_INIT_OPTION}" +WKS_FILE = "overlayfs_etc.wks.in" + +EXTRA_IMAGE_FEATURES += "read-only-rootfs" +# Image configuration for overlayfs-etc +EXTRA_IMAGE_FEATURES += "overlayfs-etc" +IMAGE_FEATURES:remove = "package-management" +OVERLAYFS_ETC_MOUNT_POINT = "/data" +OVERLAYFS_ETC_FSTYPE = "ext4" +OVERLAYFS_ETC_DEVICE = "/dev/sda3" +OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}" +""" diff --git a/poky/meta/lib/oeqa/utils/decorators.py b/poky/meta/lib/oeqa/utils/decorators.py index aabf4110cb..ea90164e5e 100644 --- a/poky/meta/lib/oeqa/utils/decorators.py +++ b/poky/meta/lib/oeqa/utils/decorators.py @@ -16,91 +16,6 @@ import threading import signal from functools import wraps -#get the "result" object from one of the upper frames provided that one of these upper frames is a unittest.case frame -class getResults(object): - def __init__(self): - #dynamically determine the unittest.case frame and use it to get the name of the test method - ident = threading.current_thread().ident - upperf = sys._current_frames()[ident] - while (upperf.f_globals['__name__'] != 'unittest.case'): - upperf = upperf.f_back - - def handleList(items): - ret = [] - # items is a list of tuples, (test, failure) or (_ErrorHandler(), Exception()) - for i in items: - s = i[0].id() - #Handle the _ErrorHolder objects from skipModule failures - if "setUpModule (" in s: - ret.append(s.replace("setUpModule (", "").replace(")","")) - else: - ret.append(s) - # Append also the test without the full path - testname = s.split('.')[-1] - if testname: - ret.append(testname) - return ret - self.faillist = handleList(upperf.f_locals['result'].failures) - self.errorlist = handleList(upperf.f_locals['result'].errors) - self.skiplist = handleList(upperf.f_locals['result'].skipped) - - def getFailList(self): - return self.faillist - - def getErrorList(self): - return self.errorlist - - def getSkipList(self): - return self.skiplist - -class skipIfFailure(object): - - def __init__(self,testcase): - self.testcase = testcase - - def __call__(self,f): - @wraps(f) - def wrapped_f(*args, **kwargs): - res = getResults() - if self.testcase in (res.getFailList() or res.getErrorList()): - raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) - return f(*args, **kwargs) - wrapped_f.__name__ = f.__name__ - return wrapped_f - -class skipIfSkipped(object): - - def __init__(self,testcase): - self.testcase = testcase - - def __call__(self,f): - @wraps(f) - def wrapped_f(*args, **kwargs): - res = getResults() - if self.testcase in res.getSkipList(): - raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) - return f(*args, **kwargs) - wrapped_f.__name__ = f.__name__ - return wrapped_f - -class skipUnlessPassed(object): - - def __init__(self,testcase): - self.testcase = testcase - - def __call__(self,f): - @wraps(f) - def wrapped_f(*args, **kwargs): - res = getResults() - if self.testcase in res.getSkipList() or \ - self.testcase in res.getFailList() or \ - self.testcase in res.getErrorList(): - raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) - return f(*args, **kwargs) - wrapped_f.__name__ = f.__name__ - wrapped_f._depends_on = self.testcase - return wrapped_f - class testcase(object): def __init__(self, test_case): self.test_case = test_case diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py index 4c3d2010fb..6a85f57e49 100644 --- a/poky/meta/lib/oeqa/utils/qemurunner.py +++ b/poky/meta/lib/oeqa/utils/qemurunner.py @@ -85,7 +85,7 @@ class QemuRunner: accepted_patterns = ['search_reached_prompt', 'send_login_user', 'search_login_succeeded', 'search_cmd_finished'] default_boot_patterns = defaultdict(str) # Default to the usual paterns used to communicate with the target - default_boot_patterns['search_reached_prompt'] = b' login:' + default_boot_patterns['search_reached_prompt'] = ' login:' default_boot_patterns['send_login_user'] = 'root\n' default_boot_patterns['search_login_succeeded'] = r"root@[a-zA-Z0-9\-]+:~#" default_boot_patterns['search_cmd_finished'] = r"[a-zA-Z0-9]+@[a-zA-Z0-9\-]+:~#" @@ -109,12 +109,15 @@ class QemuRunner: sock.close() raise + def decode_qemulog(self, todecode): + # Sanitize the data received from qemu as it may contain control characters + msg = todecode.decode("utf-8", errors='ignore') + msg = re_control_char.sub('', msg) + return msg + def log(self, msg): if self.logfile: - # It is needed to sanitize the data received from qemu - # because is possible to have control characters - msg = msg.decode("utf-8", errors='ignore') - msg = re_control_char.sub('', msg) + msg = self.decode_qemulog(msg) self.msg += msg with codecs.open(self.logfile, "a", encoding="utf-8") as f: f.write("%s" % msg) @@ -188,8 +191,8 @@ class QemuRunner: importlib.invalidate_caches() try: qmp = importlib.import_module("qmp") - except: - self.logger.error("qemurunner: qmp.py missing, please ensure it's installed") + except Exception as e: + self.logger.error("qemurunner: qmp.py missing, please ensure it's installed (%s)" % str(e)) return False # Path relative to tmpdir used as cwd for qemu below to avoid unix socket path length issues qmp_file = "." + next(tempfile._get_candidate_names()) @@ -325,7 +328,8 @@ class QemuRunner: try: os.chdir(os.path.dirname(qmp_port)) try: - self.qmp = qmp.QEMUMonitorProtocol(os.path.basename(qmp_port)) + from qmp.legacy import QEMUMonitorProtocol + self.qmp = QEMUMonitorProtocol(os.path.basename(qmp_port)) except OSError as msg: self.logger.warning("Failed to initialize qemu monitor socket: %s File: %s" % (msg, msg.filename)) return False @@ -467,13 +471,15 @@ class QemuRunner: self.log(data) data = b'' - if self.boot_patterns['search_reached_prompt'] in bootlog: + + decodedlog = self.decode_qemulog(bootlog) + if self.boot_patterns['search_reached_prompt'] in decodedlog: self.server_socket = qemusock stopread = True reachedlogin = True - self.logger.debug("Reached login banner in %s seconds (%s)" % + self.logger.debug("Reached login banner in %s seconds (%s, %s)" % (time.time() - (endtime - self.boottime), - time.strftime("%D %H:%M:%S"))) + time.strftime("%D %H:%M:%S"), time.time())) else: # no need to check if reachedlogin unless we support multiple connections self.logger.debug("QEMU socket disconnected before login banner reached. (%s)" % @@ -487,10 +493,10 @@ class QemuRunner: self.logger.warning("Target didn't reach login banner in %d seconds (%s)" % (self.boottime, time.strftime("%D %H:%M:%S"))) tail = lambda l: "\n".join(l.splitlines()[-25:]) - bootlog = bootlog.decode("utf-8") + bootlog = self.decode_qemulog(bootlog) # in case bootlog is empty, use tail qemu log store at self.msg lines = tail(bootlog if bootlog else self.msg) - self.logger.warning("Last 25 lines of text:\n%s" % lines) + self.logger.warning("Last 25 lines of text (%d):\n%s" % (len(bootlog), lines)) self.logger.warning("Check full boot log: %s" % self.logfile) self._dump_host() self.stop() diff --git a/poky/meta/recipes-bsp/grub/files/0001-configure-Remove-obsoleted-malign-jumps-loops-functi.patch b/poky/meta/recipes-bsp/grub/files/0001-configure-Remove-obsoleted-malign-jumps-loops-functi.patch new file mode 100644 index 0000000000..98142a7b60 --- /dev/null +++ b/poky/meta/recipes-bsp/grub/files/0001-configure-Remove-obsoleted-malign-jumps-loops-functi.patch @@ -0,0 +1,48 @@ +From eb486898dac8cbc29b2cc39f911b657c3417ae34 Mon Sep 17 00:00:00 2001 +From: Fangrui Song via Grub-devel <grub-devel@gnu.org> +Date: Thu, 26 Aug 2021 09:02:31 -0700 +Subject: [PATCH 1/2] configure: Remove obsoleted -malign-{jumps, loops, + functions} +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The GCC warns "cc1: warning: ‘-malign-loops’ is obsolete, use ‘-falign-loops’". +The Clang silently ignores -malign-{jumps,loops,functions}. + +The preferred -falign-* forms have been supported since GCC 3.2. So, just +remove -malign-{jumps,loops,functions}. + +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=eb486898dac8cbc29b2cc39f911b657c3417ae34] +Signed-off-by: Fangrui Song <maskray@google.com> +Acked-by: Paul Menzel <pmenzel@molgen.mpg.de> +Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> +--- + configure.ac | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/configure.ac b/configure.ac +index bee28dbeb..9a12151bd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -805,17 +805,8 @@ if test "x$target_cpu" = xi386; then + [grub_cv_cc_falign_loop=no]) + ]) + +- AC_CACHE_CHECK([whether -malign-loops works], [grub_cv_cc_malign_loop], [ +- CFLAGS="$TARGET_CFLAGS -malign-loops=1 -Werror" +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], +- [grub_cv_cc_malign_loop=yes], +- [grub_cv_cc_malign_loop=no]) +- ]) +- + if test "x$grub_cv_cc_falign_loop" = xyes; then + TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1" +- elif test "x$grub_cv_cc_malign_loop" = xyes; then +- TARGET_CFLAGS="$TARGET_CFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1" + fi + fi + +-- +2.37.3 + diff --git a/poky/meta/recipes-bsp/grub/files/0002-configure-Check-for-falign-jumps-1-beside-falign-loo.patch b/poky/meta/recipes-bsp/grub/files/0002-configure-Check-for-falign-jumps-1-beside-falign-loo.patch new file mode 100644 index 0000000000..437e5b29b2 --- /dev/null +++ b/poky/meta/recipes-bsp/grub/files/0002-configure-Check-for-falign-jumps-1-beside-falign-loo.patch @@ -0,0 +1,59 @@ +From e372dcb0d4541ee9b9682cde088ec87a7b238ca2 Mon Sep 17 00:00:00 2001 +From: Fangrui Song via Grub-devel <grub-devel@gnu.org> +Date: Thu, 26 Aug 2021 09:02:32 -0700 +Subject: [PATCH 2/2] configure: Check for -falign-jumps=1 beside + -falign-loops=1 + +The Clang does not support -falign-jumps and only recently gained support +for -falign-loops. The -falign-jumps=1 should be tested beside +-fliang-loops=1 to avoid passing unrecognized options to the Clang: + + clang-14: error: optimization flag '-falign-jumps=1' is not supported [-Werror,-Wignored-optimization-argument] + +The -falign-functions=1 is supported by GCC 5.1.0/Clang 3.8.0. So, just +add the option unconditionally. + +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=e372dcb0d4541ee9b9682cde088ec87a7b238ca2] +Signed-off-by: Fangrui Song <maskray@google.com> +Acked-by: Paul Menzel <pmenzel@molgen.mpg.de> +Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> +--- + configure.ac | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 9a12151bd..eeb5d2211 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -798,6 +798,8 @@ fi + + # Force no alignment to save space on i386. + if test "x$target_cpu" = xi386; then ++ TARGET_CFLAGS="$TARGET_CFLAGS -falign-functions=1" ++ + AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [ + CFLAGS="$TARGET_CFLAGS -falign-loops=1 -Werror" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], +@@ -806,7 +808,18 @@ if test "x$target_cpu" = xi386; then + ]) + + if test "x$grub_cv_cc_falign_loop" = xyes; then +- TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1" ++ TARGET_CFLAGS="$TARGET_CFLAGS -falign-loops=1" ++ fi ++ ++ AC_CACHE_CHECK([whether -falign-jumps works], [grub_cv_cc_falign_jumps], [ ++ CFLAGS="$TARGET_CFLAGS -falign-jumps=1 -Werror" ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], ++ [grub_cv_cc_falign_jumps=yes], ++ [grub_cv_cc_falign_jumps=no]) ++ ]) ++ ++ if test "x$grub_cv_cc_falign_jumps" = xyes; then ++ TARGET_CFLAGS="$TARGET_CFLAGS -falign-jumps=1" + fi + fi + +-- +2.37.3 + diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc index 47ea561002..2545b99b6a 100644 --- a/poky/meta/recipes-bsp/grub/grub2.inc +++ b/poky/meta/recipes-bsp/grub/grub2.inc @@ -32,6 +32,8 @@ SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \ file://CVE-2022-28734-net-http-Fix-OOB-write-for-split-http-headers.patch \ file://CVE-2022-28734-net-http-Error-out-on-headers-with-LF-without-CR.patch \ file://CVE-2022-28735-kern-efi-sb-Reject-non-kernel-files-in-the-shim_lock.patch \ + file://0001-configure-Remove-obsoleted-malign-jumps-loops-functi.patch \ + file://0002-configure-Check-for-falign-jumps-1-beside-falign-loo.patch \ " SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f" @@ -43,9 +45,13 @@ CVE_CHECK_IGNORE += "CVE-2021-46705" DEPENDS = "flex-native bison-native gettext-native" -COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|riscv.*)-(linux.*|freebsd.*)' -COMPATIBLE_HOST:armv7a = 'null' -COMPATIBLE_HOST:armv7ve = 'null' +GRUB_COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|riscv.*)-(linux.*|freebsd.*)' +COMPATIBLE_HOST = "${GRUB_COMPATIBLE_HOST}" +# Grub doesn't support hard float toolchain and won't be able to forcefully +# disable it on some of the target CPUs. See 'configure.ac' for +# supported/unsupported CPUs in hardfp. +COMPATIBLE_HOST:armv7a = "${@'null' if d.getVar('TUNE_CCARGS_MFLOAT') == 'hardfp' else d.getVar('GRUB_COMPATIBLE_HOST')}" +COMPATIBLE_HOST:armv7ve = "${@'null' if d.getVar('TUNE_CCARGS_MFLOAT') == 'hardfp' else d.getVar('GRUB_COMPATIBLE_HOST')}" # configure.ac has code to set this automagically from the target tuple # but the OE freeform one (core2-foo-bar-linux) don't work with that. diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.3.bb index e8f58941cf..55f91b6f05 100644 --- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.2.bb +++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.3.bb @@ -6,12 +6,12 @@ It provides a hardware-independent replacement for fw_printenv/setenv utilities provided by U-Boot" HOMEPAGE = "https://github.com/sbabic/libubootenv" -LICENSE = "LGPL-2.1-only" -LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c" SECTION = "libs" SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https;branch=master" -SRCREV = "ba7564f5006d09bec51058cf4f5ac90d4dc18b3c" +SRCREV = "108100622160bb0c7ef4b6186230fe1f26402791" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2022.07.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2022.07.bb index 0d2464d74b..1ae575790c 100644 --- a/poky/meta/recipes-bsp/u-boot/u-boot_2022.07.bb +++ b/poky/meta/recipes-bsp/u-boot/u-boot_2022.07.bb @@ -1,7 +1,7 @@ require u-boot-common.inc require u-boot.inc -SRC_URI:append = " file://0001-riscv32-Use-double-float-ABI-for-rv32.patch \ +SRC_URI += " file://0001-riscv32-Use-double-float-ABI-for-rv32.patch \ file://0001-riscv-fix-build-with-binutils-2.38.patch \ " diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb index a2efe7e80a..a830385352 100644 --- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb +++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb @@ -19,7 +19,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \ file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf" -SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/avahi-${PV}.tar.gz \ file://00avahi-autoipd \ file://99avahi-autoipd \ file://initscript.patch \ @@ -28,7 +28,7 @@ SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV} file://local-ping.patch \ " -UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/" +GITHUB_BASE_URI = "https://github.com/lathiat/avahi/releases/" SRC_URI[md5sum] = "229c6aa30674fc43c202b22c5f8c2be7" SRC_URI[sha256sum] = "060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda" @@ -48,7 +48,7 @@ PACKAGECONFIG[libdns_sd] = "--enable-compat-libdns_sd --enable-dbus,,dbus" PACKAGECONFIG[libevent] = "--enable-libevent,--disable-libevent,libevent" PACKAGECONFIG[qt5] = "--enable-qt5,--disable-qt5,qtbase" -inherit autotools pkgconfig gettext gobject-introspection +inherit autotools pkgconfig gettext gobject-introspection github-releases EXTRA_OECONF = "--with-avahi-priv-access-group=adm \ --disable-stack-protector \ diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.7/0001-avoid-start-failure-with-bind-user.patch index ec1bc7b567..ec1bc7b567 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/0001-avoid-start-failure-with-bind-user.patch +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/0001-avoid-start-failure-with-bind-user.patch diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch index 4c10f33f04..4c10f33f04 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/0001-named-lwresd-V-and-start-log-hide-build-options.patch +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.7/bind-ensure-searching-for-json-headers-searches-sysr.patch index f1abd179e8..f1abd179e8 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/bind-ensure-searching-for-json-headers-searches-sysr.patch +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/bind-ensure-searching-for-json-headers-searches-sysr.patch diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.18.7/bind9 index 968679ff7f..968679ff7f 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/bind9 +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/bind9 diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.7/conf.patch index aa3642acec..aa3642acec 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/conf.patch +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/conf.patch diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.18.7/generate-rndc-key.sh index 633e29c0e6..633e29c0e6 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/generate-rndc-key.sh +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/generate-rndc-key.sh diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.7/init.d-add-support-for-read-only-rootfs.patch index 11db95ede1..11db95ede1 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/init.d-add-support-for-read-only-rootfs.patch +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/init.d-add-support-for-read-only-rootfs.patch diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.18.7/make-etc-initd-bind-stop-work.patch index 146f3e35db..146f3e35db 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/make-etc-initd-bind-stop-work.patch +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/make-etc-initd-bind-stop-work.patch diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.6/named.service b/poky/meta/recipes-connectivity/bind/bind-9.18.7/named.service index cda56ef015..cda56ef015 100644 --- a/poky/meta/recipes-connectivity/bind/bind-9.18.6/named.service +++ b/poky/meta/recipes-connectivity/bind/bind-9.18.7/named.service diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.6.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.7.bb index 5f54942776..4ab11486bf 100644 --- a/poky/meta/recipes-connectivity/bind/bind_9.18.6.bb +++ b/poky/meta/recipes-connectivity/bind/bind_9.18.7.bb @@ -20,7 +20,7 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \ file://0001-avoid-start-failure-with-bind-user.patch \ " -SRC_URI[sha256sum] = "d43a0fed03c774d1685d203598218c0b7774a88fcc390a0170710d5feb7fbff1" +SRC_URI[sha256sum] = "9e2acf1698f49d70ad12ffbad39ec6716a7da524e9ebd98429c7c70ba1262981" UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" # follow the ESV versions divisible by 2 diff --git a/poky/meta/recipes-connectivity/connman/connman/connman b/poky/meta/recipes-connectivity/connman/connman/connman index 310a696863..a021fd4655 100644 --- a/poky/meta/recipes-connectivity/connman/connman/connman +++ b/poky/meta/recipes-connectivity/connman/connman/connman @@ -10,48 +10,11 @@ fi set -e -nfsroot=0 - -exec 9<&0 < /proc/mounts -while read dev mtpt fstype rest; do - if test $mtpt = "/" ; then - case $fstype in - nfs | nfs4) - nfsroot=1 - break - ;; - *) - ;; - esac - fi -done - do_start() { - if test $nfsroot -eq 1 ; then - NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'` - NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ :]*\).*$/\1/p'` - - if [ ! -z "$NET_ADDR" ]; then - if [ "$NET_ADDR" = dhcp ]; then - ethn=`ifconfig | grep "^eth" | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"` - if [ ! -z "$ethn" ]; then - EXTRA_PARAM="$EXTRA_PARAM -I $ethn" - fi - else - for i in $NET_DEVS; do - ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'` - if [ "$NET_ADDR" = "$ADDR" ]; then - EXTRA_PARAM="$EXTRA_PARAM -I $i" - break - fi - done - fi - fi - fi if [ -f @DATADIR@/connman/wired-setup ] ; then . @DATADIR@/connman/wired-setup fi - $DAEMON $EXTRA_PARAM + $DAEMON } do_stop() { diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils/CVE-2022-39028.patch b/poky/meta/recipes-connectivity/inetutils/inetutils/CVE-2022-39028.patch new file mode 100644 index 0000000000..3b07515c7b --- /dev/null +++ b/poky/meta/recipes-connectivity/inetutils/inetutils/CVE-2022-39028.patch @@ -0,0 +1,54 @@ +From d52349fa1b6baac77ffa2c74769636aa2ece2ec5 Mon Sep 17 00:00:00 2001 +From: Erik Auerswald <auerswal@unix-ag.uni-kl.de> +Date: Sat, 3 Sep 2022 16:58:16 +0200 +Subject: [PATCH] telnetd: Handle early IAC EC or IAC EL receipt + +Fix telnetd crash if the first two bytes of a new connection +are 0xff 0xf7 (IAC EC) or 0xff 0xf8 (IAC EL). + +The problem was reported in: +<https://pierrekim.github.io/blog/2022-08-24-2-byte-dos-freebsd-netbsd-telnetd-netkit-telnetd-inetutils-telnetd-kerberos-telnetd.html>. + +* NEWS: Mention fix. +* telnetd/state.c (telrcv): Handle zero slctab[SLC_EC].sptr and +zero slctab[SLC_EL].sptr. + +CVE: CVE-2022-39028 +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=fae8263e467380483c28513c0e5fac143e46f94f] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + telnetd/state.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/telnetd/state.c b/telnetd/state.c +index ffc6cba..c2d760f 100644 +--- a/telnetd/state.c ++++ b/telnetd/state.c +@@ -312,15 +312,21 @@ telrcv (void) + case EC: + case EL: + { +- cc_t ch; ++ cc_t ch = (cc_t) (_POSIX_VDISABLE); + + DEBUG (debug_options, 1, printoption ("td: recv IAC", c)); + ptyflush (); /* half-hearted */ + init_termbuf (); + if (c == EC) +- ch = *slctab[SLC_EC].sptr; ++ { ++ if (slctab[SLC_EC].sptr) ++ ch = *slctab[SLC_EC].sptr; ++ } + else +- ch = *slctab[SLC_EL].sptr; ++ { ++ if (slctab[SLC_EL].sptr) ++ ch = *slctab[SLC_EL].sptr; ++ } + if (ch != (cc_t) (_POSIX_VDISABLE)) + pty_output_byte ((unsigned char) ch); + break; +-- +2.37.3 + diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils_2.3.bb b/poky/meta/recipes-connectivity/inetutils/inetutils_2.3.bb index 1e8f63637e..2fce84374d 100644 --- a/poky/meta/recipes-connectivity/inetutils/inetutils_2.3.bb +++ b/poky/meta/recipes-connectivity/inetutils/inetutils_2.3.bb @@ -21,6 +21,7 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.xz \ file://tftpd.xinetd.inetutils \ file://inetutils-1.9-PATH_PROCNET_DEV.patch \ file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \ + file://CVE-2022-39028.patch \ " inherit autotools gettext update-alternatives texinfo diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2.inc b/poky/meta/recipes-connectivity/iproute2/iproute2.inc deleted file mode 100644 index b1bcc1434c..0000000000 --- a/poky/meta/recipes-connectivity/iproute2/iproute2.inc +++ /dev/null @@ -1,91 +0,0 @@ -SUMMARY = "TCP / IP networking and traffic control utilities" -DESCRIPTION = "Iproute2 is a collection of utilities for controlling \ -TCP / IP networking and traffic control in Linux. Of the utilities ip \ -and tc are the most important. ip controls IPv4 and IPv6 \ -configuration and tc stands for traffic control." -HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2" -SECTION = "base" -LICENSE = "GPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ - file://ip/ip.c;beginline=3;endline=8;md5=689d691d0410a4b64d3899f8d6e31817" - -DEPENDS = "flex-native bison-native iptables libcap" - -inherit update-alternatives bash-completion pkgconfig - -CLEANBROKEN = "1" - -PACKAGECONFIG ??= "tipc elf devlink" -PACKAGECONFIG[tipc] = ",,libmnl," -PACKAGECONFIG[elf] = ",,elfutils," -PACKAGECONFIG[devlink] = ",,libmnl," -PACKAGECONFIG[rdma] = ",,libmnl," - -IPROUTE2_MAKE_SUBDIRS = "lib tc ip bridge misc genl ${@bb.utils.filter('PACKAGECONFIG', 'devlink tipc rdma', d)}" - -EXTRA_OEMAKE = "\ - CC='${CC}' \ - KERNEL_INCLUDE=${STAGING_INCDIR} \ - DOCDIR=${docdir}/iproute2 \ - SUBDIRS='${IPROUTE2_MAKE_SUBDIRS}' \ - SBINDIR='${base_sbindir}' \ - LIBDIR='${libdir}' \ -" - -do_configure:append () { - sh configure ${STAGING_INCDIR} - # Explicitly disable ATM support - sed -i -e '/TC_CONFIG_ATM/d' config.mk -} - -do_install () { - oe_runmake DESTDIR=${D} install - mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2 - install -d ${D}${datadir} - mv ${D}/share/* ${D}${datadir}/ || true - rm ${D}/share -rf || true -} - -# The .so files in iproute2-tc are modules, not traditional libraries -INSANE_SKIP:${PN}-tc = "dev-so" - -IPROUTE2_PACKAGES =+ "\ - ${PN}-devlink \ - ${PN}-genl \ - ${PN}-ifstat \ - ${PN}-ip \ - ${PN}-lnstat \ - ${PN}-nstat \ - ${PN}-rtacct \ - ${PN}-ss \ - ${PN}-tc \ - ${PN}-tipc \ - ${PN}-rdma \ -" - -PACKAGE_BEFORE_PN = "${IPROUTE2_PACKAGES}" -RDEPENDS:${PN} += "${PN}-ip" - -FILES:${PN}-tc = "${base_sbindir}/tc* \ - ${libdir}/tc/*.so" -FILES:${PN}-lnstat = "${base_sbindir}/lnstat \ - ${base_sbindir}/ctstat \ - ${base_sbindir}/rtstat" -FILES:${PN}-ifstat = "${base_sbindir}/ifstat" -FILES:${PN}-ip = "${base_sbindir}/ip.${PN} ${sysconfdir}/iproute2" -FILES:${PN}-genl = "${base_sbindir}/genl" -FILES:${PN}-rtacct = "${base_sbindir}/rtacct" -FILES:${PN}-nstat = "${base_sbindir}/nstat" -FILES:${PN}-ss = "${base_sbindir}/ss" -FILES:${PN}-tipc = "${base_sbindir}/tipc" -FILES:${PN}-devlink = "${base_sbindir}/devlink" -FILES:${PN}-rdma = "${base_sbindir}/rdma" - -ALTERNATIVE:${PN}-ip = "ip" -ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}" -ALTERNATIVE_LINK_NAME[ip] = "${base_sbindir}/ip" -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE:${PN}-tc = "tc" -ALTERNATIVE_LINK_NAME[tc] = "${base_sbindir}/tc" -ALTERNATIVE_PRIORITY_${PN}-tc = "100" diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.19.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.19.0.bb index 6a007797c9..3cbf80a810 100644 --- a/poky/meta/recipes-connectivity/iproute2/iproute2_5.19.0.bb +++ b/poky/meta/recipes-connectivity/iproute2/iproute2_5.19.0.bb @@ -1,4 +1,15 @@ -require iproute2.inc +SUMMARY = "TCP / IP networking and traffic control utilities" +DESCRIPTION = "Iproute2 is a collection of utilities for controlling \ +TCP / IP networking and traffic control in Linux. Of the utilities ip \ +and tc are the most important. ip controls IPv4 and IPv6 \ +configuration and tc stands for traffic control." +HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2" +SECTION = "base" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ + file://ip/ip.c;beginline=3;endline=8;md5=689d691d0410a4b64d3899f8d6e31817" + +DEPENDS = "flex-native bison-native iptables libcap" SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ file://0001-libc-compat.h-add-musl-workaround.patch \ @@ -8,6 +19,82 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ SRC_URI[sha256sum] = "26b7a34d6a7fd2f7a42e2b39c5a90cb61bac522d1096067ffeb195e5693d7791" +inherit update-alternatives bash-completion pkgconfig + +PACKAGECONFIG ??= "tipc elf devlink" +PACKAGECONFIG[tipc] = ",,libmnl," +PACKAGECONFIG[elf] = ",,elfutils," +PACKAGECONFIG[devlink] = ",,libmnl," +PACKAGECONFIG[rdma] = ",,libmnl," + +IPROUTE2_MAKE_SUBDIRS = "lib tc ip bridge misc genl ${@bb.utils.filter('PACKAGECONFIG', 'devlink tipc rdma', d)}" + # CFLAGS are computed in Makefile and reference CCOPTS # -EXTRA_OEMAKE:append = " CCOPTS='${CFLAGS}'" +EXTRA_OEMAKE = "\ + CC='${CC}' \ + KERNEL_INCLUDE=${STAGING_INCDIR} \ + DOCDIR=${docdir}/iproute2 \ + SUBDIRS='${IPROUTE2_MAKE_SUBDIRS}' \ + SBINDIR='${base_sbindir}' \ + LIBDIR='${libdir}' \ + CCOPTS='${CFLAGS}' \ +" + +do_configure:append () { + sh configure ${STAGING_INCDIR} + # Explicitly disable ATM support + sed -i -e '/TC_CONFIG_ATM/d' config.mk +} + +do_install () { + oe_runmake DESTDIR=${D} install + mv ${D}${base_sbindir}/ip ${D}${base_sbindir}/ip.iproute2 + install -d ${D}${datadir} + mv ${D}/share/* ${D}${datadir}/ || true + rm ${D}/share -rf || true +} + +# The .so files in iproute2-tc are modules, not traditional libraries +INSANE_SKIP:${PN}-tc = "dev-so" + +IPROUTE2_PACKAGES =+ "\ + ${PN}-devlink \ + ${PN}-genl \ + ${PN}-ifstat \ + ${PN}-ip \ + ${PN}-lnstat \ + ${PN}-nstat \ + ${PN}-rtacct \ + ${PN}-ss \ + ${PN}-tc \ + ${PN}-tipc \ + ${PN}-rdma \ +" + +PACKAGE_BEFORE_PN = "${IPROUTE2_PACKAGES}" +RDEPENDS:${PN} += "${PN}-ip" + +FILES:${PN}-tc = "${base_sbindir}/tc* \ + ${libdir}/tc/*.so" +FILES:${PN}-lnstat = "${base_sbindir}/lnstat \ + ${base_sbindir}/ctstat \ + ${base_sbindir}/rtstat" +FILES:${PN}-ifstat = "${base_sbindir}/ifstat" +FILES:${PN}-ip = "${base_sbindir}/ip.${PN} ${sysconfdir}/iproute2" +FILES:${PN}-genl = "${base_sbindir}/genl" +FILES:${PN}-rtacct = "${base_sbindir}/rtacct" +FILES:${PN}-nstat = "${base_sbindir}/nstat" +FILES:${PN}-ss = "${base_sbindir}/ss" +FILES:${PN}-tipc = "${base_sbindir}/tipc" +FILES:${PN}-devlink = "${base_sbindir}/devlink" +FILES:${PN}-rdma = "${base_sbindir}/rdma" + +ALTERNATIVE:${PN}-ip = "ip" +ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}" +ALTERNATIVE_LINK_NAME[ip] = "${base_sbindir}/ip" +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE:${PN}-tc = "tc" +ALTERNATIVE_LINK_NAME[tc] = "${base_sbindir}/tc" +ALTERNATIVE_PRIORITY_${PN}-tc = "100" diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.34.bb b/poky/meta/recipes-connectivity/ofono/ofono_2.0.bb index 23631747a7..afd43d26f3 100644 --- a/poky/meta/recipes-connectivity/ofono/ofono_1.34.bb +++ b/poky/meta/recipes-connectivity/ofono/ofono_2.0.bb @@ -13,7 +13,7 @@ SRC_URI = "\ file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \ file://0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch \ " -SRC_URI[sha256sum] = "c0b96d3013447ec2bcb74579bef90e4e59c68dbfa4b9c6fbce5d12401a43aac7" +SRC_URI[sha256sum] = "b0a31bf4d8ff3030c4aef9f8413df999c54df9db2ff0a1d3ec1710e0a9d1a49e" inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data diff --git a/poky/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch b/poky/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch new file mode 100644 index 0000000000..985e2bf1d9 --- /dev/null +++ b/poky/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch @@ -0,0 +1,128 @@ +From d432049f288c9acdc4a7caa729c68ceba3c5dca1 Mon Sep 17 00:00:00 2001 +From: Aaro Koskinen <aaro.koskinen@nokia.com> +Date: Thu, 25 Aug 2022 18:47:02 +0300 +Subject: [PATCH] devmem: add 128-bit width + +Add 128-bit width if the compiler provides the needed type. + +function old new delta +devmem_main 405 464 +59 +.rodata 109025 109043 +18 +------------------------------------------------------------------------------ +(add/remove: 0/0 grow/shrink: 2/0 up/down: 77/0) Total: 77 bytes + +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d432049f288c9acdc4a7caa729c68ceba3c5dca1] + +Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> +Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> +Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + miscutils/devmem.c | 68 ++++++++++++++++++++++++++++++---------------- + 1 file changed, 44 insertions(+), 24 deletions(-) + +diff --git a/miscutils/devmem.c b/miscutils/devmem.c +index f9f0276bc..f21621bd6 100644 +--- a/miscutils/devmem.c ++++ b/miscutils/devmem.c +@@ -29,7 +29,6 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) + { + void *map_base, *virt_addr; + uint64_t read_result; +- uint64_t writeval = writeval; /* for compiler */ + off_t target; + unsigned page_size, mapped_size, offset_in_page; + int fd; +@@ -64,9 +63,6 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) + width = strchrnul(bhwl, (argv[2][0] | 0x20)) - bhwl; + width = sizes[width]; + } +- /* VALUE */ +- if (argv[3]) +- writeval = bb_strtoull(argv[3], NULL, 0); + } else { /* argv[2] == NULL */ + /* make argv[3] to be a valid thing to fetch */ + argv--; +@@ -96,28 +92,46 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) + virt_addr = (char*)map_base + offset_in_page; + + if (!argv[3]) { +- switch (width) { +- case 8: +- read_result = *(volatile uint8_t*)virt_addr; +- break; +- case 16: +- read_result = *(volatile uint16_t*)virt_addr; +- break; +- case 32: +- read_result = *(volatile uint32_t*)virt_addr; +- break; +- case 64: +- read_result = *(volatile uint64_t*)virt_addr; +- break; +- default: +- bb_simple_error_msg_and_die("bad width"); ++#ifdef __SIZEOF_INT128__ ++ if (width == 128) { ++ unsigned __int128 rd = ++ *(volatile unsigned __int128 *)virt_addr; ++ printf("0x%016llX%016llX\n", ++ (unsigned long long)(uint64_t)(rd >> 64), ++ (unsigned long long)(uint64_t)rd ++ ); ++ } else ++#endif ++ { ++ switch (width) { ++ case 8: ++ read_result = *(volatile uint8_t*)virt_addr; ++ break; ++ case 16: ++ read_result = *(volatile uint16_t*)virt_addr; ++ break; ++ case 32: ++ read_result = *(volatile uint32_t*)virt_addr; ++ break; ++ case 64: ++ read_result = *(volatile uint64_t*)virt_addr; ++ break; ++ default: ++ bb_simple_error_msg_and_die("bad width"); ++ } ++// printf("Value at address 0x%"OFF_FMT"X (%p): 0x%llX\n", ++// target, virt_addr, ++// (unsigned long long)read_result); ++ /* Zero-padded output shows the width of access just done */ ++ printf("0x%0*llX\n", (width >> 2), (unsigned long long)read_result); + } +-// printf("Value at address 0x%"OFF_FMT"X (%p): 0x%llX\n", +-// target, virt_addr, +-// (unsigned long long)read_result); +- /* Zero-padded output shows the width of access just done */ +- printf("0x%0*llX\n", (width >> 2), (unsigned long long)read_result); + } else { ++ /* parse VALUE */ ++#ifdef __SIZEOF_INT128__ ++ unsigned __int128 writeval = strtoumax(argv[3], NULL, 0); ++#else ++ uint64_t writeval = bb_strtoull(argv[3], NULL, 0); ++#endif + switch (width) { + case 8: + *(volatile uint8_t*)virt_addr = writeval; +@@ -135,6 +149,12 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) + *(volatile uint64_t*)virt_addr = writeval; + // read_result = *(volatile uint64_t*)virt_addr; + break; ++#ifdef __SIZEOF_INT128__ ++ case 128: ++ *(volatile unsigned __int128 *)virt_addr = writeval; ++// read_result = *(volatile uint64_t*)virt_addr; ++ break; ++#endif + default: + bb_simple_error_msg_and_die("bad width"); + } +-- +2.25.1 + diff --git a/poky/meta/recipes-core/busybox/busybox_1.35.0.bb b/poky/meta/recipes-core/busybox/busybox_1.35.0.bb index edf896485e..e9ca6fdb1a 100644 --- a/poky/meta/recipes-core/busybox/busybox_1.35.0.bb +++ b/poky/meta/recipes-core/busybox/busybox_1.35.0.bb @@ -50,6 +50,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \ file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \ file://CVE-2022-30065.patch \ + file://0001-devmem-add-128-bit-width.patch \ " SRC_URI:append:libc-musl = " file://musl.cfg " diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.1.bb b/poky/meta/recipes-core/coreutils/coreutils_9.1.bb index 55663c7713..4807eefd04 100644 --- a/poky/meta/recipes-core/coreutils/coreutils_9.1.bb +++ b/poky/meta/recipes-core/coreutils/coreutils_9.1.bb @@ -46,6 +46,7 @@ PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," PACKAGECONFIG[single-binary] = "--enable-single-binary,--disable-single-binary,," PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux" +PACKAGECONFIG[openssl] = "--with-openssl=yes,--with-openssl=no,openssl" # [ df mktemp nice printenv base64 gets a special treatment and is not included in this bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname du \ diff --git a/poky/meta/recipes-core/dropbear/dropbear/0007-Fix-X11-build-failure-use-DROPBEAR_PRIO_LOWDELAY.patch b/poky/meta/recipes-core/dropbear/dropbear/0007-Fix-X11-build-failure-use-DROPBEAR_PRIO_LOWDELAY.patch new file mode 100644 index 0000000000..042dccbb94 --- /dev/null +++ b/poky/meta/recipes-core/dropbear/dropbear/0007-Fix-X11-build-failure-use-DROPBEAR_PRIO_LOWDELAY.patch @@ -0,0 +1,28 @@ +From 64292091fe3e8ea7c9bfe74af730b2ff5428bf10 Mon Sep 17 00:00:00 2001 +From: Matt Johnston <matt@ucc.asn.au> +Date: Sat, 23 Apr 2022 22:33:31 +0800 +Subject: [PATCH] Fix X11 build failure, use DROPBEAR_PRIO_LOWDELAY + +Upstream-Status: Backport + +Signed-off-by: Daniel Gomez <daniel@qtec.com> +--- + svr-x11fwd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/svr-x11fwd.c b/svr-x11fwd.c +index 353cb12..5d9e6a9 100644 +--- a/svr-x11fwd.c ++++ b/svr-x11fwd.c +@@ -206,7 +206,7 @@ void x11cleanup(struct ChanSess *chansess) { + } + + static int x11_inithandler(struct Channel *channel) { +- channel->prio = DROPBEAR_CHANNEL_PRIO_INTERACTIVE; ++ channel->prio = DROPBEAR_PRIO_LOWDELAY; + return 0; + } + +-- +2.35.1 + diff --git a/poky/meta/recipes-core/dropbear/dropbear_2022.82.bb b/poky/meta/recipes-core/dropbear/dropbear_2022.82.bb index 2de243b889..41c14ff2f1 100644 --- a/poky/meta/recipes-core/dropbear/dropbear_2022.82.bb +++ b/poky/meta/recipes-core/dropbear/dropbear_2022.82.bb @@ -22,7 +22,8 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \ file://dropbear.socket \ file://dropbear.default \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} " + ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} \ + file://0007-Fix-X11-build-failure-use-DROPBEAR_PRIO_LOWDELAY.patch" SRC_URI[sha256sum] = "3a038d2bbc02bf28bbdd20c012091f741a3ec5cbe460691811d714876aad75d1" @@ -53,6 +54,7 @@ EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"' PACKAGECONFIG ?= "disable-weak-ciphers" PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt" PACKAGECONFIG[disable-weak-ciphers] = "" +PACKAGECONFIG[enable-x11-forwarding] = "" EXTRA_OECONF += "\ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}" @@ -64,6 +66,13 @@ EXTRA_OECONF += "--disable-harden" # musl does not implement wtmp/logwtmp APIs EXTRA_OECONF:append:libc-musl = " --disable-wtmp --disable-lastlog" +do_configure:append() { + echo "/* Dropbear features */" > ${B}/localoptions.h + if ${@bb.utils.contains('PACKAGECONFIG', 'enable-x11-forwarding', 'true', 'false', d)}; then + echo "#define DROPBEAR_X11FWD 1" >> ${B}/localoptions.h + fi +} + do_install() { install -d ${D}${sysconfdir} \ ${D}${sysconfdir}/init.d \ diff --git a/poky/meta/recipes-core/ell/ell_0.52.bb b/poky/meta/recipes-core/ell/ell_0.53.bb index b2af0d04f0..7817476030 100644 --- a/poky/meta/recipes-core/ell/ell_0.52.bb +++ b/poky/meta/recipes-core/ell/ell_0.53.bb @@ -15,7 +15,7 @@ DEPENDS = "dbus" inherit autotools pkgconfig SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "83099b14beda2b253a2c69460f9613c5e955b63349e3c00cf2fd506f5b3ba7d0" +SRC_URI[sha256sum] = "a7d0df846af839bbea1b80f292166371070328854b3fa785b5c607fe600552ad" do_configure:prepend () { mkdir -p ${S}/build-aux diff --git a/poky/meta/recipes-core/expat/expat_2.4.8.bb b/poky/meta/recipes-core/expat/expat_2.4.9.bb index 980c488640..9561edd84f 100644 --- a/poky/meta/recipes-core/expat/expat_2.4.8.bb +++ b/poky/meta/recipes-core/expat/expat_2.4.9.bb @@ -4,23 +4,24 @@ HOMEPAGE = "https://github.com/libexpat/libexpat" SECTION = "libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=9e2ce3b3c4c0f2670883a23bbd7c37a9" +LIC_FILES_CHKSUM = "file://COPYING;md5=7b3b078238d0901d3b339289117cb7fb" VERSION_TAG = "${@d.getVar('PV').replace('.', '_')}" -SRC_URI = "https://github.com/libexpat/libexpat/releases/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2 \ +SRC_URI = "${GITHUB_BASE_URI}/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2 \ file://run-ptest \ " -UPSTREAM_CHECK_URI = "https://github.com/libexpat/libexpat/releases/" +GITHUB_BASE_URI = "https://github.com/libexpat/libexpat/releases/" +UPSTREAM_CHECK_REGEX = "releases/tag/R_(?P<pver>.+)" -SRC_URI[sha256sum] = "a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16" +SRC_URI[sha256sum] = "7f44d1469b110773a94b0d5abeeeffaef79f8bd6406b07e52394bcf48126437a" EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF" RDEPENDS:${PN}-ptest += "bash" -inherit cmake lib_package ptest +inherit cmake lib_package ptest github-releases do_install_ptest:class-target() { install -m 755 ${B}/tests/* ${D}${PTEST_PATH} diff --git a/poky/meta/recipes-core/glibc/glibc-locale.inc b/poky/meta/recipes-core/glibc/glibc-locale.inc index b8de7d3192..7c14abfe99 100644 --- a/poky/meta/recipes-core/glibc/glibc-locale.inc +++ b/poky/meta/recipes-core/glibc/glibc-locale.inc @@ -87,10 +87,9 @@ do_install() { if [ ${PACKAGE_NO_GCONV} -eq 0 ]; then copy_locale_files ${libdir}/gconv 0755 copy_locale_files ${datadir}/i18n 0644 - else - # Remove the libdir if it is empty when gconv is not copied - find ${D}${libdir} -type d -empty -delete fi + # Remove empty dirs in libdir when gconv or locales are not copied + find ${D}${libdir} -type d -empty -delete copy_locale_files ${datadir}/locale 0644 install -m 0644 ${LOCALETREESRC}/SUPPORTED ${WORKDIR}/SUPPORTED } diff --git a/poky/meta/recipes-core/glibc/glibc-tests_2.36.bb b/poky/meta/recipes-core/glibc/glibc-tests_2.36.bb index aca9675ebb..c71c0831c6 100644 --- a/poky/meta/recipes-core/glibc/glibc-tests_2.36.bb +++ b/poky/meta/recipes-core/glibc/glibc-tests_2.36.bb @@ -4,7 +4,7 @@ require glibc-tests.inc inherit ptest features_check REQUIRED_DISTRO_FEATURES = "ptest" -SRC_URI:append = " \ +SRC_URI += "\ file://run-ptest \ " @@ -29,7 +29,7 @@ python __anonymous() { RPROVIDES:${PN} = "${PN}" RRECOMMENDS:${PN} = "" RDEPENDS:${PN} = " glibc sed" -DEPENDS:append = " sed" +DEPENDS += "sed" export oe_srcdir="${exec_prefix}/src/debug/glibc/${PV}/" diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc index a078eb6377..bd125ec401 100644 --- a/poky/meta/recipes-core/glibc/glibc-version.inc +++ b/poky/meta/recipes-core/glibc/glibc-version.inc @@ -1,6 +1,6 @@ SRCBRANCH ?= "release/2.36/master" PV = "2.36" -SRCREV_glibc ?= "3bd3c612e98a53ce60ed972f5cd2b90628b3cba5" +SRCREV_glibc ?= "c399271c10bd00714504e8d4dfbec8aebf996dd4" SRCREV_localedef ?= "794da69788cbf9bf57b59a852f9f11307663fa87" GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" diff --git a/poky/meta/recipes-core/glibc/glibc_2.36.bb b/poky/meta/recipes-core/glibc/glibc_2.36.bb index 1cfa8101ef..45bc784b33 100644 --- a/poky/meta/recipes-core/glibc/glibc_2.36.bb +++ b/poky/meta/recipes-core/glibc/glibc_2.36.bb @@ -16,6 +16,9 @@ CVE_CHECK_IGNORE += "CVE-2019-1010022 CVE-2019-1010023 CVE-2019-1010024" # Potential patch at https://sourceware.org/bugzilla/show_bug.cgi?id=22853 CVE_CHECK_IGNORE += "CVE-2019-1010025" +# This has been integrated into the 2.36 branch as of c399271 so is now fixed +CVE_CHECK_IGNORE += "CVE-2022-39046" + DEPENDS += "gperf-native bison-native" NATIVESDKFIXES ?= "" diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb index 2cdac20ce7..f3f2bb2da1 100644 --- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb +++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb @@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk wic.vhd wic.vhdx" inherit core-image setuptools3 -SRCREV ?= "093398daf5000e69057aedfe8c9f8df2c4e837f3" +SRCREV ?= "4f942c272d4417b5b719df25b80a6a6b54669a73" SRC_URI = "git://git.yoctoproject.org/poky;branch=master \ file://Yocto_Build_Appliance.vmx \ file://Yocto_Build_Appliance.vmxf \ diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.64.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.64.bb index 22ddd6840f..663d60c6e0 100644 --- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.64.bb +++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.64.bb @@ -18,6 +18,7 @@ LIC_FILES_CHKSUM = "file://debian/copyright;md5=c4ec20aa158fa9de26ee1accf78dcaae SRCREV = "c440893051406c11f0a315058939657d5937be4f" SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master" +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb b/poky/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb index f3e841246f..9937a17fb5 100644 --- a/poky/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb +++ b/poky/meta/recipes-core/libcgroup/libcgroup_3.0.0.bb @@ -7,16 +7,16 @@ SECTION = "libs" LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=4d794c5d710e5b3547a6cc6a6609a641" -inherit autotools pkgconfig +inherit autotools pkgconfig github-releases DEPENDS = "bison-native flex-native" -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v3.0/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v3.0/${BP}.tar.gz \ file://0001-api-Use-GNU-strerror_r-when-available.patch \ " +UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/tags" SRC_URI[sha256sum] = "8d284d896fca1c981b55850e92acd3ad9648a69227c028dda7ae3402af878edd" -UPSTREAM_CHECK_URI = "https://github.com/libcgroup/libcgroup/releases/" DEPENDS:append:libc-musl = " fts " EXTRA_OEMAKE:append:libc-musl = " LIBS=-lfts" diff --git a/poky/meta/recipes-core/libxml/libxml2/0001-Port-gentest.py-to-Python-3.patch b/poky/meta/recipes-core/libxml/libxml2/0001-Port-gentest.py-to-Python-3.patch new file mode 100644 index 0000000000..c6567ac878 --- /dev/null +++ b/poky/meta/recipes-core/libxml/libxml2/0001-Port-gentest.py-to-Python-3.patch @@ -0,0 +1,814 @@ +From 2c20198b1ddb1bfb47269b8caf929ffb83748f78 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Thu, 21 Apr 2022 00:45:58 +0200 +Subject: [PATCH] Port gentest.py to Python 3 + +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/343fc1421cdae097fa6c4cffeb1a065a40be6bbb] + +* fixes: + +make[1]: 'testReader' is up to date. + File "../libxml2-2.9.10/gentest.py", line 11 + print "libxml2 python bindings not available, skipping testapi.c generation" + ^ +SyntaxError: Missing parentheses in call to 'print'. Did you mean print("libxml2 python bindings not available, skipping testapi.c generation")? +make[1]: [Makefile:2078: testapi.c] Error 1 (ignored) + +... + +make[1]: 'testReader' is up to date. + File "../libxml2-2.9.10/gentest.py", line 271 + return 1 + ^ +TabError: inconsistent use of tabs and spaces in indentation +make[1]: [Makefile:2078: testapi.c] Error 1 (ignored) + +... + +aarch64-oe-linux-gcc: error: testapi.c: No such file or directory +aarch64-oe-linux-gcc: fatal error: no input files +compilation terminated. +make[1]: *** [Makefile:1275: testapi.o] Error 1 + +But there is still a bit mystery why it worked before, because check-am +calls gentest.py with $(PYTHON), so it ignores the shebang in the script +and libxml2 is using python3native (through python3targetconfig.bbclass) +so something like: + +libxml2/2.9.10-r0/recipe-sysroot-native/usr/bin/python3-native/python3 gentest.py + +But that still fails (now without SyntaxError) with: +libxml2 python bindings not available, skipping testapi.c generation + +because we don't have dependency on libxml2-native (to provide libxml2 +python bindings form python3native) and exported PYTHON_SITE_PACKAGES +might be useless (e.g. /usr/lib/python3.8/site-packages on Ubuntu-22.10 +which uses python 3.10 and there is no site-packages with libxml2) + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +--- + gentest.py | 421 ++++++++++++++++++++++++++--------------------------- + 1 file changed, 209 insertions(+), 212 deletions(-) + +diff --git a/gentest.py b/gentest.py +index b6cd866..af15a4f 100755 +--- a/gentest.py ++++ b/gentest.py +@@ -8,7 +8,7 @@ import string + try: + import libxml2 + except: +- print "libxml2 python bindings not available, skipping testapi.c generation" ++ print("libxml2 python bindings not available, skipping testapi.c generation") + sys.exit(0) + + if len(sys.argv) > 1: +@@ -227,7 +227,7 @@ extra_post_call = { + if (old != NULL) { + xmlUnlinkNode(old); + xmlFreeNode(old) ; old = NULL ; } +- ret_val = NULL;""", ++\t ret_val = NULL;""", + "xmlTextMerge": + """if ((first != NULL) && (first->type != XML_TEXT_NODE)) { + xmlUnlinkNode(second); +@@ -236,7 +236,7 @@ extra_post_call = { + """if ((ret_val != NULL) && (ret_val != ncname) && + (ret_val != prefix) && (ret_val != memory)) + xmlFree(ret_val); +- ret_val = NULL;""", ++\t ret_val = NULL;""", + "xmlNewDocElementContent": + """xmlFreeDocElementContent(doc, ret_val); ret_val = NULL;""", + "xmlDictReference": "xmlDictFree(dict);", +@@ -268,29 +268,29 @@ modules = [] + def is_skipped_module(name): + for mod in skipped_modules: + if mod == name: +- return 1 ++ return 1 + return 0 + + def is_skipped_function(name): + for fun in skipped_functions: + if fun == name: +- return 1 ++ return 1 + # Do not test destructors +- if string.find(name, 'Free') != -1: ++ if name.find('Free') != -1: + return 1 + return 0 + + def is_skipped_memcheck(name): + for fun in skipped_memcheck: + if fun == name: +- return 1 ++ return 1 + return 0 + + missing_types = {} + def add_missing_type(name, func): + try: + list = missing_types[name] +- list.append(func) ++ list.append(func) + except: + missing_types[name] = [func] + +@@ -310,7 +310,7 @@ def add_missing_functions(name, module): + missing_functions_nr = missing_functions_nr + 1 + try: + list = missing_functions[module] +- list.append(name) ++ list.append(name) + except: + missing_functions[module] = [name] + +@@ -319,45 +319,45 @@ def add_missing_functions(name, module): + # + + def type_convert(str, name, info, module, function, pos): +-# res = string.replace(str, " ", " ") +-# res = string.replace(str, " ", " ") +-# res = string.replace(str, " ", " ") +- res = string.replace(str, " *", "_ptr") +-# res = string.replace(str, "*", "_ptr") +- res = string.replace(res, " ", "_") ++# res = str.replace(" ", " ") ++# res = str.replace(" ", " ") ++# res = str.replace(" ", " ") ++ res = str.replace(" *", "_ptr") ++# res = str.replace("*", "_ptr") ++ res = res.replace(" ", "_") + if res == 'const_char_ptr': +- if string.find(name, "file") != -1 or \ +- string.find(name, "uri") != -1 or \ +- string.find(name, "URI") != -1 or \ +- string.find(info, "filename") != -1 or \ +- string.find(info, "URI") != -1 or \ +- string.find(info, "URL") != -1: +- if string.find(function, "Save") != -1 or \ +- string.find(function, "Create") != -1 or \ +- string.find(function, "Write") != -1 or \ +- string.find(function, "Fetch") != -1: +- return('fileoutput') +- return('filepath') ++ if name.find("file") != -1 or \ ++ name.find("uri") != -1 or \ ++ name.find("URI") != -1 or \ ++ info.find("filename") != -1 or \ ++ info.find("URI") != -1 or \ ++ info.find("URL") != -1: ++ if function.find("Save") != -1 or \ ++ function.find("Create") != -1 or \ ++ function.find("Write") != -1 or \ ++ function.find("Fetch") != -1: ++ return('fileoutput') ++ return('filepath') + if res == 'void_ptr': + if module == 'nanoftp' and name == 'ctx': +- return('xmlNanoFTPCtxtPtr') ++ return('xmlNanoFTPCtxtPtr') + if function == 'xmlNanoFTPNewCtxt' or \ +- function == 'xmlNanoFTPConnectTo' or \ +- function == 'xmlNanoFTPOpen': +- return('xmlNanoFTPCtxtPtr') ++ function == 'xmlNanoFTPConnectTo' or \ ++ function == 'xmlNanoFTPOpen': ++ return('xmlNanoFTPCtxtPtr') + if module == 'nanohttp' and name == 'ctx': +- return('xmlNanoHTTPCtxtPtr') +- if function == 'xmlNanoHTTPMethod' or \ +- function == 'xmlNanoHTTPMethodRedir' or \ +- function == 'xmlNanoHTTPOpen' or \ +- function == 'xmlNanoHTTPOpenRedir': +- return('xmlNanoHTTPCtxtPtr'); ++ return('xmlNanoHTTPCtxtPtr') ++ if function == 'xmlNanoHTTPMethod' or \ ++ function == 'xmlNanoHTTPMethodRedir' or \ ++ function == 'xmlNanoHTTPOpen' or \ ++ function == 'xmlNanoHTTPOpenRedir': ++ return('xmlNanoHTTPCtxtPtr'); + if function == 'xmlIOHTTPOpen': +- return('xmlNanoHTTPCtxtPtr') +- if string.find(name, "data") != -1: +- return('userdata') +- if string.find(name, "user") != -1: +- return('userdata') ++ return('xmlNanoHTTPCtxtPtr') ++ if name.find("data") != -1: ++ return('userdata') ++ if name.find("user") != -1: ++ return('userdata') + if res == 'xmlDoc_ptr': + res = 'xmlDocPtr' + if res == 'xmlNode_ptr': +@@ -366,18 +366,18 @@ def type_convert(str, name, info, module, function, pos): + res = 'xmlDictPtr' + if res == 'xmlNodePtr' and pos != 0: + if (function == 'xmlAddChild' and pos == 2) or \ +- (function == 'xmlAddChildList' and pos == 2) or \ ++ (function == 'xmlAddChildList' and pos == 2) or \ + (function == 'xmlAddNextSibling' and pos == 2) or \ + (function == 'xmlAddSibling' and pos == 2) or \ + (function == 'xmlDocSetRootElement' and pos == 2) or \ + (function == 'xmlReplaceNode' and pos == 2) or \ + (function == 'xmlTextMerge') or \ +- (function == 'xmlAddPrevSibling' and pos == 2): +- return('xmlNodePtr_in'); ++ (function == 'xmlAddPrevSibling' and pos == 2): ++ return('xmlNodePtr_in'); + if res == 'const xmlBufferPtr': + res = 'xmlBufferPtr' + if res == 'xmlChar_ptr' and name == 'name' and \ +- string.find(function, "EatName") != -1: ++ function.find("EatName") != -1: + return('eaten_name') + if res == 'void_ptr*': + res = 'void_ptr_ptr' +@@ -393,7 +393,7 @@ def type_convert(str, name, info, module, function, pos): + res = 'debug_FILE_ptr'; + if res == 'int' and name == 'options': + if module == 'parser' or module == 'xmlreader': +- res = 'parseroptions' ++ res = 'parseroptions' + + return res + +@@ -402,28 +402,28 @@ known_param_types = [] + def is_known_param_type(name): + for type in known_param_types: + if type == name: +- return 1 ++ return 1 + return name[-3:] == 'Ptr' or name[-4:] == '_ptr' + + def generate_param_type(name, rtype): + global test + for type in known_param_types: + if type == name: +- return ++ return + for type in generated_param_types: + if type == name: +- return ++ return + + if name[-3:] == 'Ptr' or name[-4:] == '_ptr': + if rtype[0:6] == 'const ': +- crtype = rtype[6:] +- else: +- crtype = rtype ++ crtype = rtype[6:] ++ else: ++ crtype = rtype + + define = 0 +- if modules_defines.has_key(module): +- test.write("#ifdef %s\n" % (modules_defines[module])) +- define = 1 ++ if module in modules_defines: ++ test.write("#ifdef %s\n" % (modules_defines[module])) ++ define = 1 + test.write(""" + #define gen_nb_%s 1 + static %s gen_%s(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) { +@@ -433,7 +433,7 @@ static void des_%s(int no ATTRIBUTE_UNUSED, %s val ATTRIBUTE_UNUSED, int nr ATTR + } + """ % (name, crtype, name, name, rtype)) + if define == 1: +- test.write("#endif\n\n") ++ test.write("#endif\n\n") + add_generated_param_type(name) + + # +@@ -445,7 +445,7 @@ known_return_types = [] + def is_known_return_type(name): + for type in known_return_types: + if type == name: +- return 1 ++ return 1 + return 0 + + # +@@ -471,7 +471,7 @@ def compare_and_save(): + try: + os.system("rm testapi.c; mv testapi.c.new testapi.c") + except: +- os.system("mv testapi.c.new testapi.c") ++ os.system("mv testapi.c.new testapi.c") + print("Updated testapi.c") + else: + print("Generated testapi.c is identical") +@@ -481,17 +481,17 @@ while line != "": + if line == "/* CUT HERE: everything below that line is generated */\n": + break; + if line[0:15] == "#define gen_nb_": +- type = string.split(line[15:])[0] +- known_param_types.append(type) ++ type = line[15:].split()[0] ++ known_param_types.append(type) + if line[0:19] == "static void desret_": +- type = string.split(line[19:], '(')[0] +- known_return_types.append(type) ++ type = line[19:].split('(')[0] ++ known_return_types.append(type) + test.write(line) + line = input.readline() + input.close() + + if line == "": +- print "Could not find the CUT marker in testapi.c skipping generation" ++ print("Could not find the CUT marker in testapi.c skipping generation") + test.close() + sys.exit(0) + +@@ -505,7 +505,7 @@ test.write("/* CUT HERE: everything below that line is generated */\n") + # + doc = libxml2.readFile(srcPref + 'doc/libxml2-api.xml', None, 0) + if doc == None: +- print "Failed to load doc/libxml2-api.xml" ++ print("Failed to load doc/libxml2-api.xml") + sys.exit(1) + ctxt = doc.xpathNewContext() + +@@ -519,9 +519,9 @@ for arg in args: + mod = arg.xpathEval('string(../@file)') + func = arg.xpathEval('string(../@name)') + if (mod not in skipped_modules) and (func not in skipped_functions): +- type = arg.xpathEval('string(@type)') +- if not argtypes.has_key(type): +- argtypes[type] = func ++ type = arg.xpathEval('string(@type)') ++ if type not in argtypes: ++ argtypes[type] = func + + # similarly for return types + rettypes = {} +@@ -531,8 +531,8 @@ for ret in rets: + func = ret.xpathEval('string(../@name)') + if (mod not in skipped_modules) and (func not in skipped_functions): + type = ret.xpathEval('string(@type)') +- if not rettypes.has_key(type): +- rettypes[type] = func ++ if type not in rettypes: ++ rettypes[type] = func + + # + # Generate constructors and return type handling for all enums +@@ -549,49 +549,49 @@ for enum in enums: + continue; + define = 0 + +- if argtypes.has_key(name) and is_known_param_type(name) == 0: +- values = ctxt.xpathEval("/api/symbols/enum[@type='%s']" % name) +- i = 0 +- vals = [] +- for value in values: +- vname = value.xpathEval('string(@name)') +- if vname == None: +- continue; +- i = i + 1 +- if i >= 5: +- break; +- vals.append(vname) +- if vals == []: +- print "Didn't find any value for enum %s" % (name) +- continue +- if modules_defines.has_key(module): +- test.write("#ifdef %s\n" % (modules_defines[module])) +- define = 1 +- test.write("#define gen_nb_%s %d\n" % (name, len(vals))) +- test.write("""static %s gen_%s(int no, int nr ATTRIBUTE_UNUSED) {\n""" % +- (name, name)) +- i = 1 +- for value in vals: +- test.write(" if (no == %d) return(%s);\n" % (i, value)) +- i = i + 1 +- test.write(""" return(0); ++ if (name in argtypes) and is_known_param_type(name) == 0: ++ values = ctxt.xpathEval("/api/symbols/enum[@type='%s']" % name) ++ i = 0 ++ vals = [] ++ for value in values: ++ vname = value.xpathEval('string(@name)') ++ if vname == None: ++ continue; ++ i = i + 1 ++ if i >= 5: ++ break; ++ vals.append(vname) ++ if vals == []: ++ print("Didn't find any value for enum %s" % (name)) ++ continue ++ if module in modules_defines: ++ test.write("#ifdef %s\n" % (modules_defines[module])) ++ define = 1 ++ test.write("#define gen_nb_%s %d\n" % (name, len(vals))) ++ test.write("""static %s gen_%s(int no, int nr ATTRIBUTE_UNUSED) {\n""" % ++ (name, name)) ++ i = 1 ++ for value in vals: ++ test.write(" if (no == %d) return(%s);\n" % (i, value)) ++ i = i + 1 ++ test.write(""" return(0); + } + + static void des_%s(int no ATTRIBUTE_UNUSED, %s val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) { + } + + """ % (name, name)); +- known_param_types.append(name) ++ known_param_types.append(name) + + if (is_known_return_type(name) == 0) and (name in rettypes): +- if define == 0 and modules_defines.has_key(module): +- test.write("#ifdef %s\n" % (modules_defines[module])) +- define = 1 ++ if define == 0 and (module in modules_defines): ++ test.write("#ifdef %s\n" % (modules_defines[module])) ++ define = 1 + test.write("""static void desret_%s(%s val ATTRIBUTE_UNUSED) { + } + + """ % (name, name)) +- known_return_types.append(name) ++ known_return_types.append(name) + if define == 1: + test.write("#endif\n\n") + +@@ -615,9 +615,9 @@ for file in headers: + # do not test deprecated APIs + # + desc = file.xpathEval('string(description)') +- if string.find(desc, 'DEPRECATED') != -1: +- print "Skipping deprecated interface %s" % name +- continue; ++ if desc.find('DEPRECATED') != -1: ++ print("Skipping deprecated interface %s" % name) ++ continue; + + test.write("#include <libxml/%s.h>\n" % name) + modules.append(name) +@@ -679,7 +679,7 @@ def generate_test(module, node): + # and store the information for the generation + # + try: +- args = node.xpathEval("arg") ++ args = node.xpathEval("arg") + except: + args = [] + t_args = [] +@@ -687,37 +687,37 @@ def generate_test(module, node): + for arg in args: + n = n + 1 + rtype = arg.xpathEval("string(@type)") +- if rtype == 'void': +- break; +- info = arg.xpathEval("string(@info)") +- nam = arg.xpathEval("string(@name)") ++ if rtype == 'void': ++ break; ++ info = arg.xpathEval("string(@info)") ++ nam = arg.xpathEval("string(@name)") + type = type_convert(rtype, nam, info, module, name, n) +- if is_known_param_type(type) == 0: +- add_missing_type(type, name); +- no_gen = 1 ++ if is_known_param_type(type) == 0: ++ add_missing_type(type, name); ++ no_gen = 1 + if (type[-3:] == 'Ptr' or type[-4:] == '_ptr') and \ +- rtype[0:6] == 'const ': +- crtype = rtype[6:] +- else: +- crtype = rtype +- t_args.append((nam, type, rtype, crtype, info)) ++ rtype[0:6] == 'const ': ++ crtype = rtype[6:] ++ else: ++ crtype = rtype ++ t_args.append((nam, type, rtype, crtype, info)) + + try: +- rets = node.xpathEval("return") ++ rets = node.xpathEval("return") + except: + rets = [] + t_ret = None + for ret in rets: + rtype = ret.xpathEval("string(@type)") +- info = ret.xpathEval("string(@info)") ++ info = ret.xpathEval("string(@info)") + type = type_convert(rtype, 'return', info, module, name, 0) +- if rtype == 'void': +- break +- if is_known_return_type(type) == 0: +- add_missing_type(type, name); +- no_gen = 1 +- t_ret = (type, rtype, info) +- break ++ if rtype == 'void': ++ break ++ if is_known_return_type(type) == 0: ++ add_missing_type(type, name); ++ no_gen = 1 ++ t_ret = (type, rtype, info) ++ break + + if no_gen == 0: + for t_arg in t_args: +@@ -733,7 +733,7 @@ test_%s(void) { + + if no_gen == 1: + add_missing_functions(name, module) +- test.write(""" ++ test.write(""" + /* missing type support */ + return(test_ret); + } +@@ -742,22 +742,22 @@ test_%s(void) { + return + + try: +- conds = node.xpathEval("cond") +- for cond in conds: +- test.write("#if %s\n" % (cond.get_content())) +- nb_cond = nb_cond + 1 ++ conds = node.xpathEval("cond") ++ for cond in conds: ++ test.write("#if %s\n" % (cond.get_content())) ++ nb_cond = nb_cond + 1 + except: + pass + + define = 0 +- if function_defines.has_key(name): ++ if name in function_defines: + test.write("#ifdef %s\n" % (function_defines[name])) +- define = 1 ++ define = 1 + + # Declare the memory usage counter + no_mem = is_skipped_memcheck(name) + if no_mem == 0: +- test.write(" int mem_base;\n"); ++ test.write(" int mem_base;\n"); + + # Declare the return value + if t_ret != None: +@@ -766,29 +766,29 @@ test_%s(void) { + # Declare the arguments + for arg in t_args: + (nam, type, rtype, crtype, info) = arg; +- # add declaration +- test.write(" %s %s; /* %s */\n" % (crtype, nam, info)) +- test.write(" int n_%s;\n" % (nam)) ++ # add declaration ++ test.write(" %s %s; /* %s */\n" % (crtype, nam, info)) ++ test.write(" int n_%s;\n" % (nam)) + test.write("\n") + + # Cascade loop on of each argument list of values + for arg in t_args: + (nam, type, rtype, crtype, info) = arg; +- # +- test.write(" for (n_%s = 0;n_%s < gen_nb_%s;n_%s++) {\n" % ( +- nam, nam, type, nam)) ++ # ++ test.write(" for (n_%s = 0;n_%s < gen_nb_%s;n_%s++) {\n" % ( ++ nam, nam, type, nam)) + + # log the memory usage + if no_mem == 0: +- test.write(" mem_base = xmlMemBlocks();\n"); ++ test.write(" mem_base = xmlMemBlocks();\n"); + + # prepare the call + i = 0; + for arg in t_args: + (nam, type, rtype, crtype, info) = arg; +- # +- test.write(" %s = gen_%s(n_%s, %d);\n" % (nam, type, nam, i)) +- i = i + 1; ++ # ++ test.write(" %s = gen_%s(n_%s, %d);\n" % (nam, type, nam, i)) ++ i = i + 1; + + # add checks to avoid out-of-bounds array access + i = 0; +@@ -797,7 +797,7 @@ test_%s(void) { + # assume that "size", "len", and "start" parameters apply to either + # the nearest preceding or following char pointer + if type == "int" and (nam == "size" or nam == "len" or nam == "start"): +- for j in range(i - 1, -1, -1) + range(i + 1, len(t_args)): ++ for j in (*range(i - 1, -1, -1), *range(i + 1, len(t_args))): + (bnam, btype) = t_args[j][:2] + if btype == "const_char_ptr" or btype == "const_xmlChar_ptr": + test.write( +@@ -806,42 +806,42 @@ test_%s(void) { + " continue;\n" + % (bnam, nam, bnam)) + break +- i = i + 1; ++ i = i + 1; + + # do the call, and clanup the result +- if extra_pre_call.has_key(name): +- test.write(" %s\n"% (extra_pre_call[name])) ++ if name in extra_pre_call: ++ test.write(" %s\n"% (extra_pre_call[name])) + if t_ret != None: +- test.write("\n ret_val = %s(" % (name)) +- need = 0 +- for arg in t_args: +- (nam, type, rtype, crtype, info) = arg +- if need: +- test.write(", ") +- else: +- need = 1 +- if rtype != crtype: +- test.write("(%s)" % rtype) +- test.write("%s" % nam); +- test.write(");\n") +- if extra_post_call.has_key(name): +- test.write(" %s\n"% (extra_post_call[name])) +- test.write(" desret_%s(ret_val);\n" % t_ret[0]) ++ test.write("\n ret_val = %s(" % (name)) ++ need = 0 ++ for arg in t_args: ++ (nam, type, rtype, crtype, info) = arg ++ if need: ++ test.write(", ") ++ else: ++ need = 1 ++ if rtype != crtype: ++ test.write("(%s)" % rtype) ++ test.write("%s" % nam); ++ test.write(");\n") ++ if name in extra_post_call: ++ test.write(" %s\n"% (extra_post_call[name])) ++ test.write(" desret_%s(ret_val);\n" % t_ret[0]) + else: +- test.write("\n %s(" % (name)); +- need = 0; +- for arg in t_args: +- (nam, type, rtype, crtype, info) = arg; +- if need: +- test.write(", ") +- else: +- need = 1 +- if rtype != crtype: +- test.write("(%s)" % rtype) +- test.write("%s" % nam) +- test.write(");\n") +- if extra_post_call.has_key(name): +- test.write(" %s\n"% (extra_post_call[name])) ++ test.write("\n %s(" % (name)); ++ need = 0; ++ for arg in t_args: ++ (nam, type, rtype, crtype, info) = arg; ++ if need: ++ test.write(", ") ++ else: ++ need = 1 ++ if rtype != crtype: ++ test.write("(%s)" % rtype) ++ test.write("%s" % nam) ++ test.write(");\n") ++ if name in extra_post_call: ++ test.write(" %s\n"% (extra_post_call[name])) + + test.write(" call_tests++;\n"); + +@@ -849,32 +849,32 @@ test_%s(void) { + i = 0; + for arg in t_args: + (nam, type, rtype, crtype, info) = arg; +- # This is a hack to prevent generating a destructor for the +- # 'input' argument in xmlTextReaderSetup. There should be +- # a better, more generic way to do this! +- if string.find(info, 'destroy') == -1: +- test.write(" des_%s(n_%s, " % (type, nam)) +- if rtype != crtype: +- test.write("(%s)" % rtype) +- test.write("%s, %d);\n" % (nam, i)) +- i = i + 1; ++ # This is a hack to prevent generating a destructor for the ++ # 'input' argument in xmlTextReaderSetup. There should be ++ # a better, more generic way to do this! ++ if info.find('destroy') == -1: ++ test.write(" des_%s(n_%s, " % (type, nam)) ++ if rtype != crtype: ++ test.write("(%s)" % rtype) ++ test.write("%s, %d);\n" % (nam, i)) ++ i = i + 1; + + test.write(" xmlResetLastError();\n"); + # Check the memory usage + if no_mem == 0: +- test.write(""" if (mem_base != xmlMemBlocks()) { ++ test.write(""" if (mem_base != xmlMemBlocks()) { + printf("Leak of %%d blocks found in %s", +- xmlMemBlocks() - mem_base); +- test_ret++; ++\t xmlMemBlocks() - mem_base); ++\t test_ret++; + """ % (name)); +- for arg in t_args: +- (nam, type, rtype, crtype, info) = arg; +- test.write(""" printf(" %%d", n_%s);\n""" % (nam)) +- test.write(""" printf("\\n");\n""") +- test.write(" }\n") ++ for arg in t_args: ++ (nam, type, rtype, crtype, info) = arg; ++ test.write(""" printf(" %%d", n_%s);\n""" % (nam)) ++ test.write(""" printf("\\n");\n""") ++ test.write(" }\n") + + for arg in t_args: +- test.write(" }\n") ++ test.write(" }\n") + + test.write(" function_tests++;\n") + # +@@ -882,7 +882,7 @@ test_%s(void) { + # + while nb_cond > 0: + test.write("#endif\n") +- nb_cond = nb_cond -1 ++ nb_cond = nb_cond -1 + if define == 1: + test.write("#endif\n") + +@@ -900,10 +900,10 @@ test_%s(void) { + for module in modules: + # gather all the functions exported by that module + try: +- functions = ctxt.xpathEval("/api/symbols/function[@file='%s']" % (module)) ++ functions = ctxt.xpathEval("/api/symbols/function[@file='%s']" % (module)) + except: +- print "Failed to gather functions from module %s" % (module) +- continue; ++ print("Failed to gather functions from module %s" % (module)) ++ continue; + + # iterate over all functions in the module generating the test + i = 0 +@@ -923,14 +923,14 @@ test_%s(void) { + # iterate over all functions in the module generating the call + for function in functions: + name = function.xpathEval('string(@name)') +- if is_skipped_function(name): +- continue +- test.write(" test_ret += test_%s();\n" % (name)) ++ if is_skipped_function(name): ++ continue ++ test.write(" test_ret += test_%s();\n" % (name)) + + # footer + test.write(""" + if (test_ret != 0) +- printf("Module %s: %%d errors\\n", test_ret); ++\tprintf("Module %s: %%d errors\\n", test_ret); + return(test_ret); + } + """ % (module)) +@@ -948,7 +948,7 @@ test.write(""" return(0); + } + """); + +-print "Generated test for %d modules and %d functions" %(len(modules), nb_tests) ++print("Generated test for %d modules and %d functions" %(len(modules), nb_tests)) + + compare_and_save() + +@@ -960,11 +960,8 @@ for missing in missing_types.keys(): + n = len(missing_types[missing]) + missing_list.append((n, missing)) + +-def compare_missing(a, b): +- return b[0] - a[0] +- +-missing_list.sort(compare_missing) +-print "Missing support for %d functions and %d types see missing.lst" % (missing_functions_nr, len(missing_list)) ++missing_list.sort(key=lambda a: a[0]) ++print("Missing support for %d functions and %d types see missing.lst" % (missing_functions_nr, len(missing_list))) + lst = open("missing.lst", "w") + lst.write("Missing support for %d types" % (len(missing_list))) + lst.write("\n") +@@ -974,9 +971,9 @@ for miss in missing_list: + for n in missing_types[miss[1]]: + i = i + 1 + if i > 5: +- lst.write(" ...") +- break +- lst.write(" %s" % (n)) ++ lst.write(" ...") ++ break ++ lst.write(" %s" % (n)) + lst.write("\n") + lst.write("\n") + lst.write("\n") diff --git a/poky/meta/recipes-core/libxml/libxml2_2.9.14.bb b/poky/meta/recipes-core/libxml/libxml2_2.9.14.bb index d803db8672..a2ed8d71bc 100644 --- a/poky/meta/recipes-core/libxml/libxml2_2.9.14.bb +++ b/poky/meta/recipes-core/libxml/libxml2_2.9.14.bb @@ -22,6 +22,7 @@ SRC_URI += "http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=te file://fix-execution-of-ptests.patch \ file://remove-fuzz-from-ptests.patch \ file://libxml-m4-use-pkgconfig.patch \ + file://0001-Port-gentest.py-to-Python-3.patch \ " SRC_URI[archive.sha256sum] = "60d74a257d1ccec0475e749cba2f21559e48139efba6ff28224357c7c798dfee" @@ -82,6 +83,16 @@ do_configure:prepend () { } do_compile_ptest() { + # Make sure that testapi.c is newer than gentests.py, because + # with reproducible builds, they will both get e.g. Jan 1 1970 + # modification time from SOURCE_DATE_EPOCH and then check-am + # might try to rebuild_testapi, which will fail even with + # 0001-Port-gentest.py-to-Python-3.patch, because it needs + # libxml2 module (libxml2-native dependency and correctly + # set PYTHON_SITE_PACKAGES), it's easier to + # just rely on pre-generated testapi.c from the release + touch ${S}/testapi.c + oe_runmake check-am } @@ -110,7 +121,8 @@ do_install:append:class-native () { # Docs are not needed in the native case rm ${D}${datadir}/gtk-doc -rf - create_wrapper ${D}${bindir}/xmllint XML_CATALOG_FILES=${sysconfdir}/xml/catalog + create_wrapper ${D}${bindir}/xmllint 'XML_CATALOG_FILES=${XML_CATALOG_FILES:-${sysconfdir}/xml/catalog}' } +do_install[vardepsexclude] += "XML_CATALOG_FILES:-${sysconfdir}/xml/catalog" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-core/musl/gcompat/0001-auxv-new-module.patch b/poky/meta/recipes-core/musl/gcompat/0001-auxv-new-module.patch new file mode 100644 index 0000000000..ee292f3841 --- /dev/null +++ b/poky/meta/recipes-core/musl/gcompat/0001-auxv-new-module.patch @@ -0,0 +1,59 @@ +From aecd42801904462501a890d173648e4e826eda19 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Sat, 23 Oct 2021 23:29:40 -0500 +Subject: [PATCH] auxv: new module + +Adds `__getauxval` wrapper, needed for Parallels Tools GUI installer. + +Upstream-Status: Submitted [https://git.adelielinux.org/adelie/gcompat/-/commit/e860a38a88c7ea148ee15976136a1f83ea13f8e0] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CHANGELOG.rst | 5 +++++ + Makefile | 1 + + libgcompat/auxv.c | 6 ++++++ + 3 files changed, 12 insertions(+) + create mode 100644 libgcompat/auxv.c + +diff --git a/CHANGELOG.rst b/CHANGELOG.rst +index ce6859b..c3a9cee 100644 +--- a/CHANGELOG.rst ++++ b/CHANGELOG.rst +@@ -11,6 +11,11 @@ + 1.1 (202?-??-??) + ================ + ++auxv ++---- ++ ++* Add __getauxval wrapper for getauxval. ++ + locale + ------ + +diff --git a/Makefile b/Makefile +index cbb7634..1893cc1 100644 +--- a/Makefile ++++ b/Makefile +@@ -2,6 +2,7 @@ LIBGCOMPAT_INCLUDE = \ + libgcompat/alias.h \ + libgcompat/internal.h + LIBGCOMPAT_SRC = \ ++ libgcompat/auxv.c \ + libgcompat/ctype.c \ + libgcompat/cxx_thread.c \ + libgcompat/dlfcn.c \ +diff --git a/libgcompat/auxv.c b/libgcompat/auxv.c +new file mode 100644 +index 0000000..01de376 +--- /dev/null ++++ b/libgcompat/auxv.c +@@ -0,0 +1,6 @@ ++#include <sys/auxv.h> /* getauxval */ ++ ++unsigned long __getauxval(unsigned long value) ++{ ++ return getauxval(value); ++} +-- +2.37.3 + diff --git a/poky/meta/recipes-core/musl/gcompat_git.bb b/poky/meta/recipes-core/musl/gcompat_git.bb index b051e43b6c..11f3c58769 100644 --- a/poky/meta/recipes-core/musl/gcompat_git.bb +++ b/poky/meta/recipes-core/musl/gcompat_git.bb @@ -8,12 +8,13 @@ LICENSE = "NCSA" LIC_FILES_CHKSUM = "file://LICENSE;md5=eb33ef4af05a9c7602843afb7adfe792" SRC_URI = "git://git.adelielinux.org/adelie/gcompat.git;protocol=https;branch=current \ - " + file://0001-auxv-new-module.patch \ + " SRC_URI:append:powerpc = "\ file://0001-make-Static-PIE-does-not-work-on-musl-ppc.patch \ " PV = "1.0.0+1.1+git${SRCPV}" -SRCREV = "4d6a5156a6eb7f56b30d93853a872e36dadde81b" +SRCREV = "c6921a1aa454bb87671f9bd1ecfe47d80d1620aa" S = "${WORKDIR}/git" @@ -42,6 +43,8 @@ do_install () { install -d ${D}${nonarch_base_libdir}${SITEINFO_BITS} ln -rs ${D}${GLIBC_LDSO} ${D}${nonarch_base_libdir}${SITEINFO_BITS}/`basename ${GLIBC_LDSO}` fi + install -d ${D}${libdir} + ln -sf ${base_libdir}/libgcompat.so.0 ${D}${libdir}/libgcompat.so } FILES:${PN} += "${nonarch_base_libdir}${SITEINFO_BITS}" diff --git a/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl b/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl index 6d19666d82..cddae75a06 100755 --- a/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -26,6 +26,9 @@ locations = list() class SystemdFile(): """Class representing a single systemd configuration file""" + + _clearable_keys = ['WantedBy'] + def __init__(self, root, path, instance_unit_name): self.sections = dict() self._parse(root, path) @@ -80,6 +83,14 @@ class SystemdFile(): v = m.group('value') if k not in section: section[k] = list() + + # If we come across a "key=" line for a "clearable key", then + # forget all preceding assignments. This works because we are + # processing files in correct parse order. + if k in self._clearable_keys and not v: + del section[k] + continue + section[k].extend(v.split()) def get(self, section, prop): diff --git a/poky/meta/recipes-core/systemd/systemd/00-create-volatile.conf b/poky/meta/recipes-core/systemd/systemd/00-create-volatile.conf index 87cbe1e7d3..c4277221a2 100644 --- a/poky/meta/recipes-core/systemd/systemd/00-create-volatile.conf +++ b/poky/meta/recipes-core/systemd/systemd/00-create-volatile.conf @@ -3,5 +3,6 @@ # inside /var/log. +d /run/lock 1777 - - - d /var/volatile/log - - - - d /var/volatile/tmp 1777 - - diff --git a/poky/meta/recipes-core/systemd/systemd_251.4.bb b/poky/meta/recipes-core/systemd/systemd_251.4.bb index 8497e24af9..910ea71bf6 100644 --- a/poky/meta/recipes-core/systemd/systemd_251.4.bb +++ b/poky/meta/recipes-core/systemd/systemd_251.4.bb @@ -163,6 +163,7 @@ PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native do PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd" PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname" PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false" +PACKAGECONFIG[no-dns-fallback] = "-Ddns-servers=" PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false" PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false" PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false" diff --git a/poky/meta/recipes-core/udev/eudev_3.2.11.bb b/poky/meta/recipes-core/udev/eudev_3.2.11.bb index bc2c77de89..eba36c2f91 100644 --- a/poky/meta/recipes-core/udev/eudev_3.2.11.bb +++ b/poky/meta/recipes-core/udev/eudev_3.2.11.bb @@ -9,7 +9,7 @@ DEPENDS = "gperf-native" PROVIDES = "udev" -SRC_URI = "https://github.com/eudev-project/${BPN}/releases/download/v${PV}/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ file://init \ file://local.rules \ file://0001-build-Remove-dead-g-i-r-configuration.patch \ @@ -17,10 +17,9 @@ SRC_URI = "https://github.com/eudev-project/${BPN}/releases/download/v${PV}/${BP SRC_URI[sha256sum] = "19847cafec67897da855fde56f9dc7d92e21c50e450aa79068a7e704ed44558b" -UPSTREAM_CHECK_URI = "https://github.com/eudev-project/eudev/releases" -UPSTREAM_CHECK_REGEX = "eudev-(?P<pver>\d+(\.\d+)+)\.tar" +GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases" -inherit autotools update-rc.d qemu pkgconfig features_check manpages +inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases CONFLICT_DISTRO_FEATURES = "systemd" diff --git a/poky/meta/recipes-devtools/apt/apt/0001-typecast-time_t-and-suseconds_t-from-std-chrono.patch b/poky/meta/recipes-devtools/apt/apt/0001-typecast-time_t-and-suseconds_t-from-std-chrono.patch new file mode 100644 index 0000000000..fc3509d336 --- /dev/null +++ b/poky/meta/recipes-devtools/apt/apt/0001-typecast-time_t-and-suseconds_t-from-std-chrono.patch @@ -0,0 +1,64 @@ +From b7a1a4d3259557f2587f7d5d47502691d94c21c2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 16 Sep 2022 20:00:30 -0700 +Subject: [PATCH 1/2] typecast time_t and suseconds_t from std::chrono + +This fixes build on some architectures like mips +progress.cc:125:31: error: non-constant-expression cannot be narrowed from type 'std::chrono::duration<long long>::rep' (aka 'long long') to '__time_t' (aka 'long') in initializer list [-Wc++11-narrowing] + struct timeval NowTime = { Now_sec.count(), Now_usec.count() }; + +Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/259] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + apt-pkg/acquire.cc | 4 ++-- + apt-pkg/contrib/progress.cc | 2 +- + ftparchive/apt-ftparchive.cc | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc +index 100ccde..dd0624a 100644 +--- a/apt-pkg/acquire.cc ++++ b/apt-pkg/acquire.cc +@@ -53,11 +53,11 @@ + using namespace std; + + // helper to convert time_point to a timeval +-static struct timeval SteadyDurationToTimeVal(std::chrono::steady_clock::duration Time) ++constexpr struct timeval SteadyDurationToTimeVal(std::chrono::steady_clock::duration Time) + { + auto const Time_sec = std::chrono::duration_cast<std::chrono::seconds>(Time); + auto const Time_usec = std::chrono::duration_cast<std::chrono::microseconds>(Time - Time_sec); +- return {Time_sec.count(), Time_usec.count()}; ++ return timeval{static_cast<time_t>(Time_sec.count()), static_cast<suseconds_t>(Time_usec.count())}; + } + + std::string pkgAcquire::URIEncode(std::string const &part) /*{{{*/ +diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc +index 03f88d4..eb688b9 100644 +--- a/apt-pkg/contrib/progress.cc ++++ b/apt-pkg/contrib/progress.cc +@@ -122,7 +122,7 @@ bool OpProgress::CheckChange(float Interval) + auto const Now = std::chrono::steady_clock::now().time_since_epoch(); + auto const Now_sec = std::chrono::duration_cast<std::chrono::seconds>(Now); + auto const Now_usec = std::chrono::duration_cast<std::chrono::microseconds>(Now - Now_sec); +- struct timeval NowTime = { Now_sec.count(), Now_usec.count() }; ++ struct timeval NowTime = { static_cast<time_t>(Now_sec.count()), static_cast<suseconds_t>(Now_usec.count()) }; + + std::chrono::duration<decltype(Interval)> Delta = + std::chrono::seconds(NowTime.tv_sec - LastTime.tv_sec) + +diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc +index 56fdc22..0a253b1 100644 +--- a/ftparchive/apt-ftparchive.cc ++++ b/ftparchive/apt-ftparchive.cc +@@ -58,7 +58,7 @@ static struct timeval GetTimevalFromSteadyClock() /*{{{*/ + auto const Time = std::chrono::steady_clock::now().time_since_epoch(); + auto const Time_sec = std::chrono::duration_cast<std::chrono::seconds>(Time); + auto const Time_usec = std::chrono::duration_cast<std::chrono::microseconds>(Time - Time_sec); +- return { Time_sec.count(), Time_usec.count() }; ++ return { static_cast<time_t>(Time_sec.count()), static_cast<suseconds_t>(Time_usec.count()) }; + } + /*}}}*/ + static auto GetTimeDeltaSince(struct timeval StartTime) /*{{{*/ +-- +2.37.3 + diff --git a/poky/meta/recipes-devtools/apt/apt/0002-interactive-helper-Undefine-_FORTIFY_SOURCE.patch b/poky/meta/recipes-devtools/apt/apt/0002-interactive-helper-Undefine-_FORTIFY_SOURCE.patch new file mode 100644 index 0000000000..18c4641b22 --- /dev/null +++ b/poky/meta/recipes-devtools/apt/apt/0002-interactive-helper-Undefine-_FORTIFY_SOURCE.patch @@ -0,0 +1,27 @@ +From 891076c2cf4298b5d587545497f4831f0d21caa1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 16 Sep 2022 20:04:43 -0700 +Subject: [PATCH 2/2] interactive-helper: Undefine _FORTIFY_SOURCE + +This ensures that it compiles when clang compiler is passing +-DFORTIFY_SOURCES=2 + +Upstream-Status: Submitted [https://salsa.debian.org/apt-team/apt/-/merge_requests/259] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + test/interactive-helper/libnoprofile.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/interactive-helper/libnoprofile.c b/test/interactive-helper/libnoprofile.c +index f11b898..b26ec2a 100644 +--- a/test/interactive-helper/libnoprofile.c ++++ b/test/interactive-helper/libnoprofile.c +@@ -1,4 +1,5 @@ + #define _GNU_SOURCE ++#undef _FORTIFY_SOURCE + #include <stdarg.h> + #include <stdlib.h> + #include <string.h> +-- +2.37.3 + diff --git a/poky/meta/recipes-devtools/apt/apt_2.4.5.bb b/poky/meta/recipes-devtools/apt/apt_2.4.5.bb index 564bdeec41..4b9f804039 100644 --- a/poky/meta/recipes-devtools/apt/apt_2.4.5.bb +++ b/poky/meta/recipes-devtools/apt/apt_2.4.5.bb @@ -14,6 +14,8 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz \ file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \ file://0001-aptwebserver.cc-Include-array.patch \ file://0001-Remove-using-std-binary_function.patch \ + file://0001-typecast-time_t-and-suseconds_t-from-std-chrono.patch \ + file://0002-interactive-helper-Undefine-_FORTIFY_SOURCE.patch \ " SRC_URI:append:class-native = " \ diff --git a/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2022.02.11.bb b/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2022.09.03.bb index 47bf2380f0..6595ac98ba 100644 --- a/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2022.02.11.bb +++ b/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2022.09.03.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \ file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515" SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "78a61b611e2eeb55a89e0398e0ce387bcaf57fe2dd53c6fe427130f777ad1e8c" +SRC_URI[sha256sum] = "e07454f00d8cae7907bed42d0747798927809947684d94c37207a4d63a32f423" inherit autotools allarch texinfo diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch b/poky/meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch new file mode 100644 index 0000000000..4f15bf96c3 --- /dev/null +++ b/poky/meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch @@ -0,0 +1,138 @@ +From 7a3bbca81b803ba116b83c82de378e840cc35f81 Mon Sep 17 00:00:00 2001 +From: Paul Eggert <eggert@cs.ucla.edu> +Date: Thu, 1 Sep 2022 16:19:50 -0500 +Subject: [PATCH] Port to compilers that moan about K&R func decls +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* lib/autoconf/c.m4 (AC_LANG_CALL, AC_LANG_FUNC_LINK_TRY): +Use '(void)' rather than '()' in function prototypes, as the latter +provokes fatal errors in some compilers nowadays. +* lib/autoconf/functions.m4 (AC_FUNC_STRTOD): +* tests/fortran.at (AC_F77_DUMMY_MAIN usage): +* tests/semantics.at (AC_CHECK_DECLS): +Don’t use () in a function decl. + +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + doc/autoconf.texi | 7 +++---- + lib/autoconf/c.m4 | 6 +++--- + lib/autoconf/functions.m4 | 3 --- + tests/fortran.at | 8 ++++---- + tests/semantics.at | 2 +- + 5 files changed, 11 insertions(+), 15 deletions(-) + +--- a/doc/autoconf.texi ++++ b/doc/autoconf.texi +@@ -5465,9 +5465,7 @@ the @samp{#undef malloc}): + #include <config.h> + #undef malloc + +-#include <sys/types.h> +- +-void *malloc (); ++#include <stdlib.h> + + /* Allocate an N-byte block of memory from the heap. + If N is zero, allocate a 1-byte block. */ +@@ -8295,7 +8293,7 @@ needed: + # ifdef __cplusplus + extern "C" + # endif +- int F77_DUMMY_MAIN () @{ return 1; @} ++ int F77_DUMMY_MAIN (void) @{ return 1; @} + #endif + @end example + +--- a/lib/autoconf/c.m4 ++++ b/lib/autoconf/c.m4 +@@ -127,7 +127,7 @@ m4_if([$2], [main], , + [/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +-char $2 ();])], [return $2 ();])]) ++char $2 (void);])], [return $2 ();])]) + + + # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION) +@@ -151,7 +151,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)], + #define $1 innocuous_$1 + + /* System header to define __stub macros and hopefully few prototypes, +- which can conflict with char $1 (); below. */ ++ which can conflict with char $1 (void); below. */ + + #include <limits.h> + #undef $1 +@@ -162,7 +162,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)], + #ifdef __cplusplus + extern "C" + #endif +-char $1 (); ++char $1 (void); + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +--- a/lib/autoconf/functions.m4 ++++ b/lib/autoconf/functions.m4 +@@ -1601,9 +1601,6 @@ AC_DEFUN([AC_FUNC_STRTOD], + AC_CACHE_CHECK(for working strtod, ac_cv_func_strtod, + [AC_RUN_IFELSE([AC_LANG_SOURCE([[ + ]AC_INCLUDES_DEFAULT[ +-#ifndef strtod +-double strtod (); +-#endif + int + main (void) + { +--- a/tests/fortran.at ++++ b/tests/fortran.at +@@ -233,7 +233,7 @@ void FOOBAR_F77 (double *x, double *y); + # ifdef __cplusplus + extern "C" + # endif +- int F77_DUMMY_MAIN () { return 1; } ++ int F77_DUMMY_MAIN (void) { return 1; } + #endif + + int main(int argc, char *argv[]) +@@ -315,7 +315,7 @@ void FOOBAR_FC(double *x, double *y); + # ifdef __cplusplus + extern "C" + # endif +- int FC_DUMMY_MAIN () { return 1; } ++ int FC_DUMMY_MAIN (void) { return 1; } + #endif + + int main (int argc, char *argv[]) +@@ -561,7 +561,7 @@ void @foobar@ (int *x); + # ifdef __cplusplus + extern "C" + # endif +- int F77_DUMMY_MAIN () { return 1; } ++ int F77_DUMMY_MAIN (void) { return 1; } + #endif + + int main(int argc, char *argv[]) +@@ -637,7 +637,7 @@ void @foobar@ (int *x); + # ifdef __cplusplus + extern "C" + # endif +- int FC_DUMMY_MAIN () { return 1; } ++ int FC_DUMMY_MAIN (void) { return 1; } + #endif + + int main(int argc, char *argv[]) +--- a/tests/semantics.at ++++ b/tests/semantics.at +@@ -207,7 +207,7 @@ AT_CHECK_MACRO([AC_CHECK_DECLS], + [[extern int yes; + enum { myenum }; + extern struct mystruct_s { int x[20]; } mystruct; +- extern int myfunc(); ++ extern int myfunc (int); + #define mymacro1(arg) arg + #define mymacro2]]) + # Ensure we can detect missing declarations of functions whose diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/0001-specify-void-prototype-for-functions-with-no-paramet.patch b/poky/meta/recipes-devtools/autoconf/autoconf/0001-specify-void-prototype-for-functions-with-no-paramet.patch deleted file mode 100644 index 4d8aa296cd..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/0001-specify-void-prototype-for-functions-with-no-paramet.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 7ccfea413216bddd988823acf4e93421ea0f7f9f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 16 Aug 2022 18:35:45 -0700 -Subject: [PATCH] specify void prototype for functions with no parameters - -Compilers defaulting to C99 flag such functions as warning which fails -to compile when using -Werror - -Fixes -error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] - -Upstream-Status: Submitted [https://lists.gnu.org/archive/html/autoconf-patches/2022-08/msg00003.html] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/c.m4 | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/lib/autoconf/c.m4 -+++ b/lib/autoconf/c.m4 -@@ -127,7 +127,7 @@ m4_if([$2], [main], , - [/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ --char $2 ();])], [return $2 ();])]) -+char $2 (void);])], [return $2 ();])]) - - - # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION) -@@ -151,7 +151,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)], - #define $1 innocuous_$1 - - /* System header to define __stub macros and hopefully few prototypes, -- which can conflict with char $1 (); below. */ -+ which can conflict with char $1 (void); below. */ - - #include <limits.h> - #undef $1 -@@ -162,7 +162,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)], - #ifdef __cplusplus - extern "C" - #endif --char $1 (); -+char $1 (void); - /* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -@@ -252,7 +252,7 @@ dnl other built-in extern "C" functions, - dnl when it actually happens. - [AC_LANG_PROGRAM([[$1 - namespace conftest { -- extern "C" int $2 (); -+ extern "C" int $2 (void); - }]], - [[return conftest::$2 ();]])]) - -@@ -2457,7 +2457,7 @@ using std::strcmp; - - namespace { - --void test_exception_syntax() -+void test_exception_syntax(void) - { - try { - throw "test"; diff --git a/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb b/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb index 239b268119..97c241a3f5 100644 --- a/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb +++ b/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb @@ -18,7 +18,7 @@ SRC_URI = "${GNU_MIRROR}/autoconf/${BP}.tar.gz \ file://preferbash.patch \ file://autotest-automake-result-format.patch \ file://man-host-perl.patch \ - file://0001-specify-void-prototype-for-functions-with-no-paramet.patch \ + file://0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch \ " SRC_URI:append:class-native = " file://no-man.patch" diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.39.inc b/poky/meta/recipes-devtools/binutils/binutils-2.39.inc index 89612a3eae..b040e57037 100644 --- a/poky/meta/recipes-devtools/binutils/binutils-2.39.inc +++ b/poky/meta/recipes-devtools/binutils/binutils-2.39.inc @@ -31,5 +31,13 @@ SRC_URI = "\ file://0010-sync-with-OE-libtool-changes.patch \ file://0011-Check-for-clang-before-checking-gcc-version.patch \ file://0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \ + file://0013-CVE-2022-38533.patch \ + file://0014-CVE-2022-38128-1.patch \ + file://0014-CVE-2022-38128-2.patch \ + file://0014-CVE-2022-38128-3.patch \ " S = "${WORKDIR}/git" +# Already in 2.39 branch +# - https://sourceware.org/bugzilla/show_bug.cgi?id=29289 +# - https://sourceware.org/bugzilla/show_bug.cgi?id=29290 +CVE_CHECK_IGNORE += "CVE-2022-38126 CVE-2022-38127" diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc index 4e8f10c1c4..12e7d77d8d 100644 --- a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc +++ b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian.inc @@ -23,10 +23,10 @@ do_install () { rm -f ${D}${libdir}/libiberty* rm -f ${D}${libdir}/libopcodes* rm -f ${D}${includedir}/*.h - + rm -f ${D}${sysconfdir}/gprofng.rc + rmdir ${D}${sysconfdir} || : + cross_canadian_bindirlinks } -FILES:${PN} += "${sysconfdir}/gprofng.rc" - BBCLASSEXTEND = "" diff --git a/poky/meta/recipes-devtools/binutils/binutils.inc b/poky/meta/recipes-devtools/binutils/binutils.inc index 789c8bec21..98acf0a222 100644 --- a/poky/meta/recipes-devtools/binutils/binutils.inc +++ b/poky/meta/recipes-devtools/binutils/binutils.inc @@ -36,6 +36,24 @@ FILES:${PN}-dev = " \ # Rather than duplicating multiple entries for these, make one # list and reuse it. +GPROFNGS = " \ + gp-archive \ + gp-collect-app \ + gp-display-html \ + gp-display-src \ + gp-display-text \ + gprofng \ +" + +# it disables gprofng for clang and musl in the bb file +GPROFNGS:toolchain-clang = "" +GPROFNGS:libc-musl = "" + +GPROFNG_ALTS ?= "" +GPROFNG_ALTS:x86 = "${GPROFNGS}" +GPROFNG_ALTS:x86-64 = "${GPROFNGS}" +GPROFNG_ALTS:aarch64 = "${GPROFNGS}" + LDGOLD_ALTS ?= "ld.gold dwp" LDGOLD_ALTS:riscv64 = "" LDGOLD_ALTS:riscv32 = "" @@ -48,6 +66,7 @@ USE_ALTERNATIVES_FOR = " \ c++filt \ elfedit \ gprof \ + ${GPROFNG_ALTS} \ ld \ ld.bfd \ ${LDGOLD_ALTS} \ diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch new file mode 100644 index 0000000000..5d9ac2cb1f --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0013-CVE-2022-38533.patch @@ -0,0 +1,36 @@ +From ef186fe54aa6d281a3ff8a9528417e5cc614c797 Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Sat, 13 Aug 2022 15:32:47 +0930 +Subject: [PATCH] PR29482 - strip: heap-buffer-overflow + + PR 29482 + * coffcode.h (coff_set_section_contents): Sanity check _LIB. + +Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ef186fe54aa6d281a3ff8a9528417e5cc614c797] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> + +--- + bfd/coffcode.h | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/bfd/coffcode.h b/bfd/coffcode.h +index 67aaf158ca1..52027981c3f 100644 +--- a/bfd/coffcode.h ++++ b/bfd/coffcode.h +@@ -4302,10 +4302,13 @@ coff_set_section_contents (bfd * abfd, + + rec = (bfd_byte *) location; + recend = rec + count; +- while (rec < recend) ++ while (recend - rec >= 4) + { ++ size_t len = bfd_get_32 (abfd, rec); ++ if (len == 0 || len > (size_t) (recend - rec) / 4) ++ break; ++ rec += len * 4; + ++section->lma; +- rec += bfd_get_32 (abfd, rec) * 4; + } + + BFD_ASSERT (rec == recend); diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch new file mode 100644 index 0000000000..0a490d86b3 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-1.patch @@ -0,0 +1,350 @@ +From f07c08e115e27cddf5a0030dc6332bbee1bd9c6a Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Thu, 21 Jul 2022 08:38:14 +0930 +Subject: [PATCH] binutils/dwarf.c: abbrev caching + +I'm inclined to think that abbrev caching is counter-productive. The +time taken to search the list of abbrevs converted to internal form is +non-zero, and it's easy to decode the raw abbrevs. It's especially +silly to cache empty lists of decoded abbrevs (happens with zero +padding in .debug_abbrev), or abbrevs as they are displayed when there +is no further use of those abbrevs. This patch stops caching in those +cases. + + * dwarf.c (record_abbrev_list_for_cu): Add free_list param. + Put abbrevs on abbrev_lists here. + (new_abbrev_list): Delete function. + (process_abbrev_set): Return newly allocated list. Move + abbrev base, offset and size checking to.. + (find_and_process_abbrev_set): ..here, new function. Handle + lookup of cached abbrevs here, and calculate start and end + for process_abbrev_set. Return free_list if newly alloc'd. + (process_debug_info): Consolidate cached list lookup, new list + alloc and processing into find_and_process_abbrev_set call. + Free list when not cached. + (display_debug_abbrev): Similarly. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f07c08e115e27cddf5a0030dc6332bbee1bd9c6a] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> +--- + binutils/dwarf.c | 208 +++++++++++++++++++++++++---------------------- + 1 file changed, 110 insertions(+), 98 deletions(-) + +diff --git a/binutils/dwarf.c b/binutils/dwarf.c +index 267ed3bb382..2fc352f74c5 100644 +--- a/binutils/dwarf.c ++++ b/binutils/dwarf.c +@@ -882,8 +882,15 @@ static unsigned long next_free_abbrev_m + #define ABBREV_MAP_ENTRIES_INCREMENT 8 + + static void +-record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end, abbrev_list * list) ++record_abbrev_list_for_cu (dwarf_vma start, dwarf_vma end, ++ abbrev_list *list, abbrev_list *free_list) + { ++ if (free_list != NULL) ++ { ++ list->next = abbrev_lists; ++ abbrev_lists = list; ++ } ++ + if (cu_abbrev_map == NULL) + { + num_abbrev_map_entries = INITIAL_NUM_ABBREV_MAP_ENTRIES; +@@ -936,20 +943,6 @@ free_all_abbrevs (void) + } + + static abbrev_list * +-new_abbrev_list (dwarf_vma abbrev_base, dwarf_vma abbrev_offset) +-{ +- abbrev_list * list = (abbrev_list *) xcalloc (sizeof * list, 1); +- +- list->abbrev_base = abbrev_base; +- list->abbrev_offset = abbrev_offset; +- +- list->next = abbrev_lists; +- abbrev_lists = list; +- +- return list; +-} +- +-static abbrev_list * + find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base, + dwarf_vma abbrev_offset) + { +@@ -966,7 +959,7 @@ find_abbrev_list_by_abbrev_offset (dwarf + /* Find the abbreviation map for the CU that includes OFFSET. + OFFSET is an absolute offset from the start of the .debug_info section. */ + /* FIXME: This function is going to slow down readelf & objdump. +- Consider using a better algorithm to mitigate this effect. */ ++ Not caching abbrevs is likely the answer. */ + + static abbrev_map * + find_abbrev_map_by_offset (dwarf_vma offset) +@@ -1033,40 +1026,18 @@ add_abbrev_attr (unsigned long attrib + list->last_abbrev->last_attr = attr; + } + +-/* Processes the (partial) contents of a .debug_abbrev section. +- Returns NULL if the end of the section was encountered. +- Returns the address after the last byte read if the end of +- an abbreviation set was found. */ ++/* Return processed (partial) contents of a .debug_abbrev section. ++ Returns NULL on errors. */ + +-static unsigned char * ++static abbrev_list * + process_abbrev_set (struct dwarf_section *section, +- dwarf_vma abbrev_base, +- dwarf_vma abbrev_size, +- dwarf_vma abbrev_offset, +- abbrev_list *list) ++ unsigned char *start, ++ unsigned char *end) + { +- if (abbrev_base >= section->size +- || abbrev_size > section->size - abbrev_base) +- { +- /* PR 17531: file:4bcd9ce9. */ +- warn (_("Debug info is corrupted, abbrev size (%lx) is larger than " +- "abbrev section size (%lx)\n"), +- (unsigned long) (abbrev_base + abbrev_size), +- (unsigned long) section->size); +- return NULL; +- } +- if (abbrev_offset >= abbrev_size) +- { +- warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than " +- "abbrev section size (%lx)\n"), +- (unsigned long) abbrev_offset, +- (unsigned long) abbrev_size); +- return NULL; +- } ++ abbrev_list *list = xmalloc (sizeof (*list)); ++ list->first_abbrev = NULL; ++ list->last_abbrev = NULL; + +- unsigned char *start = section->start + abbrev_base; +- unsigned char *end = start + abbrev_size; +- start += abbrev_offset; + while (start < end) + { + unsigned long entry; +@@ -1079,14 +1050,18 @@ process_abbrev_set (struct dwarf_section + /* A single zero is supposed to end the set according + to the standard. If there's more, then signal that to + the caller. */ +- if (start == end) +- return NULL; +- if (entry == 0) +- return start; ++ if (start == end || entry == 0) ++ { ++ list->start_of_next_abbrevs = start != end ? start : NULL; ++ return list; ++ } + + READ_ULEB (tag, start, end); + if (start == end) +- return NULL; ++ { ++ free (list); ++ return NULL; ++ } + + children = *start++; + +@@ -1121,9 +1096,67 @@ process_abbrev_set (struct dwarf_section + /* Report the missing single zero which ends the section. */ + error (_(".debug_abbrev section not zero terminated\n")); + ++ free (list); + return NULL; + } + ++/* Return a sequence of abbrevs in SECTION starting at ABBREV_BASE ++ plus ABBREV_OFFSET and finishing at ABBREV_BASE + ABBREV_SIZE. ++ If FREE_LIST is non-NULL search the already decoded abbrevs on ++ abbrev_lists first and if found set *FREE_LIST to NULL. If ++ searching doesn't find a matching abbrev, set *FREE_LIST to the ++ newly allocated list. If FREE_LIST is NULL, no search is done and ++ the returned abbrev_list is always newly allocated. */ ++ ++static abbrev_list * ++find_and_process_abbrev_set (struct dwarf_section *section, ++ dwarf_vma abbrev_base, ++ dwarf_vma abbrev_size, ++ dwarf_vma abbrev_offset, ++ abbrev_list **free_list) ++{ ++ if (free_list) ++ *free_list = NULL; ++ ++ if (abbrev_base >= section->size ++ || abbrev_size > section->size - abbrev_base) ++ { ++ /* PR 17531: file:4bcd9ce9. */ ++ warn (_("Debug info is corrupted, abbrev size (%lx) is larger than " ++ "abbrev section size (%lx)\n"), ++ (unsigned long) (abbrev_base + abbrev_size), ++ (unsigned long) section->size); ++ return NULL; ++ } ++ if (abbrev_offset >= abbrev_size) ++ { ++ warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than " ++ "abbrev section size (%lx)\n"), ++ (unsigned long) abbrev_offset, ++ (unsigned long) abbrev_size); ++ return NULL; ++ } ++ ++ unsigned char *start = section->start + abbrev_base + abbrev_offset; ++ unsigned char *end = section->start + abbrev_base + abbrev_size; ++ abbrev_list *list = NULL; ++ if (free_list) ++ list = find_abbrev_list_by_abbrev_offset (abbrev_base, abbrev_offset); ++ if (list == NULL) ++ { ++ list = process_abbrev_set (section, start, end); ++ if (list) ++ { ++ list->abbrev_base = abbrev_base; ++ list->abbrev_offset = abbrev_offset; ++ list->next = NULL; ++ } ++ if (free_list) ++ *free_list = list; ++ } ++ return list; ++} ++ + static const char * + get_TAG_name (unsigned long tag) + { +@@ -3670,7 +3703,6 @@ process_debug_info (struct dwarf_section + dwarf_vma cu_offset; + unsigned int offset_size; + struct cu_tu_set * this_set; +- abbrev_list * list; + unsigned char *end_cu; + + hdrptr = start; +@@ -3726,22 +3758,18 @@ process_debug_info (struct dwarf_section + abbrev_size = this_set->section_sizes [DW_SECT_ABBREV]; + } + +- list = find_abbrev_list_by_abbrev_offset (abbrev_base, +- compunit.cu_abbrev_offset); +- if (list == NULL) +- { +- unsigned char * next; +- +- list = new_abbrev_list (abbrev_base, +- compunit.cu_abbrev_offset); +- next = process_abbrev_set (&debug_displays[abbrev_sec].section, +- abbrev_base, abbrev_size, +- compunit.cu_abbrev_offset, list); +- list->start_of_next_abbrevs = next; +- } +- ++ abbrev_list *list; ++ abbrev_list *free_list; ++ list = find_and_process_abbrev_set (&debug_displays[abbrev_sec].section, ++ abbrev_base, abbrev_size, ++ compunit.cu_abbrev_offset, ++ &free_list); + start = end_cu; +- record_abbrev_list_for_cu (cu_offset, start - section_begin, list); ++ if (list != NULL && list->first_abbrev != NULL) ++ record_abbrev_list_for_cu (cu_offset, start - section_begin, ++ list, free_list); ++ else if (free_list != NULL) ++ free_abbrev_list (free_list); + } + + for (start = section_begin, unit = 0; start < end; unit++) +@@ -3757,7 +3785,6 @@ process_debug_info (struct dwarf_section + struct cu_tu_set *this_set; + dwarf_vma abbrev_base; + size_t abbrev_size; +- abbrev_list * list = NULL; + unsigned char *end_cu; + + hdrptr = start; +@@ -3936,20 +3963,10 @@ process_debug_info (struct dwarf_section + } + + /* Process the abbrevs used by this compilation unit. */ +- list = find_abbrev_list_by_abbrev_offset (abbrev_base, +- compunit.cu_abbrev_offset); +- if (list == NULL) +- { +- unsigned char *next; +- +- list = new_abbrev_list (abbrev_base, +- compunit.cu_abbrev_offset); +- next = process_abbrev_set (&debug_displays[abbrev_sec].section, +- abbrev_base, abbrev_size, +- compunit.cu_abbrev_offset, list); +- list->start_of_next_abbrevs = next; +- } +- ++ abbrev_list *list; ++ list = find_and_process_abbrev_set (&debug_displays[abbrev_sec].section, ++ abbrev_base, abbrev_size, ++ compunit.cu_abbrev_offset, NULL); + level = 0; + last_level = level; + saved_level = -1; +@@ -4128,6 +4145,8 @@ process_debug_info (struct dwarf_section + if (entry->children) + ++level; + } ++ if (list != NULL) ++ free_abbrev_list (list); + } + + /* Set num_debug_info_entries here so that it can be used to check if +@@ -6353,24 +6372,15 @@ display_debug_abbrev (struct dwarf_secti + + do + { +- abbrev_list * list; +- dwarf_vma offset; +- +- offset = start - section->start; +- list = find_abbrev_list_by_abbrev_offset (0, offset); ++ dwarf_vma offset = start - section->start; ++ abbrev_list *list = find_and_process_abbrev_set (section, 0, ++ section->size, offset, ++ NULL); + if (list == NULL) +- { +- list = new_abbrev_list (0, offset); +- start = process_abbrev_set (section, 0, section->size, offset, list); +- list->start_of_next_abbrevs = start; +- } +- else +- start = list->start_of_next_abbrevs; +- +- if (list->first_abbrev == NULL) +- continue; ++ break; + +- printf (_(" Number TAG (0x%lx)\n"), (long) offset); ++ if (list->first_abbrev) ++ printf (_(" Number TAG (0x%lx)\n"), (long) offset); + + for (entry = list->first_abbrev; entry; entry = entry->next) + { +@@ -6391,6 +6401,8 @@ display_debug_abbrev (struct dwarf_secti + putchar ('\n'); + } + } ++ start = list->start_of_next_abbrevs; ++ free_abbrev_list (list); + } + while (start); + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch new file mode 100644 index 0000000000..e30b4d86e1 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-2.patch @@ -0,0 +1,536 @@ +From 175b91507b83ad42607d2f6dadaf55b7b511bdbe Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Wed, 20 Jul 2022 18:28:50 +0930 +Subject: [PATCH] miscellaneous dwarf.c tidies + + * dwarf.c: Leading and trailing whitespace fixes. + (free_abbrev_list): New function. + (free_all_abbrevs): Use the above. Free cu_abbrev_map here too. + (process_abbrev_set): Print actual section name on error. + (get_type_abbrev_from_form): Add overflow check. + (free_debug_memory): Don't free cu_abbrev_map here.. + (process_debug_info): ..or here. Warn on another case of not + finding a neeeded abbrev. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=175b91507b83ad42607d2f6dadaf55b7b511bdbe] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> +--- + binutils/dwarf.c | 216 +++++++++++++++++++++++------------------------ + 1 file changed, 106 insertions(+), 110 deletions(-) + +diff --git a/binutils/dwarf.c b/binutils/dwarf.c +index 2b1eec49422..267ed3bb382 100644 +--- a/binutils/dwarf.c ++++ b/binutils/dwarf.c +@@ -806,7 +806,7 @@ fetch_indexed_value (dwarf_vma idx, + pointer_size = 4; + bias = 12; + } +- ++ + dwarf_vma offset = idx * pointer_size; + + /* Offsets are biased by the size of the section header +@@ -908,38 +908,41 @@ record_abbrev_list_for_cu (dwarf_vma sta + next_free_abbrev_map_entry ++; + } + +-static void +-free_all_abbrevs (void) ++static abbrev_list * ++free_abbrev_list (abbrev_list *list) + { +- abbrev_list * list; ++ abbrev_entry *abbrv = list->first_abbrev; + +- for (list = abbrev_lists; list != NULL;) ++ while (abbrv) + { +- abbrev_list * next = list->next; +- abbrev_entry * abbrv; ++ abbrev_attr *attr = abbrv->first_attr; + +- for (abbrv = list->first_abbrev; abbrv != NULL;) ++ while (attr) + { +- abbrev_entry * next_abbrev = abbrv->next; +- abbrev_attr * attr; +- +- for (attr = abbrv->first_attr; attr;) +- { +- abbrev_attr *next_attr = attr->next; +- +- free (attr); +- attr = next_attr; +- } +- +- free (abbrv); +- abbrv = next_abbrev; ++ abbrev_attr *next_attr = attr->next; ++ free (attr); ++ attr = next_attr; + } + +- free (list); +- list = next; ++ abbrev_entry *next_abbrev = abbrv->next; ++ free (abbrv); ++ abbrv = next_abbrev; + } + +- abbrev_lists = NULL; ++ abbrev_list *next = list->next; ++ free (list); ++ return next; ++} ++ ++static void ++free_all_abbrevs (void) ++{ ++ while (abbrev_lists) ++ abbrev_lists = free_abbrev_list (abbrev_lists); ++ ++ free (cu_abbrev_map); ++ cu_abbrev_map = NULL; ++ next_free_abbrev_map_entry = 0; + } + + static abbrev_list * +@@ -971,7 +974,7 @@ find_abbrev_map_by_offset (dwarf_vma off + && cu_abbrev_map[i].end > offset) + return cu_abbrev_map + i; + +- return NULL; ++ return NULL; + } + + static void +@@ -1094,7 +1097,7 @@ process_abbrev_set (struct dwarf_section + } + + /* Report the missing single zero which ends the section. */ +- error (_(".debug_abbrev section not zero terminated\n")); ++ error (_("%s section not zero terminated\n"), section->name); + + free (list); + return NULL; +@@ -1875,7 +1878,7 @@ fetch_alt_indirect_string (dwarf_vma off + dwarf_vmatoa ("x", offset)); + return _("<offset is too big>"); + } +- ++ + static const char * + get_AT_name (unsigned long attribute) + { +@@ -2157,7 +2160,8 @@ get_type_abbrev_from_form (unsigned long + case DW_FORM_ref4: + case DW_FORM_ref8: + case DW_FORM_ref_udata: +- if (uvalue + cu_offset > (size_t) (cu_end - section->start)) ++ if (uvalue + cu_offset < uvalue ++ || uvalue + cu_offset > (size_t) (cu_end - section->start)) + { + warn (_("Unable to resolve ref form: uvalue %lx + cu_offset %lx > CU size %lx\n"), + uvalue, (long) cu_offset, (long) (cu_end - section->start)); +@@ -2194,7 +2198,7 @@ get_type_abbrev_from_form (unsigned long + else + *map_return = NULL; + } +- ++ + READ_ULEB (abbrev_number, data, section->start + section->size); + + for (entry = map->list->first_abbrev; entry != NULL; entry = entry->next) +@@ -2783,10 +2787,10 @@ read_and_display_attr_value (unsigned lo + if (form == DW_FORM_loclistx) + { + if (dwo) +- { +- index = fetch_indexed_value (uvalue, loclists_dwo, 0); +- index += (offset_size == 8) ? 20 : 12; +- } ++ { ++ index = fetch_indexed_value (uvalue, loclists_dwo, 0); ++ index += (offset_size == 8) ? 20 : 12; ++ } + else if (debug_info_p == NULL) + { + index = fetch_indexed_value (uvalue, loclists, 0); +@@ -2804,21 +2808,21 @@ read_and_display_attr_value (unsigned lo + else if (form == DW_FORM_rnglistx) + { + if (dwo) +- { +- index = fetch_indexed_value (uvalue, rnglists_dwo, 0); +- index += (offset_size == 8) ? 20 : 12; +- } ++ { ++ index = fetch_indexed_value (uvalue, rnglists_dwo, 0); ++ index += (offset_size == 8) ? 20 : 12; ++ } + else +- { +- if (debug_info_p == NULL) +- base = 0; +- else +- base = debug_info_p->rnglists_base; +- /* We do not have a cached value this time, so we perform the +- computation manually. */ +- index = fetch_indexed_value (uvalue, rnglists, base); +- index += base; +- } ++ { ++ if (debug_info_p == NULL) ++ base = 0; ++ else ++ base = debug_info_p->rnglists_base; ++ /* We do not have a cached value this time, so we perform the ++ computation manually. */ ++ index = fetch_indexed_value (uvalue, rnglists, base); ++ index += base; ++ } + } + else + { +@@ -2844,7 +2848,7 @@ read_and_display_attr_value (unsigned lo + if (!do_loc) + printf ("%c<0x%s>", delimiter, dwarf_vmatoa ("x", uvalue + cu_offset)); + break; +- ++ + default: + warn (_("Unrecognized form: 0x%lx\n"), form); + /* What to do? Consume a byte maybe? */ +@@ -2869,9 +2873,9 @@ read_and_display_attr_value (unsigned lo + case DW_AT_rnglists_base: + if (debug_info_p->rnglists_base) + warn (_("CU @ 0x%s has multiple rnglists_base values (0x%s and 0x%s)"), +- dwarf_vmatoa ("x", debug_info_p->cu_offset), +- dwarf_vmatoa ("x", debug_info_p->rnglists_base), +- dwarf_vmatoa ("x", uvalue)); ++ dwarf_vmatoa ("x", debug_info_p->cu_offset), ++ dwarf_vmatoa ("x", debug_info_p->rnglists_base), ++ dwarf_vmatoa ("x", uvalue)); + debug_info_p->rnglists_base = uvalue; + break; + case DW_AT_str_offsets_base: +@@ -3021,7 +3025,7 @@ read_and_display_attr_value (unsigned lo + case DW_FORM_strx3: + case DW_FORM_strx4: + add_dwo_name (fetch_indexed_string (uvalue, this_set, offset_size, false, +- debug_info_p->str_offsets_base), ++ debug_info_p->str_offsets_base), + cu_offset); + break; + case DW_FORM_string: +@@ -3055,7 +3059,7 @@ read_and_display_attr_value (unsigned lo + case DW_FORM_strx3: + case DW_FORM_strx4: + add_dwo_dir (fetch_indexed_string (uvalue, this_set, offset_size, false, +- debug_info_p->str_offsets_base), ++ debug_info_p->str_offsets_base), + cu_offset); + break; + case DW_FORM_string: +@@ -3686,11 +3690,8 @@ process_debug_info (struct dwarf_section + introduce (section, false); + + free_all_abbrevs (); +- free (cu_abbrev_map); +- cu_abbrev_map = NULL; +- next_free_abbrev_map_entry = 0; + +- /* In order to be able to resolve DW_FORM_ref_attr forms we need ++ /* In order to be able to resolve DW_FORM_ref_addr forms we need + to load *all* of the abbrevs for all CUs in this .debug_info + section. This does effectively mean that we (partially) read + every CU header twice. */ +@@ -4045,12 +4046,11 @@ process_debug_info (struct dwarf_section + + /* Scan through the abbreviation list until we reach the + correct entry. */ +- if (list == NULL) +- continue; +- +- for (entry = list->first_abbrev; entry != NULL; entry = entry->next) +- if (entry->number == abbrev_number) +- break; ++ entry = NULL; ++ if (list != NULL) ++ for (entry = list->first_abbrev; entry != NULL; entry = entry->next) ++ if (entry->number == abbrev_number) ++ break; + + if (entry == NULL) + { +@@ -4074,7 +4074,7 @@ process_debug_info (struct dwarf_section + break; + case DW_TAG_compile_unit: + case DW_TAG_skeleton_unit: +- need_base_address = 1; ++ need_base_address = 1; + need_dwo_info = do_loc; + break; + case DW_TAG_entry_point: +@@ -4459,7 +4459,7 @@ display_debug_sup (struct dwarf_section + + SAFE_BYTE_GET_AND_INC (is_supplementary, start, 1, end); + if (is_supplementary != 0 && is_supplementary != 1) +- warn (_("corrupt .debug_sup section: is_supplementary not 0 or 1\n")); ++ warn (_("corrupt .debug_sup section: is_supplementary not 0 or 1\n")); + + sup_filename = start; + if (is_supplementary && sup_filename[0] != 0) +@@ -5638,7 +5638,7 @@ display_debug_lines_decoded (struct dwar + printf ("%s %11d %#18" DWARF_VMA_FMT "x", + newFileName, state_machine_regs.line, + state_machine_regs.address); +- } ++ } + else + { + if (xop == -DW_LNE_end_sequence) +@@ -6092,7 +6092,7 @@ display_debug_macro (struct dwarf_sectio + load_debug_section_with_follow (str, file); + load_debug_section_with_follow (line, file); + load_debug_section_with_follow (str_index, file); +- ++ + introduce (section, false); + + while (curr < end) +@@ -6537,7 +6537,7 @@ display_loc_list (struct dwarf_section * + + /* Check base address specifiers. */ + if (is_max_address (begin, pointer_size) +- && !is_max_address (end, pointer_size)) ++ && !is_max_address (end, pointer_size)) + { + base_address = end; + print_dwarf_vma (begin, pointer_size); +@@ -6715,7 +6715,7 @@ display_loclists_list (struct dwarf_sect + case DW_LLE_default_location: + begin = end = 0; + break; +- ++ + case DW_LLE_offset_pair: + READ_ULEB (begin, start, section_end); + begin += base_address; +@@ -7011,7 +7011,7 @@ display_offset_entry_loclists (struct dw + unsigned char * start = section->start; + unsigned char * const end = start + section->size; + +- introduce (section, false); ++ introduce (section, false); + + do + { +@@ -7060,14 +7060,14 @@ display_offset_entry_loclists (struct dw + section->name, segment_selector_size); + return 0; + } +- ++ + if (offset_entry_count == 0) + { + warn (_("The %s section contains a table without offset\n"), + section->name); + return 0; + } +- ++ + printf (_("\n Offset Entries starting at 0x%lx:\n"), + (long)(start - section->start)); + +@@ -8229,7 +8229,7 @@ display_debug_rnglists (struct dwarf_sec + start = display_debug_rnglists_list + (start, end, address_size, offset, 0, offset_size); + if (start >= end) +- break; ++ break; + } + + start = end; +@@ -8347,12 +8347,12 @@ display_debug_ranges (struct dwarf_secti + next = section_begin + offset + debug_info_p->rnglists_base; + + /* If multiple DWARF entities reference the same range then we will +- have multiple entries in the `range_entries' list for the same +- offset. Thanks to the sort above these will all be consecutive in +- the `range_entries' list, so we can easily ignore duplicates +- here. */ ++ have multiple entries in the `range_entries' list for the same ++ offset. Thanks to the sort above these will all be consecutive in ++ the `range_entries' list, so we can easily ignore duplicates ++ here. */ + if (i > 0 && last_offset == offset) +- continue; ++ continue; + last_offset = offset; + + if (dwarf_check != 0 && i > 0) +@@ -10286,7 +10286,7 @@ display_debug_names (struct dwarf_sectio + printf (_("Out of %lu items there are %zu bucket clashes" + " (longest of %zu entries).\n"), + (unsigned long) name_count, hash_clash_count, longest_clash); +- ++ + if (name_count != buckets_filled + hash_clash_count) + warn (_("The name_count (%lu) is not the same as the used bucket_count (%lu) + the hash clash count (%lu)"), + (unsigned long) name_count, +@@ -10390,7 +10390,7 @@ display_debug_names (struct dwarf_sectio + break; + if (tagno >= 0) + printf ("%s<%lu>", +- (tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"), ++ (tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"), + (unsigned long) abbrev_tag); + + for (entry = abbrev_lookup; +@@ -10919,7 +10919,7 @@ process_cu_tu_index (struct dwarf_sectio + Check for integer overflow (can occur when size_t is 32-bit) + with overlarge ncols or nused values. */ + if (nused == -1u +- || _mul_overflow ((size_t) ncols, 4, &temp) ++ || _mul_overflow ((size_t) ncols, 4, &temp) + || _mul_overflow ((size_t) nused + 1, temp, &total) + || total > (size_t) (limit - ppool)) + { +@@ -10927,7 +10927,7 @@ process_cu_tu_index (struct dwarf_sectio + section->name); + return 0; + } +- ++ + if (do_display) + { + printf (_(" Offset table\n")); +@@ -11431,8 +11431,8 @@ add_separate_debug_file (const char * fi + + static bool + debuginfod_fetch_separate_debug_info (struct dwarf_section * section, +- char ** filename, +- void * file) ++ char ** filename, ++ void * file) + { + size_t build_id_len; + unsigned char * build_id; +@@ -11450,14 +11450,14 @@ debuginfod_fetch_separate_debug_info (st + + filelen = strnlen ((const char *)section->start, section->size); + if (filelen == section->size) +- /* Corrupt debugaltlink. */ +- return false; ++ /* Corrupt debugaltlink. */ ++ return false; + + build_id = section->start + filelen + 1; + build_id_len = section->size - (filelen + 1); + + if (build_id_len == 0) +- return false; ++ return false; + } + else + return false; +@@ -11469,25 +11469,25 @@ debuginfod_fetch_separate_debug_info (st + + client = debuginfod_begin (); + if (client == NULL) +- return false; ++ return false; + + /* Query debuginfod servers for the target file. If found its path +- will be stored in filename. */ ++ will be stored in filename. */ + fd = debuginfod_find_debuginfo (client, build_id, build_id_len, filename); + debuginfod_end (client); + + /* Only free build_id if we allocated space for a hex string +- in get_build_id (). */ ++ in get_build_id (). */ + if (build_id_len == 0) +- free (build_id); ++ free (build_id); + + if (fd >= 0) +- { +- /* File successfully retrieved. Close fd since we want to +- use open_debug_file () on filename instead. */ +- close (fd); +- return true; +- } ++ { ++ /* File successfully retrieved. Close fd since we want to ++ use open_debug_file () on filename instead. */ ++ close (fd); ++ return true; ++ } + } + + return false; +@@ -11500,7 +11500,7 @@ load_separate_debug_info (const char * + parse_func_type parse_func, + check_func_type check_func, + void * func_data, +- void * file ATTRIBUTE_UNUSED) ++ void * file ATTRIBUTE_UNUSED) + { + const char * separate_filename; + char * debug_filename; +@@ -11616,11 +11616,11 @@ load_separate_debug_info (const char * + & tmp_filename, + file)) + { +- /* File successfully downloaded from server, replace +- debug_filename with the file's path. */ +- free (debug_filename); +- debug_filename = tmp_filename; +- goto found; ++ /* File successfully downloaded from server, replace ++ debug_filename with the file's path. */ ++ free (debug_filename); ++ debug_filename = tmp_filename; ++ goto found; + } + } + #endif +@@ -11787,12 +11787,12 @@ load_build_id_debug_file (const char * m + /* In theory we should extract the contents of the section into + a note structure and then check the fields. For now though + just use hard coded offsets instead: +- ++ + Field Bytes Contents + NSize 0...3 4 + DSize 4...7 8+ + Type 8..11 3 (NT_GNU_BUILD_ID) +- Name 12.15 GNU\0 ++ Name 12.15 GNU\0 + Data 16.... */ + + /* FIXME: Check the name size, name and type fields. */ +@@ -11804,7 +11804,7 @@ load_build_id_debug_file (const char * m + warn (_(".note.gnu.build-id data size is too small\n")); + return; + } +- ++ + if (build_id_size > (section->size - 16)) + { + warn (_(".note.gnu.build-id data size is too bug\n")); +@@ -12100,10 +12100,6 @@ free_debug_memory (void) + + free_all_abbrevs (); + +- free (cu_abbrev_map); +- cu_abbrev_map = NULL; +- next_free_abbrev_map_entry = 0; +- + free (shndx_pool); + shndx_pool = NULL; + shndx_pool_size = 0; diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch new file mode 100644 index 0000000000..04d06ed6b6 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-CVE-2022-38128-3.patch @@ -0,0 +1,95 @@ +From 695c6dfe7e85006b98c8b746f3fd5f913c94ebff Mon Sep 17 00:00:00 2001 +From: Alan Modra <amodra@gmail.com> +Date: Thu, 21 Jul 2022 09:56:15 +0930 +Subject: [PATCH] PR29370, infinite loop in display_debug_abbrev + +The PR29370 testcase is a fuzzed object file with multiple +.trace_abbrev sections. Multiple .trace_abbrev or .debug_abbrev +sections are not a violation of the DWARF standard. The DWARF5 +standard even gives an example of multiple .debug_abbrev sections +contained in groups. Caching and lookup of processed abbrevs thus +needs to be done by section and offset rather than base and offset. +(Why base anyway?) Or, since section contents are kept, by a pointer +into the contents. + + PR 29370 + * dwarf.c (struct abbrev_list): Replace abbrev_base and + abbrev_offset with raw field. + (find_abbrev_list_by_abbrev_offset): Delete. + (find_abbrev_list_by_raw_abbrev): New function. + (process_abbrev_set): Set list->raw and list->next. + (find_and_process_abbrev_set): Replace abbrev list lookup with + new function. Don't set list abbrev_base, abbrev_offset or next. + +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=695c6dfe7e85006b98c8b746f3fd5f913c94ebff] + +Signed-off-by: Pgowda <pgowda.cve@gmail.com> +--- + binutils/dwarf.c | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/binutils/dwarf.c b/binutils/dwarf.c +index 2fc352f74c5..99fb3566994 100644 +--- a/binutils/dwarf.c ++++ b/binutils/dwarf.c +@@ -856,8 +856,7 @@ typedef struct abbrev_list + { + abbrev_entry * first_abbrev; + abbrev_entry * last_abbrev; +- dwarf_vma abbrev_base; +- dwarf_vma abbrev_offset; ++ unsigned char * raw; + struct abbrev_list * next; + unsigned char * start_of_next_abbrevs; + } +@@ -946,14 +945,12 @@ free_all_abbrevs (void) + } + + static abbrev_list * +-find_abbrev_list_by_abbrev_offset (dwarf_vma abbrev_base, +- dwarf_vma abbrev_offset) ++find_abbrev_list_by_raw_abbrev (unsigned char *raw) + { + abbrev_list * list; + + for (list = abbrev_lists; list != NULL; list = list->next) +- if (list->abbrev_base == abbrev_base +- && list->abbrev_offset == abbrev_offset) ++ if (list->raw == raw) + return list; + + return NULL; +@@ -1040,6 +1037,7 @@ process_abbrev_set (struct dwarf_section + abbrev_list *list = xmalloc (sizeof (*list)); + list->first_abbrev = NULL; + list->last_abbrev = NULL; ++ list->raw = start; + + while (start < end) + { +@@ -1055,6 +1053,7 @@ process_abbrev_set (struct dwarf_section + the caller. */ + if (start == end || entry == 0) + { ++ list->next = NULL; + list->start_of_next_abbrevs = start != end ? start : NULL; + return list; + } +@@ -1144,16 +1143,10 @@ find_and_process_abbrev_set (struct dwar + unsigned char *end = section->start + abbrev_base + abbrev_size; + abbrev_list *list = NULL; + if (free_list) +- list = find_abbrev_list_by_abbrev_offset (abbrev_base, abbrev_offset); ++ list = find_abbrev_list_by_raw_abbrev (start); + if (list == NULL) + { + list = process_abbrev_set (section, start, end); +- if (list) +- { +- list->abbrev_base = abbrev_base; +- list->abbrev_offset = abbrev_offset; +- list->next = NULL; +- } + if (free_list) + *free_list = list; + } diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.19.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.19.1.bb index 4f116a85ac..db8026e0f0 100644 --- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.19.bb +++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.19.1.bb @@ -18,7 +18,7 @@ DEPENDS = "util-linux zlib" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git;branch=master \ file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ " -SRCREV = "96b83b16158f3b87037085761bf212e958473767" +SRCREV = "e1d9dab326e043696e6648aba4ccf90874d1d3d1" S = "${WORKDIR}/git" PACKAGECONFIG ??= " \ diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.6.2.bb b/poky/meta/recipes-devtools/ccache/ccache_4.6.3.bb index dbac02243c..bc1be92bff 100644 --- a/poky/meta/recipes-devtools/ccache/ccache_4.6.2.bb +++ b/poky/meta/recipes-devtools/ccache/ccache_4.6.3.bb @@ -11,16 +11,12 @@ LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=7a19377a02749d8a1281ed608169b0ee" DEPENDS = "zstd" -SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ file://0001-xxhash.h-Fix-build-with-gcc-12.patch \ - file://0001-Include-time.h-for-time_t.patch \ - file://0002-config-Include-sys-types.h-for-mode_t-defintion.patch \ -" -SRC_URI[sha256sum] = "6a746a9bed01585388b68e2d58af2e77741fc8d66bc360b5a0b4c41fc284dafe" + " +SRC_URI[sha256sum] = "f46ba3706ad80c30d4d5874dee2bf9227a7fcd0ccaac31b51919a3053d84bd05" -UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" - -inherit cmake +inherit cmake github-releases PATCHTOOL = "patch" diff --git a/poky/meta/recipes-devtools/ccache/files/0001-Include-time.h-for-time_t.patch b/poky/meta/recipes-devtools/ccache/files/0001-Include-time.h-for-time_t.patch deleted file mode 100644 index d752eb0651..0000000000 --- a/poky/meta/recipes-devtools/ccache/files/0001-Include-time.h-for-time_t.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 590c656838a9b3769a7a855fb1891bfa8d8878ad Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 23 Aug 2022 10:27:21 -0700 -Subject: [PATCH] Include time.h for time_t - -Fixes -src/core/Statistics.hpp:41:37: error: 'time_t' has not been declared -| 41 | time_t last_updated, -| | ^~~~~~ - -Upstream-Status: Submitted [https://github.com/ccache/ccache/pull/1145] -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- - src/core/Statistics.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/core/Statistics.hpp b/src/core/Statistics.hpp -index 54f32e9..eb80e1c 100644 ---- a/src/core/Statistics.hpp -+++ b/src/core/Statistics.hpp -@@ -21,6 +21,7 @@ - #include <core/StatisticsCounters.hpp> - - #include <cstdint> -+#include <ctime> - #include <string> - #include <unordered_map> - #include <vector> diff --git a/poky/meta/recipes-devtools/ccache/files/0002-config-Include-sys-types.h-for-mode_t-defintion.patch b/poky/meta/recipes-devtools/ccache/files/0002-config-Include-sys-types.h-for-mode_t-defintion.patch deleted file mode 100644 index 0fd77602df..0000000000 --- a/poky/meta/recipes-devtools/ccache/files/0002-config-Include-sys-types.h-for-mode_t-defintion.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f98b390a2d323f7f92fb0492b0943d201afe5b8f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 23 Aug 2022 10:40:53 -0700 -Subject: [PATCH] config: Include sys/types.h for mode_t defintion - -Upstream-Status: Submitted [https://github.com/ccache/ccache/pull/1145] -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- - src/Config.hpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/Config.hpp b/src/Config.hpp -index a9e08ec..9e7af40 100644 ---- a/src/Config.hpp -+++ b/src/Config.hpp -@@ -25,6 +25,8 @@ - - #include "third_party/nonstd/optional.hpp" - -+#include <sys/types.h> -+ - #include <cstdint> - #include <functional> - #include <limits> diff --git a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake index 3ddef12c83..d6a1e0464c 100644 --- a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake +++ b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake @@ -11,10 +11,7 @@ set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY ) set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX "$ENV{OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX}") -# Set CMAKE_SYSTEM_PROCESSOR from the sysroot name (assuming processor-distro-os). -if ($ENV{SDKTARGETSYSROOT} MATCHES "/sysroots/([a-zA-Z0-9_-]+)-.+-.+") - set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_MATCH_1}) -endif() +set( CMAKE_SYSTEM_PROCESSOR $ENV{OECORE_TARGET_ARCH} ) # Include the toolchain configuration subscripts file( GLOB toolchain_config_files "${CMAKE_CURRENT_LIST_FILE}.d/*.cmake" ) diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.13.0.bb b/poky/meta/recipes-devtools/dnf/dnf_4.14.0.bb index bf89ceb275..62df8c4ace 100644 --- a/poky/meta/recipes-devtools/dnf/dnf_4.13.0.bb +++ b/poky/meta/recipes-devtools/dnf/dnf_4.14.0.bb @@ -18,7 +18,7 @@ SRC_URI = "git://github.com/rpm-software-management/dnf.git;branch=master;protoc file://0001-dnf-write-the-log-lock-to-root.patch \ " -SRCREV = "ef09e48fc3ebbbaf4dfa478e6e0532706506f091" +SRCREV = "e50875b3f5790f70720bdb670e1dd2bf4d828744" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" S = "${WORKDIR}/git" @@ -88,3 +88,9 @@ SYSTEMD_SERVICE:${PN} = "dnf-makecache.service dnf-makecache.timer \ SYSTEMD_AUTO_ENABLE ?= "disable" SKIP_RECIPE[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}" + +# Packages for testing purposes +PACKAGES += "${PN}-test-main ${PN}-test-dep" +ALLOW_EMPTY:${PN}-test-main = "1" +ALLOW_EMPTY:${PN}-test-dep = "1" +RRECOMMENDS:${PN}-test-main = "${PN}-test-dep" diff --git a/poky/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb b/poky/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb index 289d939bb9..47d81dac8d 100644 --- a/poky/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb +++ b/poky/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb @@ -9,13 +9,11 @@ SECTION = "base" LICENSE = "GPL-3.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "https://github.com/dosfstools/dosfstools/releases/download/v${PV}/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ " SRC_URI[sha256sum] = "64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527" -UPSTREAM_CHECK_URI = "https://github.com/dosfstools/dosfstools/releases" - -inherit autotools gettext pkgconfig update-alternatives +inherit autotools gettext pkgconfig update-alternatives github-releases EXTRA_OECONF = "--enable-compat-symlinks --without-iconv" diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb index 561112c580..40c51c8814 100644 --- a/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb +++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.187.bb @@ -21,6 +21,7 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ file://run-ptest \ file://ptest.patch \ file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \ + file://0001-tests-Add-libeu-to-tests-needing-error-API.patch \ " SRC_URI:append:libc-musl = " \ file://0003-musl-utils.patch \ @@ -29,7 +30,6 @@ SRC_URI:append:libc-musl = " \ SRC_URI[sha256sum] = "e70b0dfbe610f90c4d1fe0d71af142a4e25c3c4ef9ebab8d2d72b65159d454c8" inherit autotools gettext ptest pkgconfig -PTEST_ENABLED:libc-musl = "0" EXTRA_OECONF = "--program-prefix=eu-" @@ -66,6 +66,7 @@ do_install_ptest() { # copy the files which needed by the cases TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip" install -d -m 755 ${D}${PTEST_PATH}/src + install -d -m 755 ${D}${PTEST_PATH}/lib install -d -m 755 ${D}${PTEST_PATH}/libelf install -d -m 755 ${D}${PTEST_PATH}/libdw install -d -m 755 ${D}${PTEST_PATH}/libdwfl @@ -83,6 +84,7 @@ do_install_ptest() { cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so cp ${B}/libcpu/libcpu.a ${D}${PTEST_PATH}/libcpu/ cp ${B}/libebl/libebl.a ${D}${PTEST_PATH}/libebl/ + cp ${B}/lib/libeu.a ${D}${PTEST_PATH}/lib/ cp ${S}/libelf/*.h ${D}${PTEST_PATH}/libelf/ cp ${S}/libdw/*.h ${D}${PTEST_PATH}/libdw/ cp ${S}/libdwfl/*.h ${D}${PTEST_PATH}/libdwfl/ diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-tests-Add-libeu-to-tests-needing-error-API.patch b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Add-libeu-to-tests-needing-error-API.patch new file mode 100644 index 0000000000..7c1bc87cbf --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Add-libeu-to-tests-needing-error-API.patch @@ -0,0 +1,147 @@ +From c05c787070a390a2061bfcb845e1e35e8b1373b3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 13 Sep 2022 09:33:00 -0700 +Subject: [PATCH] tests: Add libeu to tests needing error() API + +A local error() impelmentation is used when libc does not provide it, +therefore link in libeu.a which contains this function in tests needing +error() API + +Upstream-Status: Submitted [https://sourceware.org/pipermail/elfutils-devel/2022q3/005375.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tests/Makefile.am | 60 +++++++++++++++++++++++------------------------ + 1 file changed, 30 insertions(+), 30 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 3943e17..1acc49b 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -638,17 +638,17 @@ libeu = ../lib/libeu.a + arextract_LDADD = $(libelf) + arsymtest_LDADD = $(libelf) + newfile_LDADD = $(libelf) +-saridx_LDADD = $(libelf) ++saridx_LDADD = $(libeu) $(libelf) + scnnames_LDADD = $(libelf) +-sectiondump_LDADD = $(libelf) ++sectiondump_LDADD = $(libeu) $(libelf) + showptable_LDADD = $(libelf) + hash_LDADD = $(libelf) + test_nlist_CFLAGS =-g -O0 $(EXTRA_NLIST_CFLAGS) + test_nlist_LDADD = $(libelf) + msg_tst_LDADD = $(libelf) + newscn_LDADD = $(libelf) +-early_offscn_LDADD = $(libelf) +-ecp_LDADD = $(libelf) ++early_offscn_LDADD = $(libeu) $(libelf) ++ecp_LDADD = $(libeu) $(libelf) + update1_LDADD = $(libelf) + update2_LDADD = $(libelf) + update3_LDADD = $(libdw) $(libelf) +@@ -662,12 +662,12 @@ get_files_LDADD = $(libdw) $(libelf) + next_files_LDADD = $(libdw) $(libelf) + get_aranges_LDADD = $(libdw) $(libelf) + allfcts_LDADD = $(libdw) $(libelf) +-line2addr_LDADD = $(libdw) $(argp_LDADD) +-addrscopes_LDADD = $(libdw) $(argp_LDADD) +-funcscopes_LDADD = $(libdw) $(argp_LDADD) +-funcretval_LDADD = $(libdw) $(argp_LDADD) +-allregs_LDADD = $(libdw) $(argp_LDADD) +-find_prologues_LDADD = $(libdw) $(argp_LDADD) ++line2addr_LDADD = $(libeu) $(libdw) $(argp_LDADD) ++addrscopes_LDADD = $(libeu) $(libdw) $(argp_LDADD) ++funcscopes_LDADD = $(libeu) $(libdw) $(argp_LDADD) ++funcretval_LDADD = $(libeu) $(libdw) $(argp_LDADD) ++allregs_LDADD = $(libeu) $(libdw) $(argp_LDADD) ++find_prologues_LDADD = $(libeu) $(libdw) $(argp_LDADD) + #show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf) + asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) + asm_tst2_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) +@@ -678,19 +678,19 @@ asm_tst6_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) + asm_tst7_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) + asm_tst8_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) + asm_tst9_LDADD = $(libasm) $(libebl) $(libelf) $(libdw) +-dwflmodtest_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) +-rdwrmmap_LDADD = $(libelf) ++dwflmodtest_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) $(argp_LDADD) ++rdwrmmap_LDADD = $(libeu) $(libelf) + dwfl_bug_addr_overflow_LDADD = $(libdw) $(libebl) $(libelf) + arls_LDADD = $(libelf) +-dwfl_bug_fd_leak_LDADD = $(libdw) $(libebl) $(libelf) ++dwfl_bug_fd_leak_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) + dwfl_bug_report_LDADD = $(libdw) $(libebl) $(libelf) +-dwfl_bug_getmodules_LDADD = $(libdw) $(libebl) $(libelf) +-dwfl_addr_sect_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) ++dwfl_bug_getmodules_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) ++dwfl_addr_sect_LDADD = $(libeu) $(libdw) $(libebl) $(libelf) $(argp_LDADD) + dwarf_getmacros_LDADD = $(libdw) + dwarf_ranges_LDADD = $(libdw) + dwarf_getstring_LDADD = $(libdw) + addrcfi_LDADD = $(libdw) $(libebl) $(libelf) $(argp_LDADD) +-dwarfcfi_LDADD = $(libdw) $(libelf) ++dwarfcfi_LDADD = $(libeu) $(libdw) $(libelf) + test_flag_nobits_LDADD = $(libelf) + rerequest_tag_LDADD = $(libdw) + alldts_LDADD = $(libdw) $(libelf) +@@ -699,35 +699,35 @@ typeiter2_LDADD = $(libdw) $(libelf) + low_high_pc_LDADD = $(libdw) $(libelf) $(argp_LDADD) + test_elf_cntl_gelf_getshdr_LDADD = $(libelf) + dwflsyms_LDADD = $(libdw) $(libelf) $(argp_LDADD) +-dwfllines_LDADD = $(libdw) $(libelf) $(argp_LDADD) +-dwfl_report_elf_align_LDADD = $(libdw) ++dwfllines_LDADD = $(libeu) $(libdw) $(libelf) $(argp_LDADD) ++dwfl_report_elf_align_LDADD = $(libeu) $(libdw) + dwfl_report_segment_contiguous_LDADD = $(libdw) $(libebl) $(libelf) +-varlocs_LDADD = $(libdw) $(libelf) $(argp_LDADD) +-backtrace_LDADD = $(libdw) $(libelf) $(argp_LDADD) ++varlocs_LDADD = $(libeu) $(libdw) $(libelf) $(argp_LDADD) ++backtrace_LDADD = $(libeu) $(libdw) $(libelf) $(argp_LDADD) + # backtrace-child-biarch also uses those *_CFLAGS and *_LDLAGS variables: + backtrace_child_CFLAGS = $(fpie_CFLAGS) + backtrace_child_LDFLAGS = -pie -pthread + backtrace_child_biarch_SOURCES = backtrace-child.c +-backtrace_data_LDADD = $(libdw) $(libelf) ++backtrace_data_LDADD = $(libeu) $(libdw) $(libelf) + backtrace_dwarf_CFLAGS = -Wno-unused-parameter +-backtrace_dwarf_LDADD = $(libdw) $(libelf) +-debuglink_LDADD = $(libdw) $(libelf) +-debugaltlink_LDADD = $(libdw) $(libelf) +-buildid_LDADD = $(libdw) $(libelf) ++backtrace_dwarf_LDADD = $(libeu) $(libdw) $(libelf) ++debuglink_LDADD = $(libeu) $(libdw) $(libelf) ++debugaltlink_LDADD = $(libeu) $(libdw) $(libelf) ++buildid_LDADD = $(libeu) $(libdw) $(libelf) + deleted_LDADD = ./deleted-lib.so + deleted_lib_so_LDFLAGS = -shared + deleted_lib_so_CFLAGS = $(fpic_CFLAGS) -fasynchronous-unwind-tables + aggregate_size_LDADD = $(libdw) $(libelf) $(argp_LDADD) + peel_type_LDADD = $(libdw) $(libelf) $(argp_LDADD) +-vdsosyms_LDADD = $(libdw) $(libelf) +-getsrc_die_LDADD = $(libdw) $(libelf) ++vdsosyms_LDADD = $(libeu) $(libdw) $(libelf) ++getsrc_die_LDADD = $(libeu) $(libdw) $(libelf) + strptr_LDADD = $(libelf) + newdata_LDADD = $(libelf) + elfstrtab_LDADD = $(libelf) +-dwfl_proc_attach_LDADD = $(libdw) ++dwfl_proc_attach_LDADD = $(libeu) $(libdw) + dwfl_proc_attach_LDFLAGS = -pthread -rdynamic $(AM_LDFLAGS) + elfshphehdr_LDADD =$(libelf) +-elfstrmerge_LDADD = $(libdw) $(libelf) ++elfstrmerge_LDADD = $(libeu) $(libdw) $(libelf) + dwelfgnucompressed_LDADD = $(libelf) $(libdw) + elfgetchdr_LDADD = $(libelf) $(libdw) + elfgetzdata_LDADD = $(libelf) +@@ -743,7 +743,7 @@ get_units_split_LDADD = $(libdw) + attr_integrate_skel_LDADD = $(libdw) + all_dwarf_ranges_LDADD = $(libdw) + unit_info_LDADD = $(libdw) +-next_cfi_LDADD = $(libelf) $(libdw) ++next_cfi_LDADD = $(libeu) $(libelf) $(libdw) + elfcopy_LDADD = $(libelf) + addsections_LDADD = $(libelf) + debuginfod_build_id_find_LDADD = $(libelf) $(libdw) +-- +2.37.3 + diff --git a/poky/meta/recipes-devtools/file/file_5.42.bb b/poky/meta/recipes-devtools/file/file_5.43.bb index 8efcf09c9c..102d0fda26 100644 --- a/poky/meta/recipes-devtools/file/file_5.42.bb +++ b/poky/meta/recipes-devtools/file/file_5.43.bb @@ -13,7 +13,7 @@ DEPENDS:class-native = "bzip2-replacement-native" SRC_URI = "git://github.com/file/file.git;branch=master;protocol=https" -SRCREV = "a42b38690579de23403e0aff9b7b2f9cdf55f534" +SRCREV = "011778a2877f75597ed83c1a2716d917770920ee" S = "${WORKDIR}/git" inherit autotools update-alternatives diff --git a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb index 8736b3585e..15cf6f5cca 100644 --- a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb +++ b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb @@ -12,7 +12,7 @@ BBCLASSEXTEND = "native nativesdk" LIC_FILES_CHKSUM = "file://COPYING;md5=e4742cf92e89040b39486a6219b68067 \ file://src/gettext.h;beginline=1;endline=17;md5=9c05dda2f58d89b850c399cf22e1a00c" -SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/flex-${PV}.tar.gz \ file://run-ptest \ file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \ ${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \ @@ -24,16 +24,14 @@ SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.ta SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d" SRC_URI[sha256sum] = "e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995" -# Flex has moved to github from 2.6.1 onwards -UPSTREAM_CHECK_URI = "https://github.com/westes/flex/releases" -UPSTREAM_CHECK_REGEX = "flex-(?P<pver>\d+(\.\d+)+)\.tar" +GITHUB_BASE_URI = "https://github.com/westes/flex/releases" # Disputed - yes there is stack exhaustion but no bug and it is building the # parser, not running it, effectively similar to a compiler ICE. Upstream no plans to address # https://github.com/westes/flex/issues/414 CVE_CHECK_IGNORE += "CVE-2019-6293" -inherit autotools gettext texinfo ptest +inherit autotools gettext texinfo ptest github-releases M4 = "${bindir}/m4" M4:class-native = "${STAGING_BINDIR_NATIVE}/m4" diff --git a/poky/meta/recipes-devtools/gcc/gcc-12.2.inc b/poky/meta/recipes-devtools/gcc/gcc-12.2.inc index 572fd8b669..0dbbecad4a 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-12.2.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-12.2.inc @@ -49,7 +49,6 @@ SRC_URI = "${BASEURI} \ file://0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ file://0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ file://0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ - file://0012-export-CPP.patch \ file://0013-Ensure-target-gcc-headers-can-be-included.patch \ file://0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ file://0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ @@ -59,10 +58,8 @@ SRC_URI = "${BASEURI} \ file://0019-Re-introduce-spe-commandline-options.patch \ file://0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ file://0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ - file://0022-mingw32-Enable-operation_not_supported.patch \ file://0023-libatomic-Do-not-enforce-march-on-aarch64.patch \ file://0024-Fix-install-path-of-linux64.h.patch \ - file://0025-Move-sched.h-include-ahead-of-user-headers.patch \ file://0026-rust-recursion-limit.patch \ file://prefix-map-realpath.patch \ file://hardcoded-paths.patch \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-common.inc b/poky/meta/recipes-devtools/gcc/gcc-common.inc index 2abc0e355d..d3b36937bf 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-common.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-common.inc @@ -32,6 +32,16 @@ def get_gcc_float_setting(bb, d): get_gcc_float_setting[vardepvalue] = "${@get_gcc_float_setting(bb, d)}" +def get_gcc_x86_64_arch_setting(bb, d): + import re + march = re.match(r'^.*-march=([^\s]*)', d.getVar('TUNE_CCARGS')) + if march: + return "--with-arch=%s " % march.group(1) + # The earliest supported x86-64 CPU + return "--with-arch=core2" + +get_gcc_x86_64_arch_setting[vardepvalue] = "${@get_gcc_x86_64_arch_setting(bb, d)}" + def get_gcc_mips_plt_setting(bb, d): if d.getVar('TRANSLATED_TARGET_ARCH') in [ 'mips', 'mipsel' ] and bb.utils.contains('DISTRO_FEATURES', 'mplt', True, False, d): return "--with-mips-plt" diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index a87b446c4f..c36e4cba81 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -9,6 +9,7 @@ GCCMULTILIB = "--enable-multilib" require gcc-configure-common.inc +EXTRA_OECONF += "--with-plugin-ld=ld" EXTRA_OECONF_PATHS = "\ --with-gxx-include-dir=/not/exist${target_includedir}/c++/${BINV} \ --with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \ @@ -134,8 +135,6 @@ do_install () { ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t$suffix $dest$t$suffix done - t=real-ld - ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld$suffix $dest$t$suffix # libquadmath headers need to be available in the gcc libexec dir install -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ diff --git a/poky/meta/recipes-devtools/gcc/gcc-target.inc b/poky/meta/recipes-devtools/gcc/gcc-target.inc index cc65e995c3..7dac3ef422 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-target.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-target.inc @@ -19,7 +19,7 @@ EXTRA_OECONF:append:armv6:class-target = " --with-arch=armv6${ARMFPARCHEXT}" EXTRA_OECONF:append:armv7a:class-target = " --with-arch=armv7-a${ARMFPARCHEXT}" EXTRA_OECONF:append:armv7ve:class-target = " --with-arch=armv7ve${ARMFPARCHEXT}" EXTRA_OECONF:append:arc:class-target = " --with-cpu=${TUNE_PKGARCH}" -EXTRA_OECONF:append:x86-64:class-target = " --with-arch=native" +EXTRA_OECONF:append:x86-64:class-target = " ${@get_gcc_x86_64_arch_setting(bb, d)}" # libcc1 requres gcc_cv_objdump when cross build, but gcc_cv_objdump is # set in subdir gcc, so subdir libcc1 can't use it, export it here to diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch index 5a51ae7d96..bfec4477c1 100644 --- a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch +++ b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch @@ -185,6 +185,19 @@ index bb07cc244e3..ce161d3c853 100644 /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al. +@@ -1265,7 +1270,11 @@ static const char *cc1_options = + %{coverage:-fprofile-arcs -ftest-coverage}\ + %{fprofile-arcs|fprofile-generate*|coverage:\ + %{!fprofile-update=single:\ +- %{pthread:-fprofile-update=prefer-atomic}}}"; ++ %{pthread:-fprofile-update=prefer-atomic}}}" ++#ifdef POISON_BY_DEFAULT ++ " -Werror=poison-system-directories" ++#endif ++ ; + + static const char *asm_options = + "%{-target-help:%:print-asm-header()} " diff --git a/gcc/incpath.cc b/gcc/incpath.cc index bd2a97938eb..c80f100f476 100644 --- a/gcc/incpath.cc diff --git a/poky/meta/recipes-devtools/gcc/gcc/0012-export-CPP.patch b/poky/meta/recipes-devtools/gcc/gcc/0012-export-CPP.patch deleted file mode 100644 index 7e1ebef463..0000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0012-export-CPP.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 20afebc61199cd74481b0b831c1b56465cd37fa0 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 20 Feb 2015 09:40:59 +0000 -Subject: [PATCH] export CPP - -The OE environment sets and exports CPP as being the target gcc. When -building gcc-cross-canadian for a mingw targetted sdk, the following can be found -in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: - -configure:3641: checking for _FILE_OFFSET_BITS value needed for large files -configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 -configure:3666: $? = 0 -configure:3698: result: no -configure:3786: checking how to run the C preprocessor -configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 -configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c -configure:3876: $? = 0 - -Note this is a *build* target (in build-x86_64-linux) so it should be -using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 -headers are very different, using the wrong cpp is a real problem. It is leaking -into configure through the CPP variable. Ultimately this leads to build -failures related to not being able to include a process.h file for pem-unix.c. - -The fix is to ensure we export a sane CPP value into the build -environment when using build targets. We could define a CPP_FOR_BUILD value which may be -the version which needs to be upstreamed but for now, this fix is good enough to -avoid the problem. - -RP 22/08/2013 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.in b/Makefile.in -index 1d9c83cc566..11819667751 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ - AR="$(AR_FOR_BUILD)"; export AR; \ - AS="$(AS_FOR_BUILD)"; export AS; \ - CC="$(CC_FOR_BUILD)"; export CC; \ -+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPP="$(CPP_FOR_BUILD)"; export CPP; \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0022-mingw32-Enable-operation_not_supported.patch b/poky/meta/recipes-devtools/gcc/gcc/0022-mingw32-Enable-operation_not_supported.patch deleted file mode 100644 index f88ad51ee8..0000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0022-mingw32-Enable-operation_not_supported.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 061cf79e7b6e89fdf0f2630ddaebbf1d7b271ac3 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 12 May 2020 10:39:09 -0700 -Subject: [PATCH] mingw32: Enable operation_not_supported - -Fixes nativesdk build errors on mingw32 gcc-runtime - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - libstdc++-v3/config/os/mingw32/error_constants.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libstdc++-v3/config/os/mingw32/error_constants.h b/libstdc++-v3/config/os/mingw32/error_constants.h -index da5f4c2ac85..e855c86267c 100644 ---- a/libstdc++-v3/config/os/mingw32/error_constants.h -+++ b/libstdc++-v3/config/os/mingw32/error_constants.h -@@ -107,7 +107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - #ifdef EPERM - operation_not_permitted = EPERM, - #endif --// operation_not_supported = EOPNOTSUPP, -+ operation_not_supported = EOPNOTSUPP, - #ifdef EWOULDBLOCK - operation_would_block = EWOULDBLOCK, - #endif diff --git a/poky/meta/recipes-devtools/gcc/gcc/0025-Move-sched.h-include-ahead-of-user-headers.patch b/poky/meta/recipes-devtools/gcc/gcc/0025-Move-sched.h-include-ahead-of-user-headers.patch deleted file mode 100644 index d4aeacfed5..0000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0025-Move-sched.h-include-ahead-of-user-headers.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 7422adfb471f4b4f2ec870124064632d55f72e50 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 11 Apr 2022 15:46:18 -0700 -Subject: [PATCH] Move sched.h include ahead of user headers - -Fix attempt to use poisoned calloc error, this moves the sched.h before -using system.h from gcc headers which includes #pragma GCC poison calloc - -Fixes -In file included from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/pthread.h:30, - from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/c++/12.0.1/aarch64-yoe-linux-musl/bits/gthr-default.h:35, - from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/c++/12.0.1/aarch64-yoe-linux-musl/bits/gthr.h:148, - from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/c++/12.0.1/ext/atomicity.h:35, - from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/c++/12.0.1/bits/shared_ptr_base.h:61, - from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/c++/12.0.1/bits/shared_ptr.h:53, - from /mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/c++/12.0.1/memory:77, - from ../../../../../../../work-shared/gcc-12.0.1-r0/gcc-12-20220410/libcc1/deleter.hh:23, - from ../../../../../../../work-shared/gcc-12.0.1-r0/gcc-12-20220410/libcc1/rpc.hh:25, - from ../../../../../../../work-shared/gcc-12.0.1-r0/gcc-12-20220410/libcc1/libcc1plugin.cc:67: -/mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/sched.h:84:7: error: attempt to use poisoned "calloc" - 84 | void *calloc(size_t, size_t); - | ^ -/mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux-musl/gcc/12.0.1-r0/recipe-sysroot/usr/include/sched.h:124:36: error: attempt to use poisoned "calloc" - 124 | #define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n))) - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - libcc1/libcc1plugin.cc | 1 + - libcc1/libcp1plugin.cc | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/libcc1/libcc1plugin.cc b/libcc1/libcc1plugin.cc -index 12ab5a57c8d..fff9bfab18b 100644 ---- a/libcc1/libcc1plugin.cc -+++ b/libcc1/libcc1plugin.cc -@@ -17,6 +17,7 @@ - along with GCC; see the file COPYING3. If not see - <http://www.gnu.org/licenses/>. */ - -+#include <sched.h> - #include <cc1plugin-config.h> - - #undef PACKAGE_NAME -diff --git a/libcc1/libcp1plugin.cc b/libcc1/libcp1plugin.cc -index 83dab7f58b1..0b83ce7a09d 100644 ---- a/libcc1/libcp1plugin.cc -+++ b/libcc1/libcp1plugin.cc -@@ -18,6 +18,7 @@ - along with GCC; see the file COPYING3. If not see - <http://www.gnu.org/licenses/>. */ - -+#include <sched.h> - #include <cc1plugin-config.h> - - #undef PACKAGE_NAME diff --git a/poky/meta/recipes-devtools/git/git_2.37.2.bb b/poky/meta/recipes-devtools/git/git_2.37.3.bb index b7858e2e46..2eed85e807 100644 --- a/poky/meta/recipes-devtools/git/git_2.37.2.bb +++ b/poky/meta/recipes-devtools/git/git_2.37.3.bb @@ -165,4 +165,4 @@ EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ " EXTRA_OEMAKE += "NO_GETTEXT=1" -SRC_URI[tarball.sha256sum] = "4c428908e3a2dca4174df6ef49acc995a4fdb1b45205a2c79794487a33bc06e5" +SRC_URI[tarball.sha256sum] = "181f65587155ea48c682f63135678ec53055adf1532428752912d356e46b64a8" diff --git a/poky/meta/recipes-devtools/go/go-native_1.19.bb b/poky/meta/recipes-devtools/go/go-native_1.19.bb index 76c0ab73a6..ddf25b2c9b 100644 --- a/poky/meta/recipes-devtools/go/go-native_1.19.bb +++ b/poky/meta/recipes-devtools/go/go-native_1.19.bb @@ -5,7 +5,7 @@ require go-${PV}.inc inherit native -SRC_URI:append = " https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" +SRC_URI += "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" export GOOS = "${BUILD_GOOS}" diff --git a/poky/meta/recipes-devtools/go/go-runtime.inc b/poky/meta/recipes-devtools/go/go-runtime.inc index e18339cddb..02601f7992 100644 --- a/poky/meta/recipes-devtools/go/go-runtime.inc +++ b/poky/meta/recipes-devtools/go/go-runtime.inc @@ -50,6 +50,8 @@ do_install() { rm -rf ${D}${libdir}/go/pkg/tool rm -rf ${D}${libdir}/go/pkg/obj rm -rf ${D}${libdir}/go/pkg/bootstrap + # the cmd directory is built for the native arch so if BUILD == TARGET + rm -rf ${D}${libdir}/go/pkg/${BUILD_GOTUPLE}/cmd find src -mindepth 1 -maxdepth 1 -type d | while read srcdir; do cp --preserve=mode,timestamps -R $srcdir ${D}${libdir}/go/src/ done diff --git a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.18.bb b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.19.bb index dd0a1f8f95..fa1fbc8f0d 100644 --- a/poky/meta/recipes-devtools/libcomps/libcomps_0.1.18.bb +++ b/poky/meta/recipes-devtools/libcomps/libcomps_0.1.19.bb @@ -8,7 +8,7 @@ SRC_URI = "git://github.com/rpm-software-management/libcomps.git;branch=master;p file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ " -SRCREV = "dee4ae37f7818709802de28c4d16fa823bd83ae2" +SRCREV = "9322bdcf06630cc094f094f944d7d0e2cb798b73" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.68.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.69.0.bb index 86cf41c102..da2550d323 100644 --- a/poky/meta/recipes-devtools/libdnf/libdnf_0.68.0.bb +++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.69.0.bb @@ -13,7 +13,7 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master;p file://0001-libdnf-dnf-context.cpp-do-not-try-to-access-BDB-data.patch \ " -SRCREV = "388e7699f8a75fa81aca05d09389acea7e489168" +SRCREV = "5c6d9cd6e5955e7038722f091396607c60fcbdd1" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!4\.90)\d+(\.\d+)+)" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/librepo/librepo/0001-metadata_downloader-Include-unistd.h-for-lseek.patch b/poky/meta/recipes-devtools/librepo/librepo/0001-metadata_downloader-Include-unistd.h-for-lseek.patch deleted file mode 100644 index 22b3110a61..0000000000 --- a/poky/meta/recipes-devtools/librepo/librepo/0001-metadata_downloader-Include-unistd.h-for-lseek.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5c63ec2e2d4726268ace85e5c61727cbd811d982 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 27 Aug 2022 09:00:24 -0700 -Subject: [PATCH] metadata_downloader: Include unistd.h for lseek() - -This is found when compiling on musl systems - -Fixes - -metadata_downloader.c:331:9: error: call to undeclared function 'lseek'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] - lseek(fd_value, SEEK_SET, 0); - ^ - -Upstream-Status: Submitted [https://github.com/rpm-software-management/librepo/pull/263] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - librepo/metadata_downloader.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/librepo/metadata_downloader.c b/librepo/metadata_downloader.c -index 123c77b..6604255 100644 ---- a/librepo/metadata_downloader.c -+++ b/librepo/metadata_downloader.c -@@ -24,6 +24,7 @@ - #include <assert.h> - #include <string.h> - #include <errno.h> -+#include <unistd.h> - #include <sys/stat.h> - - #include "librepo/librepo.h" --- -2.37.2 - diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.14.4.bb b/poky/meta/recipes-devtools/librepo/librepo_1.14.5.bb index 2b8bd132f3..46cfce53ff 100644 --- a/poky/meta/recipes-devtools/librepo/librepo_1.14.4.bb +++ b/poky/meta/recipes-devtools/librepo/librepo_1.14.5.bb @@ -8,10 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" SRC_URI = "git://github.com/rpm-software-management/librepo.git;branch=master;protocol=https \ file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ - file://0001-metadata_downloader-Include-unistd.h-for-lseek.patch \ " -SRCREV = "2bd1041c741c85bc196ca01dcca1eae6099eb742" +SRCREV = "f4b915be5e04e88263097f65addfcac5919fef41" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/meson/meson_0.63.1.bb b/poky/meta/recipes-devtools/meson/meson_0.63.2.bb index 7f77a7de34..890faacec9 100644 --- a/poky/meta/recipes-devtools/meson/meson_0.63.1.bb +++ b/poky/meta/recipes-devtools/meson/meson_0.63.2.bb @@ -7,7 +7,8 @@ interface for modern software development tools and practices." LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" -SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz \ +GITHUB_BASE_URI = "https://github.com/mesonbuild/meson/releases/" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/meson-${PV}.tar.gz \ file://meson-setup.py \ file://meson-wrapper \ file://0001-python-module-do-not-manipulate-the-environment-when.patch \ @@ -17,12 +18,9 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P file://0001-is_debianlike-always-return-False.patch \ file://0001-Check-for-clang-before-guessing-gcc-or-lcc.patch \ " -SRC_URI[sha256sum] = "06fe13297213d6ff0121c5d5aab25a56ef938ffec57414ed6086fda272cb65e9" +SRC_URI[sha256sum] = "16222f17ef76be0542c91c07994f9676ae879f46fc21c0c786a21ef2cb518bbf" -UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases" -UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar" - -inherit python_setuptools_build_meta +inherit python_setuptools_build_meta github-releases RDEPENDS:${PN} = "ninja python3-modules python3-pkg-resources" diff --git a/poky/meta/recipes-devtools/ninja/ninja_1.11.0.bb b/poky/meta/recipes-devtools/ninja/ninja_1.11.1.bb index 4ec361cc1a..255f5efb70 100644 --- a/poky/meta/recipes-devtools/ninja/ninja_1.11.0.bb +++ b/poky/meta/recipes-devtools/ninja/ninja_1.11.1.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e" DEPENDS = "re2c-native ninja-native" -SRCREV = "51edeeb063a82693573db43782d9e3733b2840e4" +SRCREV = "a524bf3f6bacd1b4ad85d719eed2737d8562f27a" SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release;protocol=https" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)" diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.6.0.bb b/poky/meta/recipes-devtools/opkg/opkg_0.6.0.bb index 7b351e8123..4cd589cd29 100644 --- a/poky/meta/recipes-devtools/opkg/opkg_0.6.0.bb +++ b/poky/meta/recipes-devtools/opkg/opkg_0.6.0.bb @@ -39,6 +39,7 @@ PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" +PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" EXTRA_OECONF:class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" diff --git a/poky/meta/recipes-devtools/perl-cross/perlcross_1.4.bb b/poky/meta/recipes-devtools/perl-cross/perlcross_1.4.bb index 17ce901646..98a8fa3f8a 100644 --- a/poky/meta/recipes-devtools/perl-cross/perlcross_1.4.bb +++ b/poky/meta/recipes-devtools/perl-cross/perlcross_1.4.bb @@ -8,16 +8,16 @@ LICENSE = "Artistic-1.0 | GPL-1.0-or-later" # but is not provided inside the release tarballs LIC_FILES_CHKSUM = "file://${WORKDIR}/README.md;md5=252fcce2026b765fee1ad74d2fb07a3b" -inherit allarch +inherit allarch github-releases -SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross-${PV}.tar.gz;name=perl-cross \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/perl-cross-${PV}.tar.gz;name=perl-cross \ file://README.md \ file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ file://determinism.patch \ file://0001-Makefile-check-the-file-if-patched-or-not.patch \ file://0001-configure_func.sh-Add-_GNU_SOURCE-define-and-functio.patch \ " -UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/" +GITHUB_BASE_URI = "https://github.com/arsv/perl-cross/releases/" SRC_URI[perl-cross.sha256sum] = "be9d9f9f7148edff7a2f9695ba3cb7e3975eff6b25a9a81dd311725fd757aa91" diff --git a/poky/meta/recipes-devtools/python/python3-certifi_2022.6.15.bb b/poky/meta/recipes-devtools/python/python3-certifi_2022.9.14.bb index f78409b177..117a32b1d4 100644 --- a/poky/meta/recipes-devtools/python/python3-certifi_2022.6.15.bb +++ b/poky/meta/recipes-devtools/python/python3-certifi_2022.9.14.bb @@ -5,9 +5,9 @@ which ships with the Requests codebase, and is derived from Mozilla Firefox's ca HOMEPAGE = " http://certifi.io/" LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;md5=67da0714c3f9471067b729eca6c9fbe8" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3c2b7404369c587c3559afb604fce2f2" -SRC_URI[sha256sum] = "84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d" +SRC_URI[sha256sum] = "36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5" inherit pypi setuptools3 diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2022.8.1.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2022.8.3.bb index 38f646e50a..bc819c0dd6 100644 --- a/poky/meta/recipes-devtools/python/python3-dtschema_2022.8.1.bb +++ b/poky/meta/recipes-devtools/python/python3-dtschema_2022.8.3.bb @@ -7,7 +7,7 @@ inherit pypi setuptools3 PYPI_PACKAGE = "dtschema" -SRC_URI[sha256sum] = "3e56a9920944223d6f93fd51ada19dd8db554ac9182ef52c1c5c9d4966ab30aa" +SRC_URI[sha256sum] = "128c88a393cd04154cef4d4b10a643e4473ae290b436e8e61d2e97ae8e53255d" DEPENDS += "python3-setuptools-scm-native" RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987" diff --git a/poky/meta/recipes-devtools/python/python3-hatchling_1.8.1.bb b/poky/meta/recipes-devtools/python/python3-hatchling_1.9.0.bb index bfdb664715..011f5ed110 100644 --- a/poky/meta/recipes-devtools/python/python3-hatchling_1.8.1.bb +++ b/poky/meta/recipes-devtools/python/python3-hatchling_1.9.0.bb @@ -8,7 +8,7 @@ inherit pypi python_hatchling DEPENDS += "python3-pluggy-native python3-tomli-native python3-pathspec-native python3-packaging-native python3-editables-native" DEPENDS:remove:class-native = "python3-hatchling-native" -SRC_URI[sha256sum] = "448b04b23faed669b2b565b998ac955af4feea66c5deed3a1212ac9399d2e1cd" +SRC_URI[sha256sum] = "b57c7362f437b9426e4b94228a21d2ac5804fbb2abcb01adde2544a35bb303cd" do_compile:prepend() { export PYTHONPATH=src diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.46.11.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.54.5.bb index 1d9772d4ff..9adb614493 100644 --- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.46.11.bb +++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.54.5.bb @@ -13,7 +13,7 @@ SRC_URI += " \ file://test_rle.py \ " -SRC_URI[sha256sum] = "f5c1cf61b24b094355577a6b8fbbb8eb54c1b0216fbc0519af97c46bddf43c42" +SRC_URI[sha256sum] = "8a9056825695f415bfad4e808ae719fc01383a9ab659775319724365afcc7ec7" RDEPENDS:${PN} += " \ python3-attrs \ diff --git a/poky/meta/recipes-devtools/python/python3-idna_3.3.bb b/poky/meta/recipes-devtools/python/python3-idna_3.4.bb index ee92f44fd5..41a666f3f4 100644 --- a/poky/meta/recipes-devtools/python/python3-idna_3.3.bb +++ b/poky/meta/recipes-devtools/python/python3-idna_3.4.bb @@ -3,14 +3,9 @@ HOMEPAGE = "https://github.com/kjd/idna" LICENSE = "BSD-3-Clause & Python-2.0 & Unicode-TOU" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1" -SRC_URI[sha256sum] = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d" +SRC_URI[sha256sum] = "814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4" -inherit pypi setuptools3 - -# Remove bundled egg-info -do_compile:prepend() { - rm -rf ${S}/idna.egg-info -} +inherit pypi python_flit_core RDEPENDS:${PN}:class-target = "\ ${PYTHON_PN}-codecs \ diff --git a/poky/meta/recipes-devtools/python/python3-lxml_4.9.1.bb b/poky/meta/recipes-devtools/python/python3-lxml_4.9.1.bb new file mode 100644 index 0000000000..92a30f7907 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-lxml_4.9.1.bb @@ -0,0 +1,42 @@ +SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \ +libxslt libraries. It provides safe and convenient access to these \ +libraries using the ElementTree API. It extends the ElementTree API \ +significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \ +C14N and much more." +HOMEPAGE = "https://lxml.de/" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause & GPL-2.0-only & MIT & PSF-2.0" +LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \ + file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \ + file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \ + file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=fc85684a8dd5fa272c086bceb0d99e10 \ + file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \ + file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \ + " + +DEPENDS += "libxml2 libxslt" + +SRC_URI[sha256sum] = "fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f" + +SRC_URI += "${PYPI_SRC_URI}" +inherit pkgconfig pypi setuptools3 + +# {standard input}: Assembler messages: +# {standard input}:1488805: Error: branch out of range +DEBUG_OPTIMIZATION:remove:mips = " -Og" +DEBUG_OPTIMIZATION:append:mips = " -O" +BUILD_OPTIMIZATION:remove:mips = " -Og" +BUILD_OPTIMIZATION:append:mips = " -O" + +DEBUG_OPTIMIZATION:remove:mipsel = " -Og" +DEBUG_OPTIMIZATION:append:mipsel = " -O" +BUILD_OPTIMIZATION:remove:mipsel = " -Og" +BUILD_OPTIMIZATION:append:mipsel = " -O" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN} += "libxml2 libxslt ${PYTHON_PN}-compression" + +CLEANBROKEN = "1" diff --git a/poky/meta/recipes-devtools/python/python3-mako_1.2.1.bb b/poky/meta/recipes-devtools/python/python3-mako_1.2.2.bb index 8155c37984..e3774ee621 100644 --- a/poky/meta/recipes-devtools/python/python3-mako_1.2.1.bb +++ b/poky/meta/recipes-devtools/python/python3-mako_1.2.2.bb @@ -8,7 +8,7 @@ PYPI_PACKAGE = "Mako" inherit pypi python_setuptools_build_meta -SRC_URI[sha256sum] = "f054a5ff4743492f1aa9ecc47172cb33b42b9d993cffcc146c9de17e717b0307" +SRC_URI[sha256sum] = "3724869b363ba630a272a5f89f68c070352137b8fd1757650017b7e06fda163f" RDEPENDS:${PN} = "${PYTHON_PN}-html \ ${PYTHON_PN}-markupsafe \ diff --git a/poky/meta/recipes-devtools/python/python3-numpy_1.23.2.bb b/poky/meta/recipes-devtools/python/python3-numpy_1.23.3.bb index 960dcf9410..9d086aedfd 100644 --- a/poky/meta/recipes-devtools/python/python3-numpy_1.23.2.bb +++ b/poky/meta/recipes-devtools/python/python3-numpy_1.23.3.bb @@ -7,20 +7,19 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8026691468924fb6ec155dadfe2a1a7f" SRCNAME = "numpy" -SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ file://0001-numpy-core-Define-RISCV-32-support.patch \ file://run-ptest \ file://0001-generate_umath.py-do-not-write-full-path-to-output-f.patch \ " -SRC_URI[sha256sum] = "b78d00e48261fbbd04aa0d7427cf78d18401ee0abd89c7559bbf422e5b1c7d01" +SRC_URI[sha256sum] = "51bf49c0cd1d52be0a240aa66f3458afc4b95d8993d2d04f0d91fa60c10af6cd" -UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" -UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar" +GITHUB_BASE_URI = "https://github.com/numpy/numpy/releases" DEPENDS += "python3-cython-native" -inherit ptest setuptools3 +inherit ptest setuptools3 github-releases S = "${WORKDIR}/numpy-${PV}" diff --git a/poky/meta/recipes-devtools/python/python3-pathspec_0.9.0.bb b/poky/meta/recipes-devtools/python/python3-pathspec_0.10.1.bb index 641f1cfd87..8f2af0ec99 100644 --- a/poky/meta/recipes-devtools/python/python3-pathspec_0.9.0.bb +++ b/poky/meta/recipes-devtools/python/python3-pathspec_0.10.1.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "MPL-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad" -SRC_URI[sha256sum] = "e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" +SRC_URI[sha256sum] = "7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d" inherit pypi setuptools3 diff --git a/poky/meta/recipes-devtools/python/python3-psutil_5.9.1.bb b/poky/meta/recipes-devtools/python/python3-psutil_5.9.2.bb index 04b6fb02de..5b31014657 100644 --- a/poky/meta/recipes-devtools/python/python3-psutil_5.9.1.bb +++ b/poky/meta/recipes-devtools/python/python3-psutil_5.9.2.bb @@ -3,7 +3,7 @@ LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=e35fd9f271d19d5f742f20a9d1f8bb8b" HOMEPAGE = "https://pypi.org/project/psutil/" -SRC_URI[sha256sum] = "57f1819b5d9e95cdfb0c881a8a5b7d542ed0b7c522d575706a80bedc848c8954" +SRC_URI[sha256sum] = "feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c" inherit pypi setuptools3 diff --git a/poky/meta/recipes-devtools/python/python3-pycairo_1.21.0.bb b/poky/meta/recipes-devtools/python/python3-pycairo_1.21.0.bb index 29452c7660..b692067809 100644 --- a/poky/meta/recipes-devtools/python/python3-pycairo_1.21.0.bb +++ b/poky/meta/recipes-devtools/python/python3-pycairo_1.21.0.bb @@ -10,14 +10,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=f3713ca2c28d9312ad718520b6dc3eee \ # cairo >= 1.14 DEPENDS = "cairo python3" -SRC_URI = "https://github.com/pygobject/pycairo/releases/download/v${PV}/pycairo-${PV}.tar.gz" -UPSTREAM_CHECK_URI = "https://github.com/pygobject/pycairo/releases/" +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/pycairo-${PV}.tar.gz" +GITHUB_BASE_URI = "https://github.com/pygobject/pycairo/releases/" SRC_URI[sha256sum] = "251907f18a552df938aa3386657ff4b5a4937dde70e11aa042bc297957f4b74b" S = "${WORKDIR}/pycairo-${PV}" -inherit meson pkgconfig python3targetconfig +inherit meson pkgconfig python3targetconfig github-releases CFLAGS += "-fPIC" diff --git a/poky/meta/recipes-devtools/python/python3-pytest_7.1.2.bb b/poky/meta/recipes-devtools/python/python3-pytest_7.1.3.bb index c642d9a232..373f7f35fa 100644 --- a/poky/meta/recipes-devtools/python/python3-pytest_7.1.2.bb +++ b/poky/meta/recipes-devtools/python/python3-pytest_7.1.3.bb @@ -5,7 +5,7 @@ DESCRIPTION = "The pytest framework makes it easy to write small tests, yet scal LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c" -SRC_URI[sha256sum] = "a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45" +SRC_URI[sha256sum] = "4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39" DEPENDS += "python3-setuptools-scm-native" diff --git a/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb b/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb index 4abd181acf..e374979cb4 100644 --- a/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb +++ b/poky/meta/recipes-devtools/python/python3-rfc3986-validator_0.1.1.bb @@ -13,7 +13,7 @@ UPSTREAM_CHECK_REGEX = "/rfc3986-validator/(?P<pver>(\d+[\.\-_]*)+)/" inherit pypi setuptools3 -SRC_URI:append = " \ +SRC_URI += "\ file://0001-setup.py-move-pytest-runner-to-test_requirements.patch \ " diff --git a/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/poky/meta/recipes-devtools/python/python3/python3-manifest.json index 2f5dad6486..2205cf2d2d 100644 --- a/poky/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/poky/meta/recipes-devtools/python/python3/python3-manifest.json @@ -1248,5 +1248,16 @@ "${libdir}/python${PYTHON_MAJMIN}/xmlrpc/__pycache__" ], "cached": [] + }, + "zoneinfo": { + "summary": "IANA time zone support", + "rdepends": [ + "core" + ], + "files": [ + "${libdir}/python${PYTHON_MAJMIN}/zoneinfo", + "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_zoneinfo.*.so" + ], + "cached": [] } } diff --git a/poky/meta/recipes-devtools/python/python3_3.10.6.bb b/poky/meta/recipes-devtools/python/python3_3.10.6.bb index 1b28728732..1f8b60a7a5 100644 --- a/poky/meta/recipes-devtools/python/python3_3.10.6.bb +++ b/poky/meta/recipes-devtools/python/python3_3.10.6.bb @@ -105,6 +105,7 @@ PACKAGECONFIG:class-target ??= "readline gdbm ${@bb.utils.filter('DISTRO_FEATURE PACKAGECONFIG:class-native ??= "readline gdbm" PACKAGECONFIG:class-nativesdk ??= "readline gdbm" PACKAGECONFIG[readline] = ",,readline" +PACKAGECONFIG[editline] = "--with-readline=editline,,libedit,,,readline" # Use profile guided optimisation by running PyBench inside qemu-user PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" PACKAGECONFIG[tk] = ",,tk" diff --git a/poky/meta/recipes-devtools/qemu/qemu-native_7.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu-native_7.1.0.bb index a94dc0b61e..a94dc0b61e 100644 --- a/poky/meta/recipes-devtools/qemu/qemu-native_7.0.0.bb +++ b/poky/meta/recipes-devtools/qemu/qemu-native_7.1.0.bb diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_7.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_7.1.0.bb index 5ccede5095..04c7c2a6ac 100644 --- a/poky/meta/recipes-devtools/qemu/qemu-system-native_7.0.0.bb +++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_7.1.0.bb @@ -28,5 +28,6 @@ do_install:append() { rm -rf ${D}${includedir}/qemu-plugin.h # Install qmp.py to be used with testimage - install -D ${S}/python/qemu/qmp/__init__.py ${D}${libdir}/qemu-python/qmp.py + install -d ${D}${libdir}/qemu-python/qmp/ + install -D ${S}/python/qemu/qmp/* ${D}${libdir}/qemu-python/qmp/ } diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc index 56fc7aaf55..612abd240a 100644 --- a/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/poky/meta/recipes-devtools/qemu/qemu.inc @@ -27,16 +27,12 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0008-tests-meson.build-use-relative-path-to-refer-to-file.patch \ file://0009-Define-MAP_SYNC-and-MAP_SHARED_VALIDATE-on-needed-li.patch \ file://0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch \ - file://qemu-7.0.0-glibc-2.36.patch \ - file://CVE-2022-35414.patch \ - file://CVE-2021-3507_1.patch \ - file://CVE-2021-3507_2.patch \ - file://CVE-2022-0216_1.patch \ - file://CVE-2022-0216_2.patch \ + file://0001-net-tulip-Restrict-DMA-engine-to-memories.patch \ + file://arm-cpreg-fix.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar" -SRC_URI[sha256sum] = "f6b375c7951f728402798b0baabb2d86478ca53d44cedbefabbe1c46bf46f839" +SRC_URI[sha256sum] = "a0634e536bded57cf38ec8a751adb124b89c776fe0846f21ab6c6728f1cbbbe6" SRC_URI:append:class-target = " file://cross.patch" SRC_URI:append:class-nativesdk = " file://cross.patch" @@ -75,8 +71,14 @@ do_install_ptest() { # Strip the paths from the QEMU variable, we can use PATH sed -i -e "s#^QEMU=.*/qemu-#QEMU=qemu-#g" ${D}${PTEST_PATH}/tests/tcg/*.mak - # Strip compiler flags as they break reproducibility - sed -i -e "s,CROSS_CC_GUEST=.*,CROSS_CC_GUEST=," ${D}${PTEST_PATH}/tests/tcg/*.mak + # Strip compiler flags as they break reproducibility + sed -i -e "s,^CC=.*,CC=gcc," \ + -e "s,^CCAS=.*,CCAS=gcc," \ + -e "s,^LD=.*,LD=ld," ${D}${PTEST_PATH}/tests/tcg/*.mak + + # Update SRC_PATH variable to the right place on target + sed -i -e "s#^SRC_PATH=.*#SRC_PATH=${PTEST_PATH}#g" ${D}${PTEST_PATH}/tests/tcg/*.mak + } # QEMU_TARGETS is overridable variable @@ -151,7 +153,6 @@ PACKAGECONFIG[uring] = "--enable-linux-io-uring,--disable-linux-io-uring,liburin PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest" PACKAGECONFIG[vnc-sasl] = "--enable-vnc --enable-vnc-sasl,--disable-vnc-sasl,cyrus-sasl," PACKAGECONFIG[vnc-jpeg] = "--enable-vnc --enable-vnc-jpeg,--disable-vnc-jpeg,jpeg," -PACKAGECONFIG[vnc-png] = "--enable-vnc --enable-vnc-png,--disable-vnc-png,libpng," PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,curl," PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss," PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses," diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-net-tulip-Restrict-DMA-engine-to-memories.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-net-tulip-Restrict-DMA-engine-to-memories.patch new file mode 100644 index 0000000000..6c85a77ba7 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-net-tulip-Restrict-DMA-engine-to-memories.patch @@ -0,0 +1,64 @@ +CVE: CVE-2022-2962 +Upstream-Status: Backport +Signed-off-by: Ross Burton <ross.burton@arm.com> + +From 5c5c50b0a73d78ffe18336c9996fef5eae9bbbb0 Mon Sep 17 00:00:00 2001 +From: Zheyu Ma <zheyuma97@gmail.com> +Date: Sun, 21 Aug 2022 20:43:43 +0800 +Subject: [PATCH] net: tulip: Restrict DMA engine to memories + +The DMA engine is started by I/O access and then itself accesses the +I/O registers, triggering a reentrancy bug. + +The following log can reveal it: +==5637==ERROR: AddressSanitizer: stack-overflow + #0 0x5595435f6078 in tulip_xmit_list_update qemu/hw/net/tulip.c:673 + #1 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13 + #2 0x559544637f86 in memory_region_write_accessor qemu/softmmu/memory.c:492:5 + #3 0x5595446379fa in access_with_adjusted_size qemu/softmmu/memory.c:554:18 + #4 0x5595446372fa in memory_region_dispatch_write qemu/softmmu/memory.c + #5 0x55954468b74c in flatview_write_continue qemu/softmmu/physmem.c:2825:23 + #6 0x559544683662 in flatview_write qemu/softmmu/physmem.c:2867:12 + #7 0x5595446833f3 in address_space_write qemu/softmmu/physmem.c:2963:18 + #8 0x5595435fb082 in dma_memory_rw_relaxed qemu/include/sysemu/dma.h:87:12 + #9 0x5595435fb082 in dma_memory_rw qemu/include/sysemu/dma.h:130:12 + #10 0x5595435fb082 in dma_memory_write qemu/include/sysemu/dma.h:171:12 + #11 0x5595435fb082 in stl_le_dma qemu/include/sysemu/dma.h:272:1 + #12 0x5595435fb082 in stl_le_pci_dma qemu/include/hw/pci/pci.h:910:1 + #13 0x5595435fb082 in tulip_desc_write qemu/hw/net/tulip.c:101:9 + #14 0x5595435f7e3d in tulip_xmit_list_update qemu/hw/net/tulip.c:706:9 + #15 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13 + +Fix this bug by restricting the DMA engine to memories regions. + +Signed-off-by: Zheyu Ma <zheyuma97@gmail.com> +Signed-off-by: Jason Wang <jasowang@redhat.com> +--- + hw/net/tulip.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hw/net/tulip.c b/hw/net/tulip.c +index 097e905bec..b9e42c322a 100644 +--- a/hw/net/tulip.c ++++ b/hw/net/tulip.c +@@ -70,7 +70,7 @@ static const VMStateDescription vmstate_pci_tulip = { + static void tulip_desc_read(TULIPState *s, hwaddr p, + struct tulip_descriptor *desc) + { +- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; ++ const MemTxAttrs attrs = { .memory = true }; + + if (s->csr[0] & CSR0_DBO) { + ldl_be_pci_dma(&s->dev, p, &desc->status, attrs); +@@ -88,7 +88,7 @@ static void tulip_desc_read(TULIPState *s, hwaddr p, + static void tulip_desc_write(TULIPState *s, hwaddr p, + struct tulip_descriptor *desc) + { +- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; ++ const MemTxAttrs attrs = { .memory = true }; + + if (s->csr[0] & CSR0_DBO) { + stl_be_pci_dma(&s->dev, p, desc->status, attrs); +-- +2.34.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch b/poky/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch index 826d42fc20..810c74fabd 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0010-hw-pvrdma-Protect-against-buggy-or-malicious-guest-d.patch @@ -1,28 +1,28 @@ -From 52c38fa9f3a790a7c2805e7d8cce3ea9262d6ae2 Mon Sep 17 00:00:00 2001 +CVE: CVE-2022-1050 +Upstream-Status: Submitted [https://lore.kernel.org/qemu-devel/20220403095234.2210-1-yuval.shaia.ml@gmail.com/] +Signed-off-by: Ross Burton <ross.burton@arm.com> + +From dbdef95c272e8f3ec037c3db4197c66002e30995 Mon Sep 17 00:00:00 2001 From: Yuval Shaia <yuval.shaia.ml@gmail.com> -Date: Tue, 12 Apr 2022 11:01:51 +0100 -Subject: [PATCH 10/12] hw/pvrdma: Protect against buggy or malicious guest - driver +Date: Sun, 3 Apr 2022 12:52:34 +0300 +Subject: [PATCH] hw/pvrdma: Protect against buggy or malicious guest driver Guest driver might execute HW commands when shared buffers are not yet allocated. -This might happen on purpose (malicious guest) or because some other -guest/host address mapping. +This could happen on purpose (malicious guest) or because of some other +guest/host address mapping error. We need to protect againts such case. -Reported-by: Mauro Matteo Cascella <mcascell@redhat.com> -Signed-off-by: Yuval Shaia <yuval.shaia.ml@gmail.com> - -CVE: CVE-2022-1050 -Upstream-Status: Submitted [https://lists.nongnu.org/archive/html/qemu-devel/2022-03/msg05197.html] +Fixes: CVE-2022-1050 +Reported-by: Raven <wxhusst@gmail.com> +Signed-off-by: Yuval Shaia <yuval.shaia.ml@gmail.com> --- - hw/rdma/vmw/pvrdma_cmd.c | 6 ++++++ - hw/rdma/vmw/pvrdma_main.c | 3 ++- - 2 files changed, 8 insertions(+), 1 deletion(-) + hw/rdma/vmw/pvrdma_cmd.c | 6 ++++++ + 1 file changed, 6 insertions(+) diff --git a/hw/rdma/vmw/pvrdma_cmd.c b/hw/rdma/vmw/pvrdma_cmd.c -index da7ddfa54..89db963c4 100644 +index da7ddfa548..89db963c46 100644 --- a/hw/rdma/vmw/pvrdma_cmd.c +++ b/hw/rdma/vmw/pvrdma_cmd.c @@ -796,6 +796,12 @@ int pvrdma_exec_cmd(PVRDMADev *dev) @@ -38,20 +38,6 @@ index da7ddfa54..89db963c4 100644 if (dsr_info->req->hdr.cmd >= sizeof(cmd_handlers) / sizeof(struct cmd_handler)) { rdma_error_report("Unsupported command"); -diff --git a/hw/rdma/vmw/pvrdma_main.c b/hw/rdma/vmw/pvrdma_main.c -index 91206dbb8..0b7d908e2 100644 ---- a/hw/rdma/vmw/pvrdma_main.c -+++ b/hw/rdma/vmw/pvrdma_main.c -@@ -249,7 +249,8 @@ static void init_dsr_dev_caps(PVRDMADev *dev) - { - struct pvrdma_device_shared_region *dsr; - -- if (dev->dsr_info.dsr == NULL) { -+ if (!dev->dsr_info.dsr) { -+ /* Buggy or malicious guest driver */ - rdma_error_report("Can't initialized DSR"); - return; - } -- -2.30.2 +2.34.1 diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3507_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3507_1.patch deleted file mode 100644 index 24fd2c5ed3..0000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3507_1.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 57a89cc36ead7234e540d0ecbe1a792ab6b04cb7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com> -Date: Thu, 18 Nov 2021 12:57:32 +0100 -Subject: [PATCH 1/2] hw/block/fdc: Prevent end-of-track overrun - (CVE-2021-3507) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Per the 82078 datasheet, if the end-of-track (EOT byte in -the FIFO) is more than the number of sectors per side, the -command is terminated unsuccessfully: - -* 5.2.5 DATA TRANSFER TERMINATION - - The 82078 supports terminal count explicitly through - the TC pin and implicitly through the underrun/over- - run and end-of-track (EOT) functions. For full sector - transfers, the EOT parameter can define the last - sector to be transferred in a single or multisector - transfer. If the last sector to be transferred is a par- - tial sector, the host can stop transferring the data in - mid-sector, and the 82078 will continue to complete - the sector as if a hardware TC was received. The - only difference between these implicit functions and - TC is that they return "abnormal termination" result - status. Such status indications can be ignored if they - were expected. - -* 6.1.3 READ TRACK - - This command terminates when the EOT specified - number of sectors have been read. If the 82078 - does not find an I D Address Mark on the diskette - after the second· occurrence of a pulse on the - INDX# pin, then it sets the IC code in Status Regis- - ter 0 to "01" (Abnormal termination), sets the MA bit - in Status Register 1 to "1", and terminates the com- - mand. - -* 6.1.6 VERIFY - - Refer to Table 6-6 and Table 6-7 for information - concerning the values of MT and EC versus SC and - EOT value. - -* Table 6·6. Result Phase Table - -* Table 6-7. Verify Command Result Phase Table - -Fix by aborting the transfer when EOT > # Sectors Per Side. - -Cc: qemu-stable@nongnu.org -Cc: Hervé Poussineau <hpoussin@reactos.org> -Fixes: baca51faff0 ("floppy driver: disk geometry auto detect") -Reported-by: Alexander Bulekov <alxndr@bu.edu> -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/339 -Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> -Message-Id: <20211118115733.4038610-2-philmd@redhat.com> -Reviewed-by: Hanna Reitz <hreitz@redhat.com> -Signed-off-by: Kevin Wolf <kwolf@redhat.com> - -Upstream-Status: Backport [defac5e2fbddf8423a354ff0454283a2115e1367] -CVE: CVE-2021-3507 - -Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> ---- - hw/block/fdc.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/hw/block/fdc.c b/hw/block/fdc.c -index 347875a0c..57bb35579 100644 ---- a/hw/block/fdc.c -+++ b/hw/block/fdc.c -@@ -1530,6 +1530,14 @@ static void fdctrl_start_transfer(FDCtrl *fdctrl, int direction) - int tmp; - fdctrl->data_len = 128 << (fdctrl->fifo[5] > 7 ? 7 : fdctrl->fifo[5]); - tmp = (fdctrl->fifo[6] - ks + 1); -+ if (tmp < 0) { -+ FLOPPY_DPRINTF("invalid EOT: %d\n", tmp); -+ fdctrl_stop_transfer(fdctrl, FD_SR0_ABNTERM, FD_SR1_MA, 0x00); -+ fdctrl->fifo[3] = kt; -+ fdctrl->fifo[4] = kh; -+ fdctrl->fifo[5] = ks; -+ return; -+ } - if (fdctrl->fifo[0] & 0x80) - tmp += fdctrl->fifo[6]; - fdctrl->data_len *= tmp; --- -2.33.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3507_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3507_2.patch deleted file mode 100644 index acc93e897b..0000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3507_2.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 3e8601ec707dcbc3c768f7733d016dc70c947e4a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@redhat.com> -Date: Thu, 18 Nov 2021 12:57:33 +0100 -Subject: [PATCH 2/2] tests/qtest/fdc-test: Add a regression test for - CVE-2021-3507 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add the reproducer from https://gitlab.com/qemu-project/qemu/-/issues/339 - -Without the previous commit, when running 'make check-qtest-i386' -with QEMU configured with '--enable-sanitizers' we get: - - ==4028352==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x619000062a00 at pc 0x5626d03c491a bp 0x7ffdb4199410 sp 0x7ffdb4198bc0 - READ of size 786432 at 0x619000062a00 thread T0 - #0 0x5626d03c4919 in __asan_memcpy (qemu-system-i386+0x1e65919) - #1 0x5626d1c023cc in flatview_write_continue softmmu/physmem.c:2787:13 - #2 0x5626d1bf0c0f in flatview_write softmmu/physmem.c:2822:14 - #3 0x5626d1bf0798 in address_space_write softmmu/physmem.c:2914:18 - #4 0x5626d1bf0f37 in address_space_rw softmmu/physmem.c:2924:16 - #5 0x5626d1bf14c8 in cpu_physical_memory_rw softmmu/physmem.c:2933:5 - #6 0x5626d0bd5649 in cpu_physical_memory_write include/exec/cpu-common.h:82:5 - #7 0x5626d0bd0a07 in i8257_dma_write_memory hw/dma/i8257.c:452:9 - #8 0x5626d09f825d in fdctrl_transfer_handler hw/block/fdc.c:1616:13 - #9 0x5626d0a048b4 in fdctrl_start_transfer hw/block/fdc.c:1539:13 - #10 0x5626d09f4c3e in fdctrl_write_data hw/block/fdc.c:2266:13 - #11 0x5626d09f22f7 in fdctrl_write hw/block/fdc.c:829:9 - #12 0x5626d1c20bc5 in portio_write softmmu/ioport.c:207:17 - - 0x619000062a00 is located 0 bytes to the right of 512-byte region [0x619000062800,0x619000062a00) - allocated by thread T0 here: - #0 0x5626d03c66ec in posix_memalign (qemu-system-i386+0x1e676ec) - #1 0x5626d2b988d4 in qemu_try_memalign util/oslib-posix.c:210:11 - #2 0x5626d2b98b0c in qemu_memalign util/oslib-posix.c:226:27 - #3 0x5626d09fbaf0 in fdctrl_realize_common hw/block/fdc.c:2341:20 - #4 0x5626d0a150ed in isabus_fdc_realize hw/block/fdc-isa.c:113:5 - #5 0x5626d2367935 in device_set_realized hw/core/qdev.c:531:13 - - SUMMARY: AddressSanitizer: heap-buffer-overflow (qemu-system-i386+0x1e65919) in __asan_memcpy - Shadow bytes around the buggy address: - 0x0c32800044f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa - 0x0c3280004500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 0x0c3280004510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 0x0c3280004520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 0x0c3280004530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - =>0x0c3280004540:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa - 0x0c3280004550: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa - 0x0c3280004560: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa - 0x0c3280004570: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa - 0x0c3280004580: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa - 0x0c3280004590: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd - Shadow byte legend (one shadow byte represents 8 application bytes): - Addressable: 00 - Heap left redzone: fa - Freed heap region: fd - ==4028352==ABORTING - -[ kwolf: Added snapshot=on to prevent write file lock failure ] - -Reported-by: Alexander Bulekov <alxndr@bu.edu> -Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> -Reviewed-by: Alexander Bulekov <alxndr@bu.edu> -Signed-off-by: Kevin Wolf <kwolf@redhat.com> - -Upstream-Status: Backport [46609b90d9e3a6304def11038a76b58ff43f77bc] -CVE: CVE-2021-3507 - -Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> ---- - tests/qtest/fdc-test.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/tests/qtest/fdc-test.c b/tests/qtest/fdc-test.c -index b0d40012e..1d4f85212 100644 ---- a/tests/qtest/fdc-test.c -+++ b/tests/qtest/fdc-test.c -@@ -583,6 +583,26 @@ static void test_cve_2021_20196(void) - qtest_quit(s); - } - -+static void test_cve_2021_3507(void) -+{ -+ QTestState *s; -+ -+ s = qtest_initf("-nographic -m 32M -nodefaults " -+ "-drive file=%s,format=raw,if=floppy,snapshot=on", -+ test_image); -+ qtest_outl(s, 0x9, 0x0a0206); -+ qtest_outw(s, 0x3f4, 0x1600); -+ qtest_outw(s, 0x3f4, 0x0000); -+ qtest_outw(s, 0x3f4, 0x0000); -+ qtest_outw(s, 0x3f4, 0x0000); -+ qtest_outw(s, 0x3f4, 0x0200); -+ qtest_outw(s, 0x3f4, 0x0200); -+ qtest_outw(s, 0x3f4, 0x0000); -+ qtest_outw(s, 0x3f4, 0x0000); -+ qtest_outw(s, 0x3f4, 0x0000); -+ qtest_quit(s); -+} -+ - int main(int argc, char **argv) - { - int fd; -@@ -614,6 +634,7 @@ int main(int argc, char **argv) - qtest_add_func("/fdc/read_no_dma_19", test_read_no_dma_19); - qtest_add_func("/fdc/fuzz-registers", fuzz_registers); - qtest_add_func("/fdc/fuzz/cve_2021_20196", test_cve_2021_20196); -+ qtest_add_func("/fdc/fuzz/cve_2021_3507", test_cve_2021_3507); - - ret = g_test_run(); - --- -2.33.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-0216_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-0216_1.patch deleted file mode 100644 index 56fc34ce5a..0000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-0216_1.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f37ac8619a39498edd225c4a0b3039b28814833d Mon Sep 17 00:00:00 2001 -From: Mauro Matteo Cascella <mcascell@redhat.com> -Date: Tue, 5 Jul 2022 22:05:43 +0200 -Subject: [PATCH 1/2] scsi/lsi53c895a: fix use-after-free in lsi_do_msgout - (CVE-2022-0216) - -Set current_req->req to NULL to prevent reusing a free'd buffer in case of -repeated SCSI cancel requests. Thanks to Thomas Huth for suggesting the patch. - -Fixes: CVE-2022-0216 -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/972 -Signed-off-by: Mauro Matteo Cascella <mcascell@redhat.com> -Reviewed-by: Thomas Huth <thuth@redhat.com> -Message-Id: <20220705200543.2366809-1-mcascell@redhat.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> - -Upstream-Status: Backport [6c8fa961da5e60f574bb52fd3ad44b1e9e8ad4b8] -CVE: CVE-2022-0216 - -Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> ---- - hw/scsi/lsi53c895a.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c -index c8773f73f..99ea42d49 100644 ---- a/hw/scsi/lsi53c895a.c -+++ b/hw/scsi/lsi53c895a.c -@@ -1028,8 +1028,9 @@ static void lsi_do_msgout(LSIState *s) - case 0x0d: - /* The ABORT TAG message clears the current I/O process only. */ - trace_lsi_do_msgout_abort(current_tag); -- if (current_req) { -+ if (current_req && current_req->req) { - scsi_req_cancel(current_req->req); -+ current_req->req = NULL; - } - lsi_disconnect(s); - break; --- -2.33.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-0216_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-0216_2.patch deleted file mode 100644 index f332154b6a..0000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-0216_2.patch +++ /dev/null @@ -1,146 +0,0 @@ -From 5451bf6db85ce3da1238e9154d051ebccec8f171 Mon Sep 17 00:00:00 2001 -From: Mauro Matteo Cascella <mcascell@redhat.com> -Date: Mon, 11 Jul 2022 14:33:16 +0200 -Subject: [PATCH 2/2] scsi/lsi53c895a: really fix use-after-free in - lsi_do_msgout (CVE-2022-0216) - -Set current_req to NULL, not current_req->req, to prevent reusing a free'd -buffer in case of repeated SCSI cancel requests. Also apply the fix to -CLEAR QUEUE and BUS DEVICE RESET messages as well, since they also cancel -the request. - -Thanks to Alexander Bulekov for providing a reproducer. - -Fixes: CVE-2022-0216 -Resolves: https://gitlab.com/qemu-project/qemu/-/issues/972 -Signed-off-by: Mauro Matteo Cascella <mcascell@redhat.com> -Tested-by: Alexander Bulekov <alxndr@bu.edu> -Message-Id: <20220711123316.421279-1-mcascell@redhat.com> -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> - -Upstream-Status: Backport [4367a20cc442c56b05611b4224de9a61908f9eac] -CVE: CVE-2022-0216 - -Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> ---- - hw/scsi/lsi53c895a.c | 3 +- - tests/qtest/fuzz-lsi53c895a-test.c | 76 ++++++++++++++++++++++++++++++ - 2 files changed, 78 insertions(+), 1 deletion(-) - -diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c -index 99ea42d49..ad5f5e5f3 100644 ---- a/hw/scsi/lsi53c895a.c -+++ b/hw/scsi/lsi53c895a.c -@@ -1030,7 +1030,7 @@ static void lsi_do_msgout(LSIState *s) - trace_lsi_do_msgout_abort(current_tag); - if (current_req && current_req->req) { - scsi_req_cancel(current_req->req); -- current_req->req = NULL; -+ current_req = NULL; - } - lsi_disconnect(s); - break; -@@ -1056,6 +1056,7 @@ static void lsi_do_msgout(LSIState *s) - /* clear the current I/O process */ - if (s->current) { - scsi_req_cancel(s->current->req); -+ current_req = NULL; - } - - /* As the current implemented devices scsi_disk and scsi_generic -diff --git a/tests/qtest/fuzz-lsi53c895a-test.c b/tests/qtest/fuzz-lsi53c895a-test.c -index ba5d46897..c1af0ab1c 100644 ---- a/tests/qtest/fuzz-lsi53c895a-test.c -+++ b/tests/qtest/fuzz-lsi53c895a-test.c -@@ -8,6 +8,79 @@ - #include "qemu/osdep.h" - #include "libqos/libqtest.h" - -+/* -+ * This used to trigger a UAF in lsi_do_msgout() -+ * https://gitlab.com/qemu-project/qemu/-/issues/972 -+ */ -+static void test_lsi_do_msgout_cancel_req(void) -+{ -+ QTestState *s; -+ -+ if (sizeof(void *) == 4) { -+ g_test_skip("memory size too big for 32-bit build"); -+ return; -+ } -+ -+ s = qtest_init("-M q35 -m 4G -display none -nodefaults " -+ "-device lsi53c895a,id=scsi " -+ "-device scsi-hd,drive=disk0 " -+ "-drive file=null-co://,id=disk0,if=none,format=raw"); -+ -+ qtest_outl(s, 0xcf8, 0x80000810); -+ qtest_outl(s, 0xcf8, 0xc000); -+ qtest_outl(s, 0xcf8, 0x80000810); -+ qtest_outw(s, 0xcfc, 0x7); -+ qtest_outl(s, 0xcf8, 0x80000810); -+ qtest_outl(s, 0xcfc, 0xc000); -+ qtest_outl(s, 0xcf8, 0x80000804); -+ qtest_outw(s, 0xcfc, 0x05); -+ qtest_writeb(s, 0x69736c10, 0x08); -+ qtest_writeb(s, 0x69736c13, 0x58); -+ qtest_writeb(s, 0x69736c1a, 0x01); -+ qtest_writeb(s, 0x69736c1b, 0x06); -+ qtest_writeb(s, 0x69736c22, 0x01); -+ qtest_writeb(s, 0x69736c23, 0x07); -+ qtest_writeb(s, 0x69736c2b, 0x02); -+ qtest_writeb(s, 0x69736c48, 0x08); -+ qtest_writeb(s, 0x69736c4b, 0x58); -+ qtest_writeb(s, 0x69736c52, 0x04); -+ qtest_writeb(s, 0x69736c53, 0x06); -+ qtest_writeb(s, 0x69736c5b, 0x02); -+ qtest_outl(s, 0xc02d, 0x697300); -+ qtest_writeb(s, 0x5a554662, 0x01); -+ qtest_writeb(s, 0x5a554663, 0x07); -+ qtest_writeb(s, 0x5a55466a, 0x10); -+ qtest_writeb(s, 0x5a55466b, 0x22); -+ qtest_writeb(s, 0x5a55466c, 0x5a); -+ qtest_writeb(s, 0x5a55466d, 0x5a); -+ qtest_writeb(s, 0x5a55466e, 0x34); -+ qtest_writeb(s, 0x5a55466f, 0x5a); -+ qtest_writeb(s, 0x5a345a5a, 0x77); -+ qtest_writeb(s, 0x5a345a5b, 0x55); -+ qtest_writeb(s, 0x5a345a5c, 0x51); -+ qtest_writeb(s, 0x5a345a5d, 0x27); -+ qtest_writeb(s, 0x27515577, 0x41); -+ qtest_outl(s, 0xc02d, 0x5a5500); -+ qtest_writeb(s, 0x364001d0, 0x08); -+ qtest_writeb(s, 0x364001d3, 0x58); -+ qtest_writeb(s, 0x364001da, 0x01); -+ qtest_writeb(s, 0x364001db, 0x26); -+ qtest_writeb(s, 0x364001dc, 0x0d); -+ qtest_writeb(s, 0x364001dd, 0xae); -+ qtest_writeb(s, 0x364001de, 0x41); -+ qtest_writeb(s, 0x364001df, 0x5a); -+ qtest_writeb(s, 0x5a41ae0d, 0xf8); -+ qtest_writeb(s, 0x5a41ae0e, 0x36); -+ qtest_writeb(s, 0x5a41ae0f, 0xd7); -+ qtest_writeb(s, 0x5a41ae10, 0x36); -+ qtest_writeb(s, 0x36d736f8, 0x0c); -+ qtest_writeb(s, 0x36d736f9, 0x80); -+ qtest_writeb(s, 0x36d736fa, 0x0d); -+ qtest_outl(s, 0xc02d, 0x364000); -+ -+ qtest_quit(s); -+} -+ - /* - * This used to trigger the assert in lsi_do_dma() - * https://bugs.launchpad.net/qemu/+bug/697510 -@@ -48,5 +121,8 @@ int main(int argc, char **argv) - test_lsi_do_dma_empty_queue); - } - -+ qtest_add_func("fuzz/lsi53c895a/lsi_do_msgout_cancel_req", -+ test_lsi_do_msgout_cancel_req); -+ - return g_test_run(); - } --- -2.33.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch deleted file mode 100644 index fe79a749ae..0000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2022-35414.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a10c33942dc8cb31b3762b9dd4adde4c490eed9c Mon Sep 17 00:00:00 2001 -From: Hitendra Prajapati <hprajapati@mvista.com> -Date: Wed, 3 Aug 2022 10:11:11 +0530 -Subject: [PATCH] CVE-2022-35414 - -Upstream-Status: Backport [https://github.com/qemu/qemu/commit/418ade7849ce7641c0f7333718caf5091a02fd4c] -CVE: CVE-2022-35414 -Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com> ---- - softmmu/physmem.c | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/softmmu/physmem.c b/softmmu/physmem.c -index 4e1b27a20..ad8a90dec 100644 ---- a/softmmu/physmem.c -+++ b/softmmu/physmem.c -@@ -669,7 +669,7 @@ void tcg_iommu_init_notifier_list(CPUState *cpu) - - /* Called from RCU critical section */ - MemoryRegionSection * --address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr, -+address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr orig_addr, - hwaddr *xlat, hwaddr *plen, - MemTxAttrs attrs, int *prot) - { -@@ -678,6 +678,7 @@ address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr, - IOMMUMemoryRegionClass *imrc; - IOMMUTLBEntry iotlb; - int iommu_idx; -+ hwaddr addr = orig_addr; - AddressSpaceDispatch *d = - qatomic_rcu_read(&cpu->cpu_ases[asidx].memory_dispatch); - -@@ -722,6 +723,16 @@ address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr, - return section; - - translate_fail: -+ /* -+ * We should be given a page-aligned address -- certainly -+ * tlb_set_page_with_attrs() does so. The page offset of xlat -+ * is used to index sections[], and PHYS_SECTION_UNASSIGNED = 0. -+ * The page portion of xlat will be logged by memory_region_access_valid() -+ * when this memory access is rejected, so use the original untranslated -+ * physical address. -+ */ -+ assert((orig_addr & ~TARGET_PAGE_MASK) == 0); -+ *xlat = orig_addr; - return &d->map.sections[PHYS_SECTION_UNASSIGNED]; - } - --- -2.25.1 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/arm-cpreg-fix.patch b/poky/meta/recipes-devtools/qemu/qemu/arm-cpreg-fix.patch new file mode 100644 index 0000000000..071691f8ca --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/arm-cpreg-fix.patch @@ -0,0 +1,27 @@ +target/arm: mark SP_EL1 with ARM_CP_EL3_NO_EL2_KEEP + +SP_EL1 must be kept when EL3 is present but EL2 is not. Therefore mark +it with ARM_CP_EL3_NO_EL2_KEEP. + +Fixes: 696ba3771894 ("target/arm: Handle cpreg registration for missing EL") +Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> + +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2022-09/msg04515.html] + +--- + target/arm/helper.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: qemu-7.1.0/target/arm/helper.c +=================================================================== +--- qemu-7.1.0.orig/target/arm/helper.c ++++ qemu-7.1.0/target/arm/helper.c +@@ -4971,7 +4971,7 @@ static const ARMCPRegInfo v8_cp_reginfo[ + .fieldoffset = offsetof(CPUARMState, sp_el[0]) }, + { .name = "SP_EL1", .state = ARM_CP_STATE_AA64, + .opc0 = 3, .opc1 = 4, .crn = 4, .crm = 1, .opc2 = 0, +- .access = PL2_RW, .type = ARM_CP_ALIAS, ++ .access = PL2_RW, .type = ARM_CP_ALIAS | ARM_CP_EL3_NO_EL2_KEEP, + .fieldoffset = offsetof(CPUARMState, sp_el[1]) }, + { .name = "SPSel", .state = ARM_CP_STATE_AA64, + .opc0 = 3, .opc1 = 0, .crn = 4, .crm = 2, .opc2 = 0, diff --git a/poky/meta/recipes-devtools/qemu/qemu/cross.patch b/poky/meta/recipes-devtools/qemu/qemu/cross.patch index d1256a1229..ca2ad361ef 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/cross.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/cross.patch @@ -14,19 +14,19 @@ Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> configure | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/configure b/configure -index 7c08c1835..0613279f9 100755 ---- a/configure -+++ b/configure -@@ -3118,7 +3118,6 @@ if test "$skip_meson" = no; then - fi +Index: qemu-7.1.0/configure +=================================================================== +--- qemu-7.1.0.orig/configure ++++ qemu-7.1.0/configure +@@ -2710,7 +2710,6 @@ if test "$skip_meson" = no; then echo "strip = [$(meson_quote $strip)]" >> $cross + echo "widl = [$(meson_quote $widl)]" >> $cross echo "windres = [$(meson_quote $windres)]" >> $cross - if test "$cross_compile" = "yes"; then cross_arg="--cross-file config-meson.cross" echo "[host_machine]" >> $cross echo "system = '$targetos'" >> $cross -@@ -3136,9 +3135,6 @@ if test "$skip_meson" = no; then +@@ -2728,9 +2727,6 @@ if test "$skip_meson" = no; then else echo "endian = 'little'" >> $cross fi @@ -36,6 +36,3 @@ index 7c08c1835..0613279f9 100755 mv $cross config-meson.cross rm -rf meson-private meson-info meson-logs --- -2.30.2 - diff --git a/poky/meta/recipes-devtools/qemu/qemu_7.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu_7.1.0.bb index 42e133967e..42e133967e 100644 --- a/poky/meta/recipes-devtools/qemu/qemu_7.0.0.bb +++ b/poky/meta/recipes-devtools/qemu/qemu_7.1.0.bb diff --git a/poky/meta/recipes-devtools/repo/repo_2.29.1.bb b/poky/meta/recipes-devtools/repo/repo_2.29.2.bb index 740132c2f6..42fd18ac24 100644 --- a/poky/meta/recipes-devtools/repo/repo_2.29.1.bb +++ b/poky/meta/recipes-devtools/repo/repo_2.29.2.bb @@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" SRC_URI = "git://gerrit.googlesource.com/git-repo.git;protocol=https;branch=main \ file://0001-python3-shebang.patch \ " -SRCREV = "4112c07688d0e0e568478e9f42be349bdd511d45" +SRCREV = "891e8f72ce3551a19c377456574bbfbeac5c8b8e" MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git" diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch b/poky/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch index 331ea849e6..9f5dde0720 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch @@ -11,11 +11,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> rpmrc.in | 2 ++ 2 files changed, 6 insertions(+) -diff --git a/build/rpmfc.c b/build/rpmfc.c -index 10c380ee9..b7655aa93 100644 ---- a/build/rpmfc.c -+++ b/build/rpmfc.c -@@ -639,6 +639,7 @@ exit: +Index: git/build/rpmfc.c +=================================================================== +--- git.orig/build/rpmfc.c ++++ git/build/rpmfc.c +@@ -645,6 +645,7 @@ exit: static const struct rpmfcTokens_s rpmfcTokens[] = { { "directory", RPMFC_INCLUDE }, @@ -23,7 +23,7 @@ index 10c380ee9..b7655aa93 100644 { "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE }, { "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE }, -@@ -1149,6 +1150,9 @@ static uint32_t getElfColor(const char *fn) +@@ -1150,6 +1151,9 @@ static uint32_t getElfColor(const char * color = RPMFC_ELF32; break; } @@ -33,11 +33,11 @@ index 10c380ee9..b7655aa93 100644 elf_end(elf); } close(fd); -diff --git a/rpmrc.in b/rpmrc.in -index 5bd9ba3e5..f15bb8dad 100644 ---- a/rpmrc.in -+++ b/rpmrc.in -@@ -137,6 +137,8 @@ archcolor: mipsr6el 1 +Index: git/rpmrc.in +=================================================================== +--- git.orig/rpmrc.in ++++ git/rpmrc.in +@@ -139,6 +139,8 @@ archcolor: mipsr6el 1 archcolor: mips64r6 2 archcolor: mips64r6el 2 diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch index 4029233fb7..8440c3516d 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch @@ -14,11 +14,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> build/pack.c | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/build/pack.c b/build/pack.c -index e6cec1816..810cd7351 100644 ---- a/build/pack.c -+++ b/build/pack.c -@@ -724,10 +724,6 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch +Index: git/build/pack.c +=================================================================== +--- git.orig/build/pack.c ++++ git/build/pack.c +@@ -709,10 +709,6 @@ static rpmRC packageBinary(rpmSpec spec, headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16); } diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch index c6cf9d4c88..6f613d0a7d 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch @@ -13,11 +13,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> rpm.am | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) -diff --git a/configure.ac b/configure.ac -index 372875fc4..1b7add9ee 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -884,7 +884,7 @@ else +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -942,7 +942,7 @@ else usrprefix=$prefix fi @@ -26,10 +26,10 @@ index 372875fc4..1b7add9ee 100644 AC_SUBST(RPMCONFIGDIR) AC_SUBST(OBJDUMP) -diff --git a/macros.in b/macros.in -index d53ab5ed5..9d10441c8 100644 ---- a/macros.in -+++ b/macros.in +Index: git/macros.in +=================================================================== +--- git.orig/macros.in ++++ git/macros.in @@ -911,7 +911,7 @@ package or when debugging this package.\ %_sharedstatedir %{_prefix}/com %_localstatedir %{_prefix}/var @@ -39,10 +39,10 @@ index d53ab5ed5..9d10441c8 100644 %_includedir %{_prefix}/include %_infodir %{_datadir}/info %_mandir %{_datadir}/man -diff --git a/rpm.am b/rpm.am -index ebe4e40d1..e6920e258 100644 ---- a/rpm.am -+++ b/rpm.am +Index: git/rpm.am +=================================================================== +--- git.orig/rpm.am ++++ git/rpm.am @@ -1,10 +1,10 @@ # Internal binaries ## HACK: It probably should be $(libexecdir)/rpm or $(libdir)/rpm diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch index 96eb418952..fda64eefe0 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch @@ -9,10 +9,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> lib/rpmrc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/lib/rpmrc.c b/lib/rpmrc.c -index 4ed991321..19fe80f98 100644 ---- a/lib/rpmrc.c -+++ b/lib/rpmrc.c +Index: git/lib/rpmrc.c +=================================================================== +--- git.orig/lib/rpmrc.c ++++ git/lib/rpmrc.c @@ -458,8 +458,7 @@ static void setDefaults(void) if (!defrcfiles) { defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":", @@ -33,6 +33,3 @@ index 4ed991321..19fe80f98 100644 } #else macrofiles = MACROFILES; --- -2.11.0 - diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch index 41cdf6ed77..ae24b663aa 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch @@ -13,11 +13,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> lib/rpmscript.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index 6a31e0d..2b0e438 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c -@@ -184,7 +184,7 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes, +Index: git/lib/rpmscript.c +=================================================================== +--- git.orig/lib/rpmscript.c ++++ git/lib/rpmscript.c +@@ -231,7 +231,7 @@ static void doScriptExec(ARGV_const_t ar if (ipath && ipath[5] != '%') path = ipath; diff --git a/poky/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch b/poky/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch index 2a0069cafe..bd3314a90f 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch @@ -28,9 +28,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> lib/rpmscript.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c -@@ -17,7 +17,7 @@ +Index: git/lib/rpmscript.c +=================================================================== +--- git.orig/lib/rpmscript.c ++++ git/lib/rpmscript.c +@@ -18,7 +18,7 @@ #include "rpmio/rpmio_internal.h" #include "lib/rpmplugins.h" /* rpm plugins hooks */ @@ -39,7 +41,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> #include "debug.h" struct scriptNextFileFunc_s { -@@ -391,8 +391,7 @@ exit: +@@ -427,8 +427,7 @@ exit: Fclose(out); /* XXX dup'd STDOUT_FILENO */ if (fn) { @@ -49,18 +51,18 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> free(fn); } free(mline); -@@ -426,7 +425,13 @@ rpmRC rpmScriptRun(rpmScript script, int +@@ -462,7 +461,13 @@ rpmRC rpmScriptRun(rpmScript script, int if (rc != RPMRC_FAIL) { if (script_type & RPMSCRIPTLET_EXEC) { -- rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); +- rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc); + if (getenv("RPM_NO_CHROOT_FOR_SCRIPTS") != NULL) { + rpmChrootOut(); -+ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); ++ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc); + rpmChrootIn(); + } else { -+ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); ++ rc = runExtScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc); + } } else { - rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, &script->nextFileFunc); + rc = runLuaScript(plugins, prefixes, script->descr, lvl, scriptFd, &args, script->body, arg1, arg2, script->nextFileFunc); } diff --git a/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch b/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch index 79b168257e..64433abb6a 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch @@ -13,10 +13,10 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de> build/pack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/build/pack.c b/build/pack.c -index 932cb213e..b45d0726f 100644 ---- a/build/pack.c -+++ b/build/pack.c +Index: git/build/pack.c +=================================================================== +--- git.orig/build/pack.c ++++ git/build/pack.c @@ -328,7 +328,7 @@ static char *getIOFlags(Package pkg) headerPutString(pkg->header, RPMTAG_PAYLOADCOMPRESSOR, compr); buf = xstrdup(rpmio_flags); diff --git a/poky/meta/recipes-devtools/rpm/files/0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch b/poky/meta/recipes-devtools/rpm/files/0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch index 2174a79e75..29b6686a94 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch @@ -11,13 +11,13 @@ Signed-off-by: Alexander Kanavin <alex@linutronix.de> configure.ac | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/configure.ac b/configure.ac -index 372875fc49..7d6a3d274e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -845,6 +845,10 @@ if echo "$host_os" | grep '.*-gnuabi64$' > /dev/null ; then - host_os=`echo "${host_os}" | sed 's/-gnuabi64$//'` - host_os_gnu=-gnuabi64 +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac ++++ git/configure.ac +@@ -903,6 +903,10 @@ if echo "$host_os" | grep '.*-gnux32$' > + host_os=`echo "${host_os}" | sed 's/-gnux32$//'` + host_os_gnu=-gnux32 fi +if echo "$host_os" | grep '.*-gnux32$' > /dev/null ; then + host_os=`echo "${host_os}" | sed 's/-gnux32$//'` @@ -26,6 +26,3 @@ index 372875fc49..7d6a3d274e 100644 if echo "$host_os" | grep '.*-gnu$' > /dev/null ; then host_os=`echo "${host_os}" | sed 's/-gnu$//'` fi --- -2.30.2 - diff --git a/poky/meta/recipes-devtools/rpm/files/0001-docs-do-not-build-manpages-requires-pandoc.patch b/poky/meta/recipes-devtools/rpm/files/0001-docs-do-not-build-manpages-requires-pandoc.patch index ced52d1007..d7137f1d10 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-docs-do-not-build-manpages-requires-pandoc.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-docs-do-not-build-manpages-requires-pandoc.patch @@ -9,10 +9,10 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> docs/Makefile.am | 2 -- 1 file changed, 2 deletions(-) -diff --git a/docs/Makefile.am b/docs/Makefile.am -index 5a6bd203a..6257767fd 100644 ---- a/docs/Makefile.am -+++ b/docs/Makefile.am +Index: git/docs/Makefile.am +=================================================================== +--- git.orig/docs/Makefile.am ++++ git/docs/Makefile.am @@ -1,7 +1,5 @@ ## Process this file with automake to produce Makefile.in @@ -21,6 +21,3 @@ index 5a6bd203a..6257767fd 100644 EXTRA_DIST = EXTRA_DIST += \ --- -2.32.0 - diff --git a/poky/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch b/poky/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch index 6678c105cd..82e6567dc7 100644 --- a/poky/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch +++ b/poky/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch @@ -31,11 +31,11 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com> lib/transaction.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) -diff --git a/lib/transaction.c b/lib/transaction.c -index 67b9db5..82386b8 100644 ---- a/lib/transaction.c -+++ b/lib/transaction.c -@@ -391,7 +391,18 @@ static int handleColorConflict(rpmts ts, +Index: git/lib/transaction.c +=================================================================== +--- git.orig/lib/transaction.c ++++ git/lib/transaction.c +@@ -402,7 +402,18 @@ static int handleColorConflict(rpmts ts, rpmfsSetAction(ofs, ofx, FA_CREATE); rpmfsSetAction(fs, fx, FA_SKIPCOLOR); rConflicts = 0; @@ -55,6 +55,3 @@ index 67b9db5..82386b8 100644 } } --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch b/poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch deleted file mode 100644 index 9783396639..0000000000 --- a/poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 9b9d717f484ec913cdd3804e43489b3dc18bd77c Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 31 Oct 2020 22:14:05 -0700 -Subject: [PATCH] tools: Add error.h for non-glibc case - -error is glibc specific API, so this patch will mostly not accepted -upstream given that elfutils has been closely tied to glibc - -Upstream-Status: Inappropriate [workaround for musl] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- - tools/elfdeps.c | 6 +++++- - tools/error.h | 27 +++++++++++++++++++++++++++ - 2 files changed, 32 insertions(+), 1 deletion(-) - create mode 100644 tools/error.h - -diff --git a/tools/elfdeps.c b/tools/elfdeps.c -index d205935bb..3a8945b33 100644 ---- a/tools/elfdeps.c -+++ b/tools/elfdeps.c -@@ -5,10 +5,14 @@ - #include <unistd.h> - #include <stdlib.h> - #include <fcntl.h> --#include <error.h> - #include <errno.h> - #include <popt.h> - #include <gelf.h> -+#ifdef __GLIBC__ -+#include <error.h> -+#else -+#include "error.h" -+#endif - - #include <rpm/rpmstring.h> - #include <rpm/argv.h> -diff --git a/tools/error.h b/tools/error.h -new file mode 100644 -index 000000000..ef06827a0 ---- /dev/null -+++ b/tools/error.h -@@ -0,0 +1,27 @@ -+#ifndef _ERROR_H_ -+#define _ERROR_H_ -+ -+#include <stdarg.h> -+#include <stdio.h> -+#include <stdlib.h> -+#include <string.h> -+#include <errno.h> -+ -+static unsigned int error_message_count = 0; -+ -+static inline void error(int status, int errnum, const char* format, ...) -+{ -+ va_list ap; -+ fprintf(stderr, "%s: ", program_invocation_name); -+ va_start(ap, format); -+ vfprintf(stderr, format, ap); -+ va_end(ap); -+ if (errnum) -+ fprintf(stderr, ": %s", strerror(errnum)); -+ fprintf(stderr, "\n"); -+ error_message_count++; -+ if (status) -+ exit(status); -+} -+ -+#endif /* _ERROR_H_ */ diff --git a/poky/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch b/poky/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch index b3dbc319b6..2fe96a839c 100644 --- a/poky/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch +++ b/poky/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch @@ -13,11 +13,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> lib/rpmrc.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) -diff --git a/lib/rpmrc.c b/lib/rpmrc.c -index 19fe80f98..6b27b3941 100644 ---- a/lib/rpmrc.c -+++ b/lib/rpmrc.c -@@ -455,10 +455,14 @@ const char * lookupInDefaultTable(const char * name, +Index: git/lib/rpmrc.c +=================================================================== +--- git.orig/lib/rpmrc.c ++++ git/lib/rpmrc.c +@@ -455,10 +455,14 @@ const char * lookupInDefaultTable(const static void setDefaults(void) { const char *confdir = rpmConfigDir(); @@ -46,7 +46,7 @@ index 19fe80f98..6b27b3941 100644 } #else macrofiles = MACROFILES; -@@ -989,7 +993,11 @@ static void read_auxv(void) +@@ -997,7 +1001,11 @@ static void read_auxv(void) */ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) { @@ -59,7 +59,7 @@ index 19fe80f98..6b27b3941 100644 static struct utsname un; char * chptr; canonEntry canon; -@@ -1286,6 +1294,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) +@@ -1307,6 +1315,7 @@ static void defaultMachine(rpmrcCtx ctx, if (arch) *arch = un.machine; if (os) *os = un.sysname; @@ -67,6 +67,3 @@ index 19fe80f98..6b27b3941 100644 } static --- -2.11.0 - diff --git a/poky/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch b/poky/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch index 43e9859ef3..9dbe7125de 100644 --- a/poky/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch +++ b/poky/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch @@ -13,11 +13,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> lib/rpmscript.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index 2b0e43862..e319673f1 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c -@@ -226,7 +226,7 @@ static char * writeScript(const char *cmd, const char *script) +Index: git/lib/rpmscript.c +=================================================================== +--- git.orig/lib/rpmscript.c ++++ git/lib/rpmscript.c +@@ -270,7 +270,7 @@ static char * writeScript(const char *cm if (Ferror(fd)) goto exit; @@ -26,7 +26,7 @@ index 2b0e43862..e319673f1 100644 static const char set_x[] = "set -x\n"; /* Assume failures will be caught by the write below */ Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd); -@@ -258,7 +258,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes, +@@ -302,7 +302,7 @@ static rpmRC runExtScript(rpmPlugins plu char *mline = NULL; rpmRC rc = RPMRC_FAIL; @@ -35,7 +35,7 @@ index 2b0e43862..e319673f1 100644 if (script) { fn = writeScript(*argvp[0], script); -@@ -310,7 +310,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes, +@@ -354,7 +354,7 @@ static rpmRC runExtScript(rpmPlugins plu sname, strerror(errno)); goto exit; } else if (pid == 0) {/* Child */ @@ -44,7 +44,7 @@ index 2b0e43862..e319673f1 100644 sname, *argvp[0], (unsigned)getpid()); fclose(in); -@@ -353,7 +353,7 @@ static rpmRC runExtScript(rpmPlugins plugins, ARGV_const_t prefixes, +@@ -397,7 +397,7 @@ static rpmRC runExtScript(rpmPlugins plu reaped = waitpid(pid, &status, 0); } while (reaped == -1 && errno == EINTR); diff --git a/poky/meta/recipes-devtools/rpm/files/fifofix.patch b/poky/meta/recipes-devtools/rpm/files/fifofix.patch new file mode 100644 index 0000000000..71703d7f0c --- /dev/null +++ b/poky/meta/recipes-devtools/rpm/files/fifofix.patch @@ -0,0 +1,22 @@ +Calling openat() on a fifo causes a pseudo hang for us (e.g. the fifo in psplash). +Avoid calling openat for fifos. + +Introduced upstream with: + +https://github.com/rpm-software-management/rpm/commit/96ec957e281220f8e137a2d5eb23b83a6377d556 + +Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/issues/2195] + +Index: git/lib/fsm.c +=================================================================== +--- git.orig/lib/fsm.c ++++ git/lib/fsm.c +@@ -1010,7 +1010,7 @@ int rpmPackageFilesInstall(rpmts ts, rpm + rc = RPMERR_UNKNOWN_FILETYPE; + } + +- if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode)) { ++ if (!rc && fd == -1 && !S_ISLNK(fp->sb.st_mode) && !S_ISFIFO(fp->sb.st_mode)) { + /* Only follow safe symlinks, and never on temporary files */ + fd = fsmOpenat(di.dirfd, fp->fpath, + fp->suffix ? AT_SYMLINK_NOFOLLOW : 0, 0); diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.17.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.18.0.bb index 9b6446f265..5f3986d8a3 100644 --- a/poky/meta/recipes-devtools/rpm/rpm_4.17.1.bb +++ b/poky/meta/recipes-devtools/rpm/rpm_4.18.0.bb @@ -24,7 +24,7 @@ HOMEPAGE = "http://www.rpm.org" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=c4eec0c20c6034b9407a09945b48a43f" -SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.17.x;protocol=https \ +SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.18.x;protocol=https \ file://environment.d-rpm.sh \ file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \ file://0001-Do-not-read-config-files-from-HOME.patch \ @@ -36,14 +36,14 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.17.x;protoc file://0001-perl-disable-auto-reqs.patch \ file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \ file://0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch \ - file://0001-tools-Add-error.h-for-non-glibc-case.patch \ file://0001-docs-do-not-build-manpages-requires-pandoc.patch \ file://0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch \ file://0001-configure.ac-add-linux-gnux32-variant-to-triplet-han.patch \ + file://fifofix.patch \ " PE = "1" -SRCREV = "5bef402da334595ed9302b8bca1acdf5e88bfe11" +SRCREV = "ea0d77c52e176e2876fdb1d07ad41e9e2635a93e" S = "${WORKDIR}/git" @@ -80,6 +80,7 @@ PACKAGECONFIG[imaevm] = "--with-imaevm,,ima-evm-utils" PACKAGECONFIG[inhibit] = "--enable-inhibit-plugin,--disable-inhibit-plugin,dbus" PACKAGECONFIG[rpm2archive] = "--with-archive,--without-archive,libarchive" PACKAGECONFIG[sqlite] = "--enable-sqlite=yes,--enable-sqlite=no,sqlite3" +PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" PACKAGECONFIG[ndb] = "--enable-ndb,--disable-ndb" PACKAGECONFIG[bdb-ro] = "--enable-bdb-ro,--disable-bdb-ro" PACKAGECONFIG[zstd] = "--enable-zstd=yes,--enable-zstd=no,zstd" diff --git a/poky/meta/recipes-devtools/rust/files/target-rust-ccld.c b/poky/meta/recipes-devtools/rust/files/target-rust-ccld.c new file mode 100644 index 0000000000..d3d491fb60 --- /dev/null +++ b/poky/meta/recipes-devtools/rust/files/target-rust-ccld.c @@ -0,0 +1,19 @@ +/* +* +* Copyright (C) 2022 Wind River Systems +* +* SPDX-License-Identifier: MIT +* +*/ + +#include <string.h> +#include <stdlib.h> +#include <unistd.h> + +int main (int argc, char *argv[]) +{ + unsetenv("LD_LIBRARY_PATH"); + execvp("target-rust-ccld-wrapper", argv); + + return 0; +} diff --git a/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc b/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc index 7bf75a4712..17f933959f 100644 --- a/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc +++ b/poky/meta/recipes-devtools/rust/rust-cross-canadian.inc @@ -7,13 +7,18 @@ LICENSE = "MIT" MODIFYTOS = "0" +DEPENDS += "virtual/${SDK_PREFIX}gcc-crosssdk virtual/nativesdk-libc virtual/nativesdk-${SDK_PREFIX}compilerlibs" + +SRC_URI += "file://target-rust-ccld.c" +LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7" +S = "${WORKDIR}" + # Need to use our SDK's sh here, see #14878 create_sdk_wrapper () { file="$1" shift - cat <<- EOF > "${file}" - #!${base_prefix}/bin/sh + #!/bin/sh \$$1 \$@ EOF @@ -32,8 +37,17 @@ do_install () { install -m 0644 "${RUST_TARGETS_DIR}/${RUST_TARGET_SYS}.json" "${RUSTLIB_DIR}" # Uses SDK's CC as linker so linked binaries works out of box. + # We have a problem as rust sets LD_LIBRARY_PATH and this will break running host + # binaries (even /bin/sh) in the SDK as they detect a newer glibc from the SDK + # in those paths and we hit symbol errors. We saw particular problems with symbol + # mismatch on ubuntu1804 during development. To avoid this we have an SDK built + # binary which unsets LD_LIBRARY_PATH, which can then call the wrapper script + # where the context is easier to do the env maniupations needed install -d ${SYS_BINDIR} - create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld" "CC" + outfile="${SYS_BINDIR}/target-rust-ccld" + ${CC} ${WORKDIR}/target-rust-ccld.c -o $outfile + chmod +x "$outfile" + create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld-wrapper" "CC" ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d mkdir "${ENV_SETUP_DIR}" diff --git a/poky/meta/recipes-devtools/rust/rust.inc b/poky/meta/recipes-devtools/rust/rust.inc index 284347dedc..956301023a 100644 --- a/poky/meta/recipes-devtools/rust/rust.inc +++ b/poky/meta/recipes-devtools/rust/rust.inc @@ -81,6 +81,7 @@ python do_configure() { config.set(host_section, "cxx", e(d.expand("${RUST_TARGET_CXX}"))) config.set(host_section, "cc", e(d.expand("${RUST_TARGET_CC}"))) + config.set(host_section, "linker", e(d.expand("${RUST_TARGET_CCLD}"))) if "musl" in host_section: config.set(host_section, "musl-root", e(d.expand("${STAGING_DIR_HOST}${exec_prefix}"))) @@ -94,6 +95,7 @@ python do_configure() { config.set(build_section, "cxx", e(d.expand("${RUST_BUILD_CXX}"))) config.set(build_section, "cc", e(d.expand("${RUST_BUILD_CC}"))) + config.set(build_section, "linker", e(d.expand("${RUST_BUILD_CCLD}"))) target_section = "target.{}".format(d.getVar('RUST_TARGET_SYS', True)) if target_section != host_section and target_section != build_section: @@ -103,10 +105,13 @@ python do_configure() { config.set(target_section, "cxx", e(d.expand("${RUST_TARGET_CXX}"))) config.set(target_section, "cc", e(d.expand("${RUST_TARGET_CC}"))) + config.set(target_section, "linker", e(d.expand("${RUST_TARGET_CCLD}"))) # [llvm] config.add_section("llvm") config.set("llvm", "static-libstdcpp", e(False)) + if "llvm" in (d.getVar('TC_CXX_RUNTIME') or ""): + config.set("llvm", "use-libcxx", e(True)) # [rust] config.add_section("rust") @@ -116,6 +121,10 @@ python do_configure() { # Whether or not to optimize the compiler and standard library config.set("rust", "optimize", e(True)) + # Emits extraneous output from tests to ensure that failures of the test + # harness are debuggable just from logfiles + config.set("rust", "verbose-tests", e(True)) + # [build] config.add_section("build") config.set("build", "submodules", e(False)) diff --git a/poky/meta/recipes-devtools/rust/rust_1.63.0.bb b/poky/meta/recipes-devtools/rust/rust_1.63.0.bb index 401d51041e..1f9dbd3cce 100644 --- a/poky/meta/recipes-devtools/rust/rust_1.63.0.bb +++ b/poky/meta/recipes-devtools/rust/rust_1.63.0.bb @@ -56,13 +56,15 @@ rust_do_install:class-nativesdk() { rm ${D}${libdir}/rustlib/manifest* } +EXTRA_TOOLS ?= "cargo-clippy clippy-driver rustfmt" +EXTRA_TOOLS:remove:riscv32 = "rustfmt" rust_do_install:class-target() { export PSEUDO_UNLOAD=1 rust_runx install unset PSEUDO_UNLOAD install -d ${D}${bindir} - for i in cargo-clippy clippy-driver rustfmt; do + for i in ${EXTRA_TOOLS}; do cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir} chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i done diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb index 0a7e0f2a52..4e009d2625 100644 --- a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb +++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb @@ -18,7 +18,7 @@ S = "${WORKDIR}/git" EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS}" -PACKAGECONFIG ??= "gzip xz lz4 lzma xattr zstd reproducible" +PACKAGECONFIG ??= "gzip xz lzo lz4 lzma xattr zstd reproducible" PACKAGECONFIG[gzip] = "GZIP_SUPPORT=1,GZIP_SUPPORT=0,zlib" PACKAGECONFIG[xz] = "XZ_SUPPORT=1,XZ_SUPPORT=0,xz" PACKAGECONFIG[lzo] = "LZO_SUPPORT=1,LZO_SUPPORT=0,lzo" diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.2.bb b/poky/meta/recipes-devtools/vala/vala_0.56.2.bb deleted file mode 100644 index 08c8ccca1d..0000000000 --- a/poky/meta/recipes-devtools/vala/vala_0.56.2.bb +++ /dev/null @@ -1,3 +0,0 @@ -require ${BPN}.inc - -SRC_URI[sha256sum] = "66c9619bb17859fd1ac3aba0a57970613e38fd2a1ee30541174260c9fb90124c" diff --git a/poky/meta/recipes-devtools/vala/vala_0.56.3.bb b/poky/meta/recipes-devtools/vala/vala_0.56.3.bb new file mode 100644 index 0000000000..83f61e5b2f --- /dev/null +++ b/poky/meta/recipes-devtools/vala/vala_0.56.3.bb @@ -0,0 +1,3 @@ +require ${BPN}.inc + +SRC_URI[sha256sum] = "e1066221bf7b89cb1fa7327a3888645cb33b604de3bf45aa81132fd040b699bf" diff --git a/poky/meta/recipes-devtools/xmlto/xmlto/0001-Skip-validating-xmlto-output.patch b/poky/meta/recipes-devtools/xmlto/xmlto/0001-Skip-validating-xmlto-output.patch deleted file mode 100644 index c6857a9da5..0000000000 --- a/poky/meta/recipes-devtools/xmlto/xmlto/0001-Skip-validating-xmlto-output.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 3deb7a0eded04ab08a9cb2d88526cb1c7b440061 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 14 Aug 2022 00:23:29 -0700 -Subject: [PATCH] Skip validating xmlto output - -Avoids network access - -Upstream-Status: Submitted [https://pagure.io/xmlto/pull-request/11] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 50fa279..6a2da62 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -68,7 +68,7 @@ EXTRA_DIST = xmlto.spec \ - doc/xmlif.xml \ - xmlto.mak - --GEN_MANPAGE = FORMAT_DIR=$(top_srcdir)/format $(BASH) ./xmlto -o $(@D) man $< -+GEN_MANPAGE = FORMAT_DIR=$(top_srcdir)/format $(BASH) ./xmlto --skip-validation -o $(@D) man $< - man/man1/xmlto.1: doc/xmlto.xml ; $(GEN_MANPAGE) - man/man1/xmlif.1: doc/xmlif.xml ; $(GEN_MANPAGE) - --- -2.37.2 - diff --git a/poky/meta/recipes-devtools/xmlto/xmlto/configure.in-drop-the-test-of-xmllint-and-xsltproc.patch b/poky/meta/recipes-devtools/xmlto/xmlto/configure.in-drop-the-test-of-xmllint-and-xsltproc.patch deleted file mode 100644 index 7cc3cbe0fb..0000000000 --- a/poky/meta/recipes-devtools/xmlto/xmlto/configure.in-drop-the-test-of-xmllint-and-xsltproc.patch +++ /dev/null @@ -1,30 +0,0 @@ -configure.in: drop the test of xmllint and xsltproc - -The test is unnecessary, the xmllint and xsltproc were explicitly -added to RDEPENDS. - -Upstream-Status: Inappropriate -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - configure.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac ---- a/configure.ac -+++ b/configure.ac -@@ -42,10 +42,10 @@ AC_ARG_VAR([LOCALE], [Name and path of the `locale' program.]) - AC_PATH_PROG([LOCALE], [locale], [locale]) - - AC_ARG_VAR([XMLLINT], [Name and path of the `xmllint' program.]) --AC_PATH_PROG([XMLLINT], [xmllint], [xmllint]) -+dnl AC_PATH_PROG([XMLLINT], [xmllint], [xmllint]) - - AC_ARG_VAR([XSLTPROC], [Name and path of the `xsltproc' program.]) --AC_PATH_PROG([XSLTPROC], [xsltproc], [xsltproc]) -+dnl AC_PATH_PROG([XSLTPROC], [xsltproc], [xsltproc]) - - dnl - dnl toolchains --- -1.8.1.2 - diff --git a/poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb b/poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb index 373eca2454..5e3fac7a60 100644 --- a/poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb +++ b/poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb @@ -8,10 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" SRCREV = "6fa6a0e07644f20abf2596f78a60112713e11cbe" UPSTREAM_CHECK_COMMITS = "1" -SRC_URI = "git://pagure.io/xmlto.git;protocol=https;branch=master \ - file://configure.in-drop-the-test-of-xmllint-and-xsltproc.patch \ - file://0001-Skip-validating-xmlto-output.patch \ -" +SRC_URI = "git://pagure.io/xmlto.git;protocol=https;branch=master" S = "${WORKDIR}/git" PV .= "+0.0.29+git${SRCPV}" @@ -34,11 +31,11 @@ RDEPENDS:${PN}:append:class-target = " \ libxslt-bin \ coreutils \ " -CACHED_CONFIGUREVARS += "ac_cv_path_TAIL=tail ac_cv_path_GREP=grep" +CACHED_CONFIGUREVARS += "ac_cv_path_TAIL=tail ac_cv_path_GREP=grep ac_cv_path_XMLLINT=xmllint ac_cv_path_XSLTPROC=xsltproc" BBCLASSEXTEND = "native" -EXTRA_OECONF:append = " BASH=/bin/bash GCP=/bin/cp XMLLINT=xmllint XSLTPROC=xsltproc" +EXTRA_OECONF:append = " BASH=/bin/bash GCP=/bin/cp" do_configure:prepend() { (cd ${S} && flex -o xmlif/xmlif.c xmlif/xmlif.l) diff --git a/poky/meta/recipes-extended/cracklib/cracklib/0001-rules-Drop-using-register-keyword.patch b/poky/meta/recipes-extended/cracklib/cracklib/0001-rules-Drop-using-register-keyword.patch deleted file mode 100644 index a8446653eb..0000000000 --- a/poky/meta/recipes-extended/cracklib/cracklib/0001-rules-Drop-using-register-keyword.patch +++ /dev/null @@ -1,278 +0,0 @@ -From fe49471cfa7fe0618615c065f4c0ad04e888bf92 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 7 Aug 2022 12:24:39 -0700 -Subject: [PATCH 1/2] rules: Drop using register keyword - -This is a deprecated keyword - -Upstream-Status: Submitted [https://github.com/cracklib/cracklib/pull/48] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/lib/rules.c | 94 ++++++++++++++++++++++++------------------------- - 1 file changed, 47 insertions(+), 47 deletions(-) - -diff --git a/lib/rules.c b/lib/rules.c -index 3a2aa46..6e7a12a 100644 ---- a/lib/rules.c -+++ b/lib/rules.c -@@ -67,8 +67,8 @@ Suffix(myword, suffix) - char *myword; - char *suffix; - { -- register int i; -- register int j; -+ int i; -+ int j; - i = strlen(myword); - j = strlen(suffix); - -@@ -83,10 +83,10 @@ Suffix(myword, suffix) - - char * - Reverse(str) /* return a pointer to a reversal */ -- register char *str; -+ char *str; - { -- register int i; -- register int j; -+ int i; -+ int j; - static char area[STRINGSIZE]; - j = i = strlen(str); - while (*str) -@@ -99,9 +99,9 @@ Reverse(str) /* return a pointer to a reversal */ - - char * - Uppercase(str) /* return a pointer to an uppercase */ -- register char *str; -+ char *str; - { -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE]; - ptr = area; - while (*str) -@@ -116,9 +116,9 @@ Uppercase(str) /* return a pointer to an uppercase */ - - char * - Lowercase(str) /* return a pointer to an lowercase */ -- register char *str; -+ char *str; - { -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE]; - ptr = area; - while (*str) -@@ -133,9 +133,9 @@ Lowercase(str) /* return a pointer to an lowercase */ - - char * - Capitalise(str) /* return a pointer to an capitalised */ -- register char *str; -+ char *str; - { -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE]; - ptr = area; - -@@ -152,9 +152,9 @@ Capitalise(str) /* return a pointer to an capitalised */ - - char * - Pluralise(string) /* returns a pointer to a plural */ -- register char *string; -+ char *string; - { -- register int length; -+ int length; - static char area[STRINGSIZE]; - length = strlen(string); - strcpy(area, string); -@@ -193,11 +193,11 @@ Pluralise(string) /* returns a pointer to a plural */ - - char * - Substitute(string, old, new) /* returns pointer to a swapped about copy */ -- register char *string; -- register char old; -- register char new; -+ char *string; -+ char old; -+ char new; - { -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE]; - ptr = area; - while (*string) -@@ -211,11 +211,11 @@ Substitute(string, old, new) /* returns pointer to a swapped about copy */ - - char * - Purge(string, target) /* returns pointer to a purged copy */ -- register char *string; -- register char target; -+ char *string; -+ char target; - { -- register char *ptr; -- static char area[STRINGSIZE]; -+ char *ptr; -+ char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -238,11 +238,11 @@ Purge(string, target) /* returns pointer to a purged copy */ - - int - MatchClass(class, input) -- register char class; -- register char input; -+ char class; -+ char input; - { -- register char c; -- register int retval; -+ char c; -+ int retval; - retval = 0; - - switch (class) -@@ -357,8 +357,8 @@ MatchClass(class, input) - - char * - PolyStrchr(string, class) -- register char *string; -- register char class; -+ char *string; -+ char class; - { - while (*string) - { -@@ -373,11 +373,11 @@ PolyStrchr(string, class) - - char * - PolySubst(string, class, new) /* returns pointer to a swapped about copy */ -- register char *string; -- register char class; -- register char new; -+ char *string; -+ char class; -+ char new; - { -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE]; - ptr = area; - while (*string) -@@ -391,10 +391,10 @@ PolySubst(string, class, new) /* returns pointer to a swapped about copy */ - - char * - PolyPurge(string, class) /* returns pointer to a purged copy */ -- register char *string; -- register char class; -+ char *string; -+ char class; - { -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE]; - ptr = area; - while (*string) -@@ -433,7 +433,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - char *control; - { - int limit; -- register char *ptr; -+ char *ptr; - static char area[STRINGSIZE * 2] = {0}; - char area2[STRINGSIZE * 2] = {0}; - strcpy(area, input); -@@ -523,7 +523,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - return NULL; - } else - { -- register char *string; -+ char *string; - string = area; - while (*(string++)); - string[-1] = *(++ptr); -@@ -537,7 +537,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - return NULL; - } else - { -- register int i; -+ int i; - int start; - int length; - start = Char2Int(*(++ptr)); -@@ -563,7 +563,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - return NULL; - } else - { -- register int i; -+ int i; - i = Char2Int(*(++ptr)); - if (i < 0) - { -@@ -587,9 +587,9 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - return NULL; - } else - { -- register int i; -- register char *p1; -- register char *p2; -+ int i; -+ char *p1; -+ char *p2; - i = Char2Int(*(++ptr)); - if (i < 0) - { -@@ -696,7 +696,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - return NULL; - } else - { -- register int i; -+ int i; - if ((i = Char2Int(ptr[1])) < 0) - { - Debug(1, "Mangle: '=' weird argument in '%s'\n", control); -@@ -723,7 +723,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - case RULE_DFIRST: - if (area[0]) - { -- register int i; -+ int i; - for (i = 1; area[i]; i++) - { - area[i - 1] = area[i]; -@@ -735,7 +735,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - case RULE_DLAST: - if (area[0]) - { -- register int i; -+ int i; - for (i = 1; area[i]; i++); - area[i - 1] = '\0'; - } -@@ -771,7 +771,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - return NULL; - } else - { -- register int i; -+ int i; - - for (i = 0; area[i]; i++); - -@@ -815,8 +815,8 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - - int - PMatch(control, string) --register char *control; --register char *string; -+char *control; -+char *string; - { - while (*string && *control) - { --- -2.37.1 - diff --git a/poky/meta/recipes-extended/cracklib/cracklib/0002-rules-Correct-parameter-types-to-Debug-calls.patch b/poky/meta/recipes-extended/cracklib/cracklib/0002-rules-Correct-parameter-types-to-Debug-calls.patch deleted file mode 100644 index a8692b0cca..0000000000 --- a/poky/meta/recipes-extended/cracklib/cracklib/0002-rules-Correct-parameter-types-to-Debug-calls.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 793921a8ee4ae7f20e1fd2bbec5196bc83176b01 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 7 Aug 2022 12:25:24 -0700 -Subject: [PATCH 2/2] rules: Correct parameter types to Debug() calls - -Fixes -src/lib/rules.c:346:45: error: incompatible integer to pointer conversion passing 'char' to parameter of type 'char *'; take the address with & [-Wint-conversion] -src/lib/rules.c:804:53: error: incompatible integer to pointer conversion passing 'char' to parameter of type 'char *'; remove * [-Wint-conversion] Debug(1, "Mangle: unknown command %c in %s\n", *ptr, control); - ^~~~ -Upstream-Status: Submitted [https://github.com/cracklib/cracklib/pull/48] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/lib/rules.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/lib/rules.c b/lib/rules.c -index 6e7a12a..4a34f91 100644 ---- a/lib/rules.c -+++ b/lib/rules.c -@@ -343,7 +343,7 @@ MatchClass(class, input) - break; - - default: -- Debug(1, "MatchClass: unknown class %c\n", class); -+ Debug(1, "MatchClass: unknown class %c\n", &class); - return (0); - break; - } -@@ -801,7 +801,7 @@ Mangle(input, control) /* returns a pointer to a controlled Mangle */ - } - - default: -- Debug(1, "Mangle: unknown command %c in %s\n", *ptr, control); -+ Debug(1, "Mangle: unknown command %c in %s\n", ptr, control); - return NULL; - break; - } --- -2.37.1 - diff --git a/poky/meta/recipes-extended/cracklib/cracklib_2.9.7.bb b/poky/meta/recipes-extended/cracklib/cracklib_2.9.8.bb index ffed88ed01..786940a7e0 100644 --- a/poky/meta/recipes-extended/cracklib/cracklib_2.9.7.bb +++ b/poky/meta/recipes-extended/cracklib/cracklib_2.9.8.bb @@ -12,11 +12,9 @@ EXTRA_OECONF = "--without-python --libdir=${base_libdir}" SRC_URI = "git://github.com/cracklib/cracklib;protocol=https;branch=master \ file://0001-packlib.c-support-dictionary-byte-order-dependent.patch \ file://0002-craklib-fix-testnum-and-teststr-failed.patch \ - file://0001-rules-Drop-using-register-keyword.patch \ - file://0002-rules-Correct-parameter-types-to-Debug-calls.patch \ " -SRCREV = "f83934cf3cced0c9600c7d81332f4169f122a2cf" +SRCREV = "d9e8f9f47718539aeba80f90f4e072549926dc9c" S = "${WORKDIR}/git/src" inherit autotools gettext diff --git a/poky/meta/recipes-extended/cronie/cronie_1.6.1.bb b/poky/meta/recipes-extended/cronie/cronie_1.6.1.bb index 6d150dd3c7..078187534e 100644 --- a/poky/meta/recipes-extended/cronie/cronie_1.6.1.bb +++ b/poky/meta/recipes-extended/cronie/cronie_1.6.1.bb @@ -14,9 +14,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=dd2a592170760e1386c769e1043b3722 \ SECTION = "utils" -UPSTREAM_CHECK_URI = "https://github.com/cronie-crond/${BPN}/releases/" +GITHUB_BASE_URI = "https://github.com/cronie-crond/${BPN}/releases/" -SRC_URI = "https://github.com/cronie-crond/cronie/releases/download/cronie-${PV}/cronie-${PV}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/cronie-${PV}/cronie-${PV}.tar.gz \ file://crond.init \ file://crontab \ file://crond.service \ @@ -27,7 +27,8 @@ PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid" SRC_URI[sha256sum] = "2cd0f0dd1680e6b9c39bf1e3a5e7ad6df76aa940de1ee90a453633aa59984e62" -inherit autotools update-rc.d useradd systemd +inherit autotools update-rc.d useradd systemd github-releases +UPSTREAM_CHECK_REGEX = "releases/tag/cronie-(?P<pver>\d+(\.\d+)+)" PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc index 4592980766..9c920bb133 100644 --- a/poky/meta/recipes-extended/cups/cups.inc +++ b/poky/meta/recipes-extended/cups/cups.inc @@ -8,7 +8,7 @@ SECTION = "console/utils" LICENSE = "Apache-2.0" DEPENDS = "libpng jpeg dbus zlib libusb1" -SRC_URI = "https://github.com/OpenPrinting/cups/releases/download/v${PV}/cups-${PV}-source.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/cups-${PV}-source.tar.gz \ file://0001-use-echo-only-in-init.patch \ file://0002-don-t-try-to-run-generated-binaries.patch \ file://libexecdir.patch \ @@ -17,8 +17,7 @@ SRC_URI = "https://github.com/OpenPrinting/cups/releases/download/v${PV}/cups-${ file://cups-volatiles.conf \ " -UPSTREAM_CHECK_URI = "https://github.com/OpenPrinting/cups/releases" -UPSTREAM_CHECK_REGEX = "cups-(?P<pver>(?!.+\d(b|rc)\d.+).+)-source.tar" +GITHUB_BASE_URI = "https://github.com/OpenPrinting/cups/releases" # Issue only applies to MacOS CVE_CHECK_IGNORE += "CVE-2008-1033" @@ -33,7 +32,7 @@ LEAD_SONAME = "libcupsdriver.so" CLEANBROKEN = "1" -inherit autotools-brokensep binconfig useradd systemd pkgconfig multilib_script +inherit autotools-brokensep binconfig useradd systemd pkgconfig multilib_script github-releases USERADD_PACKAGES = "${PN}" GROUPADD_PARAM:${PN} = "--system lpadmin" diff --git a/poky/meta/recipes-extended/less/less_600.bb b/poky/meta/recipes-extended/less/less_608.bb index f51083e1de..f411a8fb53 100644 --- a/poky/meta/recipes-extended/less/less_600.bb +++ b/poky/meta/recipes-extended/less/less_608.bb @@ -28,10 +28,9 @@ DEPENDS = "ncurses" SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz \ " -SRC_URI[sha256sum] = "6633d6aa2b3cc717afb2c205778c7c42c4620f63b1d682f3d12c98af0be74d20" +SRC_URI[sha256sum] = "a69abe2e0a126777e021d3b73aa3222e1b261f10e64624d41ec079685a6ac209" UPSTREAM_CHECK_URI = "http://www.greenwoodsoftware.com/less/download.html" -UPSTREAM_VERSION_UNKNOWN = "1" inherit autotools update-alternatives diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.20.1.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.20.1.bb index 35977535aa..034c37b429 100644 --- a/poky/meta/recipes-extended/logrotate/logrotate_3.20.1.bb +++ b/poky/meta/recipes-extended/logrotate/logrotate_3.20.1.bb @@ -10,10 +10,7 @@ DEPENDS="coreutils popt" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" -UPSTREAM_CHECK_REGEX = "logrotate-(?P<pver>\d+(\.\d+)+).tar" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz" SRC_URI[sha256sum] = "742f6d6e18eceffa49a4bacd933686d3e42931cfccfb694d7f6369b704e5d094" @@ -47,7 +44,7 @@ EXTRA_OEMAKE = "\ # INSTALL=install and BASEDIR=/usr. OS_NAME = "Linux" -inherit autotools systemd +inherit autotools systemd github-releases SYSTEMD_SERVICE:${PN} = "\ ${BPN}.service \ diff --git a/poky/meta/recipes-extended/ltp/ltp_20220527.bb b/poky/meta/recipes-extended/ltp/ltp_20220527.bb index 00ff906ded..b657a6adb1 100644 --- a/poky/meta/recipes-extended/ltp/ltp_20220527.bb +++ b/poky/meta/recipes-extended/ltp/ltp_20220527.bb @@ -150,13 +150,11 @@ remove_broken_musl_sources() { # sync with upstream # https://github.com/linux-test-project/ltp/blob/master/ci/alpine.sh#L33 rm -rfv \ - testcases/kernel/syscalls/confstr/confstr01.c \ testcases/kernel/syscalls/fmtmsg/fmtmsg01.c \ testcases/kernel/syscalls/getcontext/getcontext01.c \ testcases/kernel/syscalls/rt_tgsigqueueinfo/rt_tgsigqueueinfo01.c \ testcases/kernel/syscalls/timer_create/timer_create01.c \ - testcases/kernel/syscalls/timer_create/timer_create03.c \ - utils/benchmark/ebizzy-0.3 + testcases/kernel/syscalls/timer_create/timer_create03.c } do_patch[postfuncs] += "remove_broken_musl_sources" diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb index 9a7cfec166..bede4412d9 100644 --- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb +++ b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb @@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7eb5c1bf854e8881005d673599ee74d3 \ file://libpamc/License;md5=a4da476a14c093fdc73be3c3c9ba8fb3 \ " -SRC_URI = "https://github.com/linux-pam/linux-pam/releases/download/v${PV}/Linux-PAM-${PV}.tar.xz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/Linux-PAM-${PV}.tar.xz \ file://99_pam \ file://pam.d/common-account \ file://pam.d/common-auth \ @@ -42,7 +42,7 @@ CFLAGS:append = " -fPIC " S = "${WORKDIR}/Linux-PAM-${PV}" -inherit autotools gettext pkgconfig +inherit autotools gettext pkgconfig systemd ptest github-releases PACKAGECONFIG ??= "" PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit," @@ -191,6 +191,6 @@ CONFFILES:${PN}-runtime += "${sysconfdir}/pam.d/common-session-noninteractive" CONFFILES:${PN}-runtime += "${sysconfdir}/pam.d/common-account" CONFFILES:${PN}-runtime += "${sysconfdir}/security/limits.conf" -UPSTREAM_CHECK_URI = "https://github.com/linux-pam/linux-pam/releases" +GITHUB_BASE_URI = "https://github.com/linux-pam/linux-pam/releases" CVE_PRODUCT = "linux-pam" diff --git a/poky/meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch b/poky/meta/recipes-extended/rust-example/rust-hello-world/0001-enable-LTO.patch index f319545ee1..f319545ee1 100644 --- a/poky/meta/recipes-example/rust-hello-world/rust-hello-world/0001-enable-LTO.patch +++ b/poky/meta/recipes-extended/rust-example/rust-hello-world/0001-enable-LTO.patch diff --git a/poky/meta/recipes-example/rust-hello-world/rust-hello-world_git.bb b/poky/meta/recipes-extended/rust-example/rust-hello-world_git.bb index 1d91109b51..1d91109b51 100644 --- a/poky/meta/recipes-example/rust-hello-world/rust-hello-world_git.bb +++ b/poky/meta/recipes-extended/rust-example/rust-hello-world_git.bb diff --git a/poky/meta/recipes-extended/shadow/files/securetty b/poky/meta/recipes-extended/shadow/files/securetty index 2be341a216..820728faa6 100644 --- a/poky/meta/recipes-extended/shadow/files/securetty +++ b/poky/meta/recipes-extended/shadow/files/securetty @@ -7,6 +7,7 @@ ttyS0 ttyS1 ttyS2 ttyS3 +ttyS4 # ARM AMBA SoCs ttyAM0 diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc index 414bf467ba..a87e23569b 100644 --- a/poky/meta/recipes-extended/shadow/shadow.inc +++ b/poky/meta/recipes-extended/shadow/shadow.inc @@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c9a450b7be84eac23e6353efecb60b5b \ DEPENDS = "virtual/crypt" -UPSTREAM_CHECK_URI = "https://github.com/shadow-maint/shadow/releases" -SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \ +GITHUB_BASE_URI = "https://github.com/shadow-maint/shadow/releases" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \ file://0001-shadow-use-relaxed-usernames.patch \ ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \ file://useradd \ @@ -42,7 +42,7 @@ PAM_SRC_URI = "file://pam.d/chfn \ file://pam.d/passwd \ file://pam.d/su" -inherit autotools gettext +inherit autotools gettext github-releases export CONFIG_SHELL="/bin/sh" diff --git a/poky/meta/recipes-extended/timezone/timezone.inc b/poky/meta/recipes-extended/timezone/timezone.inc index 2b956cf7c0..d3c78e9157 100644 --- a/poky/meta/recipes-extended/timezone/timezone.inc +++ b/poky/meta/recipes-extended/timezone/timezone.inc @@ -6,7 +6,7 @@ SECTION = "base" LICENSE = "PD & BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba" -PV = "2022b" +PV = "2022d" SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \ http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \ @@ -14,6 +14,6 @@ SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones" -SRC_URI[tzcode.sha256sum] = "bab20d943e59a3218435f48d868a4e552f18d6d7f3dd128660c5660c80b8a05f" -SRC_URI[tzdata.sha256sum] = "f590eaf04a395245426c2be4fae71c143aea5cebc11088b7a0a5704461df397d" +SRC_URI[tzcode.sha256sum] = "d644ba0f938899374ea8cb554e35fb4afa0f7bd7b716c61777cd00500b8759e0" +SRC_URI[tzdata.sha256sum] = "6ecdbee27fa43dcfa49f3d4fd8bb1dfef54c90da1abcd82c9abcf2dc4f321de0" diff --git a/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb index 26fcc10487..6031dcaa16 100644 --- a/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb +++ b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb @@ -28,10 +28,6 @@ UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/" inherit autotools update-rc.d systemd pkgconfig -DEPENDS += "libtirpc" -CFLAGS += "-I${STAGING_INCDIR}/tirpc" -LDFLAGS += "-ltirpc" - EXTRA_OECONF += " --disable-nfs " CACHED_CONFIGUREVARS += "ac_cv_path_PATH_SENDMAIL=${sbindir}/sendmail" diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb index 9a47e908b7..d935cbd905 100644 --- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bb @@ -103,7 +103,7 @@ EOF # for a different architecture cat > ${B}/g-ir-scanner-lddwrapper << EOF #!/bin/sh -$OBJDUMP -p "\$@" +\$OBJDUMP -p "\$@" EOF chmod +x ${B}/g-ir-scanner-lddwrapper diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb index 67081bb8cb..ffb813d290 100644 --- a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb +++ b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb @@ -17,9 +17,13 @@ LICENSE:${PN}-doc = "MPL-1.1 | LGPL-2.1-only" LICENSE:${PN}-gobject = "MPL-1.1 | LGPL-2.1-only" LICENSE:${PN}-script-interpreter = "MPL-1.1 | LGPL-2.1-only" LICENSE:${PN}-perf-utils = "GPL-3.0-or-later" +# Adapt the licenses for cairo-dbg and cairo-src depending on whether +# cairo-trace is being built. +LICENSE:${PN}-dbg = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}" +LICENSE:${PN}-src = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}" LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \ - file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504" + ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}" DEPENDS = "fontconfig glib-2.0 libpng pixman zlib" diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.112.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.113.bb index 48838245dd..959ef68032 100644 --- a/poky/meta/recipes-graphics/drm/libdrm_2.4.112.bb +++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.113.bb @@ -13,28 +13,29 @@ DEPENDS = "libpthread-stubs" SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \ " -SRC_URI[sha256sum] = "00b07710bd09b35cd8d80eaf4f4497fe27f4becf467a9830f1f5e8324f8420ff" +SRC_URI[sha256sum] = "7fd7eb2967f63beb4606f22d50e277d993480d05ef75dd88a9bd8e677323e5e1" inherit meson pkgconfig manpages -PACKAGECONFIG ??= "intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs" -PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess" -PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false" -PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false" -PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false" -PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false" -PACKAGECONFIG[omap] = "-Domap=true,-Domap=false" -PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false" -PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false" -PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false" -PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false" -PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false" +PACKAGECONFIG ??= "intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv tests install-test-programs" +PACKAGECONFIG[intel] = "-Dintel=enabled,-Dintel=disabled,libpciaccess" +PACKAGECONFIG[radeon] = "-Dradeon=enabled,-Dradeon=disabled" +PACKAGECONFIG[amdgpu] = "-Damdgpu=enabled,-Damdgpu=disabled" +PACKAGECONFIG[nouveau] = "-Dnouveau=enabled,-Dnouveau=disabled" +PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=enabled,-Dvmwgfx=disabled" +PACKAGECONFIG[omap] = "-Domap=enabled,-Domap=disabled" +PACKAGECONFIG[exynos] = "-Dexynos=enabled,-Dexynos=disabled" +PACKAGECONFIG[freedreno] = "-Dfreedreno=enabled,-Dfreedreno=disabled" +PACKAGECONFIG[tegra] = "-Dtegra=enabled,-Dtegra=disabled" +PACKAGECONFIG[vc4] = "-Dvc4=enabled,-Dvc4=disabled" +PACKAGECONFIG[etnaviv] = "-Detnaviv=enabled,-Detnaviv=disabled" PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false" -PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind" +PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind" PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false" -PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false" +PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=enabled,-Dcairo-tests=disabled" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false" PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" -PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native python3-docutils-native" +PACKAGECONFIG[manpages] = "-Dman-pages=enabled,-Dman-pages=disabled,libxslt-native xmlto-native python3-docutils-native" ALLOW_EMPTY:${PN}-drivers = "1" PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_5.1.0.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_5.1.0.bb index 4c2d774803..4905e8e2ad 100644 --- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_5.1.0.bb +++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_5.1.0.bb @@ -8,15 +8,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6ee0f16281694fb6aa689cca1e0fb3da \ file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc \ " -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" -UPSTREAM_CHECK_REGEX = "harfbuzz-(?P<pver>\d+(\.\d+)+).tar" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz \ file://0001-fix-signedness-of-char-in-tests.patch \ " SRC_URI[sha256sum] = "2edb95db668781aaa8d60959d21be2ff80085f31b12053cdd660d9a50ce84f05" -inherit meson pkgconfig lib_package gtk-doc gobject-introspection +inherit meson pkgconfig lib_package gtk-doc gobject-introspection github-releases GIR_MESON_ENABLE_FLAG = 'enabled' GIR_MESON_DISABLE_FLAG = 'disabled' diff --git a/poky/meta/recipes-graphics/kmscube/kmscube/0001-drm-common.c-do-not-use-invalid-modifier.patch b/poky/meta/recipes-graphics/kmscube/kmscube/0001-drm-common.c-do-not-use-invalid-modifier.patch deleted file mode 100644 index 58ff3ba561..0000000000 --- a/poky/meta/recipes-graphics/kmscube/kmscube/0001-drm-common.c-do-not-use-invalid-modifier.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bdde833c254092a47df6c7109a9751653c82aaae Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex@linutronix.de> -Date: Mon, 8 Aug 2022 20:22:39 +0200 -Subject: [PATCH] drm-common.c: do not use invalid modifier - -Prior to kernel 5.19 this was a soft failure, but 5.19 -adds checks that result in a hard syscall fail. - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/kmscube/-/merge_requests/33] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - drm-common.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drm-common.c b/drm-common.c -index 5c9cca2..964e1c3 100644 ---- a/drm-common.c -+++ b/drm-common.c -@@ -92,7 +92,7 @@ struct drm_fb * drm_fb_get_from_bo(struct gbm_bo *bo) - modifiers[i] = modifiers[0]; - } - -- if (modifiers[0]) { -+ if (modifiers[0] && modifiers[0] != DRM_FORMAT_MOD_INVALID) { - flags = DRM_MODE_FB_MODIFIERS; - printf("Using modifier %" PRIx64 "\n", modifiers[0]); - } diff --git a/poky/meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch b/poky/meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch deleted file mode 100644 index 5965782de7..0000000000 --- a/poky/meta/recipes-graphics/kmscube/kmscube/0001-texturator-Use-correct-GL-extension-header.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 2b74e0e32235f6ab2e3e42d53dea985a7ba6227f Mon Sep 17 00:00:00 2001 -From: Damian Hobson-Garcia <dhobsong@igel.co.jp> -Date: Wed, 16 Dec 2020 11:08:25 +0900 -Subject: [PATCH] texturator: Use correct GL extension header - -gl2ext.h is the extenstion header for OpenGL ES 2.0 and all later -versions according to the Khronos documentation [1]. gl3ext.h is either -an empty stub, or may not even exist on some platforms. - -[1]: https://www.khronos.org/registry/OpenGL/index_es.php#headers - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/kmscube/-/merge_requests/26] -Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> ---- - texturator.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/texturator.c b/texturator.c -index d9335d7..6d97856 100644 ---- a/texturator.c -+++ b/texturator.c -@@ -30,7 +30,7 @@ - #include <math.h> - - #include <GLES3/gl3.h> --#include <GLES3/gl3ext.h> -+#include <GLES2/gl2ext.h> - - #ifdef HAVE_LIBPNG - #include <png.h> --- -2.33.1 - diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb index f7ee6e4e10..6ed97dfafe 100644 --- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb +++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb @@ -10,11 +10,8 @@ DEPENDS = "virtual/libgles3 virtual/libgles2 virtual/egl libdrm" LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb" -SRCREV = "9f63f359fab1b5d8e862508e4e51c9dfe339ccb0" -SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \ - file://0001-texturator-Use-correct-GL-extension-header.patch \ - file://0001-drm-common.c-do-not-use-invalid-modifier.patch \ - " +SRCREV = "3bf6ee1a02334386d87cfe356c3bfb0b24e1fed8" +SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https" UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.9.bb b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.9.bb index 487fc00360..1210f73a86 100644 --- a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.9.bb +++ b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.9.bb @@ -9,13 +9,13 @@ SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=58ef4c80d401e07bd9ee8b6b58cf464b" -SRC_URI = "https://github.com/anholt/${BPN}/releases/download/${PV}/${BP}.tar.xz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz \ file://0001-dispatch_common.h-define-also-EGL_NO_X11.patch \ " SRC_URI[sha256sum] = "d168a19a6edfdd9977fef1308ccf516079856a4275cf876de688fb7927e365e4" -UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases" +GITHUB_BASE_URI = "https://github.com/anholt/libepoxy/releases" -inherit meson pkgconfig features_check +inherit meson pkgconfig features_check github-releases REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-video-restore-ability-to-disable-fb-accel-via-hint.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-video-restore-ability-to-disable-fb-accel-via-hint.patch deleted file mode 100644 index fc74d30556..0000000000 --- a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-video-restore-ability-to-disable-fb-accel-via-hint.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 14ad91658fd296e34bb9e833281e72c871bfb189 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex@linutronix.de> -Date: Tue, 3 May 2022 12:31:50 +0200 -Subject: [PATCH] video: restore ability to disable fb accel via hint - -Somewhere in code refactoring between .20 and .22 this check -was lost, and so the hint had no effect anymore. - -Upstream-Status: Submitted [https://github.com/libsdl-org/SDL/pull/5611] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - src/video/SDL_video.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c -index 93c803e..cbe7616 100644 ---- a/src/video/SDL_video.c -+++ b/src/video/SDL_video.c -@@ -2503,6 +2503,14 @@ SDL_CreateWindowFramebuffer(SDL_Window * window) - if (!_this->checked_texture_framebuffer) { - SDL_bool attempt_texture_framebuffer = SDL_TRUE; - -+ /* See if the user or application wants to specifically disable the framebuffer */ -+ const char *hint = SDL_GetHint(SDL_HINT_FRAMEBUFFER_ACCELERATION); -+ if (hint) { -+ if (*hint == '0' || SDL_strcasecmp(hint, "false") == 0) { -+ attempt_texture_framebuffer = SDL_FALSE; -+ } -+ } -+ - if (_this->is_dummy) { /* dummy driver never has GPU support, of course. */ - attempt_texture_framebuffer = SDL_FALSE; - } --- -2.30.2 - diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.24.0.bb index ff3e162c49..d5cbf73df2 100644 --- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb +++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.24.0.bb @@ -22,13 +22,12 @@ LIC_FILES_CHKSUM:append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'f PROVIDES = "virtual/libsdl2" SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ - file://0001-video-restore-ability-to-disable-fb-accel-via-hint.patch \ " SRC_URI:append:class-native = " file://0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch" S = "${WORKDIR}/SDL2-${PV}" -SRC_URI[sha256sum] = "fe7cbf3127882e3fc7259a75a0cb585620272c51745d3852ab9dd87960697f2e" +SRC_URI[sha256sum] = "91e4c34b1768f92d399b078e171448c6af18cafda743987ed2064a28954d6d97" inherit cmake lib_package binconfig-disabled pkgconfig upstream-version-is-even @@ -43,9 +42,7 @@ EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \ -DSDL_PTHREADS=ON \ -DSDL_RPATH=OFF \ -DSDL_SNDIO=OFF \ - -DSDL_X11_XVM=OFF \ -DSDL_X11_XCURSOR=OFF \ - -DSDL_X11_XINERAMA=OFF \ -DSDL_X11_XDBE=OFF \ -DSDL_X11_XFIXES=OFF \ -DSDL_X11_XINPUT=OFF \ @@ -62,7 +59,7 @@ PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}" PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}" PACKAGECONFIG ??= " \ ${PACKAGECONFIG_GL} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11 vulkan', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \ ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \ " @@ -77,9 +74,12 @@ PACKAGECONFIG[kmsdrm] = "-DSDL_KMSDRM=ON,-DSDL_KMSDRM=OFF,libdrm virtual/lib PACKAGECONFIG[libusb] = ",,libusb1" PACKAGECONFIG[opengl] = "-DSDL_OPENGL=ON,-DSDL_OPENGL=OFF,virtual/egl" PACKAGECONFIG[pulseaudio] = "-DSDL_PULSEAUDIO=ON,-DSDL_PULSEAUDIO=OFF,pulseaudio" +PACKAGECONFIG[vulkan] = "-DSDL_VULKAN=ON,-DSDL_VULKAN=OFF" PACKAGECONFIG[wayland] = "-DSDL_WAYLAND=ON,-DSDL_WAYLAND=OFF,wayland-native wayland wayland-protocols libxkbcommon" PACKAGECONFIG[x11] = "-DSDL_X11=ON,-DSDL_X11=OFF,virtual/libx11 libxext libxrandr libxrender" CFLAGS:append:class-native = " -DNO_SHARED_MEMORY" +FILES:${PN} += "${datadir}/licenses/SDL2/LICENSE.txt" + BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/libva/libva.inc b/poky/meta/recipes-graphics/libva/libva.inc index 956cd50756..735f2fca5b 100644 --- a/poky/meta/recipes-graphics/libva/libva.inc +++ b/poky/meta/recipes-graphics/libva/libva.inc @@ -16,17 +16,17 @@ BUGTRACKER = "https://github.com/intel/libva/issues" SECTION = "x11" LICENSE = "MIT" -SRC_URI = "https://github.com/intel/libva/releases/download/${PV}/libva-${PV}.tar.bz2" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libva-${PV}.tar.bz2" LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" SRC_URI[sha256sum] = "258ed409458d3e7a000e1908bc852619615ee6a933359c745fcd93eb3e461eca" S = "${WORKDIR}/libva-${PV}" -UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases" +GITHUB_BASE_URI = "https://github.com/intel/libva/releases" DEPENDS = "libdrm" -inherit meson pkgconfig +inherit meson pkgconfig github-releases PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes" PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa" diff --git a/poky/meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch b/poky/meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch deleted file mode 100644 index dac2de4e62..0000000000 --- a/poky/meta/recipes-graphics/mesa/files/0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 7796c2c56c960ac55e49246f0349ac52539ada55 Mon Sep 17 00:00:00 2001 -From: Leandro Ribeiro <leandro.ribeiro@collabora.com> -Date: Sun, 10 Apr 2022 22:54:36 -0300 -Subject: [PATCH] Revert "egl/wayland: deprecate drm_handle_format() and - drm_handle_capabilities()" - -Commit af1ee8e010441f8f2ed8c77065b159652a4ac9fe dropped support to -wl_drm, as we thought that most compositors from active projects were -already supporting zwp_linux_dmabuf_v1. - -But that's not true, so revert this commit in order to give these -projects a longer transition period. - -Note that we didn't add back the support to GEM name API, and that was -on purpose. - -Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> -Reviewed-by: Simon Ser <contact@emersion.fr> -Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15822> - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> -Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/commit/c60fea8c228ae3f32e20d6b65c473d9f04871d20] ---- - src/egl/drivers/dri2/egl_dri2.h | 1 + - src/egl/drivers/dri2/platform_wayland.c | 59 +++++++++++++++++++------ - 2 files changed, 47 insertions(+), 13 deletions(-) - -diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h -index c466ff83c53..eecb32a53fd 100644 ---- a/src/egl/drivers/dri2/egl_dri2.h -+++ b/src/egl/drivers/dri2/egl_dri2.h -@@ -283,6 +283,7 @@ struct dri2_egl_display - struct zwp_linux_dmabuf_feedback_v1 *wl_dmabuf_feedback; - struct dmabuf_feedback_format_table format_table; - bool authenticated; -+ uint32_t capabilities; - char *device_name; - #endif - -diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c -index 5ff83cce08a..843434376a7 100644 ---- a/src/egl/drivers/dri2/platform_wayland.c -+++ b/src/egl/drivers/dri2/platform_wayland.c -@@ -1343,7 +1343,7 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy, - struct dri2_egl_surface *dri2_surf, - __DRIimage *image) - { -- struct wl_buffer *ret; -+ struct wl_buffer *ret = NULL; - EGLBoolean query; - int width, height, fourcc, num_planes; - uint64_t modifier = DRM_FORMAT_MOD_INVALID; -@@ -1447,11 +1447,28 @@ create_wl_buffer(struct dri2_egl_display *dri2_dpy, - ret = zwp_linux_buffer_params_v1_create_immed(params, width, height, - fourcc, 0); - zwp_linux_buffer_params_v1_destroy(params); -+ } else { -+ struct wl_drm *wl_drm = -+ dri2_surf ? dri2_surf->wl_drm_wrapper : dri2_dpy->wl_drm; -+ int fd = -1, stride; -+ -+ if (num_planes > 1) -+ return NULL; -+ -+ query = dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_FD, &fd); -+ query &= dri2_dpy->image->queryImage(image, __DRI_IMAGE_ATTRIB_STRIDE, &stride); -+ if (!query) { -+ if (fd >= 0) -+ close(fd); -+ return NULL; -+ } - -- return ret; -+ ret = wl_drm_create_prime_buffer(wl_drm, fd, width, height, fourcc, 0, -+ stride, 0, 0, 0, 0); -+ close(fd); - } - -- return NULL; -+ return ret; - } - - static EGLBoolean -@@ -1698,16 +1715,21 @@ drm_handle_device(void *data, struct wl_drm *drm, const char *device) - static void - drm_handle_format(void *data, struct wl_drm *drm, uint32_t format) - { -- /* deprecated, as compositors already support the dma-buf protocol extension -- * and so we can rely on dmabuf_handle_modifier() to receive formats and -- * modifiers */ -+ struct dri2_egl_display *dri2_dpy = data; -+ int visual_idx = dri2_wl_visual_idx_from_fourcc(format); -+ -+ if (visual_idx == -1) -+ return; -+ -+ BITSET_SET(dri2_dpy->formats.formats_bitmap, visual_idx); - } - - static void - drm_handle_capabilities(void *data, struct wl_drm *drm, uint32_t value) - { -- /* deprecated, as compositors already support the dma-buf protocol extension -- * and so we can rely on it to create wl_buffer's */ -+ struct dri2_egl_display *dri2_dpy = data; -+ -+ dri2_dpy->capabilities = value; - } - - static void -@@ -2075,13 +2097,12 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) - wl_registry_add_listener(dri2_dpy->wl_registry, - ®istry_listener_drm, dri2_dpy); - -- /* The compositor must expose the dma-buf interface. */ -- if (roundtrip(dri2_dpy) < 0 || dri2_dpy->wl_dmabuf == NULL) -+ if (roundtrip(dri2_dpy) < 0) - goto cleanup; - - /* Get default dma-buf feedback */ -- if (zwp_linux_dmabuf_v1_get_version(dri2_dpy->wl_dmabuf) >= -- ZWP_LINUX_DMABUF_V1_GET_DEFAULT_FEEDBACK_SINCE_VERSION) { -+ if (dri2_dpy->wl_dmabuf && zwp_linux_dmabuf_v1_get_version(dri2_dpy->wl_dmabuf) >= -+ ZWP_LINUX_DMABUF_V1_GET_DEFAULT_FEEDBACK_SINCE_VERSION) { - dmabuf_feedback_format_table_init(&dri2_dpy->format_table); - dri2_dpy->wl_dmabuf_feedback = - zwp_linux_dmabuf_v1_get_default_feedback(dri2_dpy->wl_dmabuf); -@@ -2089,7 +2110,6 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) - &dmabuf_feedback_listener, dri2_dpy); - } - -- /* Receive events from the interfaces */ - if (roundtrip(dri2_dpy) < 0) - goto cleanup; - -@@ -2176,6 +2196,19 @@ dri2_initialize_wayland_drm(_EGLDisplay *disp) - - dri2_wl_setup_swap_interval(disp); - -+ if (dri2_dpy->wl_drm) { -+ /* To use Prime, we must have _DRI_IMAGE v7 at least. createImageFromFds -+ * support indicates that Prime export/import is supported by the driver. -+ * We deprecated the support to GEM names API, so we bail out if the -+ * driver does not suport Prime. */ -+ if (!(dri2_dpy->capabilities & WL_DRM_CAPABILITY_PRIME) || -+ (dri2_dpy->image->base.version < 7) || -+ (dri2_dpy->image->createImageFromFds == NULL)) { -+ _eglLog(_EGL_WARNING, "wayland-egl: display does not support prime"); -+ goto cleanup; -+ } -+ } -+ - if (dri2_dpy->is_different_gpu && - (dri2_dpy->image->base.version < 9 || - dri2_dpy->image->blitImage == NULL)) { --- -2.35.1 - diff --git a/poky/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch b/poky/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch index 3b0bfa323b..e7d92197be 100644 --- a/poky/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch +++ b/poky/meta/recipes-graphics/mesa/files/0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch @@ -1,4 +1,4 @@ -From 253b042d2bf10e9abfa9cc508e0782aefd834145 Mon Sep 17 00:00:00 2001 +From 859bfc342d1db9b61c43f30d9aa27cea35ca7599 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 16 Oct 2020 11:03:47 -0700 Subject: [PATCH] futex.h: Define __NR_futex if it does not exist @@ -18,12 +18,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 1 file changed, 4 insertions(+) diff --git a/src/util/futex.h b/src/util/futex.h -index 43097f4..941b0ec 100644 +index 2a2a00c..92fc123 100644 --- a/src/util/futex.h +++ b/src/util/futex.h -@@ -34,6 +34,10 @@ - #include <sys/syscall.h> - #include <sys/time.h> +@@ -38,6 +38,10 @@ + #define SYS_futex SYS_futex_time64 + #endif +#if !defined(SYS_futex) && defined(SYS_futex_time64) +# define SYS_futex SYS_futex_time64 diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch index b08e4d86c2..9cd9bee2d2 100644 --- a/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch +++ b/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch @@ -1,4 +1,4 @@ -From d34bdbd80e5a1f309d2ba280cdc66ff0ee0e5c43 Mon Sep 17 00:00:00 2001 +From 3ef37c63f03ad6f2af407de350486fdd25e9132a Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 13 Jan 2020 15:23:47 -0800 Subject: [PATCH] meson misdetects 64bit atomics on mips/clang diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch index aea23d0ec2..ec263ce479 100644 --- a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch +++ b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch @@ -1,4 +1,4 @@ -From f9c597a2c517eb85c23cbeeb2e95c55794c74cda Mon Sep 17 00:00:00 2001 +From d092a9000da62dfccca5b58fca56b94eb9989c48 Mon Sep 17 00:00:00 2001 From: Alistair Francis <alistair@alistair23.me> Date: Thu, 14 Nov 2019 13:04:49 -0800 Subject: [PATCH] meson.build: check for all linux host_os combinations @@ -20,10 +20,10 @@ Signed-off-by: Alistair Francis <alistair@alistair23.me> 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build -index bca6b1f..70d06c0 100644 +index 250b528..b5c98f8 100644 --- a/meson.build +++ b/meson.build -@@ -172,7 +172,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 +@@ -173,7 +173,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2 # Only build shared_glapi if at least one OpenGL API is enabled with_shared_glapi = with_shared_glapi and with_any_opengl @@ -32,11 +32,11 @@ index bca6b1f..70d06c0 100644 dri_drivers = get_option('dri-drivers') if dri_drivers.length() != 0 -@@ -1074,7 +1074,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }', +@@ -1091,7 +1091,7 @@ if cc.has_function('reallocarray') endif # TODO: this is very incomplete --if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku'].contains(host_machine.system()) +-if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android'].contains(host_machine.system()) +if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku'].contains(host_machine.system()) or host_machine.system().startswith('linux') pre_args += '-D_GNU_SOURCE' elif host_machine.system() == 'sunos' diff --git a/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch b/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch index 48fc1e37ff..7989843eb4 100644 --- a/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch +++ b/poky/meta/recipes-graphics/mesa/files/0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch @@ -1,3 +1,11 @@ +From da6e47f1717f34c73de388c56ffaf4861a07fdc5 Mon Sep 17 00:00:00 2001 +From: t bettler <thomas.bettler@gmail.com> +Date: Sat, 9 Jul 2022 09:28:51 +0000 +Subject: [PATCH] nir/nir_opt_move: fix ALWAYS_INLINE compiler error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + Backport merge request to fix mesa compile error when debug build enabled. @@ -5,10 +13,6 @@ Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_req Signed-off-by: Kai Kang <kai.kang@windriver.com> -From c69c6e7a35205557de73734ad4a1f411c8f99926 Mon Sep 17 00:00:00 2001 -From: t bettler <thomas.bettler@gmail.com> -Date: Sat, 9 Jul 2022 09:28:51 +0000 -Subject: [PATCH] nir/nir_opt_move: fix ALWAYS_INLINE compiler error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -17,13 +21,14 @@ fix call to ‘always_inline’ ‘src_is_ssa’ Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6825 Fixes: f1d20ec67c3f186886b97de94f74484650f8fda1 ("nir/nir_opt_move: handle non-SSA defs ") + --- src/compiler/nir/nir_inline_helpers.h | 10 ++++++++-- src/compiler/nir/nir_opt_move.c | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/compiler/nir/nir_inline_helpers.h b/src/compiler/nir/nir_inline_helpers.h -index 125dd8a537c..ec33f0509f7 100644 +index 125dd8a..ec33f05 100644 --- a/src/compiler/nir/nir_inline_helpers.h +++ b/src/compiler/nir/nir_inline_helpers.h @@ -73,8 +73,8 @@ nir_foreach_dest(nir_instr *instr, nir_foreach_dest_cb cb, void *state) @@ -48,7 +53,7 @@ index 125dd8a537c..ec33f0509f7 100644 + return _nir_foreach_src(instr, cb, state); +} diff --git a/src/compiler/nir/nir_opt_move.c b/src/compiler/nir/nir_opt_move.c -index 81bcde5c436..051c3cc6295 100644 +index 81bcde5..051c3cc 100644 --- a/src/compiler/nir/nir_opt_move.c +++ b/src/compiler/nir/nir_opt_move.c @@ -60,7 +60,7 @@ src_is_ssa(nir_src *src, void *state) @@ -60,6 +65,3 @@ index 81bcde5c436..051c3cc6295 100644 } static bool --- -2.34.1 - diff --git a/poky/meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch b/poky/meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch deleted file mode 100644 index db25e16f4a..0000000000 --- a/poky/meta/recipes-graphics/mesa/files/0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch +++ /dev/null @@ -1,113 +0,0 @@ -From feb4ec510b1328fdd9aa77305d3273d1f9c7e124 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex@linutronix.de> -Date: Thu, 9 Jun 2022 11:42:05 +0200 -Subject: [PATCH] swrast_kms: use swkmsDRI2Extension instead of - driDRI2Extension - -This set of changes: -https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15649 - -caused a regression in Xorg when using swrast_kms: - (EE) AIGLX error: Calling driver entry point failed - -This commit changes the swrast_kms driver to use a dedicated screen init function -(which I believe was overlooked); I also took the opportunity to rename the -associated plumbling to have swrast-specific names. - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16942] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - src/gallium/frontends/dri/dri2.c | 16 ++++++++-------- - src/gallium/frontends/dri/dri_screen.h | 4 ++-- - src/gallium/frontends/dri/dri_util.c | 2 +- - src/gallium/targets/dri/target.c | 2 +- - 4 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c -index 63ac9d5..de33789 100644 ---- a/src/gallium/frontends/dri/dri2.c -+++ b/src/gallium/frontends/dri/dri2.c -@@ -2508,7 +2508,7 @@ release_pipe: - * Returns the struct gl_config supported by this driver. - */ - static const __DRIconfig ** --dri_kms_init_screen(__DRIscreen * sPriv) -+dri_swrast_kms_init_screen(__DRIscreen * sPriv) - { - #if defined(GALLIUM_SOFTPIPE) - const __DRIconfig **configs; -@@ -2613,8 +2613,8 @@ static const struct __DRIDriverVtableExtensionRec galliumdrm_vtable = { - * hook. The latter is used to explicitly initialise the kms_swrast driver - * rather than selecting the approapriate driver as suggested by the loader. - */ --const struct __DriverAPIRec dri_kms_driver_api = { -- .InitScreen = dri_kms_init_screen, -+const struct __DriverAPIRec dri_swrast_kms_driver_api = { -+ .InitScreen = dri_swrast_kms_init_screen, - .DestroyScreen = dri_destroy_screen, - .CreateBuffer = dri2_create_buffer, - .DestroyBuffer = dri_destroy_buffer, -@@ -2633,17 +2633,17 @@ const __DRIextension *galliumdrm_driver_extensions[] = { - NULL - }; - --static const struct __DRIDriverVtableExtensionRec dri_kms_vtable = { -+static const struct __DRIDriverVtableExtensionRec dri_swrast_kms_vtable = { - .base = { __DRI_DRIVER_VTABLE, 1 }, -- .vtable = &dri_kms_driver_api, -+ .vtable = &dri_swrast_kms_driver_api, - }; - --const __DRIextension *dri_kms_driver_extensions[] = { -+const __DRIextension *dri_swrast_kms_driver_extensions[] = { - &driCoreExtension.base, - &driImageDriverExtension.base, -- &driDRI2Extension.base, -+ &swkmsDRI2Extension.base, - &gallium_config_options.base, -- &dri_kms_vtable.base, -+ &dri_swrast_kms_vtable.base, - NULL - }; - -diff --git a/src/gallium/frontends/dri/dri_screen.h b/src/gallium/frontends/dri/dri_screen.h -index 0ee2feb..0bb8817 100644 ---- a/src/gallium/frontends/dri/dri_screen.h -+++ b/src/gallium/frontends/dri/dri_screen.h -@@ -168,8 +168,8 @@ dri_destroy_screen_helper(struct dri_screen * screen); - void - dri_destroy_screen(__DRIscreen * sPriv); - --extern const struct __DriverAPIRec dri_kms_driver_api; --extern const __DRIextension *dri_kms_driver_extensions[]; -+extern const struct __DriverAPIRec dri_swrast_kms_driver_api; -+extern const __DRIextension *dri_swrast_kms_driver_extensions[]; - extern const struct __DriverAPIRec galliumdrm_driver_api; - extern const __DRIextension *galliumdrm_driver_extensions[]; - extern const struct __DriverAPIRec galliumsw_driver_api; -diff --git a/src/gallium/frontends/dri/dri_util.c b/src/gallium/frontends/dri/dri_util.c -index 8d60526..03614e1 100644 ---- a/src/gallium/frontends/dri/dri_util.c -+++ b/src/gallium/frontends/dri/dri_util.c -@@ -187,7 +187,7 @@ swkmsCreateNewScreen(int scrn, int fd, - const __DRIconfig ***driver_configs, void *data) - { - return driCreateNewScreen2(scrn, fd, extensions, -- dri_kms_driver_extensions, -+ dri_swrast_kms_driver_extensions, - driver_configs, data); - } - -diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c -index 9b78351..e02b03b 100644 ---- a/src/gallium/targets/dri/target.c -+++ b/src/gallium/targets/dri/target.c -@@ -25,7 +25,7 @@ const __DRIextension **__driDriverGetExtensions_kms_swrast(void); - - PUBLIC const __DRIextension **__driDriverGetExtensions_kms_swrast(void) - { -- return dri_kms_driver_extensions; -+ return dri_swrast_kms_driver_extensions; - } - - #endif diff --git a/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch b/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch index 5c6165c281..d22ff3c8a8 100644 --- a/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch +++ b/poky/meta/recipes-graphics/mesa/files/0001-util-format-Check-for-NEON-before-using-it.patch @@ -1,4 +1,4 @@ -From fdb2face4eeac3c20eedcca7520f4e7014225fb4 Mon Sep 17 00:00:00 2001 +From f17e836ef9b1bbc6056790596420b699e48128c2 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Thu, 2 Dec 2021 19:57:42 -0800 Subject: [PATCH] util/format: Check for NEON before using it @@ -20,10 +20,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/format/u_format.c b/src/util/format/u_format.c -index 36c5e52..f0a0097 100644 +index c071250..0880984 100644 --- a/src/util/format/u_format.c +++ b/src/util/format/u_format.c -@@ -1138,7 +1138,7 @@ static void +@@ -1184,7 +1184,7 @@ static void util_format_unpack_table_init(void) { for (enum pipe_format format = PIPE_FORMAT_NONE; format < PIPE_FORMAT_COUNT; format++) { diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch deleted file mode 100644 index af11baee86..0000000000 --- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch +++ /dev/null @@ -1,61 +0,0 @@ -From bf41fa026ae3d378e62fd83d03a6f5933b52ca04 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair@alistair23.me> -Date: Thu, 14 Nov 2019 13:08:31 -0800 -Subject: [PATCH] meson.build: make TLS ELF optional - -USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make -TLS GLX optional again" patch updated to the latest mesa. - -For details, see: -https://gitlab.freedesktop.org/mesa/mesa/-/issues/966 - -This prevents runtime segfault on musl: - -Traceback (most recent call last): - File "/home/pokybuild/yocto-worker/musl-qemux86/build/meta/lib/oeqa/core/decorator/__init__.py", line 36, in wrapped_f - return func(*args, **kwargs) - File "/home/pokybuild/yocto-worker/musl-qemux86/build/meta/lib/oeqa/runtime/cases/parselogs.py", line 378, in test_parselogs - self.assertEqual(errcount, 0, msg=self.msg) -AssertionError: 1 != 0 : Log: /home/pokybuild/yocto-worker/musl-qemux86/build/build/tmp/work/qemux86-poky-linux-musl/core-image-sato-sdk/1.0-r0/target_logs/Xorg.0.log - -Upstream-Status: Inappropriate [configuration] ---- - meson.build | 7 +++++-- - meson_options.txt | 6 ++++++ - 2 files changed, 11 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index 70d06c0..1441611 100644 ---- a/meson.build -+++ b/meson.build -@@ -490,8 +490,11 @@ foreach platform : _platforms - pre_args += '-DHAVE_@0@_PLATFORM'.format(platform.to_upper()) - endforeach - --use_elf_tls = true --pre_args += '-DUSE_ELF_TLS' -+use_elf_tls = false -+if get_option('elf-tls') -+ use_elf_tls = true -+ pre_args += '-DUSE_ELF_TLS' -+endif - - if with_platform_android and get_option('platform-sdk-version') >= 29 - # By default the NDK compiler, at least, emits emutls references instead of -diff --git a/meson_options.txt b/meson_options.txt -index 1f6ef38..99cc5cb 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -440,6 +440,12 @@ option( - value : true, - description : 'Enable direct rendering in GLX and EGL for DRI', - ) -+option( -+ 'elf-tls', -+ type : 'boolean', -+ value : true, -+ description : 'Enable TLS support in ELF', -+) - option('egl-lib-suffix', - type : 'string', - value : '', diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_22.1.6.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_22.2.0.bb index f2bc8f6b5b..f2bc8f6b5b 100644 --- a/poky/meta/recipes-graphics/mesa/mesa-gl_22.1.6.bb +++ b/poky/meta/recipes-graphics/mesa/mesa-gl_22.2.0.bb diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc index ea7ed4fd27..8a74e0a80a 100644 --- a/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/poky/meta/recipes-graphics/mesa/mesa.inc @@ -10,22 +10,19 @@ HOMEPAGE = "http://mesa3d.org" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/license.rst;md5=9a383ee9f65a4e939d6630e9b067ff58" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10" PE = "2" SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ - file://0002-meson.build-make-TLS-ELF-optional.patch \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ file://0001-util-format-Check-for-NEON-before-using-it.patch \ - file://0001-Revert-egl-wayland-deprecate-drm_handle_format-and-d.patch \ - file://0001-swrast_kms-use-swkmsDRI2Extension-instead-of-driDRI2.patch \ file://0001-nir-nir_opt_move-fix-ALWAYS_INLINE-compiler-error.patch \ " -SRC_URI[sha256sum] = "22ced061eb9adab8ea35368246c1995c09723f3f71653cd5050c5cec376e671a" +SRC_URI[sha256sum] = "b1f9c8fd08f2cae3adf83355bef4d2398e8025f44947332880f2d0066bdafa8c" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)" @@ -95,7 +92,7 @@ PACKAGECONFIG = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'dri3', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ - ${@bb.utils.contains('TCLIBC', 'glibc', 'elf-tls', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \ " # "gbm" requires "opengl" @@ -104,7 +101,6 @@ PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" # "x11" requires "opengl" PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" -PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false" PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=enabled,-Dgallium-xvmc=disabled,libxvmc" PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" @@ -117,7 +113,7 @@ VULKAN_DRIVERS:append:x86:class-target = ",intel" VULKAN_DRIVERS:append:x86-64:class-target = ",intel" VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" -PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers=''," +PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" @@ -137,6 +133,7 @@ PACKAGECONFIG[freedreno] = "" PACKAGECONFIG[kmsro] = "" PACKAGECONFIG[vc4] = "" PACKAGECONFIG[v3d] = "" +PACKAGECONFIG[zink] = "" GALLIUMDRIVERS = "swrast" # gallium swrast was found to crash Xorg on startup in x32 qemu @@ -149,6 +146,7 @@ GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',fre GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}" # radeonsi requires LLVM GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" @@ -177,6 +175,8 @@ GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', ' PACKAGECONFIG[panfrost] = "" GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false" + PACKAGECONFIG[osmesa] = "-Dosmesa=true,-Dosmesa=false" PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" diff --git a/poky/meta/recipes-graphics/mesa/mesa_22.1.6.bb b/poky/meta/recipes-graphics/mesa/mesa_22.2.0.bb index 96e8aa38d6..96e8aa38d6 100644 --- a/poky/meta/recipes-graphics/mesa/mesa_22.1.6.bb +++ b/poky/meta/recipes-graphics/mesa/mesa_22.2.0.bb diff --git a/poky/meta/recipes-graphics/piglit/piglit/0004-CMakeLists.txt-add-missing-endian.h-check.patch b/poky/meta/recipes-graphics/piglit/piglit/0004-CMakeLists.txt-add-missing-endian.h-check.patch deleted file mode 100644 index 68f783ebe4..0000000000 --- a/poky/meta/recipes-graphics/piglit/piglit/0004-CMakeLists.txt-add-missing-endian.h-check.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a8ea135125b284a8a9c965d8091b3d1d9a31849c Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin <alex@linutronix.de> -Date: Tue, 5 Apr 2022 16:51:34 +0200 -Subject: [PATCH] CMakeLists.txt: add missing endian.h check - -This is needed to actually have HAVE_ENDIAN_H defined properly in config.h. - -Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/648] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9fb0508da..158fac4bc 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -481,6 +481,7 @@ check_include_file(sys/stat.h HAVE_SYS_STAT_H) - check_include_file(unistd.h HAVE_UNISTD_H) - check_include_file(fcntl.h HAVE_FCNTL_H) - check_include_file(linux/sync_file.h HAVE_LINUX_SYNC_FILE_H) -+check_include_file(endian.h HAVE_ENDIAN_H) - - if(DEFINED PIGLIT_INSTALL_VERSION) - set(PIGLIT_INSTALL_VERSION_SUFFIX diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb index 29360a246b..f758208c6b 100644 --- a/poky/meta/recipes-graphics/piglit/piglit_git.bb +++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb @@ -10,11 +10,11 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https;branch=ma file://0001-cmake-install-bash-completions-in-the-right-place.patch \ file://0002-cmake-use-proper-WAYLAND_INCLUDE_DIRS-variable.patch \ file://0003-tests-util-piglit-shader.c-do-not-hardcode-build-pat.patch \ - file://0004-CMakeLists.txt-add-missing-endian.h-check.patch \ - file://0005-cmake-Don-t-enable-GLX-if-tests-are-disabled.patch" + file://0005-cmake-Don-t-enable-GLX-if-tests-are-disabled.patch \ + " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "6403e90dc7da02d486906cddab8d02c2552a8d46" +SRCREV = "265896c86f90cb72e8f218ba6a3617fca8b9a1e3" # (when PV goes above 1.0 remove the trailing r) PV = "1.0+gitr${SRCPV}" diff --git a/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb b/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb index 32247b09c8..b7fdc0d399 100644 --- a/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb +++ b/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.5.bb @@ -13,11 +13,11 @@ PE = "1" SRC_URI = "https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-${PV}.tar.gz \ file://30-liberation-aliases.conf" SRC_URI[sha256sum] = "7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0" -UPSTREAM_CHECK_URI = "https://github.com/liberationfonts/liberation-fonts/releases" +GITHUB_BASE_URI = "https://github.com/liberationfonts/liberation-fonts/releases" S = "${WORKDIR}/liberation-fonts-ttf-${PV}" -inherit allarch fontcache +inherit allarch fontcache github-releases do_install () { install -d ${D}${datadir}/fonts/ttf/ diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch index 0fd1d511d6..8230ba588b 100644 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch +++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch @@ -1,4 +1,4 @@ -From 63788c63ed39a3ce9994f4315d8997e1a9300d4d Mon Sep 17 00:00:00 2001 +From c853c9e5c44f1b23a15a7ba629ee02f7d8ec23a0 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex.kanavin@gmail.com> Date: Mon, 6 Jan 2020 12:44:42 +0100 Subject: [PATCH] meson.build: use 'python3' directly for python @@ -8,17 +8,18 @@ its configuration). Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 682d7c8..19d2eae 100644 +index 13d95bb..b241eb2 100644 --- a/meson.build +++ b/meson.build -@@ -60,7 +60,7 @@ foreach w : warnings - endif - endforeach +@@ -64,7 +64,7 @@ flags = [ + + add_project_arguments(cc.get_supported_arguments(flags), language : 'c') -prog_python = import('python').find_installation('python3') +prog_python = 'python3' diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0135.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0135.patch deleted file mode 100644 index ae42dc8f6c..0000000000 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0135.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 63aee871365f9c9e7fa9125672302a0fb250d34d Mon Sep 17 00:00:00 2001 -From: Gert Wollny <gert.wollny@collabora.com> -Date: Tue, 30 Nov 2021 09:16:24 +0100 -Subject: [PATCH 2/2] vrend: propperly check whether the shader image range is - correct - -Also add a test to check the integer underflow. - -Closes: #251 -Signed-off-by: Gert Wollny <gert.wollny@collabora.com> -Reviewed-by: Chia-I Wu <olvaffe@gmail.com> - -cherry-pick from anongit.freedesktop.org/virglrenderer -commit 2aed5d4... - -CVE: CVE-2022-0135 -Upstream-Status: Backport -Signed-off-by: Joe Slater <joe.slater@windriver.com> - ---- - src/vrend_decode.c | 3 +- - tests/test_fuzzer_formats.c | 57 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 59 insertions(+), 1 deletion(-) - -diff --git a/src/vrend_decode.c b/src/vrend_decode.c -index 91f5f24..6771b10 100644 ---- a/src/vrend_decode.c -+++ b/src/vrend_decode.c -@@ -1249,8 +1249,9 @@ static int vrend_decode_set_shader_images(struct vrend_context *ctx, const uint3 - if (num_images < 1) { - return 0; - } -+ - if (start_slot > PIPE_MAX_SHADER_IMAGES || -- start_slot > PIPE_MAX_SHADER_IMAGES - num_images) -+ start_slot + num_images > PIPE_MAX_SHADER_IMAGES) - return EINVAL; - - for (uint32_t i = 0; i < num_images; i++) { -diff --git a/tests/test_fuzzer_formats.c b/tests/test_fuzzer_formats.c -index 154a2e5..e32caf0 100644 ---- a/tests/test_fuzzer_formats.c -+++ b/tests/test_fuzzer_formats.c -@@ -958,6 +958,61 @@ static void test_vrend_set_signle_abo_heap_overflow() { - virgl_renderer_submit_cmd((void *) cmd, ctx_id, 0xde); - } - -+static void test_vrend_set_shader_images_overflow() -+{ -+ uint32_t num_shaders = PIPE_MAX_SHADER_IMAGES + 1; -+ uint32_t size = num_shaders * VIRGL_SET_SHADER_IMAGE_ELEMENT_SIZE + 3; -+ uint32_t cmd[size]; -+ int i = 0; -+ cmd[i++] = ((size - 1)<< 16) | 0 << 8 | VIRGL_CCMD_SET_SHADER_IMAGES; -+ cmd[i++] = PIPE_SHADER_FRAGMENT; -+ memset(&cmd[i], 0, size - i); -+ -+ virgl_renderer_submit_cmd((void *) cmd, ctx_id, size); -+} -+ -+/* Test adapted from yaojun8558363@gmail.com: -+ * https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/250 -+*/ -+static void test_vrend_3d_resource_overflow() { -+ -+ struct virgl_renderer_resource_create_args resource; -+ resource.handle = 0x4c474572; -+ resource.target = PIPE_TEXTURE_2D_ARRAY; -+ resource.format = VIRGL_FORMAT_Z24X8_UNORM; -+ resource.nr_samples = 2; -+ resource.last_level = 0; -+ resource.array_size = 3; -+ resource.bind = VIRGL_BIND_SAMPLER_VIEW; -+ resource.depth = 1; -+ resource.width = 8; -+ resource.height = 4; -+ resource.flags = 0; -+ -+ virgl_renderer_resource_create(&resource, NULL, 0); -+ virgl_renderer_ctx_attach_resource(ctx_id, resource.handle); -+ -+ uint32_t size = 0x400; -+ uint32_t cmd[size]; -+ int i = 0; -+ cmd[i++] = (size - 1) << 16 | 0 << 8 | VIRGL_CCMD_RESOURCE_INLINE_WRITE; -+ cmd[i++] = resource.handle; -+ cmd[i++] = 0; // level -+ cmd[i++] = 0; // usage -+ cmd[i++] = 0; // stride -+ cmd[i++] = 0; // layer_stride -+ cmd[i++] = 0; // x -+ cmd[i++] = 0; // y -+ cmd[i++] = 0; // z -+ cmd[i++] = 8; // w -+ cmd[i++] = 4; // h -+ cmd[i++] = 3; // d -+ memset(&cmd[i], 0, size - i); -+ -+ virgl_renderer_submit_cmd((void *) cmd, ctx_id, size); -+} -+ -+ - int main() - { - initialize_environment(); -@@ -980,6 +1035,8 @@ int main() - test_cs_nullpointer_deference(); - test_vrend_set_signle_abo_heap_overflow(); - -+ test_vrend_set_shader_images_overflow(); -+ test_vrend_3d_resource_overflow(); - - virgl_renderer_context_destroy(ctx_id); - virgl_renderer_cleanup(&cookie); --- -2.25.1 - diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0175.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0175.patch deleted file mode 100644 index 7fbab75091..0000000000 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/cve-2022-0175.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 5ca7aca001092c557f0b6fc1ba3db7dcdab860b7 Mon Sep 17 00:00:00 2001 -From: Gert Wollny <gert.wollny@collabora.com> -Date: Tue, 30 Nov 2021 09:29:42 +0100 -Subject: [PATCH 1/2] vrend: clear memory when allocating a host-backed memory - resource - -Closes: #249 -Signed-off-by: Gert Wollny <gert.wollny@collabora.com> -Reviewed-by: Chia-I Wu <olvaffe@gmail.com> - -cherry-pick from anongit.freedesktop.org/virglrenderer -commit b05bb61... - -CVE: CVE-2022-0175 -Upstream-Status: Backport -Signed-off-by: Joe Slater <joe.slater@windriver.com> - ---- - src/vrend_renderer.c | 2 +- - tests/test_virgl_transfer.c | 51 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 52 insertions(+), 1 deletion(-) - -diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c -index b8b2a36..2650cf2 100644 ---- a/src/vrend_renderer.c -+++ b/src/vrend_renderer.c -@@ -6788,7 +6788,7 @@ vrend_resource_alloc_buffer(struct vrend_resource *gr, uint32_t flags) - if (bind == VIRGL_BIND_CUSTOM) { - /* use iovec directly when attached */ - gr->storage_bits |= VREND_STORAGE_HOST_SYSTEM_MEMORY; -- gr->ptr = malloc(size); -+ gr->ptr = calloc(1, size); - if (!gr->ptr) - return -ENOMEM; - } else if (bind == VIRGL_BIND_STAGING) { -diff --git a/tests/test_virgl_transfer.c b/tests/test_virgl_transfer.c -index bf7f438..3c53c3d 100644 ---- a/tests/test_virgl_transfer.c -+++ b/tests/test_virgl_transfer.c -@@ -952,6 +952,56 @@ START_TEST(virgl_test_transfer_near_res_bounds_with_stride_succeeds) - } - END_TEST - -+START_TEST(test_vrend_host_backed_memory_no_data_leak) -+{ -+ struct iovec iovs[1]; -+ int niovs = 1; -+ -+ struct virgl_context ctx = {0}; -+ -+ int ret = testvirgl_init_ctx_cmdbuf(&ctx); -+ -+ struct virgl_renderer_resource_create_args res; -+ res.handle = 0x400; -+ res.target = PIPE_BUFFER; -+ res.format = VIRGL_FORMAT_R8_UNORM; -+ res.nr_samples = 0; -+ res.last_level = 0; -+ res.array_size = 1; -+ res.bind = VIRGL_BIND_CUSTOM; -+ res.depth = 1; -+ res.width = 32; -+ res.height = 1; -+ res.flags = 0; -+ -+ uint32_t size = 32; -+ uint8_t* data = calloc(1, size); -+ memset(data, 1, 32); -+ iovs[0].iov_base = data; -+ iovs[0].iov_len = size; -+ -+ struct pipe_box box = {0,0,0, size, 1,1}; -+ -+ virgl_renderer_resource_create(&res, NULL, 0); -+ virgl_renderer_ctx_attach_resource(ctx.ctx_id, res.handle); -+ -+ ret = virgl_renderer_transfer_read_iov(res.handle, ctx.ctx_id, 0, 0, 0, -+ (struct virgl_box *)&box, 0, iovs, niovs); -+ -+ ck_assert_int_eq(ret, 0); -+ -+ for (int i = 0; i < 32; ++i) -+ ck_assert_int_eq(data[i], 0); -+ -+ virgl_renderer_ctx_detach_resource(1, res.handle); -+ -+ virgl_renderer_resource_unref(res.handle); -+ free(data); -+ -+} -+END_TEST -+ -+ - static Suite *virgl_init_suite(void) - { - Suite *s; -@@ -981,6 +1031,7 @@ static Suite *virgl_init_suite(void) - tcase_add_test(tc_core, virgl_test_transfer_buffer_bad_strides); - tcase_add_test(tc_core, virgl_test_transfer_2d_array_bad_layer_stride); - tcase_add_test(tc_core, virgl_test_transfer_2d_bad_level); -+ tcase_add_test(tc_core, test_vrend_host_backed_memory_no_data_leak); - - tcase_add_loop_test(tc_core, virgl_test_transfer_res_read_valid, 0, PIPE_MAX_TEXTURE_TYPES); - tcase_add_loop_test(tc_core, virgl_test_transfer_res_write_valid, 0, PIPE_MAX_TEXTURE_TYPES); --- -2.25.1 - diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.3.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.3.bb new file mode 100644 index 0000000000..3480eb954d --- /dev/null +++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.3.bb @@ -0,0 +1,33 @@ +SUMMARY = "VirGL virtual OpenGL renderer" +DESCRIPTION = "Virgil is a research project to investigate the possibility of \ +creating a virtual 3D GPU for use inside qemu virtual machines, that allows \ +the guest operating system to use the capabilities of the host GPU to \ +accelerate 3D rendering." +HOMEPAGE = "https://virgil3d.github.io/" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" + +DEPENDS = "libdrm libepoxy virtual/egl virtual/libgbm" +SRCREV = "0922041ec6730122e0fec11404e6859e2efc4bc0" +SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=master;protocol=https \ + file://0001-meson.build-use-python3-directly-for-python.patch \ + " + +S = "${WORKDIR}/git" + +inherit meson pkgconfig features_check + +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus-experimental', '', d)}" + +PACKAGECONFIG[venus-experimental] = "-Dvenus-experimental=true,-Dvenus-experimental=false,vulkan-loader vulkan-headers" +PACKAGECONFIG[va] = "-Dvideo=true,-Dvideo=false,libva" +PACKAGECONFIG[render-server] = "-Drender-server=true,-Drender-server=false" +PACKAGECONFIG[drm-msm-experimental] = "-Ddrm-msm-experimental=true,-Ddrm-msm-experimental=false" +PACKAGECONFIG[minigbm_allocation] = "-Dminigbm_allocation=true,-Dminigbm_allocation=false" +PACKAGECONFIG[venus-validate] = "-Dvenus-validate=true,-Dvenus-validate=false" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,libcheck" + +BBCLASSEXTEND = "native nativesdk" + +REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb deleted file mode 100644 index ad3688e300..0000000000 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "VirGL virtual OpenGL renderer" -DESCRIPTION = "Virgil is a research project to investigate the possibility of \ -creating a virtual 3D GPU for use inside qemu virtual machines, that allows \ -the guest operating system to use the capabilities of the host GPU to \ -accelerate 3D rendering." -HOMEPAGE = "https://virgil3d.github.io/" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" - -DEPENDS = "libdrm virtual/egl virtual/libgbm libepoxy" -SRCREV = "363915595e05fb252e70d6514be2f0c0b5ca312b" -SRC_URI = "git://anongit.freedesktop.org/git/virglrenderer;branch=branch-0.9.1 \ - file://0001-meson.build-use-python3-directly-for-python.patch \ - file://cve-2022-0135.patch \ - file://cve-2022-0175.patch \ - " - -S = "${WORKDIR}/git" - -inherit meson pkgconfig features_check - -BBCLASSEXTEND = "native nativesdk" - -REQUIRED_DISTRO_FEATURES = "opengl" diff --git a/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb b/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.6.bb index 1fc74b1995..8f9602d3ae 100644 --- a/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb +++ b/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.6.bb @@ -11,7 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=96254c20ab81c63e65b26f0dbcd4a1c1" DEPENDS += "zlib xorgproto font-util" PE = "1" -SRC_URI[md5sum] = "6447db6a689fb530c218f0f8328c3abc" -SRC_URI[sha256sum] = "2cfcce810ddd48f2e5dc658d28c1808e86dcf303eaff16728b9aa3dbc0092079" +XORG_EXT = "tar.xz" + +SRC_URI[sha256sum] = "ea8606ed5255dda8f570b7d1a74d59ee8d198675b2f114d07807431e6ba1d111" BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb b/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.10.bb index 3fbc3a5b44..a62c9f088a 100644 --- a/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb +++ b/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.10.bb @@ -17,8 +17,8 @@ PROVIDES = "xau" PE = "1" XORG_PN = "libXau" +XORG_EXT = "tar.xz" BBCLASSEXTEND = "native nativesdk" -SRC_URI[md5sum] = "c5f16288f2da9f071b29111d68797480" -SRC_URI[sha256sum] = "ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec" +SRC_URI[sha256sum] = "8be6f292334d2f87e5b919c001e149a9fdc27005d6b3e053862ac6ebbf1a0c0a" diff --git a/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.5.bb b/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.6.bb index 10e44c39ba..59d63e7150 100644 --- a/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.5.bb +++ b/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.6.bb @@ -12,10 +12,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a46c8040f2f737bcd0c435feb2ab1c2c" DEPENDS += "freetype xtrans xorgproto libfontenc zlib" XORG_PN = "libXfont2" +XORG_EXT = "tar.xz" BBCLASSEXTEND = "native" -SRC_URI[sha256sum] = "aa7c6f211cf7215c0ab4819ed893dc98034363d7b930b844bb43603c2e10b53e" +SRC_URI[sha256sum] = "74ca20017eb0fb3f56d8d5e60685f560fc85e5ff3d84c61c4cb891e40c27aef4" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," diff --git a/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc b/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc index 60bc8c76fa..68137c4147 100644 --- a/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc +++ b/poky/meta/recipes-graphics/xorg-lib/xorg-lib-common.inc @@ -6,8 +6,9 @@ LICENSE = "MIT" DEPENDS = "util-macros" XORG_PN = "${BPN}" +XORG_EXT ?= "tar.bz2" -SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.bz2" +SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.${XORG_EXT}" S = "${WORKDIR}/${XORG_PN}-${PV}" diff --git a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb index 11613ab3b6..dea7b65a7c 100644 --- a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +++ b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "\ DEPENDS = "git-native" -SRCREV = "f70b1d52f4706a263ae22e2c61039ccd875e97b6" +SRCREV = "ba600ef61a85966596126a6e8d936971905e8749" PV = "0.3+git${SRCPV}" inherit native diff --git a/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb index 303026ad78..6c0739d64f 100644 --- a/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb +++ b/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb @@ -21,13 +21,17 @@ do_install() { #!/bin/sh # Expected to be called as: depmodwrapper -a KERNEL_VERSION if [ "\$1" != "-a" -o "\$2" != "-b" ]; then - echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION" >&2 + echo "Usage: depmodwrapper -a -b rootfs KERNEL_VERSION [KERNEL_PACKAGE_NAME]" >&2 exit 1 fi +kernelpkgname="kernel" +# If no KERNEL_PACKAGE_NAME, assume "kernel". +[ -z "\$5" ] || kernelpkgname="\$5" + kernelabi="" -if [ -r "${PKGDATA_DIR}/kernel-depmod/kernel-abiversion" ]; then - kernelabi=\$(cat "${PKGDATA_DIR}/kernel-depmod/kernel-abiversion") +if [ -r "${PKGDATA_DIR}/\${kernelpkgname}-depmod/\${kernelpkgname}-abiversion" ]; then + kernelabi=\$(cat "${PKGDATA_DIR}/\${kernelpkgname}-depmod/\${kernelpkgname}-abiversion") fi if [ ! -e "\$3${nonarch_base_libdir}/depmod.d/exclude.conf" ]; then @@ -35,11 +39,11 @@ if [ ! -e "\$3${nonarch_base_libdir}/depmod.d/exclude.conf" ]; then echo "exclude .debug" > "\$3${nonarch_base_libdir}/depmod.d/exclude.conf" fi -if [ ! -r ${PKGDATA_DIR}/kernel-depmod/System.map-\$4 ] || [ "\$kernelabi" != "\$4" ]; then - echo "Unable to read: ${PKGDATA_DIR}/kernel-depmod/System.map-\$4" >&2 +if [ ! -r ${PKGDATA_DIR}/\${kernelpkgname}-depmod/System.map-\$4 ] || [ "\$kernelabi" != "\$4" ]; then + echo "Unable to read: ${PKGDATA_DIR}/\${kernelpkgname}-depmod/System.map-\$4" >&2 exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" "\$4" else - exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" -F "${PKGDATA_DIR}/kernel-depmod/System.map-\$4" "\$4" + exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" -F "${PKGDATA_DIR}/\${kernelpkgname}-depmod/System.map-\$4" "\$4" fi EOF chmod +x ${D}${bindir_crossscripts}/depmodwrapper diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220708.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220913.bb index 91c32e49d6..45c9d0e861 100644 --- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220708.bb +++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20220913.bb @@ -132,7 +132,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ " # WHENCE checksum is defined separately to ease overriding it if # class-devupstream is selected. -WHENCE_CHKSUM = "def08711eb23ba967fb7e1f8cff66178" +WHENCE_CHKSUM = "98ecc3d3223df7ebdc23b0ec56aafb20" # These are not common licenses, set NO_GENERIC_LICENSE for them # so that the license files will be copied from fetched source @@ -209,7 +209,7 @@ SRC_URI:class-devupstream = "git://git.kernel.org/pub/scm/linux/kernel/git/firmw # Pin this to the 20220509 release, override this in local.conf SRCREV:class-devupstream ?= "b19cbdca78ab2adfd210c91be15a22568e8b8cae" -SRC_URI[sha256sum] = "0abec827a035c82bdcabdf82aa37ded247bc682ef05861bd409ea6f477bab81d" +SRC_URI[sha256sum] = "26fd00f2d8e96c4af6f44269a6b893eb857253044f75ad28ef6706a2250cd8e9" inherit allarch @@ -311,6 +311,11 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ ${PN}-qcom-adreno-a2xx ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a4xx ${PN}-qcom-adreno-a530 \ ${PN}-qcom-adreno-a630 ${PN}-qcom-adreno-a650 ${PN}-qcom-adreno-a660 \ ${PN}-qcom-apq8096-audio ${PN}-qcom-apq8096-modem \ + ${PN}-qcom-sc8280xp-lenovo-x13s-compat \ + ${PN}-qcom-sc8280xp-lenovo-x13s-audio \ + ${PN}-qcom-sc8280xp-lenovo-x13s-adreno \ + ${PN}-qcom-sc8280xp-lenovo-x13s-compute \ + ${PN}-qcom-sc8280xp-lenovo-x13s-sensors \ ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \ ${PN}-qcom-sm8250-audio ${PN}-qcom-sm8250-compute \ ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \ @@ -976,6 +981,11 @@ FILES:${PN}-qcom-adreno-a650 = "${nonarch_base_libdir}/firmware/qcom/a650*.* ${n FILES:${PN}-qcom-adreno-a660 = "${nonarch_base_libdir}/firmware/qcom/a660*.*" FILES:${PN}-qcom-apq8096-audio = "${nonarch_base_libdir}/firmware/qcom/apq8096/adsp*.*" FILES:${PN}-qcom-apq8096-modem = "${nonarch_base_libdir}/firmware/qcom/apq8096/mba.mbn ${nonarch_base_libdir}/firmware/qcom/apq8096/modem*.* ${nonarch_base_libdir}/firmware/qcom/apq8096/wlanmdsp.mbn" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-compat = "${nonarch_base_libdir}/firmware/qcom/LENOVO/21BX" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*adsp*.* ${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/battmgr.jsn" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*cdsp*.*" +FILES:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*slpi*.*" FILES:${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*" FILES:${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*" FILES:${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn" @@ -996,12 +1006,21 @@ RDEPENDS:${PN}-qcom-adreno-a650 = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-adreno-a660 = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-apq8096-audio = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-apq8096-modem = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${PN}-qcom-license" +RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-sdm845-audio = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-sdm845-compute = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-sdm845-modem = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-sm8250-audio = "${PN}-qcom-license" RDEPENDS:${PN}-qcom-sm8250-compute = "${PN}-qcom-license" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" +RRECOMMENDS:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${PN}-qcom-sc8280xp-lenovo-x13s-compat" + FILES:${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" # For Amlogic VDEC @@ -1081,3 +1100,6 @@ python populate_packages:prepend () { # Firmware files are generally not ran on the CPU, so they can be # allarch despite being architecture specific INSANE_SKIP = "arch" + +# Don't warn about already stripped files +INSANE_SKIP:${PN} = "already-stripped" diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.19.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.19.bb index 528e1d3379..3557526d14 100644 --- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.19.bb +++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.19.bb @@ -7,7 +7,7 @@ SRC_URI:append:libc-musl = "\ file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \ " -SRC_URI:append = "\ +SRC_URI += "\ file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ " diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb index 9e37494a4b..6f8648e004 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "cb561ee4438e5961e5c471eee8094737ca873135" -SRCREV_meta ?= "59c8898d450152a0875af340e6f0e72d05aafdfa" +SRCREV_machine ?= "dba1b7d90813231782bdeda1bd169c93b35c94e0" +SRCREV_meta ?= "1128d7bcdcde490d4f35cc00c97f5410bb240d99" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.15.62" +LINUX_VERSION ?= "5.15.68" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.19.bb index c12bec3e4e..b3e9fbae62 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.19.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.19.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "df2290e83a50563688e5ea0be34e091f1c623069" -SRCREV_meta ?= "5eb0fa93f8490a962ff0c36c14d8def271d75128" +SRCREV_machine ?= "bc8af638c00f28a46e77e34056079087638f6e65" +SRCREV_meta ?= "350b544d077955b599b54ab364f6227d96a90455" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.19;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.19.3" +LINUX_VERSION ?= "5.19.9" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb index 2de32ffecd..4f2bb48743 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb @@ -5,7 +5,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.15.62" +LINUX_VERSION ?= "5.15.68" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -14,8 +14,8 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine ?= "b708cb8412758a382516bdc46f26a0b43c50fb82" -SRCREV_meta ?= "59c8898d450152a0875af340e6f0e72d05aafdfa" +SRCREV_machine ?= "33e7eea5c4545a973cf01a849c2b45fa0cd1fa13" +SRCREV_meta ?= "1128d7bcdcde490d4f35cc00c97f5410bb240d99" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.19.bb index 339f7f69a6..466b7063b4 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.19.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.19.bb @@ -5,7 +5,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.19.3" +LINUX_VERSION ?= "5.19.9" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -14,8 +14,8 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_meta ?= "5eb0fa93f8490a962ff0c36c14d8def271d75128" +SRCREV_machine ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_meta ?= "350b544d077955b599b54ab364f6227d96a90455" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb index 40c430aee3..2f91fb7a37 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb @@ -13,24 +13,24 @@ KBRANCH:qemux86 ?= "v5.15/standard/base" KBRANCH:qemux86-64 ?= "v5.15/standard/base" KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64" -SRCREV_machine:qemuarm ?= "9b096ff3914926ac68501bf156c2d1368f3ebe6c" -SRCREV_machine:qemuarm64 ?= "7cb30c5e95067ad12b7c4d371c048c7f5d5c922c" -SRCREV_machine:qemumips ?= "3210fe826ade54d891cf2120c964d2a0dc3e7393" -SRCREV_machine:qemuppc ?= "7bfdc3608327b9c471008af370dbffe053f5bed9" -SRCREV_machine:qemuriscv64 ?= "14879dcc3ca7b24d8650cf117c380a94bb865f40" -SRCREV_machine:qemuriscv32 ?= "14879dcc3ca7b24d8650cf117c380a94bb865f40" -SRCREV_machine:qemux86 ?= "14879dcc3ca7b24d8650cf117c380a94bb865f40" -SRCREV_machine:qemux86-64 ?= "14879dcc3ca7b24d8650cf117c380a94bb865f40" -SRCREV_machine:qemumips64 ?= "ef125626d718771f11fab19a3f91cca5ec27f887" -SRCREV_machine ?= "14879dcc3ca7b24d8650cf117c380a94bb865f40" -SRCREV_meta ?= "59c8898d450152a0875af340e6f0e72d05aafdfa" +SRCREV_machine:qemuarm ?= "efe28b4b16d4a1a19f59b4650a0bfb23ffc8c40e" +SRCREV_machine:qemuarm64 ?= "66986670c45f63d2ed2078e07aa817ede88025ad" +SRCREV_machine:qemumips ?= "aeeb80fd7f684aca830adb7daf32cfd80637cf3a" +SRCREV_machine:qemuppc ?= "5c6387a562af89ec92546c1374a120ac240f14e6" +SRCREV_machine:qemuriscv64 ?= "0e51e571701842db33ad96f6ddc8cc6b23230627" +SRCREV_machine:qemuriscv32 ?= "0e51e571701842db33ad96f6ddc8cc6b23230627" +SRCREV_machine:qemux86 ?= "0e51e571701842db33ad96f6ddc8cc6b23230627" +SRCREV_machine:qemux86-64 ?= "0e51e571701842db33ad96f6ddc8cc6b23230627" +SRCREV_machine:qemumips64 ?= "20ec37851f4ee9965120937dcf2567f15e72e07a" +SRCREV_machine ?= "0e51e571701842db33ad96f6ddc8cc6b23230627" +SRCREV_meta ?= "1128d7bcdcde490d4f35cc00c97f5410bb240d99" # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll # get the <version>/base branch, which is pure upstream -stable, and the same # meta SRCREV as the linux-yocto-standard builds. Select your version using the # normal PREFERRED_VERSION settings. BBCLASSEXTEND = "devupstream:target" -SRCREV_machine:class-devupstream ?= "a0a7e0b2b8b22901945ea2aef1b65871d718accf" +SRCREV_machine:class-devupstream ?= "dd20085f2a88b6cdb12bdcdbd2d7a761c86b184a" PN:class-devupstream = "linux-yocto-upstream" KBRANCH:class-devupstream = "v5.15/base" @@ -38,7 +38,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" -LINUX_VERSION ?= "5.15.62" +LINUX_VERSION ?= "5.15.68" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.19.bb index 0ff28aa952..f882972e35 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.19.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.19.bb @@ -13,24 +13,24 @@ KBRANCH:qemux86 ?= "v5.19/standard/base" KBRANCH:qemux86-64 ?= "v5.19/standard/base" KBRANCH:qemumips64 ?= "v5.19/standard/mti-malta64" -SRCREV_machine:qemuarm ?= "2cbb2d5097fc44a23da635d2ebbccb33df20a34d" -SRCREV_machine:qemuarm64 ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_machine:qemumips ?= "7741c5b2f536b99815329849cca09799cdb82e62" -SRCREV_machine:qemuppc ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_machine:qemuriscv64 ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_machine:qemuriscv32 ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_machine:qemux86 ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_machine:qemux86-64 ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_machine:qemumips64 ?= "4ced38bbd45f6cb623728bd755894928a719edac" -SRCREV_machine ?= "4d933456709d664a55fdda85304c08567265ad4d" -SRCREV_meta ?= "5eb0fa93f8490a962ff0c36c14d8def271d75128" +SRCREV_machine:qemuarm ?= "446661f6a3b07535304497c1a51d9cab95f48f0b" +SRCREV_machine:qemuarm64 ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_machine:qemumips ?= "98da147618fca3da29cf1c6ab9c53f24de2c587c" +SRCREV_machine:qemuppc ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_machine:qemuriscv64 ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_machine:qemuriscv32 ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_machine:qemux86 ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_machine:qemux86-64 ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_machine:qemumips64 ?= "53842054198d851b5deb5810afaf126156efbb54" +SRCREV_machine ?= "65a9a22786a6710fc7b4edb7cfae80dd83f591f1" +SRCREV_meta ?= "350b544d077955b599b54ab364f6227d96a90455" # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll # get the <version>/base branch, which is pure upstream -stable, and the same # meta SRCREV as the linux-yocto-standard builds. Select your version using the # normal PREFERRED_VERSION settings. BBCLASSEXTEND = "devupstream:target" -SRCREV_machine:class-devupstream ?= "bf44eed7f2fc9af74eb72f4bc415bdd3d11c4bed" +SRCREV_machine:class-devupstream ?= "d1105a680e66b0482bd18048534c58ecabb5c284" PN:class-devupstream = "linux-yocto-upstream" KBRANCH:class-devupstream = "v5.19/base" @@ -38,7 +38,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.19;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" -LINUX_VERSION ?= "5.19.3" +LINUX_VERSION ?= "5.19.9" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" @@ -56,7 +56,7 @@ COMPATIBLE_MACHINE = "^(qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qe # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" -KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc cfg/net/mdio.scc" KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" diff --git a/poky/meta/recipes-kernel/lttng/lttng-platforms.inc b/poky/meta/recipes-kernel/lttng/lttng-platforms.inc index 933c65d85d..900e36df82 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-platforms.inc +++ b/poky/meta/recipes-kernel/lttng/lttng-platforms.inc @@ -15,3 +15,7 @@ LTTNGUST:arc = "" COMPATIBLE_HOST:arc:pn-lttng-ust = "null" +# Whether the platform supports lttng-tools +# lttng-tools requires SYS_ppoll and SYS_pselect6 which are not supported on riscv32. +# It's also turned off for riscv32 in meta-riscv. See https://github.com/riscv/meta-riscv/blob/master/conf/layer.conf +COMPATIBLE_HOST:riscv32:pn-lttng-tools = "null" diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb index 9f7c300a40..31bc04635d 100644 --- a/poky/meta/recipes-kernel/perf/perf.bb +++ b/poky/meta/recipes-kernel/perf/perf.bb @@ -145,6 +145,9 @@ do_install() { # we are checking for this make target to be compatible with older perf versions if ${@bb.utils.contains('PACKAGECONFIG', 'scripting', 'true', 'false', d)} && grep -q install-python_ext ${S}/tools/perf/Makefile*; then oe_runmake DESTDIR=${D} install-python_ext + if [ -e ${D}${libdir}/python*/site-packages/perf-*/SOURCES.txt ]; then + sed -i -e 's#${WORKDIR}##g' ${D}${libdir}/python*/site-packages/perf-*/SOURCES.txt + fi fi } @@ -245,6 +248,9 @@ do_configure:prepend () { # change the Makefile line to remove everything before 'tools/perf' sed -i -e "s%srcdir_SQ = \$(subst ','\\\'',\$(srcdir))%srcdir_SQ = \$(patsubst \%tools/perf,tools/perf,\$(subst ','\\\'',\$(srcdir)))%g" \ ${S}/tools/perf/Makefile.config + # Avoid hardcoded path to python-native + sed -i -e 's#\(PYTHON_WORD := \)$(call shell-wordify,$(PYTHON))#\1 python3#g' \ + ${S}/tools/perf/Makefile.config fi if [ -e "${S}/tools/perf/tests/Build" ]; then # OUTPUT is the full path, we have python on the path so we remove it from the diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.1.bb index bb507b4974..2306fe4a42 100644 --- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.bb +++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_5.1.1.bb @@ -23,7 +23,7 @@ LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz" -SRC_URI[sha256sum] = "55eb6aab5ee235550fa54a33eaf8bf1b4ec66c01453182b12f6a993d75698b03" +SRC_URI[sha256sum] = "95bf3ff8c496511e71e958fb249e663c8c9c3de583c5bebc0f5a9745abbc0435" # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 ARM_INSTRUCTION_SET:armv4 = "arm" diff --git a/poky/meta/recipes-multimedia/flac/flac_1.3.4.bb b/poky/meta/recipes-multimedia/flac/flac_1.4.0.bb index 012da0a0a0..360396380d 100644 --- a/poky/meta/recipes-multimedia/flac/flac_1.3.4.bb +++ b/poky/meta/recipes-multimedia/flac/flac_1.4.0.bb @@ -1,45 +1,43 @@ SUMMARY = "Free Lossless Audio Codec" DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format." HOMEPAGE = "https://xiph.org/flac/" -BUGTRACKER = "http://sourceforge.net/p/flac/bugs/" +BUGTRACKER = "https://github.com/xiph/flac/issues" SECTION = "libs" LICENSE = "GFDL-1.2 & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ - file://src/Makefile.am;beginline=1;endline=17;md5=09501c864f89dfc7ead65553129817ca \ + file://src/Makefile.am;beginline=1;endline=17;md5=146d2c8c2fd287545cc1bd81f31e8758 \ file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://src/flac/main.c;beginline=1;endline=18;md5=09777e2934947a36f13568d0beb81199 \ + file://src/flac/main.c;beginline=1;endline=18;md5=893456854ce6bf14a1a7ea77266eebab \ file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ - file://src/plugin_common/all.h;beginline=1;endline=18;md5=f56cb4ba9a3bc9ec6102e8df03215271 \ - file://COPYING.Xiph;md5=b59c1b6d7fc0fb7965f821a3d36505e3 \ + file://src/plugin_common/all.h;beginline=1;endline=18;md5=73c74192ce89ee6238d15a171e00c971 \ + file://COPYING.Xiph;md5=3d6da238b5b57a0965d6730291119f65 \ file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48" -DEPENDS = "libogg" -SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \ -" - -SRC_URI[sha256sum] = "8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737" +SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz" +SRC_URI[sha256sum] = "af41c0733c93c237c3e52f64dd87e3b0d9af38259f1c7d11e8cbf583c48c2506" CVE_PRODUCT = "libflac flac" inherit autotools gettext EXTRA_OECONF = "--disable-oggtest \ - --with-ogg-libraries=${STAGING_LIBDIR} \ - --with-ogg-includes=${STAGING_INCDIR} \ --disable-xmms-plugin \ --without-libiconv-prefix \ ac_cv_prog_NASM="" \ " -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}" -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "vsx", " --enable-vsx", " --disable-vsx", d)}" -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}" -EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}" +PACKAGECONFIG ??= " \ + ${@bb.utils.filter("TUNE_FEATURES", "altivec vsx", d)} \ + ${@bb.utils.contains_any("TUNE_FEATURES", "core2 corei7", "sse", "", d)} \ + ogg \ +" +PACKAGECONFIG[sse] = "--enable-sse,--disable-sse" +PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec" +PACKAGECONFIG[vsx] = "--enable-vsx,--disable-vsx" +PACKAGECONFIG[avx] = "--enable-avx,--disable-avx" +PACKAGECONFIG[ogg] = "--enable-ogg --with-ogg-libraries=${STAGING_LIBDIR} --with-ogg-includes=${STAGING_INCDIR},--disable-ogg,libogg" -PACKAGES += "libflac libflac++ liboggflac liboggflac++" +PACKAGES += "libflac libflac++" FILES:${PN} = "${bindir}/*" FILES:libflac = "${libdir}/libFLAC.so.*" FILES:libflac++ = "${libdir}/libFLAC++.so.*" -FILES:liboggflac = "${libdir}/libOggFLAC.so.*" -FILES:liboggflac++ = "${libdir}/libOggFLAC++.so.*" - diff --git a/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/poky/meta/recipes-multimedia/libpng/libpng_1.6.38.bb index 61e3d92e95..dc627203ef 100644 --- a/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb +++ b/poky/meta/recipes-multimedia/libpng/libpng_1.6.38.bb @@ -5,14 +5,13 @@ library for use in applications that read, create, and manipulate PNG \ HOMEPAGE = "http://www.libpng.org/" SECTION = "libs" LICENSE = "Libpng" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b0085051bf265bac2bfc38bc89f50000" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5c900cc124ba35a274073b5de7639b13" DEPENDS = "zlib" LIBV = "16" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/${BP}.tar.xz" -SRC_URI[md5sum] = "015e8e15db1eecde5f2eb9eb5b6e59e9" -SRC_URI[sha256sum] = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca" +SRC_URI[sha256sum] = "b3683e8b8111ebf6f1ac004ebb6b0c975cd310ec469d98364388e9cedbfa68be" MIRRORS += "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}${LIBV}/older-releases/" diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb index ed2b6437dd..29d48fd333 100644 --- a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb +++ b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.2.2.bb @@ -7,18 +7,18 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=336d6faf40fb600bafb0061f4052f1f4 \ file://src/samplerate.c;beginline=1;endline=7;md5=7a4238289dc36bfb70968ccaa5bd0d4f" DEPENDS = "libsndfile1" -SRC_URI = "https://github.com/libsndfile/libsamplerate/releases/download/${PV}/libsamplerate-${PV}.tar.xz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsamplerate-${PV}.tar.xz \ " SRC_URI[sha256sum] = "3258da280511d24b49d6b08615bbe824d0cacc9842b0e4caf11c52cf2b043893" CVE_PRODUCT = "libsamplerate" -UPSTREAM_CHECK_URI = "https://github.com/libsndfile/libsamplerate/releases" +GITHUB_BASE_URI = "https://github.com/libsndfile/libsamplerate/releases" S = "${WORKDIR}/libsamplerate-${PV}" -inherit autotools pkgconfig +inherit autotools pkgconfig github-releases # FFTW and ALSA are only used in tests and examples, so they don't affect # normal builds. It should be safe to ignore these, but explicitly disabling diff --git a/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.1.0.bb b/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.1.0.bb index 70626b3c16..1f1a40160d 100644 --- a/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.1.0.bb +++ b/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.1.0.bb @@ -8,10 +8,10 @@ DEPENDS = "flac libogg libvorbis" SECTION = "libs/multimedia" LICENSE = "LGPL-2.1-only" -SRC_URI = "https://github.com/libsndfile/libsndfile/releases/download/${PV}/libsndfile-${PV}.tar.xz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/libsndfile-${PV}.tar.xz \ file://noopus.patch \ " -UPSTREAM_CHECK_URI = "https://github.com/libsndfile/libsndfile/releases/" +GITHUB_BASE_URI = "https://github.com/libsndfile/libsndfile/releases/" SRC_URI[sha256sum] = "0f98e101c0f7c850a71225fb5feaf33b106227b3d331333ddc9bacee190bcf41" @@ -25,7 +25,7 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" PACKAGECONFIG[regtest] = "--enable-sqlite,--disable-sqlite,sqlite3" -inherit autotools lib_package pkgconfig multilib_header +inherit autotools lib_package pkgconfig multilib_header github-releases do_install:append() { oe_multilib_header sndfile.h diff --git a/poky/meta/recipes-multimedia/libtiff/files/CVE-2022-2953.patch b/poky/meta/recipes-multimedia/libtiff/files/CVE-2022-2953.patch new file mode 100644 index 0000000000..98020ff92f --- /dev/null +++ b/poky/meta/recipes-multimedia/libtiff/files/CVE-2022-2953.patch @@ -0,0 +1,86 @@ +CVE: CVE-2022-2053 +Upstream-Status: Backport +Signed-off-by: Ross Burton <ross.burton@arm.com> + +From 8fe3735942ea1d90d8cef843b55b3efe8ab6feaf Mon Sep 17 00:00:00 2001 +From: Su_Laus <sulau@freenet.de> +Date: Mon, 15 Aug 2022 22:11:03 +0200 +Subject: [PATCH] =?UTF-8?q?According=20to=20Richard=20Nolde=20https://gitl?= + =?UTF-8?q?ab.com/libtiff/libtiff/-/issues/401#note=5F877637400=20the=20ti?= + =?UTF-8?q?ffcrop=20option=20=E2=80=9E-S=E2=80=9C=20is=20also=20mutually?= + =?UTF-8?q?=20exclusive=20to=20the=20other=20crop=20options=20(-X|-Y),=20-?= + =?UTF-8?q?Z=20and=20-z.?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is now checked and ends tiffcrop if those arguments are not mutually exclusive. + +This MR will fix the following tiffcrop issues: #349, #414, #422, #423, #424 +--- + tools/tiffcrop.c | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c +index 90286a5e..c3b758ec 100644 +--- a/tools/tiffcrop.c ++++ b/tools/tiffcrop.c +@@ -173,12 +173,12 @@ static char tiffcrop_rev_date[] = "02-09-2022"; + #define ROTATECW_270 32 + #define ROTATE_ANY (ROTATECW_90 | ROTATECW_180 | ROTATECW_270) + +-#define CROP_NONE 0 +-#define CROP_MARGINS 1 +-#define CROP_WIDTH 2 +-#define CROP_LENGTH 4 +-#define CROP_ZONES 8 +-#define CROP_REGIONS 16 ++#define CROP_NONE 0 /* "-S" -> Page_MODE_ROWSCOLS and page->rows/->cols != 0 */ ++#define CROP_MARGINS 1 /* "-m" */ ++#define CROP_WIDTH 2 /* "-X" */ ++#define CROP_LENGTH 4 /* "-Y" */ ++#define CROP_ZONES 8 /* "-Z" */ ++#define CROP_REGIONS 16 /* "-z" */ + #define CROP_ROTATE 32 + #define CROP_MIRROR 64 + #define CROP_INVERT 128 +@@ -316,7 +316,7 @@ struct crop_mask { + #define PAGE_MODE_RESOLUTION 1 + #define PAGE_MODE_PAPERSIZE 2 + #define PAGE_MODE_MARGINS 4 +-#define PAGE_MODE_ROWSCOLS 8 ++#define PAGE_MODE_ROWSCOLS 8 /* for -S option */ + + #define INVERT_DATA_ONLY 10 + #define INVERT_DATA_AND_TAG 11 +@@ -781,7 +781,7 @@ static const char usage_info[] = + " The four debug/dump options are independent, though it makes little sense to\n" + " specify a dump file without specifying a detail level.\n" + "\n" +-"Note: The (-X|-Y), -Z and -z options are mutually exclusive.\n" ++"Note: The (-X|-Y), -Z, -z and -S options are mutually exclusive.\n" + " In no case should the options be applied to a given selection successively.\n" + "\n" + ; +@@ -2131,13 +2131,14 @@ void process_command_opts (int argc, char *argv[], char *mp, char *mode, uint32 + /*NOTREACHED*/ + } + } +- /*-- Check for not allowed combinations (e.g. -X, -Y and -Z and -z are mutually exclusive) --*/ +- char XY, Z, R; ++ /*-- Check for not allowed combinations (e.g. -X, -Y and -Z, -z and -S are mutually exclusive) --*/ ++ char XY, Z, R, S; + XY = ((crop_data->crop_mode & CROP_WIDTH) || (crop_data->crop_mode & CROP_LENGTH)); + Z = (crop_data->crop_mode & CROP_ZONES); + R = (crop_data->crop_mode & CROP_REGIONS); +- if ((XY && Z) || (XY && R) || (Z && R)) { +- TIFFError("tiffcrop input error", "The crop options(-X|-Y), -Z and -z are mutually exclusive.->Exit"); ++ S = (page->mode & PAGE_MODE_ROWSCOLS); ++ if ((XY && Z) || (XY && R) || (XY && S) || (Z && R) || (Z && S) || (R && S)) { ++ TIFFError("tiffcrop input error", "The crop options(-X|-Y), -Z, -z and -S are mutually exclusive.->Exit"); + exit(EXIT_FAILURE); + } + } /* end process_command_opts */ +-- +2.34.1 + diff --git a/poky/meta/recipes-multimedia/libtiff/tiff_4.4.0.bb b/poky/meta/recipes-multimedia/libtiff/tiff_4.4.0.bb index e30df0b3e9..caf6f60479 100644 --- a/poky/meta/recipes-multimedia/libtiff/tiff_4.4.0.bb +++ b/poky/meta/recipes-multimedia/libtiff/tiff_4.4.0.bb @@ -11,6 +11,7 @@ CVE_PRODUCT = "libtiff" SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \ file://0001-fix-the-FPE-in-tiffcrop-415-427-and-428.patch \ file://CVE-2022-34526.patch \ + file://CVE-2022-2953.patch \ " SRC_URI[sha256sum] = "917223b37538959aca3b790d2d73aa6e626b688e02dcda272aec24c2f498abed" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch new file mode 100644 index 0000000000..32f92f7ff5 --- /dev/null +++ b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch @@ -0,0 +1,296 @@ +From 0d3344e17d258106617b0e6d783d073b188a2548 Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro <aperez@igalia.com> +Date: Thu, 2 Jun 2022 11:19:06 +0300 +Subject: [PATCH] [ARM][NEON] FELightningNEON.cpp fails to build, NEON fast + path seems unused https://bugs.webkit.org/show_bug.cgi?id=241182 + +Reviewed by NOBODY (OOPS!). + +Move the NEON fast path for the SVG lighting filter effects into +FELightingSoftwareApplier, and arrange to actually use them by +forwarding calls to applyPlatformGeneric() into applyPlatformNeon(). + +Some changes were needed to adapt platformApplyNeon() to the current +state of filters after r286140. This was not detected because the code +bitrotted due to it being guarded with CPU(ARM_TRADITIONAL), which does +not get used much these days: CPU(ARM_THUMB2) is more common. It should +be possible to use the NEON fast paths also in Thumb mode, but that is +left for a follow-up fix. + +* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp: +(WebCore::FELightingSoftwareApplier::platformApplyNeonWorker): +(WebCore::FELightingSoftwareApplier::getPowerCoefficients): +(WebCore::FELighting::platformApplyNeonWorker): Deleted. +(WebCore::FELighting::getPowerCoefficients): Deleted. +* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h: +(WebCore::FELightingSoftwareApplier::applyPlatformNeon): +(WebCore::FELighting::platformApplyNeon): Deleted. +* Source/WebCore/platform/graphics/filters/DistantLightSource.h: +* Source/WebCore/platform/graphics/filters/FELighting.h: +* Source/WebCore/platform/graphics/filters/PointLightSource.h: +* Source/WebCore/platform/graphics/filters/SpotLightSource.h: +* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h: +--- +Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233] +Signed-off-by: Khem Raj <raj.khem@gmail.com> + + .../cpu/arm/filters/FELightingNEON.cpp | 4 +- + .../graphics/cpu/arm/filters/FELightingNEON.h | 54 +++++++++---------- + .../graphics/filters/DistantLightSource.h | 4 ++ + .../platform/graphics/filters/FELighting.h | 7 --- + .../graphics/filters/PointLightSource.h | 4 ++ + .../graphics/filters/SpotLightSource.h | 4 ++ + .../software/FELightingSoftwareApplier.h | 16 ++++++ + 7 files changed, 57 insertions(+), 36 deletions(-) + +--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp ++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp +@@ -49,7 +49,7 @@ short* feLightingConstantsForNeon() + return s_FELightingConstantsForNeon; + } + +-void FELighting::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters) ++void FELightingSoftwareApplier::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters) + { + neonDrawLighting(parameters); + } +@@ -464,7 +464,7 @@ TOSTRING(neonDrawLighting) ":" NL + "b .lightStrengthCalculated" NL + ); // NOLINT + +-int FELighting::getPowerCoefficients(float exponent) ++int FELightingSoftwareApplier::getPowerCoefficients(float exponent) + { + // Calling a powf function from the assembly code would require to save + // and reload a lot of NEON registers. Since the base is in range [0..1] +--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h ++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h +@@ -24,14 +24,15 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#ifndef FELightingNEON_h +-#define FELightingNEON_h ++#pragma once + + #if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE) + +-#include "FELighting.h" ++#include "FELightingSoftwareApplier.h" ++#include "ImageBuffer.h" + #include "PointLightSource.h" + #include "SpotLightSource.h" ++#include <wtf/ObjectIdentifier.h> + #include <wtf/ParallelJobs.h> + + namespace WebCore { +@@ -93,14 +94,14 @@ extern "C" { + void neonDrawLighting(FELightingPaintingDataForNeon*); + } + +-inline void FELighting::platformApplyNeon(const LightingData& data, const LightSource::PaintingData& paintingData) ++inline void FELightingSoftwareApplier::applyPlatformNeon(const FELightingSoftwareApplier::LightingData& data, const LightSource::PaintingData& paintingData) + { +- alignas(16) FELightingFloatArgumentsForNeon floatArguments; +- FELightingPaintingDataForNeon neonData = { ++ WebCore::FELightingFloatArgumentsForNeon alignas(16) floatArguments; ++ WebCore::FELightingPaintingDataForNeon neonData = { + data.pixels->data(), + 1, +- data.widthDecreasedByOne - 1, +- data.heightDecreasedByOne - 1, ++ data.width - 2, ++ data.height - 2, + 0, + 0, + 0, +@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeo + // Set light source arguments. + floatArguments.constOne = 1; + +- auto color = m_lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved(); ++ auto color = data.lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved(); + + floatArguments.colorRed = color.red; + floatArguments.colorGreen = color.green; + floatArguments.colorBlue = color.blue; + floatArguments.padding4 = 0; + +- if (m_lightSource->type() == LS_POINT) { ++ if (data.lightSource->type() == LS_POINT) { + neonData.flags |= FLAG_POINT_LIGHT; +- PointLightSource& pointLightSource = static_cast<PointLightSource&>(m_lightSource.get()); ++ const auto& pointLightSource = *static_cast<const PointLightSource*>(data.lightSource); + floatArguments.lightX = pointLightSource.position().x(); + floatArguments.lightY = pointLightSource.position().y(); + floatArguments.lightZ = pointLightSource.position().z(); + floatArguments.padding2 = 0; +- } else if (m_lightSource->type() == LS_SPOT) { ++ } else if (data.lightSource->type() == LS_SPOT) { + neonData.flags |= FLAG_SPOT_LIGHT; +- SpotLightSource& spotLightSource = static_cast<SpotLightSource&>(m_lightSource.get()); ++ const auto& spotLightSource = *static_cast<const SpotLightSource*>(data.lightSource); + floatArguments.lightX = spotLightSource.position().x(); + floatArguments.lightY = spotLightSource.position().y(); + floatArguments.lightZ = spotLightSource.position().z(); +@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeo + if (spotLightSource.specularExponent() == 1) + neonData.flags |= FLAG_CONE_EXPONENT_IS_1; + } else { +- ASSERT(m_lightSource->type() == LS_DISTANT); ++ ASSERT(data.lightSource->type() == LS_DISTANT); + floatArguments.lightX = paintingData.initialLightingData.lightVector.x(); + floatArguments.lightY = paintingData.initialLightingData.lightVector.y(); + floatArguments.lightZ = paintingData.initialLightingData.lightVector.z(); +@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeo + // Set lighting arguments. + floatArguments.surfaceScale = data.surfaceScale; + floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale / 4; +- if (m_lightingType == FELighting::DiffuseLighting) +- floatArguments.diffuseConstant = m_diffuseConstant; ++ if (data.filterType == FilterEffect::Type::FEDiffuseLighting) ++ floatArguments.diffuseConstant = data.diffuseConstant; + else { + neonData.flags |= FLAG_SPECULAR_LIGHT; +- floatArguments.diffuseConstant = m_specularConstant; +- neonData.specularExponent = getPowerCoefficients(m_specularExponent); +- if (m_specularExponent == 1) ++ floatArguments.diffuseConstant = data.specularConstant; ++ neonData.specularExponent = getPowerCoefficients(data.specularExponent); ++ if (data.specularExponent == 1) + neonData.flags |= FLAG_SPECULAR_EXPONENT_IS_1; + } + if (floatArguments.diffuseConstant == 1) + neonData.flags |= FLAG_DIFFUSE_CONST_IS_1; + +- int optimalThreadNumber = ((data.widthDecreasedByOne - 1) * (data.heightDecreasedByOne - 1)) / s_minimalRectDimension; ++ static constexpr int minimalRectDimension = 100 * 100; // Empirical data limit for parallel jobs ++ int optimalThreadNumber = ((data.width - 2) * (data.height - 2)) / minimalRectDimension; + if (optimalThreadNumber > 1) { + // Initialize parallel jobs +- ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&WebCore::FELighting::platformApplyNeonWorker, optimalThreadNumber); ++ ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&FELightingSoftwareApplier::platformApplyNeonWorker, optimalThreadNumber); + + // Fill the parameter array + int job = parallelJobs.numberOfJobs(); + if (job > 1) { + int yStart = 1; +- int yStep = (data.heightDecreasedByOne - 1) / job; ++ int yStep = (data.height - 2) / job; + for (--job; job >= 0; --job) { + FELightingPaintingDataForNeon& params = parallelJobs.parameter(job); + params = neonData; + params.yStart = yStart; +- params.pixels += (yStart - 1) * (data.widthDecreasedByOne + 1) * 4; ++ params.pixels += (yStart - 1) * data.width * 4; + if (job > 0) { + params.absoluteHeight = yStep; + yStart += yStep; + } else +- params.absoluteHeight = data.heightDecreasedByOne - yStart; ++ params.absoluteHeight = (data.height - 1) - yStart; + } + parallelJobs.execute(); + return; +@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeo + } // namespace WebCore + + #endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE) +- +-#endif // FELightingNEON_h +--- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h ++++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h +@@ -25,6 +25,10 @@ + #include "LightSource.h" + #include <wtf/Ref.h> + ++namespace WTF { ++class TextStream; ++} // namespace WTF ++ + namespace WebCore { + + class DistantLightSource : public LightSource { +--- a/Source/WebCore/platform/graphics/filters/FELighting.h ++++ b/Source/WebCore/platform/graphics/filters/FELighting.h +@@ -35,8 +35,6 @@ + + namespace WebCore { + +-struct FELightingPaintingDataForNeon; +- + class FELighting : public FilterEffect { + public: + const Color& lightingColor() const { return m_lightingColor; } +@@ -67,11 +65,6 @@ protected: + + std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override; + +-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE) +- static int getPowerCoefficients(float exponent); +- inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&); +-#endif +- + Color m_lightingColor; + float m_surfaceScale; + float m_diffuseConstant; +--- a/Source/WebCore/platform/graphics/filters/PointLightSource.h ++++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h +@@ -26,6 +26,10 @@ + #include "LightSource.h" + #include <wtf/Ref.h> + ++namespace WTF { ++class TextStream; ++} // namespace WTF ++ + namespace WebCore { + + class PointLightSource : public LightSource { +--- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h ++++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h +@@ -26,6 +26,10 @@ + #include "LightSource.h" + #include <wtf/Ref.h> + ++namespace WTF { ++class TextStream; ++} // namespace WTF ++ + namespace WebCore { + + class SpotLightSource : public LightSource { +--- a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h ++++ b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h +@@ -36,6 +36,7 @@ + namespace WebCore { + + class FELighting; ++struct FELightingPaintingDataForNeon; + + class FELightingSoftwareApplier final : public FilterEffectConcreteApplier<FELighting> { + WTF_MAKE_FAST_ALLOCATED; +@@ -132,8 +133,23 @@ private: + + static void applyPlatformGenericPaint(const LightingData&, const LightSource::PaintingData&, int startY, int endY); + static void applyPlatformGenericWorker(ApplyParameters*); ++ ++#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE) ++ static int getPowerCoefficients(float exponent); ++ static void platformApplyNeonWorker(FELightingPaintingDataForNeon*); ++ inline static void applyPlatformNeon(const LightingData&, const LightSource::PaintingData&); ++ ++ inline static void applyPlatformGeneric(const LightingData& data, const LightSource::PaintingData& paintingData) ++ { ++ applyPlatformNeon(data, paintingData); ++ } ++#else + static void applyPlatformGeneric(const LightingData&, const LightSource::PaintingData&); ++#endif ++ + static void applyPlatform(const LightingData&); + }; + + } // namespace WebCore ++ ++#include "FELightingNEON.h" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/fix-gstreamer-include-paths.patch b/poky/meta/recipes-sato/webkit/webkitgtk/fix-gstreamer-include-paths.patch new file mode 100644 index 0000000000..2c6be87902 --- /dev/null +++ b/poky/meta/recipes-sato/webkit/webkitgtk/fix-gstreamer-include-paths.patch @@ -0,0 +1,51 @@ +From 25efd1478b48b5406fdab3b7b9c1f7e0ef95a7ed Mon Sep 17 00:00:00 2001 +From: Pablo Saavedra <psaavedra@igalia.com> +Date: Mon, 27 Jun 2022 16:56:04 -0700 +Subject: [PATCH] Fix include gstreamer path on cross compiler toolchains + https://bugs.webkit.org/show_bug.cgi?id=241483 + +Reviewed by Adrian Perez de Castro. + +Set the include paths for the gstreamer components to the full path +using the find_path(). This function relies in CMAKE_FIND_ROOT_PATH to +find the right place where the includes they are. This fixes possible +warnings/errors on cross toolchains using -Wpoison-system-directories +and -Werror=poison-system-directories. + +* Source/cmake/FindGStreamer.cmake: + +Canonical link: https://commits.webkit.org/251895@main + +Upstream-Status: Backport [2.37.1 https://github.com/WebKit/WebKit/commit/25efd1478b48b5406fdab3b7b9c1f7e0ef95a7ed] +--- + Source/cmake/FindGStreamer.cmake | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/Source/cmake/FindGStreamer.cmake b/Source/cmake/FindGStreamer.cmake +index 3216f6974b53..b65a11f30871 100644 +--- a/Source/cmake/FindGStreamer.cmake ++++ b/Source/cmake/FindGStreamer.cmake +@@ -75,12 +75,20 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library) + # ${includedir}/gstreamer-1.0 which remains correct. The issue here is that + # we don't rely on the `Cflags`, cmake fails to generate a proper + # `.._INCLUDE_DIRS` variable in this case. So we need to do it here... ++ ++ # Populate the list initially from the _INCLUDE_DIRS result variable. ++ set(${_component_prefix}_INCLUDE_DIRS ${PC_${_component_prefix}_INCLUDE_DIRS}) ++ + set(_include_dir "${PC_${_component_prefix}_INCLUDEDIR}") + string(REGEX MATCH "(.*)/gstreamer-1.0" _dummy "${_include_dir}") ++ + if ("${CMAKE_MATCH_1}" STREQUAL "") +- set(${_component_prefix}_INCLUDE_DIRS "${_include_dir}/gstreamer-1.0;${PC_${_component_prefix}_INCLUDE_DIRS}") +- else () +- set(${_component_prefix}_INCLUDE_DIRS "${PC_${_component_prefix}_INCLUDE_DIRS}") ++ find_path(${_component_prefix}_RESOLVED_INCLUDEDIR NAMES "${_include_dir}/gstreamer-1.0") ++ # Only add the resolved path from `_INCLUDEDIR` if found. ++ if (${_component_prefix}_RESOLVED_INCLUDEDIR) ++ list(APPEND ${_component_prefix}_INCLUDE_DIRS ++ "${${_component_prefix}_RESOLVED_INCLUDEDIR}") ++ endif () + endif () + + find_library(${_component_prefix}_LIBRARIES diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.36.6.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.36.7.bb index 37b977f9ba..76b119c9c7 100644 --- a/poky/meta/recipes-sato/webkit/webkitgtk_2.36.6.bb +++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.36.7.bb @@ -15,9 +15,10 @@ SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ file://0001-Fix-build-without-opengl-or-es.patch \ file://reproducibility.patch \ file://0001-When-building-introspection-files-do-not-quote-CFLAG.patch \ + file://fix-gstreamer-include-paths.patch \ + file://0d3344e17d258106617b0e6d783d073b188a2548.patch \ " - -SRC_URI[sha256sum] = "1193bc821946336776f0dfa5e0dca5651f1e57157eda12da4721d2441f24a61a" +SRC_URI[sha256sum] = "0c260cf2b32f0481d017670dfed1b61e554967cd067195606c9f9eb5fe731743" inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc diff --git a/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb b/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb index d981dd0c3a..19bc81619f 100644 --- a/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb +++ b/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb @@ -12,16 +12,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" SECTION = "console/utils" -SRC_URI = "https://github.com/scop/bash-completion/releases/download/${PV}/${BPN}-${PV}.tar.xz" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" SRC_URI[md5sum] = "2514c6772d0de6254758b98c53f91861" SRC_URI[sha256sum] = "73a8894bad94dee83ab468fa09f628daffd567e8bef1a24277f1e9a0daf911ac" -UPSTREAM_CHECK_REGEX = "bash-completion-(?P<pver>(?!2008).+)\.tar" -UPSTREAM_CHECK_URI = "https://github.com/scop/bash-completion/releases" +GITHUB_BASE_URI = "https://github.com/scop/bash-completion/releases" PARALLEL_MAKE = "" -inherit autotools +inherit autotools github-releases do_install:append() { # compatdir diff --git a/poky/meta/recipes-support/boost/boost.inc b/poky/meta/recipes-support/boost/boost.inc index 402f1592cf..4263e645de 100644 --- a/poky/meta/recipes-support/boost/boost.inc +++ b/poky/meta/recipes-support/boost/boost.inc @@ -151,6 +151,7 @@ BOOST_PARALLEL_MAKE = "${@oe.utils.parallel_make_argument(d, '-j%d')}" BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \ ${BJAM_TOOLS} \ -sBOOST_BUILD_USER_CONFIG=${WORKDIR}/user-config.jam \ + -sICU_PATH=${STAGING_EXECPREFIXDIR} \ --build-dir=${B} \ --disable-icu \ ${BJAM_EXTRA}' diff --git a/poky/meta/recipes-support/curl/curl_7.85.0.bb b/poky/meta/recipes-support/curl/curl_7.85.0.bb index 3b55830415..ad6a5175bc 100644 --- a/poky/meta/recipes-support/curl/curl_7.85.0.bb +++ b/poky/meta/recipes-support/curl/curl_7.85.0.bb @@ -100,7 +100,8 @@ do_install_ptest() { cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH} } -RDEPENDS:${PN}-ptest += "bash perl-modules" +RDEPENDS:${PN}-ptest += "bash perl-modules perl-module-time-hires perl-module-digest-md5 \ + perl-module-digest perl-module-ipc-open2" PACKAGES =+ "lib${BPN}" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_220.bb b/poky/meta/recipes-support/diffoscope/diffoscope_221.bb index dc556477fa..c801200d7c 100644 --- a/poky/meta/recipes-support/diffoscope/diffoscope_220.bb +++ b/poky/meta/recipes-support/diffoscope/diffoscope_221.bb @@ -12,7 +12,7 @@ PYPI_PACKAGE = "diffoscope" inherit pypi setuptools3 -SRC_URI[sha256sum] = "7873e13ac8b11b634ee3490b70b056c6a6bae9cfb794d6ba7cb43e7797b2a829" +SRC_URI[sha256sum] = "7b1724e9b1e5ac6597cac07d0acd2661db1bcf0d6a9b2e87be21b5e3806be9f8" RDEPENDS:${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm" diff --git a/poky/meta/recipes-support/enchant/enchant2_2.3.3.bb b/poky/meta/recipes-support/enchant/enchant2_2.3.3.bb index 96d56c2ea4..c892f570c4 100644 --- a/poky/meta/recipes-support/enchant/enchant2_2.3.3.bb +++ b/poky/meta/recipes-support/enchant/enchant2_2.3.3.bb @@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" DEPENDS = "glib-2.0" -inherit autotools pkgconfig +inherit autotools pkgconfig github-releases -SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz" +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/enchant-${PV}.tar.gz" SRC_URI[sha256sum] = "3da12103f11cf49c3cf2fd2ce3017575c5321a489e5b9bfa81dd91ec413f3891" -UPSTREAM_CHECK_URI = "https://github.com/AbiWord/enchant/releases" +GITHUB_BASE_URI = "https://github.com/AbiWord/enchant/releases" S = "${WORKDIR}/enchant-${PV}" diff --git a/poky/meta/recipes-support/fribidi/fribidi_1.0.12.bb b/poky/meta/recipes-support/fribidi/fribidi_1.0.12.bb index b29c47822f..9e46d958e9 100644 --- a/poky/meta/recipes-support/fribidi/fribidi_1.0.12.bb +++ b/poky/meta/recipes-support/fribidi/fribidi_1.0.12.bb @@ -9,13 +9,11 @@ BUGTRACKER = "https://github.com/fribidi/fribidi/issues" LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.xz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.xz \ " SRC_URI[sha256sum] = "0cd233f97fc8c67bb3ac27ce8440def5d3ffacf516765b91c2cc654498293495" -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" - -inherit meson lib_package pkgconfig +inherit meson lib_package pkgconfig github-releases CVE_PRODUCT = "gnu_fribidi fribidi" diff --git a/poky/meta/recipes-support/icu/icu_71.1.bb b/poky/meta/recipes-support/icu/icu_71.1.bb index b39633c203..df999dce3b 100644 --- a/poky/meta/recipes-support/icu/icu_71.1.bb +++ b/poky/meta/recipes-support/icu/icu_71.1.bb @@ -17,7 +17,7 @@ STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}" ICU_MAJOR_VER = "${@d.getVar('PV').split('.')[0]}" -inherit autotools pkgconfig +inherit autotools pkgconfig github-releases # ICU needs the native build directory as an argument to its --with-cross-build option when # cross-compiling. Taken the situation that different builds may share a common sstate-cache @@ -96,8 +96,8 @@ ICU_FOLDER = "${@icu_download_folder(d)}" ARM_INSTRUCTION_SET:armv4 = "arm" ARM_INSTRUCTION_SET:armv5 = "arm" -BASE_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz" -DATA_SRC_URI = "https://github.com/unicode-org/icu/releases/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip" +BASE_SRC_URI = "${GITHUB_BASE_URI}/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-src.tgz" +DATA_SRC_URI = "${GITHUB_BASE_URI}/download/release-${ICU_FOLDER}/icu4c-${ICU_PV}-data.zip" SRC_URI = "${BASE_SRC_URI};name=code \ ${DATA_SRC_URI};name=data \ file://filter.json \ @@ -111,8 +111,8 @@ SRC_URI:append:class-target = "\ SRC_URI[code.sha256sum] = "67a7e6e51f61faf1306b6935333e13b2c48abd8da6d2f46ce6adca24b1e21ebf" SRC_URI[data.sha256sum] = "e3882b4fece6e5e039f22c3189b7ba224180fd26fdbfa9db284617455b93e804" -UPSTREAM_CHECK_REGEX = "icu4c-(?P<pver>\d+(_\d+)+)-src" -UPSTREAM_CHECK_URI = "https://github.com/unicode-org/icu/releases" +UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)" +GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases" EXTRA_OECONF:append:libc-musl = " ac_cv_func_strtod_l=no" diff --git a/poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.6.14.bb b/poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.6.14.bb index fad92df507..fbfbdacbdd 100644 --- a/poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.6.14.bb +++ b/poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.6.14.bb @@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://doc/LICENSING.txt;md5=dfc50c7cea7b66935844587a0f7389e7 \ " -SRC_URI = "https://github.com/ivmai/libatomic_ops/releases/download/v${PV}/libatomic_ops-${PV}.tar.gz" -UPSTREAM_CHECK_URI = "https://github.com/ivmai/libatomic_ops/releases" +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libatomic_ops-${PV}.tar.gz" +GITHUB_BASE_URI = "https://github.com/ivmai/libatomic_ops/releases" SRC_URI[sha256sum] = "390f244d424714735b7050d056567615b3b8f29008a663c262fb548f1802d292" @@ -17,6 +17,6 @@ S = "${WORKDIR}/libatomic_ops-${PV}" ALLOW_EMPTY:${PN} = "1" -inherit autotools pkgconfig +inherit autotools pkgconfig github-releases BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libcheck/libcheck_0.15.2.bb b/poky/meta/recipes-support/libcheck/libcheck_0.15.2.bb index 1393aa2a1c..83f3c3f46e 100644 --- a/poky/meta/recipes-support/libcheck/libcheck_0.15.2.bb +++ b/poky/meta/recipes-support/libcheck/libcheck_0.15.2.bb @@ -10,14 +10,14 @@ SECTION = "devel" LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" -SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/check-${PV}.tar.gz \ file://not-echo-compiler-info-to-check_stdint.h.patch" SRC_URI[sha256sum] = "a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a" -UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/" +GITHUB_BASE_URI = "https://github.com/libcheck/check/releases/" S = "${WORKDIR}/check-${PV}" -inherit autotools pkgconfig texinfo +inherit autotools pkgconfig texinfo github-releases CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb index e26e8a9b57..55a65e6c08 100644 --- a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb +++ b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb @@ -11,7 +11,7 @@ SECTION = "libs" LICENSE = "BSD-3-Clause & MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" -SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/release-${PV}-stable/${BP}-stable.tar.gz \ file://Makefile-missing-test-dir.patch \ file://run-ptest \ file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \ @@ -21,15 +21,14 @@ SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}- " SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb" - -UPSTREAM_CHECK_URI = "http://libevent.org/" +UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>.+)-stable" S = "${WORKDIR}/${BPN}-${PV}-stable" PACKAGECONFIG ??= "" PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -inherit autotools +inherit autotools github-releases # Needed for Debian packaging LEAD_SONAME = "libevent-2.1.so" diff --git a/poky/meta/recipes-support/libexif/libexif_0.6.24.bb b/poky/meta/recipes-support/libexif/libexif_0.6.24.bb index 20ba0ef282..367f012f8c 100644 --- a/poky/meta/recipes-support/libexif/libexif_0.6.24.bb +++ b/poky/meta/recipes-support/libexif/libexif_0.6.24.bb @@ -10,14 +10,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad" def version_underscore(v): return "_".join(v.split(".")) -SRC_URI = "https://github.com/libexif/libexif/releases/download/v${PV}/libexif-${PV}.tar.bz2 \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libexif-${PV}.tar.bz2 \ " SRC_URI[sha256sum] = "d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae" -UPSTREAM_CHECK_URI = "https://github.com/libexif/libexif/releases/" - -inherit autotools gettext +inherit autotools gettext github-releases EXTRA_OECONF += "--disable-docs" diff --git a/poky/meta/recipes-support/libffi/libffi_3.4.2.bb b/poky/meta/recipes-support/libffi/libffi_3.4.2.bb index 71d9518baf..41c3cad586 100644 --- a/poky/meta/recipes-support/libffi/libffi_3.4.2.bb +++ b/poky/meta/recipes-support/libffi/libffi_3.4.2.bb @@ -10,18 +10,16 @@ A layer must exist above `libffi' that handles type conversions for values passe LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=679b5c9bdc79a2b93ee574e193e7a7bc" -SRC_URI = "https://github.com/libffi/libffi/releases/download/v${PV}/${BPN}-${PV}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BPN}-${PV}.tar.gz \ file://not-win32.patch \ file://0001-arm-sysv-reverted-clang-VFP-mitigation.patch \ " SRC_URI[sha256sum] = "540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620" -UPSTREAM_CHECK_URI = "https://github.com/libffi/libffi/releases/" -UPSTREAM_CHECK_REGEX = "libffi-(?P<pver>\d+(\.\d+)+)\.tar" EXTRA_OECONF += "--disable-builddir --disable-exec-static-tramp" EXTRA_OECONF:class-native += "--with-gcc-arch=generic" EXTRA_OEMAKE:class-target = "LIBTOOLFLAGS='--tag=CC'" -inherit autotools texinfo multilib_header +inherit autotools texinfo multilib_header github-releases do_install:append() { oe_multilib_header ffi.h ffitarget.h diff --git a/poky/meta/recipes-support/libgcrypt/files/no-bench-slope.patch b/poky/meta/recipes-support/libgcrypt/files/no-bench-slope.patch new file mode 100644 index 0000000000..8de3c6713b --- /dev/null +++ b/poky/meta/recipes-support/libgcrypt/files/no-bench-slope.patch @@ -0,0 +1,20 @@ +The bench-slope test appears to be aborting fairly frequently, which causes +failures on the autobuilder. + +Until this has been root-caused, disable the test. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@arm.com> + +diff --git a/tests/testdrv.c b/tests/testdrv.c +index 0ccde326..d3455186 100644 +--- a/tests/testdrv.c ++++ b/tests/testdrv.c +@@ -77,7 +77,6 @@ static struct { + { "t-x448" }, + { "t-ed448" }, + { "benchmark" }, +- { "bench-slope" }, + { "hashtest-256g", "hashtest", "--gigs 256 SHA1 SHA256 SHA512 SM3", + LONG_RUNNING }, + { NULL } diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb index b0d88de3aa..bf9d7cbd10 100644 --- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb +++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.1.bb @@ -24,6 +24,7 @@ SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ file://no-native-gpg-error.patch \ + file://no-bench-slope.patch \ file://run-ptest \ " SRC_URI[sha256sum] = "ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de" diff --git a/poky/meta/recipes-support/libical/libical_3.0.14.bb b/poky/meta/recipes-support/libical/libical_3.0.14.bb index 58baf3f32f..44030fdc9f 100644 --- a/poky/meta/recipes-support/libical/libical_3.0.14.bb +++ b/poky/meta/recipes-support/libical/libical_3.0.14.bb @@ -12,13 +12,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \ " SECTION = "libs" -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \ " SRC_URI[sha256sum] = "4284b780356f1dc6a01f16083e7b836e63d3815e27ed0eaaad684712357ccc8f" -UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases" -inherit cmake pkgconfig gobject-introspection vala +inherit cmake pkgconfig gobject-introspection vala github-releases DEPENDS += "libical-native" diff --git a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.0.bb b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb index 1d291cc357..3fb8c6b147 100644 --- a/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.0.bb +++ b/poky/meta/recipes-support/libjitterentropy/libjitterentropy_3.4.1.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=64a87180908540620ce364b5e69b3b03 \ file://LICENSE.bsd;md5=66a5cedaf62c4b2637025f049f9b826f \ " SRC_URI = "git://github.com/smuellerDD/jitterentropy-library.git;branch=master;protocol=https" -SRCREV = "2e5019cfe63038faaa405ce53715effe4ea580e4" +SRCREV = "4544e11320138ac02797af81766f4476a71bb09f" S = "${WORKDIR}/git" # remove at next version upgrade or when output changes diff --git a/poky/meta/recipes-support/libnl/libnl_3.7.0.bb b/poky/meta/recipes-support/libnl/libnl_3.7.0.bb index ddcc83a039..ef286a6429 100644 --- a/poky/meta/recipes-support/libnl/libnl_3.7.0.bb +++ b/poky/meta/recipes-support/libnl/libnl_3.7.0.bb @@ -14,17 +14,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" DEPENDS = "flex-native bison-native" -SRC_URI = "https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${BPN}${@d.getVar('PV').replace('.','_')}/${BP}.tar.gz \ file://enable-serial-tests.patch \ file://run-ptest \ " SRC_URI[sha256sum] = "9fe43ccbeeea72c653bdcf8c93332583135cda46a79507bfd0a483bb57f65939" +GITHUB_BASE_URI = "https://github.com/thom311/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "releases/tag/libnl(?P<pver>.+)" -UPSTREAM_CHECK_URI = "https://github.com/thom311/${BPN}/releases" - -inherit autotools pkgconfig ptest +inherit autotools pkgconfig ptest github-releases FILES:${PN} = "${libdir}/libnl-3.so.* \ ${libdir}/libnl.so.* \ diff --git a/poky/meta/recipes-support/libpcre/libpcre2_10.40.bb b/poky/meta/recipes-support/libpcre/libpcre2_10.40.bb index 8c2cadfe2b..13f7c8305f 100644 --- a/poky/meta/recipes-support/libpcre/libpcre2_10.40.bb +++ b/poky/meta/recipes-support/libpcre/libpcre2_10.40.bb @@ -10,9 +10,10 @@ SECTION = "devel" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://LICENCE;md5=41bfb977e4933c506588724ce69bf5d2" -SRC_URI = "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-${PV}/pcre2-${PV}.tar.bz2" +SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2" -UPSTREAM_CHECK_URI = "https://github.com/PhilipHazel/pcre2/releases" +GITHUB_BASE_URI = "https://github.com/PhilipHazel/pcre2/releases" +UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>.+)" SRC_URI[sha256sum] = "14e4b83c4783933dc17e964318e6324f7cae1bc75d8f3c79bc6969f00c159d68" @@ -25,7 +26,7 @@ DEPENDS += "bzip2 zlib" BINCONFIG = "${bindir}/pcre2-config" -inherit autotools binconfig-disabled +inherit autotools binconfig-disabled github-releases EXTRA_OECONF = "\ --enable-newline-is-lf \ diff --git a/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb b/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb index a9f2bf6cae..01ba2a6fe9 100644 --- a/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb +++ b/poky/meta/recipes-support/libproxy/libproxy_0.4.18.bb @@ -12,13 +12,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ DEPENDS = "glib-2.0" -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.xz" SRC_URI[sha256sum] = "69b5856e9ea42c38ac77e6b8c92ffc86a71d341fef74e77bef85f9cc6c47a4b1" -UPSTREAM_CHECK_URI = "https://github.com/libproxy/libproxy/releases" -UPSTREAM_CHECK_REGEX = "libproxy-(?P<pver>.*)\.tar" - -inherit cmake pkgconfig +inherit cmake pkgconfig github-releases PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gnome', '', d)} gnome3" PACKAGECONFIG[gnome] = "-DWITH_GNOME=yes,-DWITH_GNOME=no,gconf" diff --git a/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb b/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb index 4fc0ad8acb..58f56c145e 100644 --- a/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb +++ b/poky/meta/recipes-support/libpsl/libpsl_0.21.1.bb @@ -10,13 +10,13 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=5437030d9e4fbe7267ced058ddb8a7f5 \ file://COPYING;md5=f41d10997a12da5ee3c24ceeb0148d18" -SRC_URI = "https://github.com/rockdaboot/${BPN}/releases/download/${PV}/${BP}.tar.gz \ +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \ " SRC_URI[sha256sum] = "ac6ce1e1fbd4d0254c4ddb9d37f1fa99dec83619c1253328155206b896210d4c" -UPSTREAM_CHECK_URI = "https://github.com/rockdaboot/libpsl/releases" +GITHUB_BASE_URI = "https://github.com/rockdaboot/libpsl/releases" -inherit autotools gettext gtk-doc manpages pkgconfig lib_package +inherit autotools gettext gtk-doc manpages pkgconfig lib_package github-releases PACKAGECONFIG ?= "icu" PACKAGECONFIG[manpages] = "--enable-man,--disable-man,libxslt-native" diff --git a/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb b/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb index fd63e7adc2..7371faf017 100644 --- a/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb +++ b/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb @@ -10,17 +10,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24" BBCLASSEXTEND = "native nativesdk" -SRC_URI = "https://github.com/libusb/libusb/releases/download/v${PV}/libusb-${PV}.tar.bz2 \ +SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libusb-${PV}.tar.bz2 \ file://run-ptest \ " -UPSTREAM_CHECK_URI = "https://github.com/libusb/libusb/releases" +GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases" SRC_URI[sha256sum] = "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5" S = "${WORKDIR}/libusb-${PV}" -inherit autotools pkgconfig ptest +inherit autotools pkgconfig ptest github-releases PACKAGECONFIG:class-target ??= "udev" PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" diff --git a/poky/meta/recipes-support/nghttp2/nghttp2_1.48.0.bb b/poky/meta/recipes-support/nghttp2/nghttp2_1.49.0.bb index 4ff3ab829b..6c3d543083 100644 --- a/poky/meta/recipes-support/nghttp2/nghttp2_1.48.0.bb +++ b/poky/meta/recipes-support/nghttp2/nghttp2_1.49.0.bb @@ -4,15 +4,13 @@ SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec" -UPSTREAM_CHECK_URI = "https://github.com/nghttp2/nghttp2/releases" - SRC_URI = "\ - https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.xz \ + ${GITHUB_BASE_URI}/download/v${PV}/nghttp2-${PV}.tar.xz \ file://0001-fetch-ocsp-response-use-python3.patch \ " -SRC_URI[sha256sum] = "47d8f30ee4f1bc621566d10362ca1b3ac83a335c63da7144947c806772d016e4" +SRC_URI[sha256sum] = "b0cfd492bbf0b131c472e8f6501c9f4ee82b51b68130f47b278c0b7c9848a66e" -inherit cmake manpages python3native +inherit cmake manpages python3native github-releases PACKAGECONFIG[manpages] = "" # examples are never installed, and don't need to be built in the diff --git a/poky/meta/recipes-support/numactl/numactl_git.bb b/poky/meta/recipes-support/numactl/numactl_git.bb index 93547ea239..712cf0203f 100644 --- a/poky/meta/recipes-support/numactl/numactl_git.bb +++ b/poky/meta/recipes-support/numactl/numactl_git.bb @@ -8,10 +8,10 @@ SECTION = "apps" inherit autotools-brokensep ptest -LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=f8ff2391624f28e481299f3f677b21bb" +LIC_FILES_CHKSUM = "file://README.md;beginline=19;endline=32;md5=9f34c3af4ed6f3f5df0da5f3c0835a43" -SRCREV = "dd6de072c92c892a86e18c0fd0dfa1ba57a9a05d" -PV = "2.0.14" +SRCREV = "01a39cb4edc0dd0f4151b7ad11e0c56d2e612a02" +PV = "2.0.15" SRC_URI = "git://github.com/numactl/numactl;branch=master;protocol=https \ file://Fix-the-test-output-format.patch \ diff --git a/poky/meta/recipes-support/re2c/re2c_3.0.bb b/poky/meta/recipes-support/re2c/re2c_3.0.bb index ab047601ae..f8f85125a3 100644 --- a/poky/meta/recipes-support/re2c/re2c_3.0.bb +++ b/poky/meta/recipes-support/re2c/re2c_3.0.bb @@ -7,10 +7,10 @@ SECTION = "devel" LICENSE = "PD" LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d" -SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.xz" +SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BPN}-${PV}.tar.xz" SRC_URI[sha256sum] = "b3babbbb1461e13fe22c630a40c43885efcfbbbb585830c6f4c0d791cf82ba0b" -UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases" +GITHUB_BASE_URI = "https://github.com/skvadrik/re2c/releases" BBCLASSEXTEND = "native nativesdk" -inherit autotools +inherit autotools github-releases diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.39.2.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.39.3.bb index dfef480895..fce497e0e1 100644 --- a/poky/meta/recipes-support/sqlite/sqlite3_3.39.2.bb +++ b/poky/meta/recipes-support/sqlite/sqlite3_3.39.3.bb @@ -4,7 +4,7 @@ LICENSE = "PD" LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" SRC_URI = "http://www.sqlite.org/2022/sqlite-autoconf-${SQLITE_PV}.tar.gz" -SRC_URI[sha256sum] = "852be8a6183a17ba47cee0bbff7400b7aa5affd283bf3beefc34fcd088a239de" +SRC_URI[sha256sum] = "7868fb3082be3f2cf4491c6fba6de2bddcbc293a35fefb0624ee3c13f01422b9" # -19242 is only an issue in specific development branch commits CVE_CHECK_IGNORE += "CVE-2019-19242" diff --git a/poky/meta/recipes-support/taglib/taglib_1.12.bb b/poky/meta/recipes-support/taglib/taglib_1.12.bb index 47ad8aacb6..e6e3ef07ad 100644 --- a/poky/meta/recipes-support/taglib/taglib_1.12.bb +++ b/poky/meta/recipes-support/taglib/taglib_1.12.bb @@ -14,7 +14,7 @@ SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz" SRC_URI[md5sum] = "4313ed2671234e029b7af8f97c84e9af" SRC_URI[sha256sum] = "7fccd07669a523b07a15bd24c8da1bbb92206cb19e9366c3692af3d79253b703" -UPSTREAM_CHECK_URI = "http://github.com/taglib/taglib/releases/" +UPSTREAM_CHECK_URI = "https://taglib.org/" BINCONFIG = "${bindir}/taglib-config" diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc index 33a8299243..cbc370100b 100644 --- a/poky/meta/recipes-support/vim/vim.inc +++ b/poky/meta/recipes-support/vim/vim.inc @@ -20,8 +20,8 @@ SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \ file://no-path-adjust.patch \ " -PV .= ".0341" -SRCREV = "92a3d20682d46359bb50a452b4f831659e799155" +PV .= ".0598" +SRCREV = "8279af514ca7e5fd3c31cf13b0864163d1a0bfeb" # Remove when 8.3 is out UPSTREAM_VERSION_UNKNOWN = "1" diff --git a/poky/scripts/create-pull-request b/poky/scripts/create-pull-request index 8eefcf63a5..2f91a355b0 100755 --- a/poky/scripts/create-pull-request +++ b/poky/scripts/create-pull-request @@ -128,7 +128,7 @@ PROTO_RE="[a-z][a-z+]*://" GIT_RE="\(^\($PROTO_RE\)\?\)\($USER_RE@\)\?\([^:/]*\)[:/]\(.*\)" REMOTE_URL=${REMOTE_URL%.git} REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\5#") -REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\4/\5#") +REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#https://\4/\5#") if [ -z "$BRANCH" ]; then BRANCH=$(git branch | grep -e "^\* " | cut -d' ' -f2) diff --git a/poky/scripts/lib/wic/plugins/imager/direct.py b/poky/scripts/lib/wic/plugins/imager/direct.py index c44159b235..da483daed5 100644 --- a/poky/scripts/lib/wic/plugins/imager/direct.py +++ b/poky/scripts/lib/wic/plugins/imager/direct.py @@ -117,7 +117,7 @@ class DirectPlugin(ImagerPlugin): updated = False for part in self.parts: if not part.realnum or not part.mountpoint \ - or not part.mountpoint.startswith('/'): + or part.mountpoint == "/" or not part.mountpoint.startswith('/'): continue if part.use_uuid: diff --git a/poky/scripts/oe-setup-builddir b/poky/scripts/oe-setup-builddir index d3c7f943e7..a13860c7d9 100755 --- a/poky/scripts/oe-setup-builddir +++ b/poky/scripts/oe-setup-builddir @@ -7,12 +7,14 @@ # SPDX-License-Identifier: GPL-2.0-or-later # -if [ -z "$BUILDDIR" ]; then - echo >&2 "Error: The build directory (BUILDDIR) must be set!" +die() { + echo Error: "$@" >&2 exit 1 -fi +} + +[ -n "$BUILDDIR" ] || die "The build directory (BUILDDIR) must be set!" -if [ "$1" = '--help' -o "$1" = '-h' ]; then +if [ "$1" = '--help' ] || [ "$1" = '-h' ]; then echo 'Usage: oe-setup-builddir' echo '' echo "OpenEmbedded setup-builddir - setup build directory $BUILDDIR" @@ -22,35 +24,22 @@ fi mkdir -p "$BUILDDIR/conf" -if [ ! -d "$BUILDDIR" ]; then - echo >&2 "Error: The builddir ($BUILDDIR) does not exist!" - exit 1 -fi - -if [ ! -w "$BUILDDIR" ]; then - echo >&2 "Error: Cannot write to $BUILDDIR, perhaps try sourcing with a writable path? i.e. . oe-init-build-env ~/my-build" - exit 1 -fi +[ -d "$BUILDDIR" ] || die "The build directory ($BUILDDIR) does not exist!" +[ -w "$BUILDDIR" ] || + die "Cannot write to $BUILDDIR, perhaps try sourcing with a writable path? i.e. . oe-init-build-env ~/my-build" # Attempting removal of sticky,setuid bits from BUILDDIR, BUILDDIR/conf chmod -st "$BUILDDIR" 2>/dev/null || echo "WARNING: unable to chmod $BUILDDIR" chmod -st "$BUILDDIR/conf" 2>/dev/null || echo "WARNING: unable to chmod $BUILDDIR/conf" -cd "$BUILDDIR" +cd "$BUILDDIR" || die "Failed to change directory to $BUILDDIR!" -if [ -f "$BUILDDIR/conf/templateconf.cfg" -a -z "$TEMPLATECONF" ]; then - TEMPLATECONF=$(cat "$BUILDDIR/conf/templateconf.cfg") - # The following two are no longer valid; unsetting them will automatically get them replaced - # with correct ones. - if [ $TEMPLATECONF = "meta/conf" -o $TEMPLATECONF = "meta-poky/conf" ]; then - unset TEMPLATECONF - rm $BUILDDIR/conf/templateconf.cfg - fi -fi +. "$OEROOT/.templateconf" -. "$OEROOT"/.templateconf +# Keep the original TEMPLATECONF before possibly prefixing it with $OEROOT below. +ORG_TEMPLATECONF=$TEMPLATECONF -# +# # $TEMPLATECONF can point to a directory for the template local.conf & bblayers.conf # if [ -n "$TEMPLATECONF" ]; then @@ -59,15 +48,12 @@ if [ -n "$TEMPLATECONF" ]; then if [ -d "$OEROOT/$TEMPLATECONF" ]; then TEMPLATECONF="$OEROOT/$TEMPLATECONF" fi - if [ ! -d "$TEMPLATECONF" ]; then - echo >&2 "Error: TEMPLATECONF value points to nonexistent directory '$TEMPLATECONF'" - exit 1 - fi - templatesdir=$(python3 -c "import sys; print(sys.argv[1].strip('/').split('/')[-2])" $TEMPLATECONF) - if [ ! -f "$TEMPLATECONF/../../layer.conf" -o $templatesdir != "templates" ]; then - echo >&2 "Error: TEMPLATECONF value (which is $TEMPLATECONF) must point to meta-some-layer/conf/templates/template-name" - exit 1 - fi + [ -d "$TEMPLATECONF" ] || + die "TEMPLATECONF value points to nonexistent directory '$TEMPLATECONF'" + fi + templatesdir=$(python3 -c "import sys; print(sys.argv[1].strip('/').split('/')[-2])" "$TEMPLATECONF") + if [ "$templatesdir" != templates ] || [ ! -f "$TEMPLATECONF/../../layer.conf" ]; then + die "TEMPLATECONF value (which is $TEMPLATECONF) must point to meta-some-layer/conf/templates/template-name" fi OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample" OECORELOCALCONF="$TEMPLATECONF/local.conf.sample" @@ -83,8 +69,7 @@ if [ ! -r "$BUILDDIR/conf/local.conf" ]; then You had no conf/local.conf file. This configuration file has therefore been created for you from $OECORELOCALCONF You may wish to edit it to, for example, select a different MACHINE (target -hardware). See conf/local.conf for more information as common configuration -options are commented. +hardware). EOM cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf" @@ -118,7 +103,7 @@ unset OECORELOCALCONF unset OECORELAYERCONF # Ending the first-time run message. Show the YP Documentation banner. -if [ ! -z "$SHOWYPDOC" ]; then +if [ -n "$SHOWYPDOC" ]; then cat <<EOM The Yocto Project has extensive documentation about OE including a reference manual which can be found at: @@ -138,5 +123,5 @@ fi unset OECORENOTESCONF if [ ! -f "$BUILDDIR/conf/templateconf.cfg" ]; then - echo "$TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg" + echo "$ORG_TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg" fi diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu index b6fc212ebe..983f7514c7 100755 --- a/poky/scripts/runqemu +++ b/poky/scripts/runqemu @@ -1505,6 +1505,9 @@ class BaseConfig(object): cmd = "%s %s" % (self.qemu_opt, kernel_opts) cmds = shlex.split(cmd) logger.info('Running %s\n' % cmd) + with open('/proc/uptime', 'r') as f: + uptime_seconds = f.readline().split()[0] + logger.info('Host uptime: %s\n' % uptime_seconds) pass_fds = [] if self.taplock_descriptor: pass_fds = [self.taplock_descriptor.fileno()] @@ -1528,6 +1531,9 @@ class BaseConfig(object): signal.signal(signal.SIGTERM, signal.SIG_IGN) logger.info("Cleaning up") + with open('/proc/uptime', 'r') as f: + uptime_seconds = f.readline().split()[0] + logger.info('Host uptime: %s\n' % uptime_seconds) if self.cleantap: cmd = ('sudo', self.qemuifdown, self.tap, self.bindir_native) logger.debug('Running %s' % str(cmd)) |