diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2023-12-06 01:48:56 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2023-12-06 18:21:06 +0300 |
commit | da295319aa739dfa657fb4a1ba7e81804ba48658 (patch) | |
tree | d8bb670855f82ac4f2a50e8ca78b4534c0865485 /poky | |
parent | 4e5690417ceb3d4e031bf3fcd306f724026f9d3d (diff) | |
download | openbmc-da295319aa739dfa657fb4a1ba7e81804ba48658.tar.xz |
subtree updates
meta-arm: 1dff3300fb..0b61cc659a:
Ross Burton (1):
meta-arm/selftest: add test that PAC/BTI instructions are used
meta-openembedded: 991e6852a5..5ad7203f68:
Alexander Kanavin (1):
fio: revert "fio: upgrade 3.32 -> 2022"
BELOUARGA Mohamed (1):
monocypher: add crypto library recipe
Dylan Turner (1):
apache2: v2.4.57 to v2.4.58 to fix CVE-2023-43622
Hongxu Jia (1):
freeradius: make sub packages to runtime depends on freeradius
Kai Kang (1):
libnma: remove conflict xml file
Khem Raj (12):
nlohmann-json: Fix SRCREV_FORMAT and do not package git metadata into ptests
ptest-packagelists-meta-oe.inc: Move poco to slow tests
sdbus-c++-libsystemd: Upgrade to 254
sdbus-c++-tools: Upgrade to 1.4.0
gstd: Fix systemd user unit packaging
basu: Update to latest master
sdbus-c++: Install ptests into PTEST_PATH
liblognorm:Add asprintf to autoconf function check macro
gnome-console,gnome-terminal: Depend on vte from core layer
Revert "gnome-terminal: Remove recommendation on vte-prompt"
vte9: Drop recipe
basu: Update the SRCREV to get lld fix
Luca Fancellu (1):
linuxptp: Update downstream patches
Markus Volk (9):
libcacard: fix version string in libcacard.pc
cups-filters: fix Makefile race condition
system-config-printer: Add packageconfig for polkit
pipewire: upgrade 0.3.85 > 1.0.0
libcacard: set meson version based on PV
spice: Set meson version based on PV
spice-gtk: Set meson version based on PV
libdecor: update 0.2.0 -> 0.2.1
xdg-desktop-portal-gnome: upgrade 45.0 -> 45.1
Naveen Saini (2):
tbb: upgrade 2021.9.0 -> 2021.11.0
tbb: enable NUMA/Hybrid CPU support
Patrick Wicki (6):
squid: update from v5.7 to v6.5
squid: add nm dispatcher reload hook
squid: add auth packageconfig
squid: move configs to sub package
squid: add url-rewrite-helpers packageconfig
squid: add systemd service
Patrick Williams (1):
glog: Disable 64bit atomics on armv{5,6}
Peter Kjellerstedt (1):
redis: Inherit pkgconfig
Ross Burton (1):
python3-validators: add new recipe
Wang Mingyu (26):
ctags: upgrade 6.0.20231119.0 -> 6.0.20231126.0
dnfdragora: upgrade 2.1.4 -> 2.1.5
gensio: upgrade 2.7.7 -> 2.8.0
frr: upgrade 9.0.1 -> 9.1
capnproto: upgrade 1.0.1 -> 1.0.1.1
libbpf: upgrade 1.2.2 -> 1.3.0
paho-mqtt-cpp: upgrade 1.2.0 -> 1.3.1
tomoyo-tools: upgrade 2.5.0 -> 2.6.1
python3-aiohttp: upgrade 3.9.0 -> 3.9.1
python3-bitstring: upgrade 4.1.2 -> 4.1.3
python3-dbus-fast: upgrade 2.14.0 -> 2.15.0
python3-humanize: upgrade 4.8.0 -> 4.9.0
python3-ipython: upgrade 8.17.2 -> 8.18.0
python3-mypy: upgrade 1.7.0 -> 1.7.1
python3-pdm: upgrade 2.10.3 -> 2.10.4
python3-pexpect: upgrade 4.8.0 -> 4.9.0
python3-pychromecast: upgrade 13.0.7 -> 13.0.8
python3-pydantic: upgrade 2.5.1 -> 2.5.2
python3-pymisp: upgrade 2.4.178 -> 2.4.179
python3-pytest-xdist: upgrade 3.4.0 -> 3.5.0
python3-sentry-sdk: upgrade 1.35.0 -> 1.37.1
python3-types-setuptools: upgrade 68.2.0.1 -> 68.2.0.2
python3-virtualenv: upgrade 20.24.6 -> 20.24.7
redis: upgrade 7.2.2 -> 7.2.3
ser2net: upgrade 4.5.1 -> 4.6.0
thingsboard-gateway: upgrade 3.4.2 -> 3.4.3.1
alperak (12):
squashfs-tools-ng: upgrade 1.1.4 -> 1.2.0
tmate: Fix finding msgpack 6+
msgpack-c: upgrade 4.0.0 -> 6.0.0
msgpack-cpp: upgrade 4.1.1 -> 6.1.0
brotli: upgrade 1.0.9 -> 1.1.0
icewm: upgrade 2.9.9 -> 3.4.4
iotop: upgrade 1.21 -> 1.25
liblognorm: upgrade 1.0.1 -> 2.0.6
libmodbus: upgrade 3.1.7 -> 3.1.10
libpwquality: upgrade 1.4.4 -> 1.4.5
libspiro: upgrade 20200505 -> 20221101
gtkwave: upgrade 3.3.111 -> 3.3.117
poky: 2696bf8cf3..028b6f6226:
Adrian Freihofer (1):
cmake-qemu.bbclass: support qemu for cmake
Alassane Yattara (9):
bitbake: toaster/tests: Update methods wait_until_~ to skip using time.sleep
bitbake: toaster/tests: Override table edit columns TestCase from image recipe page
bitbake: toaster/tests: Test software recipe page
bitbake: toaster/tests: Added Machine page TestCase
bitbake: toaster/tests: Added Layers page TestCase
bitbake: toaster/tests: Added distro page TestCase
bitbake: toaster/tests: Bug-fix on tests/functional/test_project_page
bitbake: toaster/tests: Test single layer page
bitbake: toaster/tests: Test single recipe page
Alex Kiernan (4):
rust: Delete python2 configparser code path
rust: Drop TARGET_VENDOR export
eudev: Upgrade 3.2.12 -> 3.2.14
rust: Drop targets and hosts override magic
Alexander Kanavin (15):
python3-pyproject-hooks: fix upstream version check
cmake: upgrade 3.27.5 -> 3.27.7
desktop-file-utils: upgrade 0.26 -> 0.27
erofs-utils: upgrade 1.6 -> 1.7.1
webkitgtk: update 2.40.5 -> 2.42.2
epiphany: upgrade 44.6 -> 45.1
virglrenderer: upgrade 0.10.4 -> 1.0.0
libxkbcommon: upgrade 1.5.0 -> 1.6.0
mpg123: upgrade 1.31.3 -> 1.32.3
icu: upgrade 73-2 -> 74-1
p11-kit: upgrade 0.25.0 -> 0.25.2
glib-2.0: install gio-querymodules into bindir as well as libexecdir for native
meson: update 1.2.2 -> 1.3.0
repo: update 2.37 -> 2.39
rt-tests: update 2.5 -> 2.6
Bruce Ashfield (1):
lttng-modules: fix build for v6.7+
Changhyeok Bae (1):
iptables: upgrade 1.8.9 -> 1.8.10
Charlie Johnston (2):
bitbake.conf: Add gsutil as hosttool for gcp fetcher.
bitbake: fetch2: Ensure GCP fetcher checks if file exists before download.
Jan Vermaete (1):
systemd: fixed typo
Joao Marcos Costa (1):
documentation.conf: fix do_menuconfig description
Joshua Watt (2):
bitbake: bitbake-hashclient: Add commands to get hashes
bitbake: hashserv: sqlite: Ensure sync propagates to database connections
Julien Stephan (6):
devtool: fix update-recipe dry-run mode
lib/oe/recipeutils.py: remove trailing white-spaces
devtool: finish/update-recipe: restrict mode srcrev to recipes fetched from SCM
devtool: tag all submodules
devtool: add support for git submodules
oeqa/selftest/devtool: add test for git submodules
Justin Bronder (1):
contributor-guide: add License-Update tag
Kareem Zarka (2):
wic: bootimg-efi: Make kernel image installation configurable
oeqa/selftest/wic: Add tests for kernel image installation
Khem Raj (8):
shared-mime-info: Fix build with clang-17+
libsoup-2.4: Fix build with clang-17 and libxml2-2.12
busybox: Enable utmp support on musl systems
virglrenderer: Fix build with clang
llvm: Upgrade to 17.0.6
rust-common.bbclass: Define rust arch for x32 platforms
vte: Upgrade to 0.74.1
vte: Separate out gtk4 pieces of vte into individual packages
Lee Chee Yang (3):
wic: add test for partition hidden attributes
migration-guides: add release notes for 4.3.1
openssl: upgrade to 3.2.0
Malte Schmidt (1):
wic: rawcopy: add support for zstd decompression
Marco Felsch (1):
json-c: fix icecc compilation
Markus Volk (3):
bluez5: fix connection for ps5/dualshock controllers
cups: Add root,sys,wheel to system groups
vte: upgrade 0.72.2 -> 0.74.0
Martin Hundeb?ll (1):
libpam: split /etc/environment into pam-plugin-env package
Matsunaga-Shinji (1):
cve-check: Modify judgment processing using "=" in version comparison
Michael Opdenacker (4):
systemd-compat-units.bb: fix postinstall script
dev-manual: layers: update link to YP Compatible form
contributor-guide: fix command option
migration-guides: release 3.5 is actually 4.0
Niko Mauno (1):
rust-llvm: Allow overriding LLVM target archs
Patrick Williams (1):
shared-mime-info-native: handle old GCC for AlmaLinux8
Peter Marko (2):
cve-update-nvd2-native: remove unused variable CVE_SOCKET_TIMEOUT
cve-update-nvd2-native: make number of fetch attemtps configurable
Richard Haar (1):
bitbake: bitbake: tests: Fix duplicate test_underscore_override test
Richard Purdie (2):
bitbake: ui/ncurses: Add missing function call to avoid traceback
bitbake: cooker: Avoid eventlog variable listing lockups
Robert Yang (2):
gnu-config: Update to latest revision
gettext: Upgrade 0.22 -> 0.22.3
Ross Burton (3):
core-image-minimal-initramfs: don't install a kernel into the initramfs
autoconf: upgrade to 2.72d
Revert "cve-check: Modify judgment processing using "=" in version comparison"
Sundeep KOKKONDA (3):
rust: Split rustdoc into a separate package
glibc: stable 2.38 branch updates
binutils: stable 2.41 branch updates
Tim Orling (8):
python3-sphinxcontrib-applehelp: 1.0.4 -> 1.0.7
python3-sphinxcontrib-devhelp: 1.0.2 -> 1.0.5
python3-sphinxcontrib-htmlhelp: 2.0.1 -> 2.0.4
python3-sphinxcontrib-qthelp: 1.0.3 -> 1.0.6
python3-sphinxcontrib-serializinghtml: 1.1.5 -> 1.1.9
vim: upgrade 9.0.2068 -> 9.0.2130
python3-cryptography-vectors: add RECIPE_NO_UPDATE_REASON
python3-cryptography{-vectors}: 41.0.5 -> 41.0.7
Trevor Gamblin (2):
python3-ptest: skip test_storlines
patchtest: shorten patch signed-off-by test output
Viswanath Kraleti (1):
systemd-boot: Fix build issues on armv7a-linux
Wang Mingyu (27):
bind: upgrade 9.18.19 -> 9.18.20
diffoscope: upgrade 251 -> 252
ell: upgrade 0.59 -> 0.60
git: upgrade 2.42.1 -> 2.43.0
gnutls: upgrade 3.8.1 -> 3.8.2
libdrm: upgrade 2.4.117 -> 2.4.118
libgcrypt: upgrade 1.10.2 -> 1.10.3
libksba: upgrade 1.6.4 -> 1.6.5
libxslt: upgrade 1.1.38 -> 1.1.39
log4cplus: upgrade 2.1.0 -> 2.1.1
python3-certifi: upgrade 2023.7.22 -> 2023.11.17
python3-setuptools: upgrade 68.2.2 -> 69.0.2
python3-wcwidth: upgrade 0.2.9 -> 0.2.11
python3-hypothesis: upgrade 6.89.0 -> 6.90.0
python3-pyasn1: upgrade 0.5.0 -> 0.5.1
python3-scons: upgrade 4.5.2 -> 4.6.0
python3-urllib3: upgrade 2.0.7 -> 2.1.0
ethtool: upgrade 6.5 -> 6.6
gi-docgen: upgrade 2023.1 -> 2023.3
init-system-helpers: upgrade 1.65.2 -> 1.66
libsolv: upgrade 0.7.26 -> 0.7.27
python3-idna: upgrade 3.4 -> 3.6
ofono: upgrade 2.1 -> 2.2
python3-sphinx-rtd-theme: upgrade 1.3.0 -> 2.0.0
python3-trove-classifiers: upgrade 2023.11.14 -> 2023.11.22
python3-wheel: upgrade 0.41.3 -> 0.42.0
resolvconf: upgrade 1.91 -> 1.92
Xiangyu Chen (2):
shadow: Fix for CVE-2023-4641
bash: changes to SIGINT handler while waiting for a child
Zahir Hussain (1):
cmake: Unset CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
meta-raspberrypi: 8231f97534..fde68b24f0:
Lorenzo Arena (1):
docs: fix syntax for overriding fs type for initramfs image
Change-Id: Idc6f6b1e913442bae03dfec9f207924c56f31056
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'poky')
181 files changed, 2753 insertions, 4332 deletions
diff --git a/poky/bitbake/bin/bitbake-hashclient b/poky/bitbake/bin/bitbake-hashclient index 3ff7b76378..2cb6338666 100755 --- a/poky/bitbake/bin/bitbake-hashclient +++ b/poky/bitbake/bin/bitbake-hashclient @@ -52,6 +52,22 @@ def print_user(u): def main(): + def handle_get(args, client): + result = client.get_taskhash(args.method, args.taskhash, all_properties=True) + if not result: + return 0 + + print(json.dumps(result, sort_keys=True, indent=4)) + return 0 + + def handle_get_outhash(args, client): + result = client.get_outhash(args.method, args.outhash, args.taskhash) + if not result: + return 0 + + print(json.dumps(result, sort_keys=True, indent=4)) + return 0 + def handle_stats(args, client): if args.reset: s = client.reset_stats() @@ -189,6 +205,17 @@ def main(): subparsers = parser.add_subparsers() + get_parser = subparsers.add_parser('get', help="Get the unihash for a taskhash") + get_parser.add_argument("method", help="Method to query") + get_parser.add_argument("taskhash", help="Task hash to query") + get_parser.set_defaults(func=handle_get) + + get_outhash_parser = subparsers.add_parser('get-outhash', help="Get output hash information") + get_outhash_parser.add_argument("method", help="Method to query") + get_outhash_parser.add_argument("outhash", help="Output hash to query") + get_outhash_parser.add_argument("taskhash", help="Task hash to query") + get_outhash_parser.set_defaults(func=handle_get_outhash) + stats_parser = subparsers.add_parser('stats', help='Show server stats') stats_parser.add_argument('--reset', action='store_true', help='Reset server stats') diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index d658db9bd8..c5bfef55d6 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -102,12 +102,15 @@ class CookerFeatures(object): class EventWriter: def __init__(self, cooker, eventfile): - self.file_inited = None self.cooker = cooker self.eventfile = eventfile self.event_queue = [] - def write_event(self, event): + def write_variables(self): + with open(self.eventfile, "a") as f: + f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])})) + + def send(self, event): with open(self.eventfile, "a") as f: try: str_event = codecs.encode(pickle.dumps(event), 'base64').decode('utf-8') @@ -117,28 +120,6 @@ class EventWriter: import traceback print(err, traceback.format_exc()) - def send(self, event): - if self.file_inited: - # we have the file, just write the event - self.write_event(event) - else: - # init on bb.event.BuildStarted - name = "%s.%s" % (event.__module__, event.__class__.__name__) - if name in ("bb.event.BuildStarted", "bb.cooker.CookerExit"): - with open(self.eventfile, "w") as f: - f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])})) - - self.file_inited = True - - # write pending events - for evt in self.event_queue: - self.write_event(evt) - - # also write the current event - self.write_event(event) - else: - # queue all events until the file is inited - self.event_queue.append(event) #============================================================================# # BBCooker @@ -416,6 +397,7 @@ class BBCooker: def setupEventLog(self, eventlog): if self.eventlog and self.eventlog[0] != eventlog: bb.event.unregister_UIHhandler(self.eventlog[1]) + self.eventlog = None if not self.eventlog or self.eventlog[0] != eventlog: # we log all events to a file if so directed # register the log file writer as UI Handler @@ -423,7 +405,7 @@ class BBCooker: bb.utils.mkdirhier(os.path.dirname(eventlog)) writer = EventWriter(self, eventlog) EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event']) - self.eventlog = (eventlog, bb.event.register_UIHhandler(EventLogWriteHandler(writer))) + self.eventlog = (eventlog, bb.event.register_UIHhandler(EventLogWriteHandler(writer)), writer) def updateConfigOpts(self, options, environment, cmdline): self.ui_cmdline = cmdline @@ -1404,6 +1386,8 @@ class BBCooker: buildname = self.databuilder.mcdata[mc].getVar("BUILDNAME") if fireevents: bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.databuilder.mcdata[mc]) + if self.eventlog: + self.eventlog[2].write_variables() bb.event.enable_heartbeat() # Execute the runqueue @@ -1547,6 +1531,8 @@ class BBCooker: for mc in self.multiconfigs: bb.event.fire(bb.event.BuildStarted(buildname, ntargets), self.databuilder.mcdata[mc]) + if self.eventlog: + self.eventlog[2].write_variables() bb.event.enable_heartbeat() rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist) diff --git a/poky/bitbake/lib/bb/fetch2/gcp.py b/poky/bitbake/lib/bb/fetch2/gcp.py index f42c81fda8..f40ce2eaa5 100644 --- a/poky/bitbake/lib/bb/fetch2/gcp.py +++ b/poky/bitbake/lib/bb/fetch2/gcp.py @@ -47,6 +47,7 @@ class GCP(FetchMethod): ud.basename = os.path.basename(ud.path) ud.localfile = d.expand(urllib.parse.unquote(ud.basename)) + ud.basecmd = "gsutil stat" def get_gcp_client(self): from google.cloud import storage @@ -61,7 +62,8 @@ class GCP(FetchMethod): if self.gcp_client is None: self.get_gcp_client() - bb.fetch2.check_network_access(d, "gsutil stat", ud.url) + bb.fetch2.check_network_access(d, ud.basecmd, f"gs://{ud.host}{ud.path}") + runfetchcmd("%s %s" % (ud.basecmd, f"gs://{ud.host}{ud.path}"), d) # Path sometimes has leading slash, so strip it path = ud.path.lstrip("/") @@ -88,7 +90,8 @@ class GCP(FetchMethod): if self.gcp_client is None: self.get_gcp_client() - bb.fetch2.check_network_access(d, "gsutil stat", ud.url) + bb.fetch2.check_network_access(d, ud.basecmd, f"gs://{ud.host}{ud.path}") + runfetchcmd("%s %s" % (ud.basecmd, f"gs://{ud.host}{ud.path}"), d) # Path sometimes has leading slash, so strip it path = ud.path.lstrip("/") diff --git a/poky/bitbake/lib/bb/tests/data.py b/poky/bitbake/lib/bb/tests/data.py index 98e430ce2a..cbc7c1ecd4 100644 --- a/poky/bitbake/lib/bb/tests/data.py +++ b/poky/bitbake/lib/bb/tests/data.py @@ -395,6 +395,16 @@ class TestOverrides(unittest.TestCase): self.d.setVar("OVERRIDES", "foo:bar:some_val") self.assertEqual(self.d.getVar("TEST"), "testvalue3") + # Test an override with _<numeric> in it based on a real world OE issue + def test_underscore_override_2(self): + self.d.setVar("TARGET_ARCH", "x86_64") + self.d.setVar("PN", "test-${TARGET_ARCH}") + self.d.setVar("VERSION", "1") + self.d.setVar("VERSION:pn-test-${TARGET_ARCH}", "2") + self.d.setVar("OVERRIDES", "pn-${PN}") + bb.data.expandKeys(self.d) + self.assertEqual(self.d.getVar("VERSION"), "2") + def test_remove_with_override(self): self.d.setVar("TEST:bar", "testvalue2") self.d.setVar("TEST:some_val", "testvalue3 testvalue5") @@ -416,16 +426,6 @@ class TestOverrides(unittest.TestCase): self.d.setVar("TEST:bar:append", "testvalue2") self.assertEqual(self.d.getVar("TEST"), "testvalue2") - # Test an override with _<numeric> in it based on a real world OE issue - def test_underscore_override(self): - self.d.setVar("TARGET_ARCH", "x86_64") - self.d.setVar("PN", "test-${TARGET_ARCH}") - self.d.setVar("VERSION", "1") - self.d.setVar("VERSION:pn-test-${TARGET_ARCH}", "2") - self.d.setVar("OVERRIDES", "pn-${PN}") - bb.data.expandKeys(self.d) - self.assertEqual(self.d.getVar("VERSION"), "2") - def test_append_and_unused_override(self): # Had a bug where an unused override append could return "" instead of None self.d.setVar("BAR:append:unusedoverride", "testvalue2") diff --git a/poky/bitbake/lib/bb/ui/ncurses.py b/poky/bitbake/lib/bb/ui/ncurses.py index cf1c876a51..18a706547a 100644 --- a/poky/bitbake/lib/bb/ui/ncurses.py +++ b/poky/bitbake/lib/bb/ui/ncurses.py @@ -227,6 +227,9 @@ class NCursesUI: shutdown = 0 try: + if not params.observe_only: + params.updateToServer(server, os.environ.copy()) + params.updateFromServer(server) cmdline = params.parseActions() if not cmdline: diff --git a/poky/bitbake/lib/hashserv/sqlite.py b/poky/bitbake/lib/hashserv/sqlite.py index f65036be93..f93cb2c1dd 100644 --- a/poky/bitbake/lib/hashserv/sqlite.py +++ b/poky/bitbake/lib/hashserv/sqlite.py @@ -109,11 +109,11 @@ class DatabaseEngine(object): ) def connect(self, logger): - return Database(logger, self.dbname) + return Database(logger, self.dbname, self.sync) class Database(object): - def __init__(self, logger, dbname, sync=True): + def __init__(self, logger, dbname, sync): self.dbname = dbname self.logger = logger @@ -121,6 +121,11 @@ class Database(object): self.db.row_factory = sqlite3.Row with closing(self.db.cursor()) as cursor: + cursor.execute("PRAGMA journal_mode = WAL") + cursor.execute( + "PRAGMA synchronous = %s" % ("NORMAL" if sync else "OFF") + ) + cursor.execute("SELECT sqlite_version()") version = [] diff --git a/poky/bitbake/lib/hashserv/tests.py b/poky/bitbake/lib/hashserv/tests.py index a9e6fdf9ff..869f7636c5 100644 --- a/poky/bitbake/lib/hashserv/tests.py +++ b/poky/bitbake/lib/hashserv/tests.py @@ -842,6 +842,26 @@ class TestHashEquivalenceClient(HashEquivalenceTestSetup, unittest.TestCase): def get_server_addr(self, server_idx): return "unix://" + os.path.join(self.temp_dir.name, 'sock%d' % server_idx) + def test_get(self): + taskhash, outhash, unihash = self.create_test_hash(self.client) + + p = self.run_hashclient(["--address", self.server_address, "get", self.METHOD, taskhash]) + data = json.loads(p.stdout) + self.assertEqual(data["unihash"], unihash) + self.assertEqual(data["outhash"], outhash) + self.assertEqual(data["taskhash"], taskhash) + self.assertEqual(data["method"], self.METHOD) + + def test_get_outhash(self): + taskhash, outhash, unihash = self.create_test_hash(self.client) + + p = self.run_hashclient(["--address", self.server_address, "get-outhash", self.METHOD, outhash, taskhash]) + data = json.loads(p.stdout) + self.assertEqual(data["unihash"], unihash) + self.assertEqual(data["outhash"], outhash) + self.assertEqual(data["taskhash"], taskhash) + self.assertEqual(data["method"], self.METHOD) + def test_stats(self): p = self.run_hashclient(["--address", self.server_address, "stats"], check=True) json.loads(p.stdout) diff --git a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py index e0ac43768e..d9ea7fd108 100644 --- a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py +++ b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py @@ -71,7 +71,9 @@ class Wait(WebDriverWait): _TIMEOUT = 10 _POLL_FREQUENCY = 0.5 - def __init__(self, driver): + def __init__(self, driver, timeout=_TIMEOUT, poll=_POLL_FREQUENCY): + self._TIMEOUT = timeout + self._POLL_FREQUENCY = poll super(Wait, self).__init__(driver, self._TIMEOUT, self._POLL_FREQUENCY) def until(self, method, message=''): @@ -175,18 +177,19 @@ class SeleniumTestCaseBase(unittest.TestCase): """ Return the element which currently has focus on the page """ return self.driver.switch_to.active_element - def wait_until_present(self, selector): + def wait_until_present(self, selector, poll=0.5): """ Wait until element matching CSS selector is on the page """ is_present = lambda driver: self.find(selector) msg = 'An element matching "%s" should be on the page' % selector - element = Wait(self.driver).until(is_present, msg) + element = Wait(self.driver, poll=poll).until(is_present, msg) return element - def wait_until_visible(self, selector): + def wait_until_visible(self, selector, poll=1): """ Wait until element matching CSS selector is visible on the page """ is_visible = lambda driver: self.find(selector).is_displayed() msg = 'An element matching "%s" should be visible' % selector - Wait(self.driver).until(is_visible, msg) + Wait(self.driver, poll=poll).until(is_visible, msg) + time.sleep(poll) # wait for visibility to settle return self.find(selector) def wait_until_focused(self, selector): diff --git a/poky/bitbake/lib/toaster/tests/functional/test_project_page.py b/poky/bitbake/lib/toaster/tests/functional/test_project_page.py index 3edf967a2c..03f64f8fef 100644 --- a/poky/bitbake/lib/toaster/tests/functional/test_project_page.py +++ b/poky/bitbake/lib/toaster/tests/functional/test_project_page.py @@ -6,10 +6,17 @@ # SPDX-License-Identifier: GPL-2.0-only # +import random +import string import pytest +from time import sleep from django.urls import reverse +from django.utils import timezone +from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.select import Select +from selenium.common.exceptions import NoSuchElementException, TimeoutException from tests.functional.functional_helpers import SeleniumFunctionalTestCase +from orm.models import Build, Project, Target from selenium.webdriver.common.by import By @@ -19,13 +26,18 @@ class TestProjectPage(SeleniumFunctionalTestCase): def setUp(self): super().setUp() release = '3' - project_name = 'projectmaster' + project_name = 'project_' + self.generate_random_string() self._create_test_new_project( project_name, release, False, ) + def generate_random_string(self, length=10): + characters = string.ascii_letters + string.digits # alphabetic and numerical characters + random_string = ''.join(random.choice(characters) for _ in range(length)) + return random_string + def _create_test_new_project( self, project_name, @@ -55,6 +67,205 @@ class TestProjectPage(SeleniumFunctionalTestCase): self.driver.find_element(By.ID, "create-project-button").click() + def _get_create_builds(self, **kwargs): + """ Create a build and return the build object """ + # parameters for builds to associate with the projects + now = timezone.now() + release = '3' + project_name = 'projectmaster' + self._create_test_new_project( + project_name+"2", + release, + False, + ) + + self.project1_build_success = { + 'project': Project.objects.get(id=1), + 'started_on': now, + 'completed_on': now, + 'outcome': Build.SUCCEEDED + } + + self.project1_build_failure = { + 'project': Project.objects.get(id=1), + 'started_on': now, + 'completed_on': now, + 'outcome': Build.FAILED + } + build1 = Build.objects.create(**self.project1_build_success) + build2 = Build.objects.create(**self.project1_build_failure) + + # add some targets to these builds so they have recipe links + # (and so we can find the row in the ToasterTable corresponding to + # a particular build) + Target.objects.create(build=build1, target='foo') + Target.objects.create(build=build2, target='bar') + + if kwargs: + # Create kwargs.get('success') builds with success status with target + # and kwargs.get('failure') builds with failure status with target + for i in range(kwargs.get('success', 0)): + now = timezone.now() + self.project1_build_success['started_on'] = now + self.project1_build_success[ + 'completed_on'] = now - timezone.timedelta(days=i) + build = Build.objects.create(**self.project1_build_success) + Target.objects.create(build=build, + target=f'{i}_success_recipe', + task=f'{i}_success_task') + + for i in range(kwargs.get('failure', 0)): + now = timezone.now() + self.project1_build_failure['started_on'] = now + self.project1_build_failure[ + 'completed_on'] = now - timezone.timedelta(days=i) + build = Build.objects.create(**self.project1_build_failure) + Target.objects.create(build=build, + target=f'{i}_fail_recipe', + task=f'{i}_fail_task') + return build1, build2 + + def _mixin_test_table_edit_column( + self, + table_id, + edit_btn_id, + list_check_box_id: list + ): + # Check edit column + edit_column = self.find(f'#{edit_btn_id}') + self.assertTrue(edit_column.is_displayed()) + edit_column.click() + # Check dropdown is visible + self.wait_until_visible('ul.dropdown-menu.editcol') + for check_box_id in list_check_box_id: + # Check that we can hide/show table column + check_box = self.find(f'#{check_box_id}') + th_class = str(check_box_id).replace('checkbox-', '') + if check_box.is_selected(): + # check if column is visible in table + self.assertTrue( + self.find( + f'#{table_id} thead th.{th_class}' + ).is_displayed(), + f"The {th_class} column is checked in EditColumn dropdown, but it's not visible in table" + ) + check_box.click() + # check if column is hidden in table + self.assertFalse( + self.find( + f'#{table_id} thead th.{th_class}' + ).is_displayed(), + f"The {th_class} column is unchecked in EditColumn dropdown, but it's visible in table" + ) + else: + # check if column is hidden in table + self.assertFalse( + self.find( + f'#{table_id} thead th.{th_class}' + ).is_displayed(), + f"The {th_class} column is unchecked in EditColumn dropdown, but it's visible in table" + ) + check_box.click() + # check if column is visible in table + self.assertTrue( + self.find( + f'#{table_id} thead th.{th_class}' + ).is_displayed(), + f"The {th_class} column is checked in EditColumn dropdown, but it's not visible in table" + ) + + def _get_config_nav_item(self, index): + config_nav = self.find('#config-nav') + return config_nav.find_elements(By.TAG_NAME, 'li')[index] + + def _navigate_to_config_nav(self, nav_id, nav_index): + # navigate to the project page + url = reverse("project", args=(1,)) + self.get(url) + self.wait_until_visible('#config-nav') + # click on "Software recipe" tab + soft_recipe = self._get_config_nav_item(nav_index) + soft_recipe.click() + self.wait_until_visible(f'#{nav_id}') + + def _mixin_test_table_show_rows(self, table_selector, **kwargs): + """ Test the show rows feature in the builds table on the all builds page """ + def test_show_rows(row_to_show, show_row_link): + # Check that we can show rows == row_to_show + show_row_link.select_by_value(str(row_to_show)) + self.wait_until_visible(f'#{table_selector} tbody tr', poll=2) + self.assertTrue( + len(self.find_all(f'#{table_selector} tbody tr')) == row_to_show + ) + self.wait_until_present(f'#{table_selector} tbody tr') + show_rows = self.driver.find_elements( + By.XPATH, + f'//select[@class="form-control pagesize-{table_selector}"]' + ) + rows_to_show = [10, 25, 50, 100, 150] + to_skip = kwargs.get('to_skip', []) + # Check show rows + for show_row_link in show_rows: + show_row_link = Select(show_row_link) + for row_to_show in rows_to_show: + if row_to_show not in to_skip: + test_show_rows(row_to_show, show_row_link) + + def _wait_until_build(self, state): + timeout = 10 + start_time = 0 + while True: + if start_time > timeout: + raise TimeoutException( + f'Build did not reach {state} state within {timeout} seconds' + ) + try: + last_build_state = self.driver.find_element( + By.XPATH, + '//*[@id="latest-builds"]/div[1]//div[@class="build-state"]', + ) + build_state = last_build_state.get_attribute( + 'data-build-state') + state_text = state.lower().split() + if any(x in str(build_state).lower() for x in state_text): + break + except NoSuchElementException: + continue + start_time += 1 + sleep(1) # take a breath and try again + + def _mixin_test_table_search_input(self, **kwargs): + input_selector, input_text, searchBtn_selector, table_selector, *_ = kwargs.values() + # Test search input + self.wait_until_visible(f'#{input_selector}') + recipe_input = self.find(f'#{input_selector}') + recipe_input.send_keys(input_text) + self.find(f'#{searchBtn_selector}').click() + self.wait_until_visible(f'#{table_selector} tbody tr') + rows = self.find_all(f'#{table_selector} tbody tr') + self.assertTrue(len(rows) > 0) + + def test_image_recipe_editColumn(self): + """ Test the edit column feature in image recipe table on project page """ + self._get_create_builds(success=10, failure=10) + + url = reverse('projectimagerecipes', args=(1,)) + self.get(url) + self.wait_until_present('#imagerecipestable tbody tr') + + column_list = [ + 'get_description_or_summary', 'layer_version__get_vcs_reference', + 'layer_version__layer__name', 'license', 'recipe-file', 'section', + 'version' + ] + + # Check that we can hide the edit column + self._mixin_test_table_edit_column( + 'imagerecipestable', + 'edit-columns-button', + [f'checkbox-{column}' for column in column_list] + ) + def test_page_header_on_project_page(self): """ Check page header in project page: - AT LEFT -> Logo of Yocto project, displayed, clickable @@ -184,11 +395,9 @@ class TestProjectPage(SeleniumFunctionalTestCase): self.wait_until_visible('#topbar-configuration-tab') config_tab = self.find('#topbar-configuration-tab') self.assertTrue(config_tab.get_attribute('class') == 'active') - self.assertTrue('Configuration' in config_tab.text) - config_tab_link = config_tab.find_element(By.TAG_NAME, 'a') + self.assertTrue('Configuration' in str(config_tab.text)) self.assertTrue( - f"/toastergui/project/1" in str(config_tab_link.get_attribute( - 'href')) + f"/toastergui/project/1" in str(self.driver.current_url) ) def get_tabs(): @@ -245,3 +454,337 @@ class TestProjectPage(SeleniumFunctionalTestCase): self.assertTrue( 'core-image-minimal' in str(last_build.text) ) + + def test_softwareRecipe_page(self): + """ Test software recipe page + - Check title "Compatible software recipes" is displayed + - Check search input + - Check "build recipe" button works + - Check software recipe table feature(show/hide column, pagination) + """ + self._navigate_to_config_nav('softwarerecipestable', 4) + # check title "Compatible software recipes" is displayed + self.assertTrue("Compatible software recipes" in self.get_page_source()) + # Test search input + self._mixin_test_table_search_input( + input_selector='search-input-softwarerecipestable', + input_text='busybox', + searchBtn_selector='search-submit-softwarerecipestable', + table_selector='softwarerecipestable' + ) + # check "build recipe" button works + rows = self.find_all('#softwarerecipestable tbody tr') + image_to_build = rows[0] + build_btn = image_to_build.find_element( + By.XPATH, + '//td[@class="add-del-layers"]//a[1]' + ) + build_btn.click() + self._wait_until_build('parsing starting cloning queued') + lastest_builds = self.driver.find_elements( + By.XPATH, + '//div[@id="latest-builds"]/div' + ) + self.assertTrue(len(lastest_builds) > 0) + + # check software recipe table feature(show/hide column, pagination) + self._navigate_to_config_nav('softwarerecipestable', 4) + column_list = [ + 'get_description_or_summary', + 'layer_version__get_vcs_reference', + 'layer_version__layer__name', + 'license', + 'recipe-file', + 'section', + 'version', + ] + self._mixin_test_table_edit_column( + 'softwarerecipestable', + 'edit-columns-button', + [f'checkbox-{column}' for column in column_list] + ) + self._navigate_to_config_nav('softwarerecipestable', 4) + # check show rows(pagination) + self._mixin_test_table_show_rows(table_selector='softwarerecipestable') + + def test_machines_page(self): + """ Test Machine page + - Check if title "Compatible machines" is displayed + - Check search input + - Check "Select machine" button works + - Check "Add layer" button works + - Check Machine table feature(show/hide column, pagination) + """ + self._navigate_to_config_nav('machinestable', 5) + # check title "Compatible software recipes" is displayed + self.assertTrue("Compatible machines" in self.get_page_source()) + # Test search input + self._mixin_test_table_search_input( + input_selector='search-input-machinestable', + input_text='qemux86-64', + searchBtn_selector='search-submit-machinestable', + table_selector='machinestable' + ) + # check "Select machine" button works + rows = self.find_all('#machinestable tbody tr') + machine_to_select = rows[0] + select_btn = machine_to_select.find_element( + By.XPATH, + '//td[@class="add-del-layers"]//a[1]' + ) + select_btn.send_keys(Keys.RETURN) + self.wait_until_visible('#config-nav') + project_machine_name = self.find('#project-machine-name') + self.assertTrue( + 'qemux86-64' in project_machine_name.text + ) + # check "Add layer" button works + self._navigate_to_config_nav('machinestable', 5) + # Search for a machine whit layer not in project + self._mixin_test_table_search_input( + input_selector='search-input-machinestable', + input_text='qemux86-64-tpm2', + searchBtn_selector='search-submit-machinestable', + table_selector='machinestable' + ) + rows = self.find_all('#machinestable tbody tr') + machine_to_add = rows[0] + add_btn = machine_to_add.find_element(By.XPATH, '//td[@class="add-del-layers"]') + add_btn.click() + self.wait_until_visible('#change-notification') + change_notification = self.find('#change-notification') + self.assertTrue( + f'You have added 1 layer to your project' in str(change_notification.text) + ) + # check Machine table feature(show/hide column, pagination) + self._navigate_to_config_nav('machinestable', 5) + column_list = [ + 'description', + 'layer_version__get_vcs_reference', + 'layer_version__layer__name', + 'machinefile', + ] + self._mixin_test_table_edit_column( + 'machinestable', + 'edit-columns-button', + [f'checkbox-{column}' for column in column_list] + ) + self._navigate_to_config_nav('machinestable', 5) + # check show rows(pagination) + self._mixin_test_table_show_rows(table_selector='machinestable') + + def test_layers_page(self): + """ Test layers page + - Check if title "Compatible layerss" is displayed + - Check search input + - Check "Add layer" button works + - Check "Remove layer" button works + - Check layers table feature(show/hide column, pagination) + """ + self._navigate_to_config_nav('layerstable', 6) + # check title "Compatible layers" is displayed + self.assertTrue("Compatible layers" in self.get_page_source()) + # Test search input + input_text='meta-tanowrt' + self._mixin_test_table_search_input( + input_selector='search-input-layerstable', + input_text=input_text, + searchBtn_selector='search-submit-layerstable', + table_selector='layerstable' + ) + # check "Add layer" button works + rows = self.find_all('#layerstable tbody tr') + layer_to_add = rows[0] + add_btn = layer_to_add.find_element( + By.XPATH, + '//td[@class="add-del-layers"]' + ) + add_btn.click() + # check modal is displayed + self.wait_until_visible('#dependencies-modal', poll=2) + list_dependencies = self.find_all('#dependencies-list li') + # click on add-layers button + add_layers_btn = self.driver.find_element( + By.XPATH, + '//form[@id="dependencies-modal-form"]//button[@class="btn btn-primary"]' + ) + add_layers_btn.click() + self.wait_until_visible('#change-notification') + change_notification = self.find('#change-notification') + self.assertTrue( + f'You have added {len(list_dependencies)+1} layers to your project: {input_text} and its dependencies' in str(change_notification.text) + ) + # check "Remove layer" button works + rows = self.find_all('#layerstable tbody tr') + layer_to_remove = rows[0] + remove_btn = layer_to_remove.find_element( + By.XPATH, + '//td[@class="add-del-layers"]' + ) + remove_btn.click() + self.wait_until_visible('#change-notification', poll=2) + change_notification = self.find('#change-notification') + self.assertTrue( + f'You have removed 1 layer from your project: {input_text}' in str(change_notification.text) + ) + # check layers table feature(show/hide column, pagination) + self._navigate_to_config_nav('layerstable', 6) + column_list = [ + 'dependencies', + 'revision', + 'layer__vcs_url', + 'git_subdir', + 'layer__summary', + ] + self._mixin_test_table_edit_column( + 'layerstable', + 'edit-columns-button', + [f'checkbox-{column}' for column in column_list] + ) + self._navigate_to_config_nav('layerstable', 6) + # check show rows(pagination) + self._mixin_test_table_show_rows(table_selector='layerstable') + + def test_distro_page(self): + """ Test distros page + - Check if title "Compatible distros" is displayed + - Check search input + - Check "Add layer" button works + - Check distro table feature(show/hide column, pagination) + """ + self._navigate_to_config_nav('distrostable', 7) + # check title "Compatible distros" is displayed + self.assertTrue("Compatible Distros" in self.get_page_source()) + # Test search input + input_text='poky-altcfg' + self._mixin_test_table_search_input( + input_selector='search-input-distrostable', + input_text=input_text, + searchBtn_selector='search-submit-distrostable', + table_selector='distrostable' + ) + # check "Add distro" button works + rows = self.find_all('#distrostable tbody tr') + distro_to_add = rows[0] + add_btn = distro_to_add.find_element( + By.XPATH, + '//td[@class="add-del-layers"]//a[1]' + ) + add_btn.click() + self.wait_until_visible('#change-notification', poll=2) + change_notification = self.find('#change-notification') + self.assertTrue( + f'You have changed the distro to: {input_text}' in str(change_notification.text) + ) + # check distro table feature(show/hide column, pagination) + self._navigate_to_config_nav('distrostable', 7) + column_list = [ + 'description', + 'templatefile', + 'layer_version__get_vcs_reference', + 'layer_version__layer__name', + ] + self._mixin_test_table_edit_column( + 'distrostable', + 'edit-columns-button', + [f'checkbox-{column}' for column in column_list] + ) + self._navigate_to_config_nav('distrostable', 7) + # check show rows(pagination) + self._mixin_test_table_show_rows( + table_selector='distrostable', + to_skip=[150] + ) + + def test_single_layer_page(self): + """ Test layer page + - Check if title is displayed + - Check add/remove layer button works + - Check tabs(layers, recipes, machines) are displayed + - Check left section is displayed + - Check layer name + - Check layer summary + - Check layer description + """ + url = reverse("layerdetails", args=(1, 8)) + self.get(url) + self.wait_until_visible('.page-header') + # check title is displayed + self.assertTrue(self.find('.page-header h1').is_displayed()) + + # check add layer button works + remove_layer_btn = self.find('#add-remove-layer-btn') + remove_layer_btn.click() + self.wait_until_visible('#change-notification', poll=2) + change_notification = self.find('#change-notification') + self.assertTrue( + f'You have removed 1 layer from your project' in str(change_notification.text) + ) + # check add layer button works, 18 is the random layer id + add_layer_btn = self.find('#add-remove-layer-btn') + add_layer_btn.click() + self.wait_until_visible('#change-notification') + change_notification = self.find('#change-notification') + self.assertTrue( + f'You have added 1 layer to your project' in str(change_notification.text) + ) + # check tabs(layers, recipes, machines) are displayed + tabs = self.find_all('.nav-tabs li') + self.assertEqual(len(tabs), 3) + # Check first tab + tabs[0].click() + self.assertTrue( + 'active' in str(self.find('#information').get_attribute('class')) + ) + # Check second tab + tabs[1].click() + self.assertTrue( + 'active' in str(self.find('#recipes').get_attribute('class')) + ) + # Check third tab + tabs[2].click() + self.assertTrue( + 'active' in str(self.find('#machines').get_attribute('class')) + ) + # Check left section is displayed + section = self.find('.well') + # Check layer name + self.assertTrue( + section.find_element(By.XPATH, '//h2[1]').is_displayed() + ) + # Check layer summary + self.assertTrue("Summary" in section.text) + # Check layer description + self.assertTrue("Description" in section.text) + + def test_single_recipe_page(self): + """ Test recipe page + - Check if title is displayed + - Check add recipe layer displayed + - Check left section is displayed + - Check recipe: name, summary, description, Version, Section, + License, Approx. packages included, Approx. size, Recipe file + """ + url = reverse("recipedetails", args=(1, 53428)) + self.get(url) + self.wait_until_visible('.page-header') + # check title is displayed + self.assertTrue(self.find('.page-header h1').is_displayed()) + # check add recipe layer displayed + add_recipe_layer_btn = self.find('#add-layer-btn') + self.assertTrue(add_recipe_layer_btn.is_displayed()) + # check left section is displayed + section = self.find('.well') + # Check recipe name + self.assertTrue( + section.find_element(By.XPATH, '//h2[1]').is_displayed() + ) + # Check recipe sections details info are displayed + self.assertTrue("Summary" in section.text) + self.assertTrue("Description" in section.text) + self.assertTrue("Version" in section.text) + self.assertTrue("Section" in section.text) + self.assertTrue("License" in section.text) + self.assertTrue("Approx. packages included" in section.text) + self.assertTrue("Approx. package size" in section.text) + self.assertTrue("Recipe file" in section.text) diff --git a/poky/documentation/contributor-guide/recipe-style-guide.rst b/poky/documentation/contributor-guide/recipe-style-guide.rst index a005aa3247..08d8fb4259 100644 --- a/poky/documentation/contributor-guide/recipe-style-guide.rst +++ b/poky/documentation/contributor-guide/recipe-style-guide.rst @@ -250,6 +250,18 @@ Recipes need to define both the :term:`LICENSE` and correct string that you can substitute into the recipe file for a subsequent build. +License Updates +~~~~~~~~~~~~~~~ + +When you change the :term:`LICENSE` or :term:`LIC_FILES_CHKSUM` in the recipe +you need to briefly explain the reason for the change via a ``License-Update:`` +tag. Often it's quite trivial, such as:: + + License-Update: copyright years refreshed + +Less often, the actual licensing terms themselves will have changed. If so, do +try to link to upstream making/justifying that decision. + Tips and Guidelines for Writing Recipes --------------------------------------- diff --git a/poky/documentation/contributor-guide/submit-changes.rst b/poky/documentation/contributor-guide/submit-changes.rst index 53daaf901a..5a6136c8c8 100644 --- a/poky/documentation/contributor-guide/submit-changes.rst +++ b/poky/documentation/contributor-guide/submit-changes.rst @@ -460,7 +460,7 @@ or any layer other than :oe_git:`openembedded-core </openembedded-core/>`, please add the appropriate prefix so that it is clear which layer the patch is intended to be applied to:: - git send-email --subject-prefix="meta-oe][PATCH" ... + git format-patch --subject-prefix="meta-oe][PATCH" ... .. note:: diff --git a/poky/documentation/dev-manual/layers.rst b/poky/documentation/dev-manual/layers.rst index c65a94b4fa..b3ccf633df 100644 --- a/poky/documentation/dev-manual/layers.rst +++ b/poky/documentation/dev-manual/layers.rst @@ -313,7 +313,7 @@ Logo for your layer and application. The process consists of two parts: successful compatibility registration. #. Completion of an application acceptance form, which you can find at - :yocto_home:`/webform/yocto-project-compatible-registration`. + :yocto_home:`/compatible-registration/`. To be granted permission to use the logo, you need to satisfy the following: @@ -337,7 +337,7 @@ application, you can use the Yocto Project Compatibility Logo with your layer and the application that uses your layer. To access the form, use this link: -:yocto_home:`/webform/yocto-project-compatible-registration`. +:yocto_home:`/compatible-registration`. Follow the instructions on the form to complete your application. The application consists of the following sections: diff --git a/poky/documentation/migration-guides/migration-2.2.rst b/poky/documentation/migration-guides/migration-2.2.rst index 5435835102..3932792c78 100644 --- a/poky/documentation/migration-guides/migration-2.2.rst +++ b/poky/documentation/migration-guides/migration-2.2.rst @@ -29,7 +29,7 @@ Staging Directories in Sysroot Has Been Simplified The way directories are staged in sysroot has been simplified and introduces the new :term:`SYSROOT_DIRS`, :term:`SYSROOT_DIRS_NATIVE`, and ``SYSROOT_DIRS_BLACKLIST`` -(replaced by :term:`SYSROOT_DIRS_IGNORE` in version 3.5). See the +(replaced by :term:`SYSROOT_DIRS_IGNORE` in version 4.0). See the :oe_lists:`v2 patch series on the OE-Core Mailing List </pipermail/openembedded-core/2016-May/121365.html>` for additional information. diff --git a/poky/documentation/migration-guides/migration-3.0.rst b/poky/documentation/migration-guides/migration-3.0.rst index 8e7a58e74d..67fcac41f7 100644 --- a/poky/documentation/migration-guides/migration-3.0.rst +++ b/poky/documentation/migration-guides/migration-3.0.rst @@ -150,7 +150,7 @@ XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, and makes other improvements. Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced -by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 3.5). +by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 4.0). .. _migration-3.0-bitbake-changes: diff --git a/poky/documentation/migration-guides/migration-3.4.rst b/poky/documentation/migration-guides/migration-3.4.rst index f50fe5ee04..a9b1057206 100644 --- a/poky/documentation/migration-guides/migration-3.4.rst +++ b/poky/documentation/migration-guides/migration-3.4.rst @@ -255,7 +255,7 @@ Miscellaneous - The previously deprecated ``COMPRESS_CMD`` and ``CVE_CHECK_CVE_WHITELIST`` variables have been removed. Use :term:`CONVERSION_CMD` and ``CVE_CHECK_WHITELIST`` (replaced by - :term:`CVE_CHECK_IGNORE` in version 3.5) respectively + :term:`CVE_CHECK_IGNORE` in version 4.0) respectively instead. - The obsolete ``oe_machinstall`` function previously provided in the diff --git a/poky/documentation/migration-guides/release-4.3.rst b/poky/documentation/migration-guides/release-4.3.rst index 92516ae8f5..5b651a2efd 100644 --- a/poky/documentation/migration-guides/release-4.3.rst +++ b/poky/documentation/migration-guides/release-4.3.rst @@ -7,3 +7,4 @@ Release 4.3 (nanbield) migration-4.3 release-notes-4.3 + release-notes-4.3.1 diff --git a/poky/documentation/migration-guides/release-notes-4.3.1.rst b/poky/documentation/migration-guides/release-notes-4.3.1.rst new file mode 100644 index 0000000000..377cdb43f4 --- /dev/null +++ b/poky/documentation/migration-guides/release-notes-4.3.1.rst @@ -0,0 +1,237 @@ +.. SPDX-License-Identifier: CC-BY-SA-2.0-UK + +Release notes for Yocto-4.3.1 (Nanbield) +---------------------------------------- + +Security Fixes in Yocto-4.3.1 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- libsndfile1: Fix :cve:`2022-33065` +- libxml2: Ignore :cve:`2023-45322` +- linux-yocto/6.1: Ignore :cve:`2020-27418`, :cve:`2023-31085`, :cve_mitre:`2023-34324`, :cve:`2023-39189`, :cve:`2023-39192`, :cve:`2023-39193`, :cve:`2023-39194`, :cve:`2023-4244`, :cve:`2023-42754`, :cve:`2023-42756`, :cve:`2023-44466`, :cve:`2023-4563`, :cve:`2023-45862`, :cve:`2023-45863`, :cve:`2023-45871`, :cve:`2023-45898`, :cve:`2023-4732`, :cve:`2023-5158`, :cve:`2023-5197` and :cve:`2023-5345` +- linux-yocto/6.5: Ignore :cve:`2020-27418`, :cve:`2023-1193`, :cve:`2023-39191`, :cve:`2023-39194`, :cve:`2023-40791`, :cve:`2023-44466`, :cve:`2023-45862`, :cve:`2023-45863`, :cve:`2023-4610` and :cve:`2023-4732` +- openssl: Fix :cve:`2023-5363` +- pixman: Ignore :cve:`2023-37769` +- vim: Fix :cve:`2023-46246` +- zlib: Ignore :cve:`2023-45853` + + +Fixes in Yocto-4.3.1 +~~~~~~~~~~~~~~~~~~~~ + +- Remove references to apm in :term:`MACHINE_FEATURES` +- baremetal-helloworld: Pull in fix for race condition on x86-64 +- base: Ensure recipes using mercurial-native have certificates +- bb-matrix-plot.sh: Show underscores correctly in labels +- bin_package.bbclass: revert "Inhibit the default dependencies" +- bitbake: SECURITY.md: add file +- brief-yoctoprojectqs: use new CDN mirror for sstate +- bsp-guide: bsp.rst: update beaglebone example +- bsp-guide: bsp: skip Intel machines no longer supported in Poky +- build-appliance-image: Update to nanbield head revision +- contributor-guide: add patchtest section +- contributor-guide: clarify patchtest usage +- cve-check: don't warn if a patch is remote +- cve-check: slightly more verbose warning when adding the same package twice +- cve-check: sort the package list in the JSON report +- dev-manual: add security team processes +- dev-manual: extend the description of CVE patch preparation +- dev-manual: layers: Add notes about layer.conf +- dev-manual: new-recipe.rst: add missing parenthesis to "Patching Code" section +- dev-manual: start.rst: remove obsolete reference +- dev-manual: wic: update "wic list images" output +- docs: add support for nanbield (4.3) release +- documentation.conf: drop SERIAL_CONSOLES_CHECK +- ell: Upgrade to 0.59 +- glib-2.0: Remove unnecessary assignement +- goarch: Move Go architecture mapping to a library +- kernel-arch: drop CCACHE from :term:`KERNEL_STRIP` definition +- kernel.bbclass: Use strip utility used for kernel build in do_package +- layer.conf: Switch layer to nanbield series only +- libsdl2: upgrade to 2.28.4 +- linux-yocto: make sure the pahole-native available before do_kernel_configme +- llvm: Upgrade to 17.0.3 +- machine: drop obsolete SERIAL_CONSOLES_CHECK +- manuals: correct "yocto-linux" by "linux-yocto" +- manuals: improve description of :term:`CVE_STATUS` and :term:`CVE_STATUS_GROUPS` +- manuals: update linux-yocto append examples +- manuals: update list of supported machines +- migration-4.3: additional migration items +- migration-4.3: adjustments to existing text +- migration-4.3: remove some unnecessary items +- migration-guides: QEMU_USE_SLIRP variable removed +- migration-guides: add BitBake changes +- migration-guides: add debian 12 to newly supported distros +- migration-guides: add kernel notes +- migration-guides: add testing notes +- migration-guides: add utility notes +- migration-guides: edgerouter machine removed +- migration-guides: enabling :term:`SPDX` only for Poky, not a global default +- migration-guides: fix empty sections +- migration-guides: further updates for 4.3 +- migration-guides: further updates for release 4.3 +- migration-guides: git recipes reword +- migration-guides: mention CDN +- migration-guides: mention LLVM 17 +- migration-guides: mention runqemu change in serial port management +- migration-guides: packaging changes +- migration-guides: remove SERIAL_CONSOLES_CHECK +- migration-guides: remove non-notable change +- migration-guides: updates for 4.3 +- oeqa/selftest/debuginfod: improve selftest +- oeqa/selftest/devtool: abort if a local workspace already exist +- oeqa/ssh: Handle SSHCall timeout error code +- openssl: Upgrade to 3.1.4 +- overview-manual: concepts: Add Bitbake Tasks Map +- patchtest-send-results: add In-Reply-To +- patchtest-send-results: check max line length, simplify responses +- patchtest-send-results: fix sender parsing +- patchtest-send-results: improve subject line +- patchtest-send-results: send results to submitter +- patchtest/selftest: add XSKIP, update test files +- patchtest: disable merge test +- patchtest: fix lic_files_chksum test regex +- patchtest: make pylint tests compatible with 3.x +- patchtest: reduce checksum test output length +- patchtest: remove test for CVE tag in mbox +- patchtest: remove unused imports +- patchtest: rework license checksum tests +- patchtest: shorten test result outputs +- patchtest: simplify test directory structure +- patchtest: skip merge test if not targeting master +- patchtest: test regardless of mergeability +- perl: fix intermittent test failure +- poky.conf: bump version for 4.3.1 release +- profile-manual: aesthetic cleanups +- ref-manual: Add documentation for the unimplemented-ptest QA warning +- ref-manual: Fix :term:`PACKAGECONFIG` term and add an example +- ref-manual: Warn about :term:`COMPATIBLE_MACHINE` skipping native recipes +- ref-manual: add systemd-resolved to distro features +- ref-manual: classes: explain cml1 class name +- ref-manual: document :term:`KERNEL_LOCALVERSION` +- ref-manual: document :term:`KERNEL_STRIP` +- ref-manual: document :term:`MESON_TARGET` +- ref-manual: document cargo_c class +- ref-manual: remove semicolons from ``*PROCESS_COMMAND`` variables +- ref-manual: update :term:`SDK_NAME` variable documentation +- ref-manual: variables: add :term:`RECIPE_MAINTAINER` +- ref-manual: variables: add :term:`RECIPE_SYSROOT` and :term:`RECIPE_SYSROOT_NATIVE` +- ref-manual: variables: add :term:`TOOLCHAIN_OPTIONS` variable +- ref-manual: variables: add example for :term:`SYSROOT_DIRS` variable +- ref-manual: variables: document :term:`OEQA_REPRODUCIBLE_TEST_PACKAGE` +- ref-manual: variables: mention new CDN for :term:`SSTATE_MIRRORS` +- ref-manual: variables: provide no-match example for :term:`COMPATIBLE_MACHINE` +- ref-manual: variables: remove SERIAL_CONSOLES_CHECK +- release-notes-4.3: add CVEs, recipe upgrades, license changes, contributors +- release-notes-4.3: add Repositories / Downloads section +- release-notes-4.3: feature additions +- release-notes-4.3: fix some typos +- release-notes-4.3: move new classes to Rust section +- release-notes-4.3: remove the Distribution section +- release-notes-4.3: tweaks to existing text +- sdk-manual: appendix-obtain: improve and update descriptions +- test-manual: reproducible-builds: stop mentioning LTO bug +- vim: Improve locale handling +- vim: Upgrade to 9.0.2068 +- vim: use upstream generated .po files + + +Known Issues in Yocto-4.3.1 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- N/A + + +Contributors to Yocto-4.3.1 +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Alejandro Hernandez Samaniego +- Alex Stewart +- Archana Polampalli +- Arne Schwerdt +- BELHADJ SALEM Talel +- Dmitry Baryshkov +- Eero Aaltonen +- Joshua Watt +- Julien Stephan +- Jérémy Rosen +- Khem Raj +- Lee Chee Yang +- Marta Rybczynska +- Max Krummenacher +- Michael Halstead +- Michael Opdenacker +- Paul Eggleton +- Peter Kjellerstedt +- Peter Marko +- Quentin Schulz +- Richard Purdie +- Robert P. J. Day +- Ross Burton +- Rouven Czerwinski +- Steve Sakoman +- Trevor Gamblin +- Wang Mingyu +- William Lyu +- Xiangyu Chen +- luca fancellu + + +Repositories / Downloads for Yocto-4.3.1 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +poky + +- Repository Location: :yocto_git:`/poky` +- Branch: :yocto_git:`nanbield </poky/log/?h=nanbield>` +- Tag: :yocto_git:`yocto-4.3.1 </poky/log/?h=yocto-4.3.1>` +- Git Revision: :yocto_git:`bf9f2f6f60387b3a7cd570919cef6c4570edcb82 </poky/commit/?id=bf9f2f6f60387b3a7cd570919cef6c4570edcb82>` +- Release Artefact: poky-bf9f2f6f60387b3a7cd570919cef6c4570edcb82 +- sha: 9b4351159d728fec2b63a50f1ac15edc412e2d726e9180a40afc06051fadb922 +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/poky-bf9f2f6f60387b3a7cd570919cef6c4570edcb82.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/poky-bf9f2f6f60387b3a7cd570919cef6c4570edcb82.tar.bz2 + +openembedded-core + +- Repository Location: :oe_git:`/openembedded-core` +- Branch: :oe_git:`nanbield </openembedded-core/log/?h=nanbield>` +- Tag: :oe_git:`yocto-4.3.1 </openembedded-core/log/?h=yocto-4.3.1>` +- Git Revision: :oe_git:`cce77e8e79c860f4ef0ac4a86b9375bf87507360 </openembedded-core/commit/?id=cce77e8e79c860f4ef0ac4a86b9375bf87507360>` +- Release Artefact: oecore-cce77e8e79c860f4ef0ac4a86b9375bf87507360 +- sha: e6cde08e7c549f57a67d833a36cdb942648fba81558dc8b0e65332d2a2c023cc +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/oecore-cce77e8e79c860f4ef0ac4a86b9375bf87507360.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/oecore-cce77e8e79c860f4ef0ac4a86b9375bf87507360.tar.bz2 + +meta-mingw + +- Repository Location: :yocto_git:`/meta-mingw` +- Branch: :yocto_git:`nanbield </meta-mingw/log/?h=nanbield>` +- Tag: :yocto_git:`yocto-4.3.1 </meta-mingw/log/?h=yocto-4.3.1>` +- Git Revision: :yocto_git:`49617a253e09baabbf0355bc736122e9549c8ab2 </meta-mingw/commit/?id=49617a253e09baabbf0355bc736122e9549c8ab2>` +- Release Artefact: meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2 +- sha: 2225115b73589cdbf1e491115221035c6a61679a92a93b2a3cf761ff87bf4ecc +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2.tar.bz2 + +bitbake + +- Repository Location: :oe_git:`/bitbake` +- Branch: :oe_git:`2.6 </bitbake/log/?h=2.6>` +- Tag: :oe_git:`yocto-4.3.1 </bitbake/log/?h=yocto-4.3.1>` +- Git Revision: :oe_git:`936fcec41efacc4ce988c81882a9ae6403702bea </bitbake/commit/?id=936fcec41efacc4ce988c81882a9ae6403702bea>` +- Release Artefact: bitbake-936fcec41efacc4ce988c81882a9ae6403702bea +- sha: efbdd5fe7f29227a3fd26d6a08a368bf8215083a588b4d23f3adf35044897520 +- Download Locations: + http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/bitbake-936fcec41efacc4ce988c81882a9ae6403702bea.tar.bz2 + http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/bitbake-936fcec41efacc4ce988c81882a9ae6403702bea.tar.bz2 + +yocto-docs + +- Repository Location: :yocto_git:`/yocto-docs` +- Branch: :yocto_git:`nanbield </yocto-docs/log/?h=nanbield>` +- Tag: :yocto_git:`yocto-4.3.1 </yocto-docs/log/?h=yocto-4.3.1>` +- Git Revision: :yocto_git:`6b98a6164263298648e89b5a5ae1260a58f1bb35 </yocto-docs/commit/?id=6b98a6164263298648e89b5a5ae1260a58f1bb35>` + diff --git a/poky/meta/classes-recipe/cmake-qemu.bbclass b/poky/meta/classes-recipe/cmake-qemu.bbclass new file mode 100644 index 0000000000..76b748f340 --- /dev/null +++ b/poky/meta/classes-recipe/cmake-qemu.bbclass @@ -0,0 +1,28 @@ +# +# Copyright OpenEmbedded Contributors +# +# SPDX-License-Identifier: MIT +# +# Not all platforms are supported by Qemu. Using qemu-user therefore +# involves a certain risk, which is also the reason why this feature +# is not activated by default. + +inherit qemu + +CMAKE_EXEWRAPPER_ENABLED:class-native = "False" +CMAKE_EXEWRAPPER_ENABLED:class-nativesdk = "False" +CMAKE_EXEWRAPPER_ENABLED ?= "${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d)}" +DEPENDS:append = "${@' qemu-native' if d.getVar('CMAKE_EXEWRAPPER_ENABLED') == 'True' else ''}" + +cmake_do_generate_toolchain_file:append:class-target() { + if [ "${CMAKE_EXEWRAPPER_ENABLED}" = "True" ]; then + # Write out a qemu wrapper that will be used as exe_wrapper so that camake + # can run target helper binaries through that. This also allows to execute ctest. + qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}" + echo "#!/bin/sh" > "${WORKDIR}/cmake-qemuwrapper" + echo "$qemu_binary \"\$@\"" >> "${WORKDIR}/cmake-qemuwrapper" + chmod +x "${WORKDIR}/cmake-qemuwrapper" + echo "set( CMAKE_CROSSCOMPILING_EMULATOR ${WORKDIR}/cmake-qemuwrapper)" \ + >> ${WORKDIR}/toolchain.cmake + fi +} diff --git a/poky/meta/classes-recipe/rust-common.bbclass b/poky/meta/classes-recipe/rust-common.bbclass index 3d73a370ec..ae96d9c5b1 100644 --- a/poky/meta/classes-recipe/rust-common.bbclass +++ b/poky/meta/classes-recipe/rust-common.bbclass @@ -63,6 +63,8 @@ def rust_base_triple(d, thing): # This catches ARM targets and appends the necessary hard float bits if os == "linux-gnueabi" or os == "linux-musleabi": libc = bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hf', '', d) + elif os == "linux-gnux32" or os == "linux-muslx32": + libc = "" elif "musl" in os: libc = "-musl" os = "linux" diff --git a/poky/meta/classes/devtool-source.bbclass b/poky/meta/classes/devtool-source.bbclass index a02b1e9b0e..4158c20c7e 100644 --- a/poky/meta/classes/devtool-source.bbclass +++ b/poky/meta/classes/devtool-source.bbclass @@ -232,6 +232,9 @@ python devtool_post_patch() { bb.process.run('git rebase devtool-no-overrides', cwd=srcsubdir) bb.process.run('git checkout %s' % devbranch, cwd=srcsubdir) bb.process.run('git tag -f devtool-patched', cwd=srcsubdir) + if os.path.exists(os.path.join(srcsubdir, '.gitmodules')): + bb.process.run('git submodule foreach --recursive "git tag -f devtool-patched"', cwd=srcsubdir) + } python devtool_post_configure() { diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index 983987cf7e..e7826e7af9 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -543,6 +543,9 @@ HOSTTOOLS_NONFATAL += "scp" # Used by Mercurial fetcher HOSTTOOLS_NONFATAL += "hg" +# Used by gcp fetcher +HOSTTOOLS_NONFATAL += "gsutil" + # Link to git-lfs if present HOSTTOOLS_NONFATAL += "git-lfs" diff --git a/poky/meta/conf/documentation.conf b/poky/meta/conf/documentation.conf index d03c497c0e..486c62b6e8 100644 --- a/poky/meta/conf/documentation.conf +++ b/poky/meta/conf/documentation.conf @@ -28,7 +28,7 @@ do_kernel_configcheck[doc] = "Validates the kernel configuration for a linux-yoc do_kernel_configme[doc] = "Assembles the kernel configuration for a linux-yocto style kernel" do_kernel_link_images[doc] = "Creates a symbolic link in arch/$arch/boot for vmlinux and vmlinuz kernel images" do_listtasks[doc] = "Lists all defined tasks for a target" -do_menuconfig[doc] = "Runs 'make menuconfig' for the kernel" +do_menuconfig[doc] = "Runs 'make menuconfig' in the compilation directory" do_package[doc] = "Analyzes the content of the holding area and splits it into subsets based on available packages and files" do_package_index[doc] = "Creates or updates the index in the Package Feed area" do_package_qa[doc] = "Runs QA checks on packaged files" diff --git a/poky/meta/lib/oe/patch.py b/poky/meta/lib/oe/patch.py index 9b480b2b28..e4bb5a7839 100644 --- a/poky/meta/lib/oe/patch.py +++ b/poky/meta/lib/oe/patch.py @@ -461,41 +461,43 @@ class GitApplyTree(PatchTree): return (tmpfile, cmd) @staticmethod - def extractPatches(tree, startcommit, outdir, paths=None): + def extractPatches(tree, startcommits, outdir, paths=None): import tempfile import shutil tempdir = tempfile.mkdtemp(prefix='oepatch') try: - shellcmd = ["git", "format-patch", "--no-signature", "--no-numbered", startcommit, "-o", tempdir] - if paths: - shellcmd.append('--') - shellcmd.extend(paths) - out = runcmd(["sh", "-c", " ".join(shellcmd)], tree) - if out: - for srcfile in out.split(): - for encoding in ['utf-8', 'latin-1']: - patchlines = [] - outfile = None - try: - with open(srcfile, 'r', encoding=encoding) as f: - for line in f: - if line.startswith(GitApplyTree.patch_line_prefix): - outfile = line.split()[-1].strip() - continue - if line.startswith(GitApplyTree.ignore_commit_prefix): - continue - patchlines.append(line) - except UnicodeDecodeError: - continue - break - else: - raise PatchError('Unable to find a character encoding to decode %s' % srcfile) - - if not outfile: - outfile = os.path.basename(srcfile) - with open(os.path.join(outdir, outfile), 'w') as of: - for line in patchlines: - of.write(line) + for name, rev in startcommits.items(): + shellcmd = ["git", "format-patch", "--no-signature", "--no-numbered", rev, "-o", tempdir] + if paths: + shellcmd.append('--') + shellcmd.extend(paths) + out = runcmd(["sh", "-c", " ".join(shellcmd)], os.path.join(tree, name)) + if out: + for srcfile in out.split(): + for encoding in ['utf-8', 'latin-1']: + patchlines = [] + outfile = None + try: + with open(srcfile, 'r', encoding=encoding) as f: + for line in f: + if line.startswith(GitApplyTree.patch_line_prefix): + outfile = line.split()[-1].strip() + continue + if line.startswith(GitApplyTree.ignore_commit_prefix): + continue + patchlines.append(line) + except UnicodeDecodeError: + continue + break + else: + raise PatchError('Unable to find a character encoding to decode %s' % srcfile) + + if not outfile: + outfile = os.path.basename(srcfile) + bb.utils.mkdirhier(os.path.join(outdir, name)) + with open(os.path.join(outdir, name, outfile), 'w') as of: + for line in patchlines: + of.write(line) finally: shutil.rmtree(tempdir) diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py index 3336db8ab0..25b159bc1b 100644 --- a/poky/meta/lib/oe/recipeutils.py +++ b/poky/meta/lib/oe/recipeutils.py @@ -672,11 +672,11 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, destlayerdir: base directory of the layer to place the bbappend in (subdirectory path from there will be determined automatically) srcfiles: dict of source files to add to SRC_URI, where the value - is the full path to the file to be added, and the value is the - original filename as it would appear in SRC_URI or None if it - isn't already present. You may pass None for this parameter if - you simply want to specify your own content via the extralines - parameter. + is the full path to the file to be added, and the value is a + dict with 'path' key containing the original filename as it + would appear in SRC_URI or None if it isn't already present. + You may pass None for this parameter if you simply want to specify + your own content via the extralines parameter. install: dict mapping entries in srcfiles to a tuple of two elements: install path (*without* ${D} prefix) and permission value (as a string, e.g. '0644'). @@ -763,10 +763,9 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, copyfiles = {} if srcfiles: instfunclines = [] - for i, (newfile, origsrcfile) in enumerate(srcfiles.items()): - srcfile = origsrcfile + for i, (newfile, param) in enumerate(srcfiles.items()): srcurientry = None - if not srcfile: + if not 'path' in param or not param['path']: srcfile = os.path.basename(newfile) srcurientry = 'file://%s' % srcfile if params and params[i]: @@ -778,7 +777,10 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, appendline('SRC_URI:append%s' % appendoverride, '=', ' ' + srcurientry) else: appendline('SRC_URI', '+=', srcurientry) - copyfiles[newfile] = srcfile + param['path'] = srcfile + else: + srcfile = param['path'] + copyfiles[newfile] = param if install: institem = install.pop(newfile, None) if institem: @@ -901,7 +903,12 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, outdir = redirect_output else: outdir = appenddir - for newfile, srcfile in copyfiles.items(): + for newfile, param in copyfiles.items(): + srcfile = param['path'] + patchdir = param.get('patchdir', ".") + + if patchdir != ".": + newfile = os.path.join(os.path.split(newfile)[0], patchdir, os.path.split(newfile)[1]) filedest = os.path.join(outdir, destsubdir, os.path.basename(srcfile)) if os.path.abspath(newfile) != os.path.abspath(filedest): if newfile.startswith(tempfile.gettempdir()): @@ -1035,7 +1042,7 @@ def get_recipe_upstream_version(rd): revision = ud.method.latest_revision(ud, rd, 'default') upversion = pv if revision != rd.getVar("SRCREV"): - upversion = upversion + "-new-commits-available" + upversion = upversion + "-new-commits-available" else: pupver = ud.method.latest_versionstring(ud, rd) (upversion, revision) = pupver diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py index ab58971fec..2a11886e4b 100644 --- a/poky/meta/lib/oeqa/selftest/cases/devtool.py +++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py @@ -1598,6 +1598,53 @@ class DevtoolUpdateTests(DevtoolBase): # Try building bitbake('%s -c patch' % testrecipe) + def test_devtool_git_submodules(self): + # This tests if we can add a patch in a git submodule and extract it properly using devtool finish + # Check preconditions + self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') + self.track_for_cleanup(self.workspacedir) + recipe = 'vulkan-samples' + src_uri = get_bb_var('SRC_URI', recipe) + self.assertIn('gitsm://', src_uri, 'This test expects the %s recipe to be a git recipe with submodules' % recipe) + oldrecipefile = get_bb_var('FILE', recipe) + recipedir = os.path.dirname(oldrecipefile) + result = runCmd('git status --porcelain .', cwd=recipedir) + if result.output.strip(): + self.fail('Recipe directory for %s contains uncommitted changes' % recipe) + self.assertIn('/meta/', recipedir) + tempdir = tempfile.mkdtemp(prefix='devtoolqa') + self.track_for_cleanup(tempdir) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') + result = runCmd('devtool modify %s %s' % (recipe, tempdir)) + self.assertExists(os.path.join(tempdir, 'CMakeLists.txt'), 'Extracted source could not be found') + # Test devtool status + result = runCmd('devtool status') + self.assertIn(recipe, result.output) + self.assertIn(tempdir, result.output) + # Modify a source file in a submodule, (grab the first one) + result = runCmd('git submodule --quiet foreach \'echo $sm_path\'', cwd=tempdir) + submodule = result.output.splitlines()[0] + submodule_path = os.path.join(tempdir, submodule) + runCmd('echo "#This is a first comment" >> testfile', cwd=submodule_path) + result = runCmd('git status --porcelain . ', cwd=submodule_path) + self.assertIn("testfile", result.output) + runCmd('git add testfile; git commit -m "Adding a new file"', cwd=submodule_path) + + # Try finish to the original layer + self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % (recipedir, os.path.dirname(recipedir), recipedir)) + runCmd('devtool finish -f %s meta' % recipe) + result = runCmd('devtool status') + self.assertNotIn(recipe, result.output, 'Recipe should have been reset by finish but wasn\'t') + self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish') + expected_status = [(' M', '.*/%s$' % os.path.basename(oldrecipefile)), + ('??', '.*/.*-Adding-a-new-file.patch$')] + self._check_repo_status(recipedir, expected_status) + # Make sure the patch is added to the recipe with the correct "patchdir" option + result = runCmd('git diff .', cwd=recipedir) + addlines = [ + 'file://0001-Adding-a-new-file.patch;patchdir=%s \\\\' % submodule + ] + self._check_diff(result.output, addlines, []) class DevtoolExtractTests(DevtoolBase): diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py index 029b6af331..14ccb0b24d 100644 --- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py @@ -16,7 +16,7 @@ import os import datetime exclude_packages = [ - 'rust', + 'rust-rustdoc', 'rust-dbg' ] diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py index b4866bcb32..4ebcb76cc4 100644 --- a/poky/meta/lib/oeqa/selftest/cases/wic.py +++ b/poky/meta/lib/oeqa/selftest/cases/wic.py @@ -16,6 +16,7 @@ import hashlib from glob import glob from shutil import rmtree, copy from tempfile import NamedTemporaryFile +from tempfile import TemporaryDirectory from oeqa.selftest.case import OESelftestTestCase from oeqa.core.decorator import OETestTag @@ -146,6 +147,73 @@ class CLITests(OESelftestTestCase): self.assertEqual(1, runCmd('wic', ignore_status=True).status) class Wic(WicTestCase): + def test_skip_kernel_install(self): + """Test the functionality of not installing the kernel in the boot directory using the wic plugin""" + # create a temporary file for the WKS content + with NamedTemporaryFile("w", suffix=".wks") as wks: + wks.write( + 'part --source bootimg-efi ' + '--sourceparams="loader=grub-efi,install-kernel-into-boot-dir=false" ' + '--label boot --active\n' + ) + wks.flush() + # create a temporary directory to extract the disk image to + with TemporaryDirectory() as tmpdir: + img = 'core-image-minimal' + # build the image using the WKS file + cmd = "wic create %s -e %s -o %s" % ( + wks.name, img, self.resultdir) + runCmd(cmd) + wksname = os.path.splitext(os.path.basename(wks.name))[0] + out = glob(os.path.join( + self.resultdir, "%s-*.direct" % wksname)) + self.assertEqual(1, len(out)) + sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools') + # extract the content of the disk image to the temporary directory + cmd = "wic cp %s:1 %s -n %s" % (out[0], tmpdir, sysroot) + runCmd(cmd) + # check if the kernel is installed or not + kimgtype = get_bb_var('KERNEL_IMAGETYPE', img) + for file in os.listdir(tmpdir): + if file == kimgtype: + raise AssertionError( + "The kernel image '{}' was found in the partition".format(kimgtype) + ) + + def test_kernel_install(self): + """Test the installation of the kernel to the boot directory in the wic plugin""" + # create a temporary file for the WKS content + with NamedTemporaryFile("w", suffix=".wks") as wks: + wks.write( + 'part --source bootimg-efi ' + '--sourceparams="loader=grub-efi,install-kernel-into-boot-dir=true" ' + '--label boot --active\n' + ) + wks.flush() + # create a temporary directory to extract the disk image to + with TemporaryDirectory() as tmpdir: + img = 'core-image-minimal' + # build the image using the WKS file + cmd = "wic create %s -e %s -o %s" % (wks.name, img, self.resultdir) + runCmd(cmd) + wksname = os.path.splitext(os.path.basename(wks.name))[0] + out = glob(os.path.join(self.resultdir, "%s-*.direct" % wksname)) + self.assertEqual(1, len(out)) + sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools') + # extract the content of the disk image to the temporary directory + cmd = "wic cp %s:1 %s -n %s" % (out[0], tmpdir, sysroot) + runCmd(cmd) + # check if the kernel is installed or not + kimgtype = get_bb_var('KERNEL_IMAGETYPE', img) + found = False + for file in os.listdir(tmpdir): + if file == kimgtype: + found = True + break + self.assertTrue( + found, "The kernel image '{}' was not found in the boot partition".format(kimgtype) + ) + def test_build_image_name(self): """Test wic create wictestdisk --image-name=core-image-minimal""" cmd = "wic create wictestdisk --image-name=core-image-minimal -o %s" % self.resultdir @@ -748,6 +816,30 @@ part /etc --source rootfs --fstype=ext4 --change-directory=etc os.remove(wks_file) + def test_partition_hidden_attributes(self): + """Test --hidden wks option.""" + wks_file = 'temp.wks' + sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools') + try: + with open(wks_file, 'w') as wks: + wks.write(""" +part / --source rootfs --fstype=ext4 +part / --source rootfs --fstype=ext4 --hidden +bootloader --ptable gpt""") + + runCmd("wic create %s -e core-image-minimal -o %s" \ + % (wks_file, self.resultdir)) + wicout = os.path.join(self.resultdir, "*.direct") + + result = runCmd("%s/usr/sbin/sfdisk --part-attrs %s 1" % (sysroot, wicout)) + self.assertEqual('', result.output) + result = runCmd("%s/usr/sbin/sfdisk --part-attrs %s 2" % (sysroot, wicout)) + self.assertEqual('RequiredPartition', result.output) + + finally: + os.remove(wks_file) + + class Wic2(WicTestCase): def test_bmap_short(self): diff --git a/poky/meta/lib/patchtest/tests/test_patch.py b/poky/meta/lib/patchtest/tests/test_patch.py index 65d0f930b0..d7187a0cb1 100644 --- a/poky/meta/lib/patchtest/tests/test_patch.py +++ b/poky/meta/lib/patchtest/tests/test_patch.py @@ -6,6 +6,7 @@ # import base +import os import parse_signed_off_by import parse_upstream_status import pyparsing @@ -87,7 +88,7 @@ class TestPatch(base.Base): if TestPatch.prog.search_string(payload): break else: - self.fail('A patch file has been added without a Signed-off-by tag. Sign off the added patch file (%s)' % newpatch.path) + self.fail('A patch file has been added without a Signed-off-by tag: \'%s\'' % os.path.basename(newpatch.path)) def test_cve_tag_format(self): for commit in TestPatch.commits: diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.19.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.20.bb index 8124c5c591..187685eef5 100644 --- a/poky/meta/recipes-connectivity/bind/bind_9.18.19.bb +++ b/poky/meta/recipes-connectivity/bind/bind_9.18.20.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] = "115e09c05439bebade1d272eda08fa88eb3b60129edef690588c87a4d27612cc" +SRC_URI[sha256sum] = "4b891ebf58d3f2a7ac3dd2682990f528a3448eaa1c992ddc5c141b8587a98ec5" UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" # follow the ESV versions divisible by 2 diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/poky/meta/recipes-connectivity/bluez5/bluez5.inc index e10158a6e5..a23e4e58a6 100644 --- a/poky/meta/recipes-connectivity/bluez5/bluez5.inc +++ b/poky/meta/recipes-connectivity/bluez5/bluez5.inc @@ -55,6 +55,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \ file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \ file://0001-test-gatt-Fix-hung-issue.patch \ file://0004-src-shared-util.c-include-linux-limits.h.patch \ + file://0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch \ " S = "${WORKDIR}/bluez-${PV}" diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch new file mode 100644 index 0000000000..d0884338db --- /dev/null +++ b/poky/meta/recipes-connectivity/bluez5/bluez5/0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch @@ -0,0 +1,313 @@ +From 3a9c637010f8dc1ba3e8382abe01065761d4f5bb Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Tue, 10 Oct 2023 12:38:29 -0700 +Subject: [PATCH 02/40] input: Fix .device_probe failing if SDP record is not + found + +Due to changes introduced by 67a26abe53bf +("profile: Add probe_on_discover flag") profiles may get probed when +their profile UUID are discovered, rather than resolved, which means +the SDP record may not be available. + +Fixes: https://github.com/bluez/bluez/issues/614 + +Upstream-Status: Backport [https://github.com/bluez/bluez/commit/3a9c637010f8dc1ba3e8382abe01065761d4f5bb] +--- + profiles/input/device.c | 182 +++++++++++++++++++--------------------- + 1 file changed, 84 insertions(+), 98 deletions(-) + +diff --git a/profiles/input/device.c b/profiles/input/device.c +index e2ac6ea60..4a50ea992 100644 +--- a/profiles/input/device.c ++++ b/profiles/input/device.c +@@ -60,7 +60,7 @@ struct input_device { + char *path; + bdaddr_t src; + bdaddr_t dst; +- uint32_t handle; ++ const sdp_record_t *rec; + GIOChannel *ctrl_io; + GIOChannel *intr_io; + guint ctrl_watch; +@@ -754,7 +754,8 @@ static void epox_endian_quirk(unsigned char *data, int size) + } + } + +-static int create_hid_dev_name(sdp_record_t *rec, struct hidp_connadd_req *req) ++static int create_hid_dev_name(const sdp_record_t *rec, ++ struct hidp_connadd_req *req) + { + char sdesc[sizeof(req->name) / 2]; + +@@ -776,7 +777,7 @@ static int create_hid_dev_name(sdp_record_t *rec, struct hidp_connadd_req *req) + + /* See HID profile specification v1.0, "7.11.6 HIDDescriptorList" for details + * on the attribute format. */ +-static int extract_hid_desc_data(sdp_record_t *rec, ++static int extract_hid_desc_data(const sdp_record_t *rec, + struct hidp_connadd_req *req) + { + sdp_data_t *d; +@@ -817,36 +818,40 @@ invalid_desc: + return -EINVAL; + } + +-static int extract_hid_record(sdp_record_t *rec, struct hidp_connadd_req *req) ++static int extract_hid_record(struct input_device *idev, ++ struct hidp_connadd_req *req) + { + sdp_data_t *pdlist; + uint8_t attr_val; + int err; + +- err = create_hid_dev_name(rec, req); ++ if (!idev->rec) ++ return -ENOENT; ++ ++ err = create_hid_dev_name(idev->rec, req); + if (err < 0) + DBG("No valid Service Name or Service Description found"); + +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_PARSER_VERSION); ++ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_PARSER_VERSION); + req->parser = pdlist ? pdlist->val.uint16 : 0x0100; + +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_DEVICE_SUBCLASS); ++ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_DEVICE_SUBCLASS); + req->subclass = pdlist ? pdlist->val.uint8 : 0; + +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE); ++ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_COUNTRY_CODE); + req->country = pdlist ? pdlist->val.uint8 : 0; + +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_VIRTUAL_CABLE); ++ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_VIRTUAL_CABLE); + attr_val = pdlist ? pdlist->val.uint8 : 0; + if (attr_val) + req->flags |= (1 << HIDP_VIRTUAL_CABLE_UNPLUG); + +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_BOOT_DEVICE); ++ pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_BOOT_DEVICE); + attr_val = pdlist ? pdlist->val.uint8 : 0; + if (attr_val) + req->flags |= (1 << HIDP_BOOT_PROTOCOL_MODE); + +- err = extract_hid_desc_data(rec, req); ++ err = extract_hid_desc_data(idev->rec, req); + if (err < 0) + return err; + +@@ -1035,11 +1040,6 @@ static gboolean encrypt_notify(GIOChannel *io, GIOCondition condition, + static int hidp_add_connection(struct input_device *idev) + { + struct hidp_connadd_req *req; +- sdp_record_t *rec; +- char src_addr[18], dst_addr[18]; +- char filename[PATH_MAX]; +- GKeyFile *key_file; +- char handle[11], *str; + GError *gerr = NULL; + int err; + +@@ -1049,33 +1049,7 @@ static int hidp_add_connection(struct input_device *idev) + req->flags = 0; + req->idle_to = idle_timeout; + +- ba2str(&idev->src, src_addr); +- ba2str(&idev->dst, dst_addr); +- +- snprintf(filename, PATH_MAX, STORAGEDIR "/%s/cache/%s", src_addr, +- dst_addr); +- sprintf(handle, "0x%8.8X", idev->handle); +- +- key_file = g_key_file_new(); +- if (!g_key_file_load_from_file(key_file, filename, 0, &gerr)) { +- error("Unable to load key file from %s: (%s)", filename, +- gerr->message); +- g_clear_error(&gerr); +- } +- str = g_key_file_get_string(key_file, "ServiceRecords", handle, NULL); +- g_key_file_free(key_file); +- +- if (!str) { +- error("Rejected connection from unknown device %s", dst_addr); +- err = -EPERM; +- goto cleanup; +- } +- +- rec = record_from_string(str); +- g_free(str); +- +- err = extract_hid_record(rec, req); +- sdp_record_free(rec); ++ err = extract_hid_record(idev, req); + if (err < 0) { + error("Could not parse HID SDP record: %s (%d)", strerror(-err), + -err); +@@ -1091,7 +1065,7 @@ static int hidp_add_connection(struct input_device *idev) + + /* Make sure the device is bonded if required */ + if (classic_bonded_only && !input_device_bonded(idev)) { +- error("Rejected connection from !bonded device %s", dst_addr); ++ error("Rejected connection from !bonded device %s", idev->path); + goto cleanup; + } + +@@ -1161,6 +1135,68 @@ static int connection_disconnect(struct input_device *idev, uint32_t flags) + return ioctl_disconnect(idev, flags); + } + ++static bool is_device_sdp_disable(const sdp_record_t *rec) ++{ ++ sdp_data_t *data; ++ ++ data = sdp_data_get(rec, SDP_ATTR_HID_SDP_DISABLE); ++ ++ return data && data->val.uint8; ++} ++ ++static enum reconnect_mode_t hid_reconnection_mode(bool reconnect_initiate, ++ bool normally_connectable) ++{ ++ if (!reconnect_initiate && !normally_connectable) ++ return RECONNECT_NONE; ++ else if (!reconnect_initiate && normally_connectable) ++ return RECONNECT_HOST; ++ else if (reconnect_initiate && !normally_connectable) ++ return RECONNECT_DEVICE; ++ else /* (reconnect_initiate && normally_connectable) */ ++ return RECONNECT_ANY; ++} ++ ++static void extract_hid_props(struct input_device *idev, ++ const sdp_record_t *rec) ++{ ++ /* Extract HID connectability */ ++ bool reconnect_initiate, normally_connectable; ++ sdp_data_t *pdlist; ++ ++ /* HIDNormallyConnectable is optional and assumed FALSE if not ++ * present. ++ */ ++ pdlist = sdp_data_get(rec, SDP_ATTR_HID_RECONNECT_INITIATE); ++ reconnect_initiate = pdlist ? pdlist->val.uint8 : TRUE; ++ ++ pdlist = sdp_data_get(rec, SDP_ATTR_HID_NORMALLY_CONNECTABLE); ++ normally_connectable = pdlist ? pdlist->val.uint8 : FALSE; ++ ++ /* Update local values */ ++ idev->reconnect_mode = ++ hid_reconnection_mode(reconnect_initiate, normally_connectable); ++} ++ ++static void input_device_update_rec(struct input_device *idev) ++{ ++ struct btd_profile *p = btd_service_get_profile(idev->service); ++ const sdp_record_t *rec; ++ ++ rec = btd_device_get_record(idev->device, p->remote_uuid); ++ if (!rec || idev->rec == rec) ++ return; ++ ++ idev->rec = rec; ++ idev->disable_sdp = is_device_sdp_disable(rec); ++ ++ /* Initialize device properties */ ++ extract_hid_props(idev, rec); ++ ++ if (idev->disable_sdp) ++ device_set_refresh_discovery(idev->device, false); ++} ++ + static int input_device_connected(struct input_device *idev) + { + int err; +@@ -1168,6 +1204,9 @@ static int input_device_connected(struct input_device *idev) + if (idev->intr_io == NULL || idev->ctrl_io == NULL) + return -ENOTCONN; + ++ /* Attempt to update SDP record if it had changed */ ++ input_device_update_rec(idev); ++ + err = hidp_add_connection(idev); + if (err < 0) + return err; +@@ -1411,74 +1450,21 @@ int input_device_disconnect(struct btd_service *service) + return 0; + } + +-static bool is_device_sdp_disable(const sdp_record_t *rec) +-{ +- sdp_data_t *data; +- +- data = sdp_data_get(rec, SDP_ATTR_HID_SDP_DISABLE); +- +- return data && data->val.uint8; +-} +- +-static enum reconnect_mode_t hid_reconnection_mode(bool reconnect_initiate, +- bool normally_connectable) +-{ +- if (!reconnect_initiate && !normally_connectable) +- return RECONNECT_NONE; +- else if (!reconnect_initiate && normally_connectable) +- return RECONNECT_HOST; +- else if (reconnect_initiate && !normally_connectable) +- return RECONNECT_DEVICE; +- else /* (reconnect_initiate && normally_connectable) */ +- return RECONNECT_ANY; +-} +- +-static void extract_hid_props(struct input_device *idev, +- const sdp_record_t *rec) +-{ +- /* Extract HID connectability */ +- bool reconnect_initiate, normally_connectable; +- sdp_data_t *pdlist; +- +- /* HIDNormallyConnectable is optional and assumed FALSE +- * if not present. */ +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_RECONNECT_INITIATE); +- reconnect_initiate = pdlist ? pdlist->val.uint8 : TRUE; +- +- pdlist = sdp_data_get(rec, SDP_ATTR_HID_NORMALLY_CONNECTABLE); +- normally_connectable = pdlist ? pdlist->val.uint8 : FALSE; +- +- /* Update local values */ +- idev->reconnect_mode = +- hid_reconnection_mode(reconnect_initiate, normally_connectable); +-} +- + static struct input_device *input_device_new(struct btd_service *service) + { + struct btd_device *device = btd_service_get_device(service); +- struct btd_profile *p = btd_service_get_profile(service); + const char *path = device_get_path(device); +- const sdp_record_t *rec = btd_device_get_record(device, p->remote_uuid); + struct btd_adapter *adapter = device_get_adapter(device); + struct input_device *idev; + +- if (!rec) +- return NULL; +- + idev = g_new0(struct input_device, 1); + bacpy(&idev->src, btd_adapter_get_address(adapter)); + bacpy(&idev->dst, device_get_address(device)); + idev->service = btd_service_ref(service); + idev->device = btd_device_ref(device); + idev->path = g_strdup(path); +- idev->handle = rec->handle; +- idev->disable_sdp = is_device_sdp_disable(rec); +- +- /* Initialize device properties */ +- extract_hid_props(idev, rec); + +- if (idev->disable_sdp) +- device_set_refresh_discovery(device, false); ++ input_device_update_rec(idev); + + return idev; + } +-- +2.42.0 + diff --git a/poky/meta/recipes-connectivity/ofono/ofono_2.1.bb b/poky/meta/recipes-connectivity/ofono/ofono_2.2.bb index 0ecac9e11c..4e60f196ce 100644 --- a/poky/meta/recipes-connectivity/ofono/ofono_2.1.bb +++ b/poky/meta/recipes-connectivity/ofono/ofono_2.2.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] = "92913dcce9a15cac2174daca249457716a0ec036878d22035e83af0e19e79c52" +SRC_URI[sha256sum] = "5e13121c0f885a81ad882db065549ea13477abbcc219f150b38a8d2ac92521de" inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data diff --git a/poky/meta/recipes-connectivity/openssl/openssl/0001-Link-libatomic-on-riscv32.patch b/poky/meta/recipes-connectivity/openssl/openssl/0001-Link-libatomic-on-riscv32.patch deleted file mode 100644 index 2c54d8f685..0000000000 --- a/poky/meta/recipes-connectivity/openssl/openssl/0001-Link-libatomic-on-riscv32.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 73266b8573c71e6720453c4c5a9e6e8fa4daec65 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 21 Oct 2023 13:03:52 -0700 -Subject: [PATCH] Link libatomic on riscv32 - -GCC toolchains on linux are not able to build libcrypto without linking -to libatomic as it does not have all needed atomics implemented as -intrinsics - -Fixes errors like - -| ld: ./libcrypto.so: undefined reference to `__atomic_is_lock_free' - -Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/22460] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - Configurations/10-main.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf -index 46094f59c2..d1a15a1152 100644 ---- a/Configurations/10-main.conf -+++ b/Configurations/10-main.conf -@@ -816,7 +816,7 @@ my %targets = ( - }, - - "linux32-riscv32" => { -- inherit_from => [ "linux-generic32"], -+ inherit_from => [ "linux-latomic" ], - perlasm_scheme => "linux32", - asm_arch => 'riscv32', - }, --- -2.42.0 - diff --git a/poky/meta/recipes-connectivity/openssl/openssl/fix_random_labels.patch b/poky/meta/recipes-connectivity/openssl/openssl/fix_random_labels.patch deleted file mode 100644 index 78dcd81685..0000000000 --- a/poky/meta/recipes-connectivity/openssl/openssl/fix_random_labels.patch +++ /dev/null @@ -1,22 +0,0 @@ -The perl script adds random suffixes to the local function names to ensure -it doesn't clash with other parts of openssl. Set the random number seed -to something predictable so the assembler files are generated consistently -and our own reproducible builds tests pass. - -Upstream-Status: Pending -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> - -Index: openssl-3.1.0/crypto/modes/asm/aes-gcm-avx512.pl -=================================================================== ---- openssl-3.1.0.orig/crypto/modes/asm/aes-gcm-avx512.pl -+++ openssl-3.1.0/crypto/modes/asm/aes-gcm-avx512.pl -@@ -191,6 +191,9 @@ my $CTX_OFFSET_HTable = (16 * 6); - # ;;; Helper functions - # ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -+# Ensure the local labels are reproduicble -+srand(10000); -+ - # ; Generates "random" local labels - sub random_string() { - my @chars = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '_'); diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.1.4.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.2.0.bb index c6c70a1213..ab0562bd73 100644 --- a/poky/meta/recipes-connectivity/openssl/openssl_3.1.4.bb +++ b/poky/meta/recipes-connectivity/openssl/openssl_3.2.0.bb @@ -11,8 +11,6 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ file://run-ptest \ file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ file://0001-Configure-do-not-tweak-mips-cflags.patch \ - file://fix_random_labels.patch \ - file://0001-Link-libatomic-on-riscv32.patch \ file://0001-Added-handshake-history-reporting-when-test-fails.patch \ " @@ -20,7 +18,7 @@ SRC_URI:append:class-nativesdk = " \ file://environment.d-openssl.sh \ " -SRC_URI[sha256sum] = "840af5366ab9b522bde525826be3ef0fb0af81c6a9ebd84caa600fea1731eee3" +SRC_URI[sha256sum] = "14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" inherit lib_package multilib_header multilib_script ptest perlnative manpages MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash" diff --git a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb index 09a0ab7d27..226cb7ee77 100644 --- a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb +++ b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb @@ -15,7 +15,7 @@ SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https;branch=un file://0001-avoid-using-m-option-for-readlink.patch \ " -SRCREV = "859209d573e7aec0e95d812c6b52444591a628d1" +SRCREV = "86047276c80705c51859a19f0c472102e0822f34" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-core/busybox/busybox/musl.cfg b/poky/meta/recipes-core/busybox/busybox/musl.cfg index 6fffc91098..ba63def1ba 100644 --- a/poky/meta/recipes-core/busybox/busybox/musl.cfg +++ b/poky/meta/recipes-core/busybox/busybox/musl.cfg @@ -7,5 +7,4 @@ # CONFIG_FEATURE_INETD_RPC is not set # CONFIG_SELINUXENABLED is not set # CONFIG_FEATURE_MOUNT_NFS is not set -# CONFIG_FEATURE_UTMP is not set diff --git a/poky/meta/recipes-core/ell/ell_0.59.bb b/poky/meta/recipes-core/ell/ell_0.60.bb index 0483dbe582..4e414f3b90 100644 --- a/poky/meta/recipes-core/ell/ell_0.59.bb +++ b/poky/meta/recipes-core/ell/ell_0.60.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] = "370dc2b7c73cd57856017180a2a70a15ca1b0183bfd453b3cffe2d707c37da3d" +SRC_URI[sha256sum] = "61cec2df694b548e51afa3e7ffd1e1ad31a9fea7bedb93a3a3cc60894390c70f" do_configure:prepend () { mkdir -p ${S}/build-aux diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.bb b/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.3.bb index db1bbb7e68..db1bbb7e68 100644 --- a/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.bb +++ b/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.3.bb diff --git a/poky/meta/recipes-core/gettext/gettext-sources.inc b/poky/meta/recipes-core/gettext/gettext-sources.inc index b4fb647916..31dabfc543 100644 --- a/poky/meta/recipes-core/gettext/gettext-sources.inc +++ b/poky/meta/recipes-core/gettext/gettext-sources.inc @@ -1,4 +1,4 @@ HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html" SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \ " -SRC_URI[sha256sum] = "49f089be11b490170bbf09ed2f51e5f5177f55be4cc66504a5861820e0fb06ab" +SRC_URI[sha256sum] = "839a260b2314ba66274dae7d245ec19fce190a3aa67869bf31354cb558df42c7" diff --git a/poky/meta/recipes-core/gettext/gettext_0.22.bb b/poky/meta/recipes-core/gettext/gettext_0.22.3.bb index 75474c8c30..75474c8c30 100644 --- a/poky/meta/recipes-core/gettext/gettext_0.22.bb +++ b/poky/meta/recipes-core/gettext/gettext_0.22.3.bb diff --git a/poky/meta/recipes-core/glib-2.0/glib.inc b/poky/meta/recipes-core/glib-2.0/glib.inc index cec06b2f88..fbf3a39b15 100644 --- a/poky/meta/recipes-core/glib-2.0/glib.inc +++ b/poky/meta/recipes-core/glib-2.0/glib.inc @@ -113,6 +113,11 @@ do_install:append () { mkdir -p ${D}${libdir}/gio/modules } +do_install:append:class-native () { + # Link gio-querymodules into ${bindir} as otherwise tools like meson won't find it + ln -rs ${D}${libexecdir}/gio-querymodules ${D}${bindir} +} + do_install:append:class-target () { # Tests are only installed on targets, not native builds. Separating this out # keeps glib-2.0-native from depending on DISTRO_FEATURES diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc index 19b98bc11a..ccf9d505c5 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.38/master" PV = "2.38+git" -SRCREV_glibc ?= "750a45a783906a19591fb8ff6b7841470f1f5701" +SRCREV_glibc ?= "1e04dcec491bd8f48b5b74ce3e8414132578a645" SRCREV_localedef ?= "e0eca29583b9e0f62645c4316ced93cf4e4e26e1" GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https" diff --git a/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb b/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb index 1c08c7fec6..7bb0b2738c 100644 --- a/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb +++ b/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb @@ -17,6 +17,9 @@ PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} udev base- # Do not pollute the initrd image with rootfs features IMAGE_FEATURES = "" +# Don't allow the initramfs to contain a kernel +PACKAGE_EXCLUDE = "kernel-image-*" + export IMAGE_BASENAME = "${MLPREFIX}core-image-minimal-initramfs" IMAGE_NAME_SUFFIX ?= "" IMAGE_LINGUAS = "" diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.65.2.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.66.bb index 1fc23acb74..64e08aae68 100644 --- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.65.2.bb +++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.66.bb @@ -16,7 +16,7 @@ SECTION = "base" LICENSE = "BSD-3-Clause & GPL-2.0-only" LIC_FILES_CHKSUM = "file://debian/copyright;md5=c4ec20aa158fa9de26ee1accf78dcaae" -SRCREV = "2f446b69db728b2bda68270a9b81de88102e1fdd" +SRCREV = "a5439f465dc1d1d4e12329208dc321fb806009f4" SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)" diff --git a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb index d0321f1bb5..9ab8dc6050 100644 --- a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb +++ b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb @@ -26,8 +26,8 @@ NVDCVE_API_KEY ?= "" # Use a negative value to skip the update CVE_DB_UPDATE_INTERVAL ?= "86400" -# Timeout for blocking socket operations, such as the connection attempt. -CVE_SOCKET_TIMEOUT ?= "60" +# Number of attmepts for each http query to nvd server before giving up +CVE_DB_UPDATE_ATTEMPTS ?= "5" CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_2.db" @@ -114,7 +114,7 @@ def cleanup_db_download(db_file, db_tmp_file): if os.path.exists(db_tmp_file): os.remove(db_tmp_file) -def nvd_request_next(url, api_key, args): +def nvd_request_next(url, attempts, api_key, args): """ Request next part of the NVD dabase """ @@ -130,7 +130,7 @@ def nvd_request_next(url, api_key, args): request.add_header("apiKey", api_key) bb.note("Requesting %s" % request.full_url) - for attempt in range(5): + for attempt in range(attempts): try: r = urllib.request.urlopen(request) @@ -186,10 +186,11 @@ def update_db_file(db_tmp_file, d, database_time): index = 0 url = d.getVar("NVDCVE_URL") api_key = d.getVar("NVDCVE_API_KEY") or None + attempts = int(d.getVar("CVE_DB_UPDATE_ATTEMPTS")) while True: req_args['startIndex'] = index - raw_data = nvd_request_next(url, api_key, req_args) + raw_data = nvd_request_next(url, attempts, api_key, req_args) if raw_data is None: # We haven't managed to download data return False diff --git a/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb b/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb index 4ee25ee72f..2b43ccf243 100644 --- a/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb +++ b/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb @@ -8,6 +8,10 @@ DEPENDS = "intltool-native libcap util-linux gperf-native python3-jinja2-native inherit meson pkgconfig gettext inherit deploy +SRC_URI += " \ + file://0030-meson-Pass-all-static-pie-args-to-linker.patch \ + " + LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} " EFI_LD = "bfd" diff --git a/poky/meta/recipes-core/systemd/systemd-compat-units.bb b/poky/meta/recipes-core/systemd/systemd-compat-units.bb index 253bc9fcf1..c03d97f9c9 100644 --- a/poky/meta/recipes-core/systemd/systemd-compat-units.bb +++ b/poky/meta/recipes-core/systemd/systemd-compat-units.bb @@ -27,7 +27,8 @@ SYSTEMD_DISABLED_SYSV_SERVICES = " \ pkg_postinst:${PN} () { - cd $D${sysconfdir}/init.d || exit 0 + test -d $D${sysconfdir}/init.d || exit 0 + cd $D${sysconfdir}/init.d echo "Disabling the following sysv scripts: " diff --git a/poky/meta/recipes-core/systemd/systemd/0030-meson-Pass-all-static-pie-args-to-linker.patch b/poky/meta/recipes-core/systemd/systemd/0030-meson-Pass-all-static-pie-args-to-linker.patch new file mode 100644 index 0000000000..8e563238ef --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd/0030-meson-Pass-all-static-pie-args-to-linker.patch @@ -0,0 +1,35 @@ +From f85a387a67900b02c69abccb88c2ef7191c67277 Mon Sep 17 00:00:00 2001 +From: Jan Janssen <medhefgo@web.de> +Date: Sun, 1 Oct 2023 09:55:48 +0200 +Subject: [PATCH] meson: Pass all -static-pie args to linker + +Fixes: #29381 + +Upstream-Status: Backport [https://github.com/systemd/systemd/commit/cecbb162a3134b43d2ca160e13198c73ff34c3ef] +Signed-off-by: Viswanath Kraleti <quic_vkraleti@quicinc.com> +--- + src/boot/efi/meson.build | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build +index 2773eaf286..9a60a57329 100644 +--- a/src/boot/efi/meson.build ++++ b/src/boot/efi/meson.build +@@ -161,9 +161,14 @@ efi_c_ld_args = [ + '-Wl,--entry=efi_main', + '-Wl,--fatal-warnings', + +- # These flags should be passed by -static-pie, but seem to be missing sometimes. +- '-Wl,--no-dynamic-linker', +- '-z', 'text', ++ # These flags should be passed by -static-pie, but for whatever reason the flag translation ++ # is not enabled on all architectures. Not passing `-static` would just allow the linker to ++ # use dynamic libraries, (which we can't/don't use anyway). But if `-pie` is missing and the ++ # gcc build does not default to `-pie` we get a regular (no-pie) binary that will be ++ # rightfully rejected by elf2efi. Note that meson also passes `-pie` to the linker driver, ++ # but it is overridden by our `-static-pie`. We also need to pass these directly to the ++ # linker as `-static`+`-pie` seem to get translated differently. ++ '-Wl,-static,-pie,--no-dynamic-linker,-z,text', + + # EFI has 4KiB pages. + '-z', 'common-page-size=4096', diff --git a/poky/meta/recipes-core/systemd/systemd_254.4.bb b/poky/meta/recipes-core/systemd/systemd_254.4.bb index ecf693ef92..4d68a3266a 100644 --- a/poky/meta/recipes-core/systemd/systemd_254.4.bb +++ b/poky/meta/recipes-core/systemd/systemd_254.4.bb @@ -206,7 +206,7 @@ PACKAGECONFIG[smack] = "-Dsmack=true,-Dsmack=false" PACKAGECONFIG[sysext] = "-Dsysext=true, -Dsysext=false" PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false" PACKAGECONFIG[sysvinit] = "-Dsysvinit-path=${sysconfdir}/init.d -Dsysvrcnd-path=${sysconfdir},-Dsysvinit-path= -Dsysvrcnd-path=,,systemd-compat-units update-rc.d" -# When enabled use reproducble build timestamp if set as time epoch, +# When enabled use reproducible build timestamp if set as time epoch, # or build time if not. When disabled, time epoch is unset. def build_epoch(d): epoch = d.getVar('SOURCE_DATE_EPOCH') or "-1" diff --git a/poky/meta/recipes-core/udev/eudev/0001-Export-dummies-for.patch b/poky/meta/recipes-core/udev/eudev/0001-Export-dummies-for.patch deleted file mode 100644 index 21fbf0f824..0000000000 --- a/poky/meta/recipes-core/udev/eudev/0001-Export-dummies-for.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 45634cc0f09ea354be7efce2ae3d3fa8ffc181ec Mon Sep 17 00:00:00 2001 -From: Boian Bonev <bbonev@ipacct.com> -Date: Fri, 11 Aug 2023 23:14:02 +0000 -Subject: [PATCH] Export dummies for - - - udev_device_has_current_tag - - udev_device_get_current_tags_list_entry - -since the current eudev device database does not support the concept of -current tags - -Upstream-Status: Submitted [https://github.com/eudev-project/eudev/pull/253] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - src/libudev/libudev-device.c | 11 +++++++++++ - src/libudev/libudev.h | 2 ++ - src/libudev/libudev.sym | 6 ++++++ - 3 files changed, 19 insertions(+) - -diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c -index ac67ce8..7d7a662 100644 ---- a/src/libudev/libudev-device.c -+++ b/src/libudev/libudev-device.c -@@ -1819,6 +1819,12 @@ _public_ struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_dev - return udev_list_get_entry(&udev_device->tags_list); - } - -+_public_ struct udev_list_entry *udev_device_get_current_tags_list_entry(struct udev_device *udev_device) -+{ -+ // TODO: eudev database does not support current tags -+ return udev_device_get_tags_list_entry(udev_device); -+} -+ - /** - * udev_device_has_tag: - * @udev_device: udev device -@@ -1842,6 +1848,11 @@ _public_ int udev_device_has_tag(struct udev_device *udev_device, const char *ta - return false; - } - -+_public_ int udev_device_has_current_tag(struct udev_device *udev_device, const char *tag) { -+ // TODO: eudev database does not support current tags -+ return udev_device_has_tag(udev_device, tag); -+} -+ - #define ENVP_SIZE 128 - #define MONITOR_BUF_SIZE 4096 - static int update_envp_monitor_buf(struct udev_device *udev_device) -diff --git a/src/libudev/libudev.h b/src/libudev/libudev.h -index 8491d2b..0202964 100644 ---- a/src/libudev/libudev.h -+++ b/src/libudev/libudev.h -@@ -100,6 +100,7 @@ int udev_device_get_is_initialized(struct udev_device *udev_device); - struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device); - struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device); - struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device); -+struct udev_list_entry *udev_device_get_current_tags_list_entry(struct udev_device *udev_device); - struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device); - const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key); - const char *udev_device_get_driver(struct udev_device *udev_device); -@@ -110,6 +111,7 @@ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device - const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr); - int udev_device_set_sysattr_value(struct udev_device *udev_device, const char *sysattr, char *value); - int udev_device_has_tag(struct udev_device *udev_device, const char *tag); -+int udev_device_has_current_tag(struct udev_device *udev_device, const char *tag); - - /* - * udev_monitor -diff --git a/src/libudev/libudev.sym b/src/libudev/libudev.sym -index 76726fc..d56c2ae 100644 ---- a/src/libudev/libudev.sym -+++ b/src/libudev/libudev.sym -@@ -118,3 +118,9 @@ global: - udev_queue_flush; - udev_queue_get_fd; - } LIBUDEV_199; -+ -+LIBUDEV_247 { -+global: -+ udev_device_has_current_tag; -+ udev_device_get_current_tags_list_entry; -+} LIBUDEV_215; diff --git a/poky/meta/recipes-core/udev/eudev/0002-Bump-udev-version-to-251.patch b/poky/meta/recipes-core/udev/eudev/0002-Bump-udev-version-to-251.patch deleted file mode 100644 index 520cc38cda..0000000000 --- a/poky/meta/recipes-core/udev/eudev/0002-Bump-udev-version-to-251.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 7a66d4fe8aac8c8697c3cecb0c189e22524fbc98 Mon Sep 17 00:00:00 2001 -From: Boian Bonev <bbonev@ipacct.com> -Date: Fri, 11 Aug 2023 22:08:27 +0000 -Subject: [PATCH] Bump udev version to 251 - -Upstream-Status: Submitted [https://github.com/eudev-project/eudev/pull/253] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 3e31b0e..069fdfb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1,6 +1,6 @@ - AC_PREREQ([2.68]) - AC_INIT([eudev],[3.2.12],[https://github.com/gentoo/eudev/issues]) --AC_SUBST(UDEV_VERSION, 243) -+AC_SUBST(UDEV_VERSION, 251) - AC_CONFIG_SRCDIR([src/udev/udevd.c]) - - AC_USE_SYSTEM_EXTENSIONS diff --git a/poky/meta/recipes-core/udev/eudev_3.2.12.bb b/poky/meta/recipes-core/udev/eudev_3.2.14.bb index e19c6c0faa..d0758691bd 100644 --- a/poky/meta/recipes-core/udev/eudev_3.2.12.bb +++ b/poky/meta/recipes-core/udev/eudev_3.2.14.bb @@ -12,11 +12,9 @@ PROVIDES = "udev" SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ file://init \ file://local.rules \ - file://0001-Export-dummies-for.patch \ - file://0002-Bump-udev-version-to-251.patch \ " -SRC_URI[sha256sum] = "ccdd64ec3c381d3c3ed0e99d2e70d1f62988c7763de89ca7bdffafa5eacb9ad8" +SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f" GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases" diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch deleted file mode 100644 index 3faf6f0a81..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 5ffc09fca39de051537fbebd7c6c33d5255a520f Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Mon, 27 Mar 2023 18:10:36 -0700 -Subject: [PATCH 01/29] mention prototypes more prominently in NEWS - -* NEWS: Mention the function prototype issue early. -(From a suggestion by Zack Weinberg.) - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - NEWS | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/NEWS b/NEWS -index cf01ee210..d64648c6f 100644 ---- a/NEWS -+++ b/NEWS -@@ -4,6 +4,14 @@ GNU Autoconf NEWS - User visible changes. - - ** Backward incompatibilities - -+*** AC_CHECK_FUNC and similar macros now use function prototypes. -+ AC_CHECK_FUNC and and similar macros now use C declarations with -+ function prototypes, a feature introduced in C89. The new approach -+ should work better with C23, which removed the non-prototyped K&R -+ style that AC_CHECK_FUNC previously used. However, this change -+ means Autoconf no longer supports pre-1989 C compilers, as they do -+ not support function prototypes. -+ - *** Autoconf now requires perl 5.10 (2007) or later. - Generated 'configure' scripts continue to run without perl. - --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch deleted file mode 100644 index 35f324c4ae..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch +++ /dev/null @@ -1,123 +0,0 @@ -From e2220ed33e69d8bc6504e3f6279894afe33a99a5 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Wed, 29 Mar 2023 12:59:09 -0700 -Subject: [PATCH 02/29] build: run "make fetch", which updated these: - -* build-aux/texinfo.tex: Update from texinfo. -* lib/Autom4te/FileUtils.pm: Update from automake. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - build-aux/texinfo.tex | 50 +++++++++++++++++++++------------------ - lib/Autom4te/FileUtils.pm | 5 +++- - 2 files changed, 31 insertions(+), 24 deletions(-) - -diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex -index d25161109..55a002d27 100644 ---- a/build-aux/texinfo.tex -+++ b/build-aux/texinfo.tex -@@ -3,7 +3,7 @@ - % Load plain if necessary, i.e., if running under initex. - \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi - % --\def\texinfoversion{2023-03-21.06} -+\def\texinfoversion{2023-03-27.21} - % - % Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc. - % -@@ -1102,27 +1102,33 @@ where each line of input produces a line of output.} - - % Output page labels information. - % See PDF reference v.1.7 p.594, section 8.3.1. -+% Page label ranges must be increasing. - \ifpdf - \def\pagelabels{% - \def\title{0 << /P (T-) /S /D >>}% -- \edef\roman{\the\romancount << /S /r >>}% -- \edef\arabic{\the\arabiccount << /S /D >>}% - % -- % Page label ranges must be increasing. Remove any duplicates. -- % (There is a slight chance of this being wrong if e.g. there is -- % a @contents but no @titlepage, etc.) -- % -- \ifnum\romancount=0 \def\roman{}\fi -- \ifnum\arabiccount=0 \def\title{}% -- \else -- \ifnum\romancount=\arabiccount \def\roman{}\fi -- \fi -- % -- \ifnum\romancount<\arabiccount -- \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax -+ % support @contents at very end of document -+ \ifnum\contentsendcount=\pagecount -+ \ifnum\arabiccount<\romancount -+ \pdfcatalog{/PageLabels << /Nums -+ [\title -+ \the\arabiccount << /S /D >> -+ \the\romancount << /S /r >> -+ ] >> }\relax -+ \fi -+ % no contents in document -+ \else\ifnum\contentsendcount=0 -+ \pdfcatalog{/PageLabels << /Nums -+ [\title -+ \the\arabiccount << /S /D >> -+ ] >> }\relax - \else -- \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax -- \fi -+ \pdfcatalog{/PageLabels << /Nums -+ [\title -+ \the\romancount << /S /r >> -+ \the\contentsendcount << /S /D >> -+ ] >> }\relax -+ \fi\fi - } - \else - \let\pagelabels\relax -@@ -1131,6 +1137,8 @@ where each line of input produces a line of output.} - \newcount\pagecount \pagecount=0 - \newcount\romancount \romancount=0 - \newcount\arabiccount \arabiccount=0 -+\newcount\contentsendcount \contentsendcount=0 -+ - \ifpdf - \let\ptxadvancepageno\advancepageno - \def\advancepageno{% -@@ -6809,12 +6817,8 @@ might help (with 'rm \jobname.?? \jobname.??s')% - % Get ready to use Arabic numerals again - \def\contentsendroman{% - \lastnegativepageno = \pageno -- \global\pageno = \savepageno -- % -- % If \romancount > \arabiccount, the contents are at the end of the -- % document. Otherwise, advance where the Arabic numerals start for -- % the page numbers. -- \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi -+ \global\pageno=1 -+ \contentsendcount = \pagecount - } - - % Typeset the label for a chapter or appendix for the short contents. -diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm -index ab58b9de4..2468fe6d8 100644 ---- a/lib/Autom4te/FileUtils.pm -+++ b/lib/Autom4te/FileUtils.pm -@@ -39,9 +39,12 @@ use strict; - use warnings FATAL => 'all'; - - use Exporter; --use Time::HiRes qw(stat); - use IO::File; - -+# use sub-second resolution timestamps if available, -+# carry on with one-second resolution timestamps if that is all we have -+BEGIN { eval { require Time::HiRes; import Time::HiRes qw(stat) } } -+ - use Autom4te::Channels; - use Autom4te::ChannelDefs; - --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch deleted file mode 100644 index 76c37a005b..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch +++ /dev/null @@ -1,29 +0,0 @@ -From e05aa447945c0d72ad924fd89a28830cf1a0f8d3 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Fri, 31 Mar 2023 10:37:57 -0700 -Subject: [PATCH 03/29] * NEWS: Tighten up wording. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - NEWS | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/NEWS b/NEWS -index d64648c6f..884e46f45 100644 ---- a/NEWS -+++ b/NEWS -@@ -5,9 +5,7 @@ GNU Autoconf NEWS - User visible changes. - ** Backward incompatibilities - - *** AC_CHECK_FUNC and similar macros now use function prototypes. -- AC_CHECK_FUNC and and similar macros now use C declarations with -- function prototypes, a feature introduced in C89. The new approach -- should work better with C23, which removed the non-prototyped K&R -+ This should work better with C23, which removed the non-prototyped K&R - style that AC_CHECK_FUNC previously used. However, this change - means Autoconf no longer supports pre-1989 C compilers, as they do - not support function prototypes. --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch deleted file mode 100644 index 1b30d9926c..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 232cab527897bcdf4d55492d41af73d31905bda5 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Fri, 31 Mar 2023 10:46:20 -0700 -Subject: [PATCH 04/29] Cater to programs misusing AC_EGREP_HEADER -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Problem reported by Frederic Berat in: -https://lists.gnu.org/archive/html/autoconf/2022-11/msg00127.html -* lib/autoconf/programs.m4 (AC_PROG_EGREP): Also set -EGREP_TRADITIONAL and ac_cv_path_EGREP_TRADITIONAL. -* tests/c.at (AC_PROG_EGREP and AC_EGREP_HEADER): -New test, taken from Frederic Berat’s email in: -https://lists.gnu.org/r/autoconf/2023-03/msg00043.html - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/programs.m4 | 10 ++++++++++ - tests/c.at | 24 ++++++++++++++++++++++++ - 2 files changed, 34 insertions(+) - -diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4 -index 1b7460c85..62ba6b8b6 100644 ---- a/lib/autoconf/programs.m4 -+++ b/lib/autoconf/programs.m4 -@@ -371,6 +371,16 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP, - fi]) - EGREP="$ac_cv_path_EGREP" - AC_SUBST([EGREP]) -+ dnl -+ dnl Also set EGREP_TRADITIONAL even though unnecessary here, -+ dnl for wrong but too-common code with the following pattern: -+ dnl AC_PROG_EGREP -+ dnl if false; then -+ dnl AC_EGREP_HEADER([printf], [stdio.h], [has_printf=yes]) -+ dnl fi -+ dnl AC_EGREP_HEADER([malloc], [stdlib.h], [has_malloc=yes]) -+ EGREP_TRADITIONAL=$EGREP -+ ac_cv_path_EGREP_TRADITIONAL=$EGREP - ])# AC_PROG_EGREP - - # _AC_PROG_EGREP_TRADITIONAL -diff --git a/tests/c.at b/tests/c.at -index c37f43b10..fad54760f 100644 ---- a/tests/c.at -+++ b/tests/c.at -@@ -232,6 +232,30 @@ AT_CHECK_DEFINES( - AT_CLEANUP - - -+## ----------------------------------- ## -+## AC_PROG_EGREP and AC_EGREP_HEADER. ## -+## ----------------------------------- ## -+ -+AT_SETUP([AC_PROG_EGREP and AC_EGREP_HEADER]) -+ -+_AT_CHECK_AC_MACRO( -+[[AC_PROG_CPP -+ AC_PROG_EGREP -+ -+ # Although this code is incorrect (it should use AS_IF), -+ # it follows a too-common real world pattern. -+ # For now, test for it; we may remove this test later. -+ if false; then -+ AC_EGREP_HEADER([^], [limits.h]) -+ fi -+ -+ AC_EGREP_HEADER([$], [limits.h], [], -+ [AC_MSG_ERROR([[egrep-related macros do not tolerate misuse of 'if']])]) -+]]) -+ -+AT_CLEANUP -+ -+ - ## ------------------------------------ ## - ## AC_NO_EXECUTABLES (working linker). ## - ## ------------------------------------ ## --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch deleted file mode 100644 index 53fb40b4df..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 713d9822bbfb2923115065efaefed34a0113f8a1 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Sat, 1 Apr 2023 16:44:03 -0700 -Subject: [PATCH 06/29] Fix timing bug on high-speed builds -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Problem reported by Bogdan via Jacob Bachmeyer in: -https://lists.gnu.org/r/autoconf/2023-04/msg00002.html -* bin/autom4te.in: If a file timestamp equals a dependency’s -timestamp, consider the file to be out of date. Although this may -result in extra work, it fixes some rare timing bugs. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - bin/autom4te.in | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/bin/autom4te.in b/bin/autom4te.in -index 4b61f0a82..71d7e6a62 100644 ---- a/bin/autom4te.in -+++ b/bin/autom4te.in -@@ -910,10 +910,8 @@ sub up_to_date ($) - return 0 - if ! -f $tfile || ! -f $ofile; - -- # The youngest of the cache files must be older than the oldest of -+ # The younger of the cache files must be older than the oldest of - # the dependencies. -- # FIXME: These timestamps have only 1-second resolution. -- # Time::HiRes fixes this, but assumes Perl 5.8 or later. - my $tmtime = mtime ($tfile); - my $omtime = mtime ($ofile); - my ($file, $mtime) = ($tmtime < $omtime -@@ -926,7 +924,7 @@ sub up_to_date ($) - # We depend at least upon the arguments. - foreach my $dep (@ARGV) - { -- if ($mtime < mtime ($dep)) -+ if ($mtime <= mtime ($dep)) - { - verb "up_to_date ($file): outdated: $dep"; - return 0; -@@ -949,7 +947,7 @@ sub up_to_date ($) - # timestamp of that missing file was newer). - return 0 - if ! $dep; -- if ($mtime < mtime ($dep)) -+ if ($mtime <= mtime ($dep)) - { - verb "up_to_date ($file): outdated: $dep"; - return 0; -@@ -1038,7 +1036,7 @@ $icache_file = new Autom4te::XFile $icache, O_RDWR|O_CREAT; - $icache_file->lock (LOCK_EX) - if ($flock_implemented eq "yes"); - --# Read the cache index if available and older than autom4te itself. -+# Read the cache index if available and younger than autom4te itself. - # If autom4te is younger, then some structures such as C4che might - # have changed, which would corrupt its processing. - Autom4te::C4che->load ($icache_file) -@@ -1105,7 +1103,7 @@ else - # Actual M4 expansion, if the user wants it, or if $output is old - # (STDOUT is pretty old). - handle_output ($req, $output) -- if $force || mtime ($output) < mtime ($ocache . $req->id); -+ if $force || mtime ($output) <= mtime ($ocache . $req->id); - } - - # If we ran up to here, the cache is valid. --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch deleted file mode 100644 index f9f9345ade..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 794182506c3c5814d48b2fc4d832770f608ce0ef Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Sat, 1 Apr 2023 20:25:13 -0700 -Subject: [PATCH 07/29] Support underquoted callers better -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Problem reported bh Khem Raj for mcpp 2.7.2 (2008) in: -https://lists.gnu.org/r/autoconf/2023-04/msg00001.html -* lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU): -Add two ‘@%:@(’s to cater to underquoted callers. -* lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Use quadrigraph instead of -‘#’, for underquoted callers. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/programs.m4 | 5 +++-- - lib/m4sugar/m4sh.m4 | 2 +- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4 -index 62ba6b8b6..d06d18c44 100644 ---- a/lib/autoconf/programs.m4 -+++ b/lib/autoconf/programs.m4 -@@ -543,11 +543,12 @@ dnl # for best performing tool in a list breaks down. - # ---------------------------------------------------------------- - m4_define([_AC_PATH_PROG_FLAVOR_GNU], - [# Check for GNU $1 --case `"$1" --version 2>&1` in -+case `"$1" --version 2>&1` in @%:@( - *GNU*) - $2;; - m4_ifval([$3], --[*) -+[@%:@( -+*) - $3;; - ])esac - ])# _AC_PATH_PROG_FLAVOR_GNU -diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 -index ab5ca7db7..368487fa0 100644 ---- a/lib/m4sugar/m4sh.m4 -+++ b/lib/m4sugar/m4sh.m4 -@@ -1389,7 +1389,7 @@ m4_if([$1], m4_translit([[$1]], [:;]), - for as_dir in $as_dummy]) - do - IFS=$as_save_IFS -- case $as_dir in #((( -+ case $as_dir in @%:@((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch deleted file mode 100644 index cec7dcddef..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 8babe5f2ccb73cc574933743b381557a4db02424 Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Thu, 30 Mar 2023 10:50:36 -0400 -Subject: [PATCH 08/29] New script for building inside Guix containers. - -build-aux/test-build-guix, goes with the top level manifest.scm. -See the top of the file for usage instructions. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - build-aux/test-build-guix | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - create mode 100755 build-aux/test-build-guix - -diff --git a/build-aux/test-build-guix b/build-aux/test-build-guix -new file mode 100755 -index 000000000..4470af9b7 ---- /dev/null -+++ b/build-aux/test-build-guix -@@ -0,0 +1,30 @@ -+#! /bin/sh -+ -+# From a pristine Git checkout, run -+# guix shell --container --manifest=manifest.scm -- build-aux/test-build-guix -+# to perform a complete bootstrap and test build of Autoconf. -+ -+set -ex -+ -+# Guix bug? /bin/sh is usually *not* the shell specified in the manifest. -+SHELL="$(command -v sh)" -+export SHELL -+if [ "$(realpath /bin/sh)" != "$(realpath "$SHELL")" ]; then -+ ( -+ cd /bin -+ rm sh -+ ln -s "$SHELL" sh -+ ) -+ exec "$SHELL" "$0" "$@" -+fi -+ -+./bootstrap -+if [ -d _build ]; then -+ rm -rf _build/* -+else -+ mkdir _build -+fi -+cd _build -+../configure -+make all info pdf dvi -+make distcheck --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch deleted file mode 100644 index c1c60dcf53..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch +++ /dev/null @@ -1,82 +0,0 @@ -From dcf9bb7e3b12f3bd74edff60e80b53e668159579 Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Sun, 2 Apr 2023 10:27:08 -0400 -Subject: [PATCH 09/29] AC_XENIX_DIR: Rewrite using AC_CANONICAL_HOST. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -AC_XENIX_DIR is an obsolete macro, defined as AC_HEADER_DIRENT plus -code to make absolutely sure configure scripts that depended on a -shell variable internal to the original (2.13 era) definition of -AC_XENIX_DIR are not broken by autoupdate. (That variable had the -temptingly public-sounding name “XENIX.”) This compatibility code -uses AC_EGREP_CPP, which is itself discouraged for use in new -configure scripts. - -(N.B. codesearch.debian.net does not find any uses whatsoever of -this macro, nor any code in an .ac or .m4 file that depends on the -XENIX variable.) - -Change the compatibility code to use AC_CANONICAL_HOST instead, -and clarify which pieces of the code inserted by autoupdate are -probably still necessary. - -* lib/autoconf/specific.m4 (AC_XENIX_DIR): Set XENIX variable - based on value of host_os. Clarify what manual cleanup is - recommended after autoupdate replaces this obsolete macro. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 26 +++++++++++--------------- - 1 file changed, 11 insertions(+), 15 deletions(-) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index 1b3ee661b..a2dc5d488 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -754,9 +754,9 @@ dnl it should only be defined when necessary. - ## Checks for UNIX variants. ## - ## -------------------------- ## - -- --# These are kludges which should be replaced by a single POSIX check. --# They aren't cached, to discourage their use. -+# These macros are all obsolete, from the early days of Autoconf, -+# before the invention of AC_CANONICAL_SYSTEM. Autoupdate will -+# replace each with inline code for a more modern feature check. - - # AC_AIX - # ------ -@@ -776,19 +776,15 @@ AU_DEFUN([AC_ISC_POSIX], [AC_SEARCH_LIBS([strerror], [cposix])]) - # AC_XENIX_DIR - # ------------ - AU_DEFUN([AC_XENIX_DIR], --[AC_MSG_CHECKING([for Xenix]) --AC_EGREP_CPP([yes], --[#if defined M_XENIX && ! defined M_UNIX -- yes --@%:@endif], -- [AC_MSG_RESULT([yes]); XENIX=yes], -- [AC_MSG_RESULT([no]); XENIX=]) -- --AC_HEADER_DIRENT[]dnl -+[AC_HEADER_DIRENT -+# Autoupdate added the next two lines to ensure that your configure -+# script's behavior did not change. They are safe to remove unless -+# you have code that depends on the XENIX shell variable. -+AC_CANONICAL_HOST -+AS_CASE([$host_os], [xenix*], [XENIX=yes], [XENIX=no]) -+# End of code added by autoupdate - ], --[You shouldn't need to depend upon XENIX. Remove the --'AC_MSG_CHECKING', 'AC_EGREP_CPP', and this warning if this part --of the test is useless.]) -+[Check for code depending on the XENIX shell variable.]) - - - # AC_DYNIX_SEQ --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch deleted file mode 100644 index 49322712ac..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 51d98495d1aac00970d791f064e83ca762bf81c7 Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Sun, 2 Apr 2023 10:43:51 -0400 -Subject: [PATCH 10/29] AC_TYPE_UID_T: Rewrite using AC_CHECK_TYPE. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -AC_TYPE_UID_T uses AC_EGREP_HEADER to search sys/types.h for -occurrences of the string ‘uid_t’ and, if found, assumes both -uid_t and gid_t are available. This would be better done using -a pair of AC_CHECK_TYPE operations. - -I also converted two uses of old-style AC_CHECK_TYPE, immediately -below, to new-style. (There are probably other old-style uses in -this file, I only did the ones I happened to see.) - -* lib/autoconf/types.m4 (AC_TYPE_UID_T): Check for uid_t and gid_t, - separately, using AC_CHECK_TYPE, instead of grepping sys/types.h. - (AC_TYPE_SIZE_T, AC_TYPE_SSIZE_T): Use new-style AC_CHECK_TYPE. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/types.m4 | 30 +++++++++++++++++------------- - 1 file changed, 17 insertions(+), 13 deletions(-) - -diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4 -index ebac0cf6d..ef2456135 100644 ---- a/lib/autoconf/types.m4 -+++ b/lib/autoconf/types.m4 -@@ -589,25 +589,29 @@ AC_DEFUN([AC_TYPE_MBSTATE_T], - - # AC_TYPE_UID_T - # ------------- --# FIXME: Rewrite using AC_CHECK_TYPE. - AN_IDENTIFIER([gid_t], [AC_TYPE_UID_T]) - AN_IDENTIFIER([uid_t], [AC_TYPE_UID_T]) - AC_DEFUN([AC_TYPE_UID_T], --[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t, --[AC_EGREP_HEADER(uid_t, sys/types.h, -- ac_cv_type_uid_t=yes, ac_cv_type_uid_t=no)]) --if test $ac_cv_type_uid_t = no; then -- AC_DEFINE(uid_t, int, [Define to 'int' if <sys/types.h> doesn't define.]) -- AC_DEFINE(gid_t, int, [Define to 'int' if <sys/types.h> doesn't define.]) --fi --]) -- -- -+[AC_CHECK_TYPE([uid_t], [], -+ [AC_DEFINE([uid_t], [int], -+ [Define as 'int' if <sys/types.h> doesn't define.])]) -+AC_CHECK_TYPE([gid_t], [], -+ [AC_DEFINE([gid_t], [int], -+ [Define as 'int' if <sys/types.h> doesn't define.])])]) -+ -+# This should be obsoleted, size_t is in C90. - AN_IDENTIFIER([size_t], [AC_TYPE_SIZE_T]) --AC_DEFUN([AC_TYPE_SIZE_T], [AC_CHECK_TYPE(size_t, unsigned int)]) -+AC_DEFUN([AC_TYPE_SIZE_T], -+[AC_CHECK_TYPE([size_t], [], -+ [AC_DEFINE([size_t], [unsigned int], -+ [Define as 'unsigned int' if <stddef.h> doesn't define.])])]) - - AN_IDENTIFIER([ssize_t], [AC_TYPE_SSIZE_T]) --AC_DEFUN([AC_TYPE_SSIZE_T], [AC_CHECK_TYPE(ssize_t, int)]) -+AC_DEFUN([AC_TYPE_SSIZE_T], -+[AC_CHECK_TYPE([ssize_t], [], -+ [AC_DEFINE([ssize_t], [int], -+ [Define as 'int' if <sys/types.h> doesn't define.])])]) -+ - - AN_IDENTIFIER([pid_t], [AC_TYPE_PID_T]) - AC_DEFUN([AC_TYPE_PID_T], --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch deleted file mode 100644 index 9c1f435d53..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch +++ /dev/null @@ -1,180 +0,0 @@ -From daaca7f74f94d6a7a51d571156d5fbaba5ef9a87 Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Sun, 2 Apr 2023 21:03:30 -0400 -Subject: [PATCH 11/29] Make AC_PROG_GCC_TRADITIONAL a compatibility alias for - AC_PROG_CC. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This macro is one of the last remaining internal uses of AC_EGREP_CPP. -It has only ever done anything useful with GCC, and GCC dropped -support for ‘traditional’ compilation in version 3.3 (released 2003) -so I do not think it is worth trying to preserve. - -* lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Make into a - compatibility alias for AC_PROG_CC, similar to AC_PROG_CC_STDC. -* lib/autoconf/general.m4 (AC_EGREP_CPP): Remove stale comment. -* doc/autoconf.texi, NEWS: Document this change. -* tests/mktests.pl: Exclude AC_PROG_GCC_TRADITIONAL from - autoupdate tests. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - NEWS | 7 +++++++ - doc/autoconf.texi | 29 ++++++++++++++--------------- - lib/autoconf/c.m4 | 30 ++++++------------------------ - lib/autoconf/general.m4 | 2 -- - tests/mktests.pl | 2 +- - 5 files changed, 28 insertions(+), 42 deletions(-) - -diff --git a/NEWS b/NEWS -index 6a106f155..53c57ff59 100644 ---- a/NEWS -+++ b/NEWS -@@ -81,6 +81,13 @@ GNU Autoconf NEWS - User visible changes. - with plain apostrophes instead of the older GNU style `like this' - with grave accent and apostrophe. - -+*** AC_PROG_GCC_TRADITIONAL no longer does anything. -+ -+ This macro has had no useful effect since GCC dropped support for -+ traditional-mode compilation in version 3.3 (released in 2003), and -+ the systems that needed it are also long obsolete. It is now a -+ compatibility synonym for AC_PROG_CC. -+ - ** Notable bug fixes - - *** Autoconf caches now use finer-grained timestamps. -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index 8db64d8bb..037c8055f 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -7764,20 +7764,6 @@ This macro is obsolescent, as current C compilers support prototypes. - New programs need not use this macro. - @end defmac - --@anchor{AC_PROG_GCC_TRADITIONAL} --@defmac AC_PROG_GCC_TRADITIONAL --@acindex{PROG_GCC_TRADITIONAL} --@ovindex CC --Add @option{-traditional} to output variable @code{CC} if using a --GNU C compiler and @code{ioctl} does not work properly without --@option{-traditional}. That usually happens when the fixed header files --have not been installed on an old system. -- --This macro is obsolescent, since current versions of the GNU C --compiler fix the header files automatically when installed. --@end defmac -- -- - @node C++ Compiler - @subsection C++ Compiler Characteristics - -@@ -23986,7 +23972,8 @@ These days portable programs should use @code{waitpid}, not - - @defmac AC_GCC_TRADITIONAL - @acindex{GCC_TRADITIONAL} --Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}). -+Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}), -+which is itself obsolete. - @end defmac - - @defmac AC_GETGROUPS_T -@@ -24369,6 +24356,18 @@ Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}). - Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}). - @end defmac - -+@anchor{AC_PROG_GCC_TRADITIONAL} -+@defmac AC_PROG_GCC_TRADITIONAL -+@acindex{PROG_GCC_TRADITIONAL} -+Used to put GCC into ``traditional'' (pre-ISO C) compilation mode, -+on systems with headers that did not work correctly with a -+standard-compliant compiler. GCC has not supported traditional -+compilation in many years, and all of the systems that required this are -+long obsolete themselves. This macro is now a compatibility synonym for -+@code{AC_PROG_CC} (@pxref{AC_PROG_CC}). -+ -+@end defmac -+ - @defmac AC_PROGRAMS_CHECK - @acindex{PROGRAMS_CHECK} - Replaced by @code{AC_CHECK_PROGS} (@pxref{AC_CHECK_PROGS}). -diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 -index fef6c516d..33648b5b9 100644 ---- a/lib/autoconf/c.m4 -+++ b/lib/autoconf/c.m4 -@@ -551,30 +551,6 @@ fi[]dnl - ])# _AC_PROG_CC_G - - --# AC_PROG_GCC_TRADITIONAL --# ----------------------- --AC_DEFUN([AC_PROG_GCC_TRADITIONAL], --[AC_REQUIRE([AC_PROG_CC])dnl --if test $ac_cv_c_compiler_gnu = yes; then -- AC_CACHE_CHECK(whether $CC needs -traditional, -- ac_cv_prog_gcc_traditional, --[ ac_pattern="Autoconf.*'x'" -- AC_EGREP_CPP($ac_pattern, [#include <sgtty.h> --Autoconf TIOCGETP], -- ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no) -- -- if test $ac_cv_prog_gcc_traditional = no; then -- AC_EGREP_CPP($ac_pattern, [#include <termio.h> --Autoconf TCGETA], -- ac_cv_prog_gcc_traditional=yes) -- fi]) -- if test $ac_cv_prog_gcc_traditional = yes; then -- CC="$CC -traditional" -- fi --fi --])# AC_PROG_GCC_TRADITIONAL -- -- - # AC_PROG_CC_C_O - # -------------- - AC_DEFUN([AC_PROG_CC_C_O], -@@ -1675,6 +1651,12 @@ AU_DEFUN([AC_PROG_CC_STDC], - [$0 is obsolete; use AC_PROG_CC] - ) - -+# AC_PROG_GCC_TRADITIONAL -+# ----------------------- -+AU_DEFUN([AC_PROG_GCC_TRADITIONAL], -+ [AC_REQUIRE([AC_PROG_CC])], -+ [$0 is obsolete; use AC_PROG_CC] -+) - - # AC_C_BACKSLASH_A - # ---------------- -diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 -index ecda0a51c..47d896d54 100644 ---- a/lib/autoconf/general.m4 -+++ b/lib/autoconf/general.m4 -@@ -2766,8 +2766,6 @@ AU_DEFUN([AC_TRY_CPP], - # AC_EGREP_CPP(PATTERN, PROGRAM, - # [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - # ------------------------------------------------------ --# Because this macro is used by AC_PROG_GCC_TRADITIONAL, which must --# come early, it is not included in AC_BEFORE checks. - AC_DEFUN([AC_EGREP_CPP], - [AC_LANG_PREPROC_REQUIRE()dnl - AC_REQUIRE([_AC_PROG_EGREP_TRADITIONAL])dnl -diff --git a/tests/mktests.pl b/tests/mktests.pl -index effed0bca..81f63586c 100644 ---- a/tests/mktests.pl -+++ b/tests/mktests.pl -@@ -112,7 +112,7 @@ my @ac_exclude_list = ( - # Check all AU_DEFUN'ed macros with AT_CHECK_AU_MACRO, except these. - my @au_exclude_list = ( - # Empty. -- qr/^AC_(C_CROSS|PROG_CC_(C[89]9|STDC))$/, -+ qr/^AC_(C_CROSS|PROG_(CC_(C[89]9|STDC)|GCC_TRADITIONAL))$/, - - # Use AC_REQUIRE. - qr/^AC_(CYGWIN|MINGW32|EMXOS2)$/, --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch deleted file mode 100644 index 4d28101b46..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch +++ /dev/null @@ -1,328 +0,0 @@ -From b5891a57b586ef6ff78bb752d62915b78cd58d7e Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Sun, 2 Apr 2023 15:07:58 -0400 -Subject: [PATCH 12/29] Overhaul AC_TYPE_GETGROUPS and AC_FUNC_GETGROUPS. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -AC_TYPE_GETGROUPS is the last remaining use of AC_EGREP_HEADER in -stock Autoconf macros. It uses it only when cross compiling, as a -fallback from an AC_RUN_IFELSE check, testing for a bug in system -headers from the late 1980s or early 1990s, where gid_t *existed* -but the second argument to getgroups needed to be an array of int, -and this didn’t cause a compile error (i.e. the system headers -declare getgroups with no prototype or an incorrect prototype). -AC_FUNC_GETGROUPS also uses AC_RUN_IFELSE to test for obscure -problems specific to long-obsolete Unixes. - -The downsides of AC_RUN_IFELSE and AC_EGREP_HEADER seem more severe -than the chances of someone compiling a current-generation program, -that uses getgroups, on an OS old enough to have one of the really -nasty bugs. Accordingly, this patch changes AC_FUNC_GETGROUPS to use -a host_os-based *blacklist* both in native and cross compilation. -This is limited to the two host_os values for which either our old -code, or Gnulib, documented a serious bug: ultrix* and nextstep*. -Currently it does not try to pin down the exact version ranges subject -to the bugs — that would require research by someone with access to -the full history of these OSes. - -An incorrect guess by this blacklist can be overridden by setting -ac_cv_func_getgroups_works in config.site. AC_TYPE_GETGROUPS, for its -part, now does a series of regular old AC_COMPILE_IFELSE checks to -probe the prototype of getgroups, and considers that good enough. - -While I was in there I noticed that AC_FUNC_GETGROUPS does not -AC_SUBST a documented output variable, and that the name of this -variable is misspelled in the manual. - -* lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Use AC_SEARCH_LIBS - to probe for getgroups. Use an AC_CANONICAL_HOST-based blacklist - for bug detection, not AC_RUN_IFELSE. AC_SUBST the GETGROUPS_LIB - output variable. -* lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Check only the prototype - of getgroups, using AC_COMPILE_IFELSE; do not use either AC_RUN_IFELSE - or AC_EGREP_HEADER. -* doc/autoconf.texi: Update to match. Correct misspelling of - GETGROUPS_LIB. -* tests.local.at (_AT_CHECK_ENV): Allow GETGROUPS_LIB output variable. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - NEWS | 11 +++++ - doc/autoconf.texi | 25 ++++++---- - lib/autoconf/functions.m4 | 61 ++++++++++++------------ - lib/autoconf/types.m4 | 97 ++++++++++++++++++++++++--------------- - tests/local.at | 2 +- - 5 files changed, 120 insertions(+), 76 deletions(-) - -diff --git a/NEWS b/NEWS -index 53c57ff59..8e4ecc1bf 100644 ---- a/NEWS -+++ b/NEWS -@@ -38,6 +38,17 @@ GNU Autoconf NEWS - User visible changes. - This matters only for uses that, contrary to the documentation - and despite warnings, use m4_divert with numbered diversions. - -+*** AC_FUNC_GETGROUPS and AC_TYPE_GETGROUPS no longer run test programs. -+ These macros were testing for OS bugs that we believe are at least -+ twenty years in the past. Most operating systems are now trusted to -+ provide an accurate prototype for getgroups in unistd.h, and to -+ implement it as specified in POSIX. -+ -+ AC_FUNC_GETGROUPS still includes a short blacklist of OSes with -+ known, severe bugs in getgroups. It can be overridden using -+ config.site. If you encounter a mistake in this blacklist -+ please report it to bug-autoconf. -+ - ** New features - - *** New macro AC_SYS_YEAR2038. -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index 037c8055f..5d5f613e6 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -5257,17 +5257,26 @@ and also contains workarounds for other portability problems of - @defmac AC_FUNC_GETGROUPS - @acindex{FUNC_GETGROUPS} - @cvindex HAVE_GETGROUPS --@ovindex GETGROUPS_LIBS -+@ovindex GETGROUPS_LIB - @c @fuindex getgroups - @prindex @code{getgroups} - @caindex func_getgroups_works --If the @code{getgroups} function is available and works, --define @code{HAVE_GETGROUPS}. Set @code{GETGROUPS_LIBS} to any libraries --needed to get that function. This macro runs @code{AC_TYPE_GETGROUPS}. -- --This macro is obsolescent. New programs need not use this macro. But --they may want to use the Gnulib module @code{getgroups}, which provides --workarounds to other portability problems of this function. -+Perform all the checks performed by @code{AC_TYPE_GETGROUPS} -+(@pxref{AC_TYPE_GETGROUPS}). -+Then, if the @code{getgroups} function is available -+and known to work correctly, define @code{HAVE_GETGROUPS}. -+Set the output variable @code{GETGROUPS_LIB} to any libraries -+needed to get that function. -+ -+This macro relies on a list of systems with known, serious bugs in -+@code{getgroups}. If this list mis-identifies your system's -+@code{getgroups} as buggy, or as not buggy, you can override it by -+setting the cache variable @code{ac_cv_func_getgroups_works} in a -+@file{config.site} file (@pxref{Site Defaults}). Please also report the -+error to @email{bug-autoconf@@gnu.org, the Autoconf Bugs mailing list}. -+ -+The Gnulib module @code{getgroups} provides workarounds for additional, -+less severe portability problems with this function. - @end defmac - - @anchor{AC_FUNC_GETLOADAVG} -diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 -index 655d6ba8f..74512e97d 100644 ---- a/lib/autoconf/functions.m4 -+++ b/lib/autoconf/functions.m4 -@@ -698,47 +698,46 @@ AS_IF([test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE"], - # When cross-compiling, assume getgroups is broken. - AN_FUNCTION([getgroups], [AC_FUNC_GETGROUPS]) - AC_DEFUN([AC_FUNC_GETGROUPS], --[AC_REQUIRE([AC_TYPE_GETGROUPS])dnl --AC_REQUIRE([AC_TYPE_SIZE_T])dnl --AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles --AC_CHECK_FUNC(getgroups) -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_TYPE_GETGROUPS])dnl - --# If we don't yet have getgroups, see if it's in -lbsd. -+# On older systems getgroups might be in -lbsd. - # This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1. - ac_save_LIBS=$LIBS --if test $ac_cv_func_getgroups = no; then -- AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd]) --fi -- --# Run the program to test the functionality of the system-supplied --# getgroups function only if there is such a function. -+LIBS= -+GETGROUPS_LIB= -+AC_SEARCH_LIBS([getgroups], [bsd], -+ [test "$ac_res" = "none required" || GETGROUPS_LIB="$ac_res" -+ ac_cv_func_getgroups=yes], -+ [ac_cv_func_getgroups=no]) -+LIBS=$ac_save_LIBS -+AC_SUBST([GETGROUPS_LIB]) -+ -+# Known severe bugs in getgroups on particular systems. -+# - On Ultrix 4.3 and NextSTEP 3.2, getgroups (0, 0) is reported to -+# fail, rather than returning the number of supplementary groups as -+# it ought to. We do not know the exact range of releases affected -+# in either case. -+# We currently reject all versions of the systems with known bugs, and -+# no other systems. Please send corrections to bug-autoconf@gnu.org. - if test $ac_cv_func_getgroups = yes; then -+ # This AC_CACHE_CHECK exists so that one may override an incorrect -+ # guess by setting ac_cv_func_getgroups_works in a config.site file. - AC_CACHE_CHECK([for working getgroups], ac_cv_func_getgroups_works, -- [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], -- [[/* On Ultrix 4.3, getgroups (0, 0) always fails. */ -- return getgroups (0, 0) == -1;]])], -- [ac_cv_func_getgroups_works=yes], -- [ac_cv_func_getgroups_works=no], -- [case "$host_os" in # (( -- # Guess yes on glibc systems. -- *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;; -- # If we don't know, assume the worst. -- *) ac_cv_func_getgroups_works="guessing no" ;; -- esac]) -- ]) -+ [AS_CASE([$host_os], -+ [ultrix* | nextstep*], -+ [ac_cv_func_getgroups_works=no # getgroups(0,0) fails -+], -+ [ac_cv_func_getgroups_works=yes])]) - else - ac_cv_func_getgroups_works=no - fi --case "$ac_cv_func_getgroups_works" in -- *yes) -- AC_DEFINE(HAVE_GETGROUPS, 1, -- [Define to 1 if your system has a working 'getgroups' function.]) -- ;; --esac --LIBS=$ac_save_LIBS -+if test $ac_cv_func_getgroups_works = yes; then -+ AC_DEFINE(HAVE_GETGROUPS, 1, -+ [Define to 1 if your system has a working 'getgroups' function.]) -+fi - ])# AC_FUNC_GETGROUPS - -- - # _AC_LIBOBJ_GETLOADAVG - # --------------------- - # Set up the AC_LIBOBJ replacement of 'getloadavg'. -diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4 -index ef2456135..af3872b2f 100644 ---- a/lib/autoconf/types.m4 -+++ b/lib/autoconf/types.m4 -@@ -258,44 +258,69 @@ AN_IDENTIFIER([ptrdiff_t], [AC_CHECK_TYPES]) - # AC_TYPE_GETGROUPS - # ----------------- - AC_DEFUN([AC_TYPE_GETGROUPS], -+dnl We now unconditionally assume that if <unistd.h> has a prototype for -+dnl getgroups, it is accurate; and that if <unistd.h> does _not_ declare -+dnl getgroups with a prototype, the second argument is an array of int. -+dnl (Older versions of Autoconf made these assumptions only when cross -+dnl compiling.) See AC_FUNC_GETGROUPS, over in functions.m4, for why -+dnl this uses AC_COMPILE_IFELSE rather than AC_LINK_IFELSE. - [AC_REQUIRE([AC_TYPE_UID_T])dnl --AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups, --[AC_RUN_IFELSE([AC_LANG_SOURCE( --[[/* Thanks to Mike Rendell for this test. */ --]AC_INCLUDES_DEFAULT[ --#define NGID 256 --#undef MAX --#define MAX(x, y) ((x) > (y) ? (x) : (y)) -- --int --main (void) --{ -- gid_t gidset[NGID]; -- int i, n; -- union { gid_t gval; long int lval; } val; -- -- val.lval = -1; -- for (i = 0; i < NGID; i++) -- gidset[i] = val.gval; -- n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, -- gidset); -- /* Exit non-zero if getgroups seems to require an array of ints. This -- happens when gid_t is short int but getgroups modifies an array -- of ints. */ -- return n > 0 && gidset[n] != val.gval; --}]])], -- [ac_cv_type_getgroups=gid_t], -- [ac_cv_type_getgroups=int], -- [ac_cv_type_getgroups=cross]) --if test $ac_cv_type_getgroups = cross; then -- dnl When we can't run the test program (we are cross compiling), presume -- dnl that <unistd.h> has either an accurate prototype for getgroups or none. -- dnl Old systems without prototypes probably use int. -- AC_EGREP_HEADER([getgroups.*int.*gid_t], unistd.h, -- ac_cv_type_getgroups=gid_t, ac_cv_type_getgroups=int) --fi]) -+AC_CACHE_CHECK([type of array argument to getgroups], ac_cv_type_getgroups, -+[# If AC_TYPE_UID_T says there isn't any gid_t typedef, then we can skip -+# everything below. -+AS_IF([test $ac_cv_type_gid_t = no], -+ [ac_cv_type_getgroups=int], -+ [# Test programs below rely on strict type checking of extern declarations: -+ # 'extern int getgroups(int, int *); extern int getgroups(int, pid_t *);' -+ # is valid in C89 if and only if pid_t is a typedef for int. Unlike -+ # anything involving either an assignment or a function call, compilers -+ # tend to make this kind of type mismatch a hard error, not just an -+ # "incompatible pointer types" warning. -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( -+[AC_INCLUDES_DEFAULT -+[extern int getgroups(int, gid_t *);]], -+[[return !(getgroups(0, 0) >= 0);]])], -+ [ac_getgroups_gidarray=yes], -+ [ac_getgroups_gidarray=no]) -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( -+[AC_INCLUDES_DEFAULT -+[extern int getgroups(int, int *);]], -+[[return !(getgroups(0, 0) >= 0);]])], -+ [ac_getgroups_intarray=yes], -+ [ac_getgroups_intarray=no]) -+ -+ AS_CASE([int:$ac_getgroups_intarray,gid:$ac_getgroups_gidarray], -+ [int:yes,gid:no], [ac_cv_type_getgroups=int], -+ [int:no,gid:yes], [ac_cv_type_getgroups=gid_t], -+ [int:yes,gid:yes], [ -+ # Both programs compiled - this means *either* that getgroups -+ # was declared with no prototype, in which case we should use int, -+ # or that it was declared prototyped but gid_t is a typedef for int, -+ # in which case we should use gid_t. Distinguish the two cases -+ # by testing if the compiler catches a blatantly incorrect function -+ # signature for getgroups. -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( -+[AC_INCLUDES_DEFAULT -+[extern int getgroups(int, float);]], -+[[return !(getgroups(0, 0) >= 0);]])], [ -+ # Compiler did not catch incorrect argument list; -+ # getgroups is unprototyped. -+ ac_cv_type_getgroups=int -+ ], [ -+ # Compiler caught incorrect argument list; -+ # gid_t is a typedef for int. -+ ac_cv_type_getgroups=gid_t -+ ]) -+ ], [ -+ # Both programs failed to compile - this probably means getgroups -+ # wasn't declared at all. Use 'int', as this is probably a very -+ # old system where the type _would have been_ int. -+ ac_cv_type_getgroups=int -+ ]) -+ ]) -+])dnl AC_CACHE_CHECK - AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_type_getgroups, -- [Define to the type of elements in the array set by -+ [Define to the type of elements in the array argument to - 'getgroups'. Usually this is either 'int' or 'gid_t'.]) - ])# AC_TYPE_GETGROUPS - -diff --git a/tests/local.at b/tests/local.at -index 64a9fb264..db49f84a9 100644 ---- a/tests/local.at -+++ b/tests/local.at -@@ -401,7 +401,7 @@ if test -f state-env.before && test -f state-env.after; then - [interpval|PATH_SEPARATOR], - [GFC|F77_DUMMY_MAIN|f77_(case|underscore)], - [FC(_DUMMY_MAIN|FLAGS|LIBS|FLAGS_[fF]|_MODEXT|_MODINC|_MODOUT|_DEFINE)?], -- [ALLOCA|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB], -+ [ALLOCA|GETGROUPS_LIB|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB], - [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|AR|RANLIB|SET_MAKE|YACC], - [EGREP_TRADITIONAL], - [GREP|[EF]GREP|SED], --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch deleted file mode 100644 index 2dadd83320..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch +++ /dev/null @@ -1,84 +0,0 @@ -From a7dc6d83c7d12b8409c512c3c10ad29f01e6c164 Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Sun, 2 Apr 2023 21:54:31 -0400 -Subject: [PATCH 13/29] Fold AC_C_STRINGIZE into AC_PROG_CC. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Another of the last few uses of AC_EGREP_CPP is to check for the ISO C -“stringification” operator. As this is a feature of C89, let’s fold -the test into the extensive C89 tests we already have, and make -AC_C_STRINGIZE just lean on AC_PROG_CC, in the same way -AC_C_PROTOTYPES does. - -* lib/autoconf/c.m4 (_AC_C_C89_TEST_GLOBALS): Add test of preprocessor - stringification and token pasting. - (AC_C_STRINGIZE): Just check ac_prog_cc_stdc. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/c.m4 | 31 ++++++++++++++++++++----------- - 1 file changed, 20 insertions(+), 11 deletions(-) - -diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 -index 33648b5b9..c8c6a665c 100644 ---- a/lib/autoconf/c.m4 -+++ b/lib/autoconf/c.m4 -@@ -1143,6 +1143,21 @@ static char *f (char * (*g) (char **, int), char **p, ...) - return s; - } - -+/* C89 style stringification. */ -+#define noexpand_stringify(a) #a -+const char *stringified = noexpand_stringify(arbitrary+token=sequence); -+ -+/* C89 style token pasting. Exercises some of the corner cases that -+ e.g. old MSVC gets wrong, but not very hard. */ -+#define noexpand_concat(a,b) a##b -+#define expand_concat(a,b) noexpand_concat(a,b) -+extern int vA; -+extern int vbee; -+#define aye A -+#define bee B -+int *pvA = &expand_concat(v,aye); -+int *pvbee = &noexpand_concat(v,bee); -+ - /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not \xHH hex character constants. - These do not provoke an error unfortunately, instead are silently treated -@@ -2112,16 +2127,10 @@ fi - # -------------- - # Checks if '#' can be used to glue strings together at the CPP level. - # Defines HAVE_STRINGIZE if positive. -+# Obsolete - new code should assume C89 compliance. - AC_DEFUN([AC_C_STRINGIZE], --[AC_CACHE_CHECK([for preprocessor stringizing operator], -- [ac_cv_c_stringize], --[AC_EGREP_CPP([@%:@teststring], -- [@%:@define x(y) #y -- --char *s = x(teststring);], -- [ac_cv_c_stringize=no], -- [ac_cv_c_stringize=yes])]) --if test $ac_cv_c_stringize = yes; then -+[AC_REQUIRE([AC_PROG_CC]) -+if test "$ac_prog_cc_stdc" != no; then - AC_DEFINE(HAVE_STRINGIZE, 1, - [Define to 1 if cpp supports the ANSI @%:@ stringizing operator.]) - fi -@@ -2130,8 +2139,8 @@ fi - - # AC_C_PROTOTYPES - # --------------- --# Check if the C compiler supports prototypes, included if it needs --# options. -+# Check if the C compiler supports prototypes. -+# Obsolete - new code should assume C89 compliance. - AC_DEFUN([AC_C_PROTOTYPES], - [AC_REQUIRE([AC_PROG_CC])dnl - if test "$ac_prog_cc_stdc" != no; then --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch deleted file mode 100644 index 85e9a45615..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch +++ /dev/null @@ -1,116 +0,0 @@ -From e25dfa75e18295d28de67747b4ff9d65f65c4f06 Mon Sep 17 00:00:00 2001 -From: Zack Weinberg <zackw@panix.com> -Date: Sun, 2 Apr 2023 22:17:55 -0400 -Subject: [PATCH 14/29] Remove the last few internal uses of AC_EGREP_CPP. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Most of the remaining uses were converted to AC_COMPILE_IFELSE. -The use in AC_FUNC_LOADAVG becomes an AC_PREPROC_IFELSE because -we can’t be sure getloadavg.c can be _compiled_ at this point in -the build. The use in AC_C_VARARRAYS could be either _PREPROC_ or -_COMPILE_; we use _COMPILE_ because, _PREPROC_ is never used, then -we don’t have to do the “checking how to run the C preprocessor” test. - -* lib/autoconf/c.m4 (AC_C_VARARRAYS): Use AC_COMPILE_IFELSE instead of - AC_EGREP_CPP. -* lib/autoconf/headers.m4 (_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H) - (_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL_H): Likewise. -* lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Use AC_PREPROC_IFELSE - instead of AC_EGREP_CPP. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/c.m4 | 8 ++++---- - lib/autoconf/functions.m4 | 10 +++++----- - lib/autoconf/headers.m4 | 24 ++++++++++-------------- - 3 files changed, 19 insertions(+), 23 deletions(-) - -diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 -index c8c6a665c..b8350c339 100644 ---- a/lib/autoconf/c.m4 -+++ b/lib/autoconf/c.m4 -@@ -2197,11 +2197,11 @@ AC_DEFUN([AC_C_VARARRAYS], - [ - AC_CACHE_CHECK([for variable-length arrays], - ac_cv_c_vararrays, -- [AC_EGREP_CPP([defined], -- [#ifdef __STDC_NO_VLA__ -- defined -+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE( -+[[ #ifndef __STDC_NO_VLA__ -+ #error __STDC_NO_VLA__ not defined - #endif -- ], -+]])], - [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( -diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 -index 74512e97d..499e4c024 100644 ---- a/lib/autoconf/functions.m4 -+++ b/lib/autoconf/functions.m4 -@@ -842,11 +842,11 @@ AC_CHECK_FUNCS(getloadavg, [], - # Some definitions of getloadavg require that the program be installed setgid. - AC_CACHE_CHECK(whether getloadavg requires setgid, - ac_cv_func_getloadavg_setgid, --[AC_EGREP_CPP([Yowza Am I SETGID yet], --[#include "$srcdir/$ac_config_libobj_dir/getloadavg.c" --#ifdef LDAV_PRIVILEGED --Yowza Am I SETGID yet --@%:@endif], -+[AC_PREPROC_IFELSE([AC_LANG_SOURCE( -+[[#include "$srcdir/$ac_config_libobj_dir/getloadavg.c" -+#ifndef LDAV_PRIVILEGED -+#error setgid not needed -+@%:@endif]])], - ac_cv_func_getloadavg_setgid=yes, - ac_cv_func_getloadavg_setgid=no)]) - if test $ac_cv_func_getloadavg_setgid = yes; then -diff --git a/lib/autoconf/headers.m4 b/lib/autoconf/headers.m4 -index 7f70e8fd4..19c124cc3 100644 ---- a/lib/autoconf/headers.m4 -+++ b/lib/autoconf/headers.m4 -@@ -721,13 +721,11 @@ you to include it and time.h simultaneously.]) - m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H], - [AC_CACHE_CHECK([whether termios.h defines TIOCGWINSZ], - ac_cv_sys_tiocgwinsz_in_termios_h, --[AC_EGREP_CPP([yes], -- [#include <sys/types.h> --#include <termios.h> --#ifdef TIOCGWINSZ -- yes --#endif --], -+[AC_COMPILE_IFELSE([AC_LANG_SOURCE( -+[AC_INCLUDES_DEFAULT -+[#include <termios.h> -+const int tiocgwinsz = TIOCGWINSZ; -+]])], - ac_cv_sys_tiocgwinsz_in_termios_h=yes, - ac_cv_sys_tiocgwinsz_in_termios_h=no)]) - ])# _AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H -@@ -738,13 +736,11 @@ m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H], - m4_define([_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL], - [AC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ], - ac_cv_sys_tiocgwinsz_in_sys_ioctl_h, --[AC_EGREP_CPP([yes], -- [#include <sys/types.h> --#include <sys/ioctl.h> --#ifdef TIOCGWINSZ -- yes --#endif --], -+[AC_COMPILE_IFELSE([AC_LANG_SOURCE( -+[AC_INCLUDES_DEFAULT -+[#include <sys/ioctl.h> -+const int tiocgwinsz = TIOCGWINSZ; -+]])], - ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes, - ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no)]) - ])# _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch deleted file mode 100644 index 36d1a94be6..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1982523c6f052a2b361035a9d5d9737510ed0738 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Mon, 3 Apr 2023 09:12:40 -0700 -Subject: [PATCH 15/29] Support circa early 2022 Gnulib - -Problem reported by Frederic Berat in: -https://lists.gnu.org/r/bug-rcs/2023-04/msg00001.html -* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES): -Bring back for compatibility with post-2.71, pre-2.73 Gnulib. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index a2dc5d488..5dc006959 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -277,6 +277,8 @@ m4_define([_AC_SYS_LARGEFILE_TEST_CODE], - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]];[]dnl - ]) -+# Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it. -+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [_AC_SYS_LARGEFILE_TEST_CODE]) - - # _AC_SYS_LARGEFILE_OPTIONS - # ------------------------- --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch deleted file mode 100644 index e96faf2666..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch +++ /dev/null @@ -1,121 +0,0 @@ -From a1e82aff0fd842b0f09e2cd166560dfda725ba13 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Sun, 9 Apr 2023 11:41:57 -0700 -Subject: [PATCH 16/29] Improve year2038, largefile option processing -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE) -(_AC_SYS_YEAR2038_ENABLE, _AC_SYS_YEAR2038_OPT_IN) -(AC_SYS_YEAR2038, _AC_SYS_LARGEFILE_PROBE) -(_AC_SYS_LARGEFILE_ENABLE): Do not use enable_largefile to record -whether largefile is required, as ‘./configure ---disable-largefile’ sets enable_largefile=no even if largefile is -required and this disables largefile. Instead, use a separate -shell variable ac_largefile_required and test it as well. -Similarly for enable_year2038. -(_AC_SYS_LARGEFILE_ENABLE): Omit --disable-largefile help string -if year2038 is required, since largefile is a prereq for year2038. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 35 ++++++++++++++++++++++------------- - 1 file changed, 22 insertions(+), 13 deletions(-) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index 5dc006959..1a3f4a65c 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -155,10 +155,10 @@ AS_CASE([$ac_cv_sys_year2038_opts], - ["none needed"], [], - ["support not detected"], - [ac_have_year2038=no -- AS_CASE([$enable_year2038], -- [required], -+ AS_CASE([$ac_year2038_required,$enable_year2038], -+ [yes,*], - [AC_MSG_FAILURE([support for timestamps after Jan 2038 is required])], -- [yes], -+ [*,yes], - [# If we're not cross compiling and 'touch' works with a large - # timestamp, then we can presume the system supports wider time_t - # *somehow* and we just weren't able to detect it. One common -@@ -209,10 +209,12 @@ AS_CASE([$ac_cv_sys_year2038_opts], - m4_define([_AC_SYS_YEAR2038_ENABLE], - [m4_divert_text([DEFAULTS], - m4_provide_if([AC_SYS_YEAR2038_REQUIRED], -- [enable_year2038=required], -+ [ac_year2038_required=yes], -+ [ac_year2038_required=no]))dnl -+m4_divert_text([DEFAULTS], - m4_provide_if([AC_SYS_YEAR2038], - [enable_year2038=yes], -- [enable_year2038=no])))]dnl -+ [enable_year2038=no]))]dnl - [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [], - [AC_ARG_ENABLE([year2038], - m4_provide_if([AC_SYS_YEAR2038], -@@ -231,7 +233,8 @@ m4_define([_AC_SYS_YEAR2038_ENABLE], - # documented macro. - AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN], - [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl -- AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE]) -+ AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no], -+ [_AC_SYS_YEAR2038_PROBE]) - AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) - ])]) - -@@ -244,7 +247,8 @@ AC_DEFUN([AC_SYS_YEAR2038], - [m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [], - [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl - [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl -- AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE]) -+ AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no], -+ [_AC_SYS_YEAR2038_PROBE]) - AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) - ])]) - -@@ -326,7 +330,7 @@ AS_CASE([$ac_cv_sys_largefile_opts], - ["none needed"], [], - ["support not detected"], - [ac_have_largefile=no -- AS_IF([test $enable_largefile = required], -+ AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no], - [AC_MSG_FAILURE([support for large files is required])])], - - ["-D_FILE_OFFSET_BITS=64"], -@@ -358,11 +362,15 @@ _AC_SYS_YEAR2038_OPT_IN - m4_define([_AC_SYS_LARGEFILE_ENABLE], - [m4_divert_text([DEFAULTS], - m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], -- [enable_largefile=required], -- [enable_largefile=yes]))]dnl -+ [ac_largefile_required=yes], -+ [ac_largefile_required=no]))dnl -+m4_divert_text([DEFAULTS], -+ [enable_largefile=yes])]dnl - [m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [], --[AC_ARG_ENABLE([largefile], -- [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])]) -+ [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [], -+ [AC_ARG_ENABLE([largefile], -+ [AS_HELP_STRING([--disable-largefile], -+ [omit support for large files])])])])]) - - # AC_SYS_LARGEFILE - # ---------------- -@@ -377,7 +385,8 @@ m4_define([_AC_SYS_LARGEFILE_ENABLE], - # large files; see also AC_SYS_LARGEFILE_REQUIRED. - AC_DEFUN([AC_SYS_LARGEFILE], - [m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl -- AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE]) -+ AS_IF([test "$ac_largefile_required,$enable_largefile,$ac_year2038_required" != no,no,no], -+ [_AC_SYS_LARGEFILE_PROBE]) - AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE]) - ])]) - --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch deleted file mode 100644 index f62fe1cd79..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0cc3c4ca8e6c550bf590ae45a916982b6ec50203 Mon Sep 17 00:00:00 2001 -From: Bruno Haible <bruno@clisp.org> -Date: Fri, 14 Apr 2023 16:18:35 +0200 -Subject: [PATCH 17/29] AC_SYS_YEAR2038: Fix configure failure on 32-bit mingw. - -* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE): Use the same option -spelling as in _AC_SYS_YEAR2038_OPTIONS. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index 1a3f4a65c..3bf1a0ed1 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -182,7 +182,7 @@ AS_CASE([$ac_cv_sys_year2038_opts], - [AC_DEFINE([_TIME_BITS], [64], - [Number of bits in time_t, on hosts where this is settable.])], - -- ["-D__MINGW_USE_VC2005_COMPAT=1"], -+ ["-D__MINGW_USE_VC2005_COMPAT"], - [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1], - [Define to 1 on platforms where this makes time_t a 64-bit type.])], - --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch deleted file mode 100644 index 478c4e4229..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch +++ /dev/null @@ -1,45 +0,0 @@ -From e704a13c9644f4f4b9a9dd4e215ee7a1707f5850 Mon Sep 17 00:00:00 2001 -From: Bruno Haible <bruno@clisp.org> -Date: Fri, 3 Mar 2023 14:32:13 +0100 -Subject: [PATCH 18/29] Document limitation of BusyBox tr. - -BusyBox 1.35.0 tr, which is shipped with Alpine Linux 3.17, does not support -the POSIX [x*n] syntax. - -* doc/autoconf.texi (Limitations of Usual Tools): Document limitation of 'tr' -from BusyBox. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - doc/autoconf.texi | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index 5d5f613e6..b3c708e87 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -20368,6 +20368,20 @@ $ @kbd{echo abc | coreutils/tr bc d} - add - @end example - -+On platforms with the BusyBox tools, @command{tr} does not support the -+@code{[@var{x}*@var{n}]} option syntax. -+ -+@example -+$ @kbd{echo abc | tr 'abcd' '[A*4]'} -+[A* -+$ @kbd{echo abc | coreutils/tr 'abcd' '[A*4]'} -+AAA -+$ @kbd{echo xyz | tr 'a-z' '[A*]'} -+]]] -+$ @kbd{echo xyz | coreutils/tr 'a-z' '[A*]'} -+AAA -+@end example -+ - Posix requires @command{tr} to operate on binary files. But at least - Solaris @command{/usr/ucb/tr} and @command{/usr/bin/tr} silently discard - @code{NUL} in the input prior to doing any translation. When using --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch deleted file mode 100644 index db9307e13c..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 2277f2c15744ad1cc5cd1ecc50a43108e50530a2 Mon Sep 17 00:00:00 2001 -From: Bruno Haible <bruno@clisp.org> -Date: Wed, 19 Apr 2023 14:17:24 -0700 -Subject: [PATCH 19/29] AC_SYS_YEAR2038_REQUIRED: Fix configure failure with - MSVC. - -* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_PROBE): Distinguish the results -"support not detected" and "supported through gnulib". If the result is -"supported through gnulib", don't fail. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index 3bf1a0ed1..f411695fe 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -323,11 +323,24 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE], - test $ac_opt_found = no || break - done - CC="$ac_save_CC" -+ dnl Gnulib implements large file support for native Windows, based on the -+ dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE. -+ m4_ifdef([gl_LARGEFILE], [ -+ AC_REQUIRE([AC_CANONICAL_HOST]) -+ if test $ac_opt_found != yes; then -+ AS_CASE([$host_os], -+ [mingw*], -+ [ac_cv_sys_largefile_opts="supported through gnulib" -+ ac_opt_found=yes] -+ ) -+ fi -+ ]) - test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"]) - - ac_have_largefile=yes - AS_CASE([$ac_cv_sys_largefile_opts], - ["none needed"], [], -+ ["supported through gnulib"], [], - ["support not detected"], - [ac_have_largefile=no - AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no], --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch deleted file mode 100644 index cbd89cc3ba..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch +++ /dev/null @@ -1,405 +0,0 @@ -From 9c0183724614517a67d0955065171465bab7154a Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Wed, 26 Apr 2023 18:21:48 -0700 -Subject: [PATCH 20/29] Tone down year-2038 changes - -New macro AC_SYS_YEAR2038_RECOMMENDED replaces new macro -AC_SYS_YEAR2038_REQUIRED, and gives the builder an out of -specifying --disable-year2038. Remove new macro -AC_SYS_LARGEFILE_REQUIRED, which was added only for symmetry and -does not seem to have a great need. -* NEWS, doc/autoconf.texi: Document this. -* lib/autoconf/specific.m4: -Be more specific about mid-January 2038 than just Jan 2038. -(_AC_SYS_YEAR2038_PROBE): Ignore IF-NOT-DETECTED arg. -If support is not detected, merely set ac_have_year2038=no instead -of erroring out. All callers changed. -(_AC_SYS_YEAR2038_OPT_IN): Remove. All callers removed. -(AC_SYS_YEAR2038): Simplify by requiring AC_SYS_LARGEFILE -and then testing the result. -(AC_SYS_YEAR2038_REQUIRED, AC_SYS_LARGEFILE_REQUIRED): Remove. -(AC_SYS_YEAR2038_RECOMMENDED): New macro. -(_AC_SYS_LARGEFILE_PROBE): If support is not detected, merely set -ac_have_largefile=no instead of erroring out. All callers changed. -Take on the burden of invoking year2038 probe as needed. -(AC_SYS_LARGEFILE): Simplify. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - NEWS | 18 ++-- - doc/autoconf.texi | 34 +++----- - lib/autoconf/specific.m4 | 177 +++++++++++---------------------------- - 3 files changed, 69 insertions(+), 160 deletions(-) - -diff --git a/NEWS b/NEWS -index 8e4ecc1bf..a48a00858 100644 ---- a/NEWS -+++ b/NEWS -@@ -51,7 +51,7 @@ GNU Autoconf NEWS - User visible changes. - - ** New features - --*** New macro AC_SYS_YEAR2038. -+*** New macros AC_SYS_YEAR2038 and AC_SYS_YEAR2038_RECOMMENDED. - This causes 'configure' to widen time_t if possible on systems where - time_t by default cannot represent file and other timestamps after - January 2038. Widening is possible only on 32-bit GNU/Linux x86 and -@@ -67,18 +67,14 @@ GNU Autoconf NEWS - User visible changes. - This is similar to longstanding consistency requirements with - --enable-largefile and --disable-largefile. - -+ AC_SYS_YEAR2038_RECOMMENDED acts like AC_SYS_YEAR2038 except that -+ 'configure' fails if the target lacks support for post-2038 -+ timestamps and --disable-year2038 is not given. -+ - *** AC_SYS_LARGEFILE now optionally arranges to widen time_t. - It now acts like AC_SYS_YEAR2038, except 'configure' defaults to -- --disable-year2038 unless AC_SYS_YEAR2038 is also present. -- As with AC_SYS_YEAR2038, application and library builders should -- configure consistently. -- --*** New macros AC_SYS_LARGEFILE_REQUIRED and AC_SYS_YEAR2038_REQUIRED. -- These act like AC_SYS_LARGEFILE and AC_SYS_YEAR2038 respectively, -- except that 'configure' fails if the target lacks support -- for large files and for post-2038 timestamps, respectively. -- As with AC_SYS_YEAR2038, application and library builders should -- configure consistently. -+ --disable-year2038 unless either AC_SYS_YEAR2038 or -+ AC_SYS_YEAR2038_RECOMMENDED is also present. - - *** AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F extensions - by defining __STDC_WANT_IEC_60559_EXT__. -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index b3c708e87..0f3047b31 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -8808,18 +8808,20 @@ if possible. These types may include @code{blkcnt_t}, @code{dev_t}, - - Also, arrange for a @command{configure} option @code{--enable-year2038} - to request widening the type @code{time_t} as needed to represent file --wand other timestamps after January 2038. This widening is possible -+wand other timestamps after mid-January 2038. This widening is possible - only on 32-bit GNU/Linux x86 and ARM systems with glibc 2.34 or later. - If year-2038 support is requested but @command{configure} fails to find a way - to widen @code{time_t} and inspection of the system suggests that - this feature is available somehow, @command{configure} will error out. - If you want the default to be @code{--enable-year2038}, you can use --@code{AC_SYS_YEAR2038} instead of @code{AC_SYS_LARGEFILE}. -+@code{AC_SYS_YEAR2038} or @code{AC_SYS_YEAR2038_RECOMMENDED} -+instead of @code{AC_SYS_LARGEFILE}. - In other words, older packages that have long used @code{AC_SYS_LARGEFILE} - can have year-2038 support on 32-bit GNU/Linux x86 and ARM systems either by - regenerating @file{configure} with current Autoconf and configuring with --@option{--enable-year2038}, or by using @code{AC_SYS_YEAR2038} and --configuring without @option{--disable-year2038}. -+@option{--enable-year2038}, or by using @code{AC_SYS_YEAR2038} or -+@code{AC_SYS_YEAR2038_RECOMMENDED} and configuring without -+@option{--disable-year2038}. - A future version of Autoconf might change the @code{AC_SYS_LARGEFILE} - default to @code{--enable-year2038}; if and when that happens, - @code{AC_SYS_LARGEFILE} and @code{AC_SYS_YEAR2038} will become equivalent. -@@ -8886,19 +8888,6 @@ library, enabling or disabling the application's large-file support may - break binary compatibility with that library. - @end defmac - --@defmac AC_SYS_LARGEFILE_REQUIRED --@acindex{SYS_LARGEFILE_REQUIRED} --This macro has the same effect as @code{AC_SYS_LARGEFILE}, --but also declares that the program being configured --requires support for large files. --If a large @code{off_t} is unavailable, --@command{configure} will error out. --The @option{--disable-largefile} option will not be available. -- --Large-file and year-2038 support for applications and libraries should --be configured compatibly. @xref{AC_SYS_LARGEFILE}. --@end defmac -- - @anchor{AC_SYS_LONG_FILE_NAMES} - @defmac AC_SYS_LONG_FILE_NAMES - @acindex{SYS_LONG_FILE_NAMES} -@@ -8927,14 +8916,13 @@ applications and libraries should be configured compatibly. - @xref{AC_SYS_LARGEFILE}. - @end defmac - --@defmac AC_SYS_YEAR2038_REQUIRED --@acindex{SYS_YEAR2038_REQUIRED} -+@defmac AC_SYS_YEAR2038_RECOMMENDED -+@acindex{SYS_YEAR2038_RECOMMENDED} - This macro has the same effect as @code{AC_SYS_YEAR2038}, - but also declares that the program being configured --requires support for timestamps after mid-January of 2038. --If a large @code{time_t} is unavailable, --@command{configure} will unconditionally error out. --The @option{--disable-year2038} option will not be available. -+should support timestamps after mid-January 2038. -+If a large @code{time_t} is unavailable, @command{configure} will error -+out unless the @option{--disable-year2038} option is specified. - - Year-2038 support for applications and libraries should be configured - compatibly. @xref{AC_SYS_YEAR2038}. -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index f411695fe..88e0479e8 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -115,8 +115,8 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize( - dnl 32-bit MinGW (misconfiguration) - )) - --# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED]) --# ----------------------------------------- -+# _AC_SYS_YEAR2038_PROBE -+# ---------------------- - # Subroutine of AC_SYS_YEAR2038. Probe for time_t that can represent - # time points more than 2**31 - 1 seconds after the epoch (dates after - # 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts -@@ -129,13 +129,10 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize( - # AC_TRY_RUN. Note also that some systems only support large time_t - # together with large off_t. - # --# If support is not detected, the behavior depends on which of the --# top-level AC_SYS_YEAR2038 macros was used (see below). --# - # If you change this macro you may also need to change - # _AC_SYS_YEAR2038_OPTIONS. - AC_DEFUN([_AC_SYS_YEAR2038_PROBE], --[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038], -+[AC_CACHE_CHECK([for $CC option for timestamps after 2038], - [ac_cv_sys_year2038_opts], - [ac_save_CPPFLAGS="$CPPFLAGS" - ac_opt_found=no -@@ -154,29 +151,7 @@ ac_have_year2038=yes - AS_CASE([$ac_cv_sys_year2038_opts], - ["none needed"], [], - ["support not detected"], -- [ac_have_year2038=no -- AS_CASE([$ac_year2038_required,$enable_year2038], -- [yes,*], -- [AC_MSG_FAILURE([support for timestamps after Jan 2038 is required])], -- [*,yes], -- [# If we're not cross compiling and 'touch' works with a large -- # timestamp, then we can presume the system supports wider time_t -- # *somehow* and we just weren't able to detect it. One common -- # case that we deliberately *don't* probe for is a system that -- # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers -- # wide time_t. (It would be inappropriate for us to override an -- # intentional use of -m32.) Error out, demanding use of -- # --disable-year2038 if this is intentional. -- AS_IF([test $cross_compiling = no], -- [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null], -- [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`], -- [*'Feb 7 2106'* | *'Feb 7 17:10'*], -- [AC_MSG_FAILURE(m4_text_wrap( -- [this system appears to support timestamps after January 2038, -- but no mechanism for enabling wide 'time_t' was detected. -- Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.) -- To proceed with 32-bit time_t, configure with '--disable-year2038'.], -- [], [], [55]))])])])])], -+ [ac_have_year2038=no], - - ["-D_TIME_BITS=64"], - [AC_DEFINE([_TIME_BITS], [64], -@@ -189,7 +164,7 @@ AS_CASE([$ac_cv_sys_year2038_opts], - ["-U_USE_32_BIT_TIME_T"*], - [AC_MSG_FAILURE(m4_text_wrap( - [the 'time_t' type is currently forced to be 32-bit. -- It will stop working after January 2038. -+ It will stop working after mid-January 2038. - Remove _USE_32BIT_TIME_T from the compiler flags.], - [], [], [55]))], - -@@ -199,44 +174,23 @@ AS_CASE([$ac_cv_sys_year2038_opts], - - # _AC_SYS_YEAR2038_ENABLE - # ----------------------- --# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN. - # Depending on which of the YEAR2038 macros was used, add either an --# --enable-year2038, or a --disable-year2038, or no option at all to --# the configure script. Note that this is expanded very late and -+# --enable-year2038 or a --disable-year2038 to -+# the configure script. This is expanded very late and - # therefore there cannot be any code in the AC_ARG_ENABLE. The - # default value for 'enable_year2038' is emitted unconditionally - # because the generated code always looks at this variable. - m4_define([_AC_SYS_YEAR2038_ENABLE], - [m4_divert_text([DEFAULTS], -- m4_provide_if([AC_SYS_YEAR2038_REQUIRED], -- [ac_year2038_required=yes], -- [ac_year2038_required=no]))dnl --m4_divert_text([DEFAULTS], - m4_provide_if([AC_SYS_YEAR2038], - [enable_year2038=yes], - [enable_year2038=no]))]dnl --[m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [], - [AC_ARG_ENABLE([year2038], - m4_provide_if([AC_SYS_YEAR2038], - [AS_HELP_STRING([--disable-year2038], -- [omit support for dates after Jan 2038])], -+ [don't support timestamps after 2038])], - [AS_HELP_STRING([--enable-year2038], -- [include support for dates after Jan 2038])]))])]) -- --# _AC_SYS_YEAR2038_OPT_IN --# ----------------------- --# If the --enable-year2038 option is given to configure, attempt to --# detect and activate support for large time_t on 32-bit systems. --# This macro is automatically invoked by AC_SYS_LARGEFILE when large --# *file* support is detected. It does not AC_REQUIRE AC_SYS_LARGEFILE --# to avoid a dependency loop, and is therefore unsafe to expose as a --# documented macro. --AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN], --[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl -- AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no], -- [_AC_SYS_YEAR2038_PROBE]) -- AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) --])]) -+ [support timestamps after 2038])]))]) - - # AC_SYS_YEAR2038 - # --------------- -@@ -244,28 +198,39 @@ AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN], - # On systems where time_t is not always 64 bits, this probe can be - # skipped by passing the --disable-year2038 option to configure. - AC_DEFUN([AC_SYS_YEAR2038], --[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [], -- [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl --[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl -- AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no], -- [_AC_SYS_YEAR2038_PROBE]) -- AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) --])]) -- --# AC_SYS_YEAR2038_REQUIRED --# ------------------------ --# Same as AC_SYS_YEAR2038, but declares that this program *requires* --# support for large time_t. If we cannot find any way to make time_t --# capable of representing values larger than 2**31 - 1, configure will --# error out. Furthermore, no --enable-year2038 nor --disable-year2038 --# option will be available. --AC_DEFUN([AC_SYS_YEAR2038_REQUIRED], --[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [], -- [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl --[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl -- _AC_SYS_YEAR2038_PROBE -- AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE]) --])]) -+[AC_REQUIRE([AC_SYS_LARGEFILE])dnl -+AS_IF([test "$enable_year2038,$ac_have_year2038,$cross_compiling" = yes,no,no], -+ [# If we're not cross compiling and 'touch' works with a large -+ # timestamp, then we can presume the system supports wider time_t -+ # *somehow* and we just weren't able to detect it. One common -+ # case that we deliberately *don't* probe for is a system that -+ # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers -+ # wide time_t. (It would be inappropriate for us to override an -+ # intentional use of -m32.) Error out, demanding use of -+ # --disable-year2038 if this is intentional. -+ AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null], -+ [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`], -+ [*'Feb 7 2106'* | *'Feb 7 17:10'*], -+ [AC_MSG_FAILURE(m4_text_wrap( -+ [this system appears to support timestamps after mid-January 2038, -+ but no mechanism for enabling wide 'time_t' was detected. -+ Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.) -+ To proceed with 32-bit time_t, configure with '--disable-year2038'.], -+ [], [], [55]))])])])]) -+ -+# AC_SYS_YEAR2038_RECOMMENDED -+# --------------------------- -+# Same as AC_SYS_YEAR2038, but recommend support for large time_t. -+# If we cannot find any way to make time_t capable of representing -+# values larger than 2**31 - 1, error out unless --disable-year2038 is given. -+AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED], -+[AC_REQUIRE([AC_SYS_YEAR2038])dnl -+AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no], -+ [AC_MSG_FAILURE(m4_text_wrap( -+ [could not enable timestamps after mid-January 2038. -+ Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.) -+ To proceed with 32-bit time_t, configure with '--disable-year2038'.], -+ [], [], [55]))])]) - - # _AC_SYS_LARGEFILE_TEST_CODE - # --------------------------- -@@ -342,9 +307,7 @@ AS_CASE([$ac_cv_sys_largefile_opts], - ["none needed"], [], - ["supported through gnulib"], [], - ["support not detected"], -- [ac_have_largefile=no -- AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no], -- [AC_MSG_FAILURE([support for large files is required])])], -+ [ac_have_largefile=no], - - ["-D_FILE_OFFSET_BITS=64"], - [AC_DEFINE([_FILE_OFFSET_BITS], [64], -@@ -360,30 +323,9 @@ AS_CASE([$ac_cv_sys_largefile_opts], - [AC_MSG_ERROR( - [internal error: bad value for \$ac_cv_sys_largefile_opts])]) - --_AC_SYS_YEAR2038_OPT_IN --]) -- --# _AC_SYS_LARGEFILE_ENABLE --# ------------------------ --# Subroutine of AC_SYS_LARGEFILE. If AC_SYS_LARGEFILE_REQUIRED was --# not used at any point in this configure script, add a --# --disable-largefile option to the configure script. Note that this --# is expanded very late and therefore there cannot be any code in the --# AC_ARG_ENABLE. The default value for 'enable_largefile' is emitted --# unconditionally because the generated shell code always looks at --# this variable. --m4_define([_AC_SYS_LARGEFILE_ENABLE], --[m4_divert_text([DEFAULTS], -- m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], -- [ac_largefile_required=yes], -- [ac_largefile_required=no]))dnl --m4_divert_text([DEFAULTS], -- [enable_largefile=yes])]dnl --[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [], -- [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [], -- [AC_ARG_ENABLE([largefile], -- [AS_HELP_STRING([--disable-largefile], -- [omit support for large files])])])])]) -+AS_IF([test "$enable_year2038" != no], -+ [_AC_SYS_YEAR2038_PROBE]) -+AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])]) - - # AC_SYS_LARGEFILE - # ---------------- -@@ -394,29 +336,12 @@ m4_divert_text([DEFAULTS], - # Additionally, on Linux file systems with 64-bit inodes a file that happens - # to have a 64-bit inode number cannot be accessed by 32-bit applications on - # Linux x86/x86_64. This can occur with file systems such as XFS and NFS. --# This macro allows configuration to continue if the system doesn't support --# large files; see also AC_SYS_LARGEFILE_REQUIRED. - AC_DEFUN([AC_SYS_LARGEFILE], --[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl -- AS_IF([test "$ac_largefile_required,$enable_largefile,$ac_year2038_required" != no,no,no], -- [_AC_SYS_LARGEFILE_PROBE]) -- AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE]) --])]) -- --# AC_SYS_LARGEFILE_REQUIRED --# ------------------------- --# Same as AC_SYS_LARGEFILE, but declares that this program *requires* --# support for large files. If we cannot find a combination of compiler --# options and #defines that makes 'off_t' capable of representing 2**63 - 1, --# 'configure' will error out. Furthermore, 'configure' will not offer a --# --disable-largefile command line option. --# If both AC_SYS_LARGEFILE and AC_SYS_LARGEFILE_REQUIRED are used in the --# same configure script -- in either order -- AC_SYS_LARGEFILE_REQUIRED wins. --AC_DEFUN([AC_SYS_LARGEFILE_REQUIRED], --[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl -- _AC_SYS_LARGEFILE_PROBE -- AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE]) --])]) -+[AC_ARG_ENABLE([largefile], -+ [AS_HELP_STRING([--disable-largefile], -+ [omit support for large files])])dnl -+AS_IF([test "$enable_largefile,$enable_year2038" != no,no], -+ [_AC_SYS_LARGEFILE_PROBE])]) - - # AC_SYS_LONG_FILE_NAMES - # ---------------------- --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch deleted file mode 100644 index 56bcbb6ca1..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 028526149ee804617a302ccef22cc6adbda681b0 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Wed, 10 May 2023 17:20:49 -0700 -Subject: [PATCH 21/29] Port AC_FUNC_MMAP to more-modern systems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Don’t call -getpagesize, as it’s tricky to configure, modern POSIX doesn’t -require it, and calling it without including <unistd.h> provokes a -compile-time error on modern systems. Instead, rework the test -to not need getpagesize. Add a FIXME comment for unnecessary -tests; I don't want to remove them now as we're too close to -a release. Remove long-obsolete comment about GNU grep. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/functions.m4 | 44 +++++---------------------------------- - 1 file changed, 5 insertions(+), 39 deletions(-) - -diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 -index 499e4c024..5a0f01856 100644 ---- a/lib/autoconf/functions.m4 -+++ b/lib/autoconf/functions.m4 -@@ -1283,6 +1283,7 @@ AU_ALIAS([AM_FUNC_MKTIME], [AC_FUNC_MKTIME]) - AN_FUNCTION([mmap], [AC_FUNC_MMAP]) - AC_DEFUN([AC_FUNC_MMAP], - [AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles -+dnl FIXME: Remove the unnecessary checks for unistd.h, sys/param.h, getpagesize. - AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) - AC_CHECK_FUNCS_ONCE([getpagesize]) - AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped], -@@ -1305,48 +1306,11 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped], - VM page cache was not coherent with the file system buffer cache - like early versions of FreeBSD and possibly contemporary NetBSD.) - For shared mappings, we should conversely verify that changes get -- propagated back to all the places they're supposed to be. -- -- Grep wants private fixed already mapped. -- The main things grep needs to know about mmap are: -- * does it exist and is it safe to write into the mmap'd area -- * how to use it (BSD variants) */ -+ propagated back to all the places they're supposed to be. */ - - #include <fcntl.h> - #include <sys/mman.h> - --/* This mess was copied from the GNU getpagesize.h. */ --#ifndef HAVE_GETPAGESIZE --# ifdef _SC_PAGESIZE --# define getpagesize() sysconf(_SC_PAGESIZE) --# else /* no _SC_PAGESIZE */ --# ifdef HAVE_SYS_PARAM_H --# include <sys/param.h> --# ifdef EXEC_PAGESIZE --# define getpagesize() EXEC_PAGESIZE --# else /* no EXEC_PAGESIZE */ --# ifdef NBPG --# define getpagesize() NBPG * CLSIZE --# ifndef CLSIZE --# define CLSIZE 1 --# endif /* no CLSIZE */ --# else /* no NBPG */ --# ifdef NBPC --# define getpagesize() NBPC --# else /* no NBPC */ --# ifdef PAGESIZE --# define getpagesize() PAGESIZE --# endif /* PAGESIZE */ --# endif /* no NBPC */ --# endif /* no NBPG */ --# endif /* no EXEC_PAGESIZE */ --# else /* no HAVE_SYS_PARAM_H */ --# define getpagesize() 8192 /* punt totally */ --# endif /* no HAVE_SYS_PARAM_H */ --# endif /* no _SC_PAGESIZE */ -- --#endif /* no HAVE_GETPAGESIZE */ -- - int - main (void) - { -@@ -1355,7 +1319,9 @@ main (void) - int i, pagesize; - int fd, fd2; - -- pagesize = getpagesize (); -+ /* The "page size" need not equal the system page size, -+ and need not even be a power of 2. */ -+ pagesize = 8192; - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch deleted file mode 100644 index 1b168c7b55..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 33c26d2700f927432c756ccf7a4fc89403d35b95 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Wed, 10 May 2023 22:57:27 -0700 -Subject: [PATCH 22/29] Fix port of AC_FUNC_MMAP -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Problem reported by Matt Turner in: -https://lists.gnu.org/r/bug-autoconf/2023-05/msg00005.html -* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Go back to getting the -page size, since the zero-fill test needs this after all. -However, prefer sysconf (_SC_PAGESIZE) or sysconf (_SC_PAGE_SIZE) -to getpagesize (), and use ‘long’ not ‘int’ to store the page size. -Also, declare getpagesize if it is used as a function. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/functions.m4 | 41 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 36 insertions(+), 5 deletions(-) - -diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 -index 5a0f01856..3d6e4aca8 100644 ---- a/lib/autoconf/functions.m4 -+++ b/lib/autoconf/functions.m4 -@@ -1283,7 +1283,6 @@ AU_ALIAS([AM_FUNC_MKTIME], [AC_FUNC_MKTIME]) - AN_FUNCTION([mmap], [AC_FUNC_MMAP]) - AC_DEFUN([AC_FUNC_MMAP], - [AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles --dnl FIXME: Remove the unnecessary checks for unistd.h, sys/param.h, getpagesize. - AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) - AC_CHECK_FUNCS_ONCE([getpagesize]) - AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped], -@@ -1311,17 +1310,49 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped], - #include <fcntl.h> - #include <sys/mman.h> - -+#ifndef getpagesize -+# ifdef _SC_PAGESIZE -+# define getpagesize() sysconf (_SC_PAGESIZE) -+# elif defined _SC_PAGE_SIZE -+# define getpagesize() sysconf (_SC_PAGE_SIZE) -+# elif HAVE_GETPAGESIZE -+int getpagesize (); -+# else -+# ifdef HAVE_SYS_PARAM_H -+# include <sys/param.h> -+# ifdef EXEC_PAGESIZE -+# define getpagesize() EXEC_PAGESIZE -+# else /* no EXEC_PAGESIZE */ -+# ifdef NBPG -+# define getpagesize() NBPG * CLSIZE -+# ifndef CLSIZE -+# define CLSIZE 1 -+# endif /* no CLSIZE */ -+# else /* no NBPG */ -+# ifdef NBPC -+# define getpagesize() NBPC -+# else /* no NBPC */ -+# ifdef PAGESIZE -+# define getpagesize() PAGESIZE -+# endif /* PAGESIZE */ -+# endif /* no NBPC */ -+# endif /* no NBPG */ -+# endif /* no EXEC_PAGESIZE */ -+# else /* no HAVE_SYS_PARAM_H */ -+# define getpagesize() 8192 /* punt totally */ -+# endif /* no HAVE_SYS_PARAM_H */ -+# endif -+#endif -+ - int - main (void) - { - char *data, *data2, *data3; - const char *cdata2; -- int i, pagesize; -+ long i, pagesize; - int fd, fd2; - -- /* The "page size" need not equal the system page size, -- and need not even be a power of 2. */ -- pagesize = 8192; -+ pagesize = getpagesize (); - - /* First, make a file with some known garbage in it. */ - data = (char *) malloc (pagesize); --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch deleted file mode 100644 index 9fb33c3196..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch +++ /dev/null @@ -1,38 +0,0 @@ -From ccc0d640c4d829504568330f9674408af5092ffc Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Sat, 13 May 2023 09:56:33 -0700 -Subject: [PATCH 23/29] Improve AC_SYS_YEAR2038_RECOMMENDED diagnostic - -* lib/autoconf/specific.m4 (AC_SYS_YEAR2038_RECOMMENDED): -Do not recommend gcc -m64, as that likely will not work. -Problem reported by Bruno Haible in: -https://lists.gnu.org/r/bug-gnulib/2023-05/msg00060.html -Instead, mention that 32-bit time_t is not recommended -for this package, before telling the builder how -to configure with 32-bit time_t anyway. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index 88e0479e8..91f20bf0d 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -228,8 +228,9 @@ AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED], - AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no], - [AC_MSG_FAILURE(m4_text_wrap( - [could not enable timestamps after mid-January 2038. -- Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.) -- To proceed with 32-bit time_t, configure with '--disable-year2038'.], -+ This package recommends support for these later timestamps. -+ However, to proceed with signed 32-bit time_t even though it -+ will fail then, configure with '--disable-year2038'.], - [], [], [55]))])]) - - # _AC_SYS_LARGEFILE_TEST_CODE --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch deleted file mode 100644 index 2644c57836..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8e7281d7bebb5e389befe6e9a5afbb7b2ae13ae0 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Wed, 17 May 2023 11:50:27 -0700 -Subject: [PATCH 24/29] Improve AC_FUNC_MMAP comments - -* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Add comment. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/functions.m4 | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 -index 3d6e4aca8..54d04cc38 100644 ---- a/lib/autoconf/functions.m4 -+++ b/lib/autoconf/functions.m4 -@@ -1311,6 +1311,8 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped], - #include <sys/mman.h> - - #ifndef getpagesize -+/* Prefer sysconf to the legacy getpagesize function, as getpagesize has -+ been removed from POSIX and is limited to page sizes that fit in 'int'. */ - # ifdef _SC_PAGESIZE - # define getpagesize() sysconf (_SC_PAGESIZE) - # elif defined _SC_PAGE_SIZE --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch deleted file mode 100644 index b7affed40d..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 103514e40da5f20aebf83a3446452ccebe5172bb Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Mon, 19 Jun 2023 14:04:29 -0700 -Subject: [PATCH 25/29] Fix AC_SYS_LARGEFILE on GNU/Linux alpha, s390x - -Problem reported by Matoro <https://bugs.gnu.org/64123>. -* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_CODE): -New overridable macro FTYPE, to test types other than off_t. -(_AC_SYS_LARGEFILE_TEST_CODE): Test ino_t for --D_FILE_OFFSETBITS=64 too, if no flags are needed for off_t. -Needed for GNU/Linux on alpha and s390x. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/autoconf/specific.m4 | 21 +++++++++++++++------ - 1 file changed, 15 insertions(+), 6 deletions(-) - -diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4 -index 91f20bf0d..9d5974548 100644 ---- a/lib/autoconf/specific.m4 -+++ b/lib/autoconf/specific.m4 -@@ -238,13 +238,16 @@ AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no], - # C code used to probe for large file support. - m4_define([_AC_SYS_LARGEFILE_TEST_CODE], - [@%:@include <sys/types.h> -- /* Check that off_t can represent 2**63 - 1 correctly. -- We can't simply define LARGE_OFF_T to be 9223372036854775807, -+@%:@ifndef FTYPE -+@%:@ define FTYPE off_t -+@%:@endif -+ /* Check that FTYPE can represent 2**63 - 1 correctly. -+ We can't simply define LARGE_FTYPE to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ --@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) -- int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 -- && LARGE_OFF_T % 2147483647 == 1) -+@%:@define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31)) -+ int FTYPE_is_large[[(LARGE_FTYPE % 2147483629 == 721 -+ && LARGE_FTYPE % 2147483647 == 1) - ? 1 : -1]];[]dnl - ]) - # Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it. -@@ -284,7 +287,13 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE], - AS_IF([test x"$ac_opt" != x"none needed"], - [CC="$ac_save_CC $ac_opt"]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])], -- [ac_cv_sys_largefile_opts="$ac_opt" -+ [AS_IF([test x"$ac_opt" = x"none needed"], -+ [# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t. -+ CC="$CC -DFTYPE=ino_t" -+ AC_COMPILE_IFELSE([], [], -+ [CC="$CC -D_FILE_OFFSET_BITS=64" -+ AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])]) -+ ac_cv_sys_largefile_opts=$ac_opt - ac_opt_found=yes]) - test $ac_opt_found = no || break - done --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch deleted file mode 100644 index 8d2539611d..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch +++ /dev/null @@ -1,270 +0,0 @@ -From a7421b411b4359b97528c8f4e9dd8abe82235813 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Tue, 20 Jun 2023 13:23:19 -0700 -Subject: [PATCH 26/29] Modernize INSTALL - -Problem reported for gettext bootstrap by Julien Palard in: -https://savannah.gnu.org/bugs/?62196 -* doc/install.texi: Give a brief info as to how to bootstrap, -on packages built from Git rather from a distribution tarball. -Remove aging details about c99, macOS, X, HP-UX, OSF/1, Solaris, -Haiku, sun4. Improve documentation for enable/disable and -with/without options. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - doc/install.texi | 157 +++++++++++++++++++++-------------------------- - 1 file changed, 70 insertions(+), 87 deletions(-) - -diff --git a/doc/install.texi b/doc/install.texi -index e06689613..cec245fd0 100644 ---- a/doc/install.texi -+++ b/doc/install.texi -@@ -18,9 +18,21 @@ warranty of any kind. - @node Basic Installation - @section Basic Installation - --Briefly, the shell command --@samp{./configure@tie{}&& make@tie{}&& make@tie{}install} --should configure, build, and install this package. The following -+Briefly, the following shell commands: -+ -+@example -+test -f configure || ./bootstrap -+./configure -+make -+make install -+@end example -+ -+@noindent -+should configure, build, and install this package. -+The @command{./bootstrap} line is intended for developers; -+you can omit it when building from a distribution tarball. -+ -+The following - more-detailed instructions are generic; see the @file{README} file for - instructions specific to this package. - @ifclear autoconf -@@ -32,6 +44,17 @@ More recommendations for GNU packages can be found in - @ref{Makefile Conventions, , Makefile Conventions, standards, - GNU Coding Standards}. - -+If the @command{bootstrap} shell script exists, it attempts to build the -+@command{configure} shell script and related files, perhaps by -+downloading other software components from the network, and by using -+developer tools that are less commonly installed. Because the output of -+@command{bootstrap} is system-independent, it is normally run by a -+package developer so that its output can be put into the distribution -+tarball and ordinary builders and users need not run @command{bootstrap}. -+Some packages have commands like @command{./autopull.sh} and -+@command {./autogen.sh} that you can run instead of @command{./bootstrap}, -+for more fine-grained control over bootstrapping. -+ - The @command{configure} shell script attempts to guess correct values - for various system-dependent variables used during compilation. It uses - those values to create a @file{Makefile} in each directory of the -@@ -63,8 +86,15 @@ The simplest way to compile this package is: - - @enumerate - @item --@command{cd} to the directory containing the package's source code and type --@samp{./configure} to configure the package for your system. -+@command{cd} to the directory containing the package's source code. -+ -+@item -+If this is a developer checkout and file @samp{configure} does not yet exist, -+type @samp{./bootstrap} to create it. -+You may need special developer tools and network access to bootstrap. -+ -+@item -+Type @samp{./configure} to configure the package for your system. - - Running @command{configure} might take a while. While running, it prints some - messages telling which features it is checking for. -@@ -124,7 +154,7 @@ parameters by setting variables in the command line or in the environment. - Here is an example: - - @example --./configure CC=c99 CFLAGS=-g LIBS=-lposix -+./configure CC=gcc CFLAGS=-g LIBS=-lposix - @end example - - @xref{Defining Variables}, for more details. -@@ -148,21 +178,10 @@ architecture at a time in the source code directory. After you have - installed the package for one architecture, use @samp{make distclean} - before reconfiguring for another architecture. - --On MacOS X 10.5 and later systems, you can create libraries and --executables that work on multiple system types---known as @dfn{fat} or --@dfn{universal} binaries---by specifying multiple @option{-arch} options --to the compiler but only a single @option{-arch} option to the --preprocessor. Like this: -- --@example --./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ -- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ -- CPP="gcc -E" CXXCPP="g++ -E" --@end example -- --This is not guaranteed to produce working output in all cases, you may --have to build one architecture at a time and combine the results --using the @command{lipo} tool if you have problems. -+Some platforms, notably macOS, support ``fat'' or ``universal'' binaries, -+where a single binary can execute on different architectures. -+On these platforms you can configure and compile just once, -+with options specific to that platform. - - @node Installation Names - @section Installation Names -@@ -227,20 +246,16 @@ an extra prefix or suffix on their names by giving @command{configure} - the option @option{--program-prefix=@var{PREFIX}} or - @option{--program-suffix=@var{SUFFIX}}. - --Some packages pay attention to @option{--enable-@var{feature}} options -+Some packages pay attention to @option{--enable-@var{feature}} -+and @option{--disable-@var{feature}} options - to @command{configure}, where @var{feature} indicates an optional part - of the package. They may also pay attention to --@option{--with-@var{package}} options, where @var{package} is something --like @samp{gnu-as} or @samp{x} (for the X Window System). The --@file{README} should mention any @option{--enable-} and @option{--with-} -+@option{--with-@var{package}} and @option{--without-@var{package}} options, -+where @var{package} is something like @samp{gnu-ld}. -+@samp{./configure --help} should mention the -+@option{--enable-...} and @option{--with-...} - options that the package recognizes. - --For packages that use the X Window System, @command{configure} can --usually find the X include and library files automatically, but if it --doesn't, you can use the @command{configure} options --@option{--x-includes=@var{dir}} and @option{--x-libraries=@var{dir}} to --specify their locations. -- - Some packages offer the ability to configure how verbose the execution - of @command{make} will be. For these packages, running - @samp{./configure --enable-silent-rules} sets the default to minimal -@@ -248,53 +263,6 @@ output, which can be overridden with @code{make V=1}; while running - @samp{./configure --disable-silent-rules} sets the default to verbose, - which can be overridden with @code{make V=0}. - --@node Particular Systems --@section Particular systems -- --On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is --not installed, it is recommended to use the following options in order to --use an ANSI C compiler: -- --@example --./configure CC="cc -Ae -D_XOPEN_SOURCE=500" --@end example -- --@noindent --and if that doesn't work, install pre-built binaries of GCC for HP-UX. -- --HP-UX @command{make} updates targets which have the same timestamps as --their prerequisites, which makes it generally unusable when shipped --generated files such as @command{configure} are involved. Use GNU --@command{make} instead. -- --On OSF/1 a.k.a.@: Tru64, some versions of the default C compiler cannot --parse its @code{<wchar.h>} header file. The option @option{-nodtk} can be --used as a workaround. If GNU CC is not installed, it is therefore --recommended to try -- --@example --./configure CC="cc" --@end example -- --@noindent --and if that doesn't work, try -- --@example --./configure CC="cc -nodtk" --@end example -- --On Solaris, don't put @code{/usr/ucb} early in your @env{PATH}. This --directory contains several dysfunctional programs; working variants --of these programs are available in @code{/usr/bin}. So, if you need --@code{/usr/ucb} in your @env{PATH}, put it @emph{after} @code{/usr/bin}. -- --On Haiku, software installed for all users goes in @file{/boot/common}, --not @file{/usr/local}. It is recommended to use the following options: -- --@example --./configure --prefix=/boot/common --@end example -- - @node System Type - @section Specifying the System Type - -@@ -304,7 +272,8 @@ will run on. Usually, assuming the package is built to be run on the - @emph{same} architectures, @command{configure} can figure that out, but - if it prints a message saying it cannot guess the machine type, give it - the @option{--build=@var{type}} option. @var{type} can either be a --short name for the system type, such as @samp{sun4}, or a canonical name -+short name like @samp{mingw64} for the system type, or a canonical name -+like @samp{x86_64-pc-linux-gnu} - which has the form: - - @example -@@ -319,6 +288,7 @@ where @var{system} can have one of these forms: - @var{kernel}-@var{os} - @end example - -+@noindent - See the file @file{config.sub} for the possible values of each field. - If @file{config.sub} isn't included in this package, then this package - doesn't need to know the machine type. -@@ -405,13 +375,6 @@ traditionally @file{config.cache}. @var{file} defaults to - @itemx -C - Alias for @option{--cache-file=config.cache}. - --@item --quiet --@itemx --silent --@itemx -q --Do not print messages saying which checks are being made. To suppress --all normal output, redirect it to @file{/dev/null} (any error messages --will still be shown). -- - @item --srcdir=@var{dir} - Look for the package's source code in directory @var{dir}. Usually - @command{configure} can determine that directory automatically. -@@ -421,13 +384,33 @@ Use @var{dir} as the installation prefix. @ref{Installation Names} - for more details, including other options available for fine-tuning - the installation locations. - -+@item --build=@var{type} -+Build for architecture @var{type}. @ref{Specifying the System Type} -+for more details, including other system type options. -+ -+@item --enable-@var{feature} -+@itemx --disable-@var{feature} -+Enable or disable the optional @var{feature}. @xref{Optional Features}. -+ -+@item --with-@var{package} -+@itemx --without-@var{package} -+Use or omit @var{package} when building. @xref{Optional Features}. -+ -+@item --quiet -+@itemx --silent -+@itemx -q -+Do not print messages saying which checks are being made. To suppress -+all normal output, redirect it to @file{/dev/null} (any error messages -+will still be shown). -+ - @item --no-create - @itemx -n - Run the configure checks, but stop before creating any output files. - @end table - - @noindent --@command{configure} also accepts some other, not widely useful, options. -+@command{configure} also recognizes several environment variables, -+and accepts some other, less widely useful, options. - Run @samp{configure --help} for more details. - - @c Local Variables: --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch deleted file mode 100644 index 7ab5074755..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch +++ /dev/null @@ -1,58 +0,0 @@ -From eaea61e4485cdecf989fa777ff4e166c945a6eea Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Tue, 20 Jun 2023 13:39:15 -0700 -Subject: [PATCH 27/29] doc: fix broken cross-refs - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - doc/autoconf.texi | 5 +---- - doc/install.texi | 2 +- - 2 files changed, 2 insertions(+), 5 deletions(-) - -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index 0f3047b31..7817fc1b5 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -604,7 +604,6 @@ Running @command{configure} Scripts - * Multiple Architectures:: Compiling for multiple architectures at once - * Installation Names:: Installing in different directories - * Optional Features:: Selecting optional features --* Particular Systems:: Particular systems - * System Type:: Specifying the system type - * Sharing Defaults:: Setting site-wide defaults for @command{configure} - * Defining Variables:: Specifying the compiler etc. -@@ -23304,7 +23303,6 @@ may use comes with Autoconf. - * Multiple Architectures:: Compiling for multiple architectures at once - * Installation Names:: Installing in different directories - * Optional Features:: Selecting optional features --* Particular Systems:: Particular systems - * System Type:: Specifying the system type - * Sharing Defaults:: Setting site-wide defaults for @command{configure} - * Defining Variables:: Specifying the compiler etc. -@@ -26990,8 +26988,7 @@ for simple differences. - @item - Most tests which produce their result in a substituted variable allow to - override the test by setting the variable on the @command{configure} --command line (@pxref{Compilers and Options}, @pxref{Defining Variables}, --@pxref{Particular Systems}). -+command line (@pxref{Compilers and Options}, @pxref{Defining Variables}). - - @item - Many tests store their result in a cache variable (@pxref{Caching -diff --git a/doc/install.texi b/doc/install.texi -index cec245fd0..6d9788fa9 100644 ---- a/doc/install.texi -+++ b/doc/install.texi -@@ -385,7 +385,7 @@ for more details, including other options available for fine-tuning - the installation locations. - - @item --build=@var{type} --Build for architecture @var{type}. @ref{Specifying the System Type} -+Build for architecture @var{type}. @ref{System Type}. - for more details, including other system type options. - - @item --enable-@var{feature} --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch deleted file mode 100644 index 95ad80df5e..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch +++ /dev/null @@ -1,224 +0,0 @@ -From 328f9b88ef896e8e31818c50d9ec2ade5c892ea4 Mon Sep 17 00:00:00 2001 -From: Bruno Haible <bruno@clisp.org> -Date: Fri, 23 Jun 2023 17:37:35 +0200 -Subject: [PATCH 28/29] INSTALL: Clarify --build, --host, --target, and the - system types. - -* doc/install.texi (Compilers and Options): Add another reference. -(System Types): Renamed from System Type. Explain how to canonicalize -and how to validate a system type. Don't explain --build, --host, ---target here. -(Building for a different system type): New section. -(Troubleshooting the Build Type): New section. -(Configuring a Compiler): New section. -(configure Invocation): Mention the --host option, not the --build -option, since --build is so rarely needed. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - doc/autoconf.texi | 6 +-- - doc/install.texi | 132 +++++++++++++++++++++++++++++++++++++--------- - 2 files changed, 111 insertions(+), 27 deletions(-) - -diff --git a/doc/autoconf.texi b/doc/autoconf.texi -index 7817fc1b5..043f7fb21 100644 ---- a/doc/autoconf.texi -+++ b/doc/autoconf.texi -@@ -604,7 +604,7 @@ Running @command{configure} Scripts - * Multiple Architectures:: Compiling for multiple architectures at once - * Installation Names:: Installing in different directories - * Optional Features:: Selecting optional features --* System Type:: Specifying the system type -+* System Types:: Specifying a system type - * Sharing Defaults:: Setting site-wide defaults for @command{configure} - * Defining Variables:: Specifying the compiler etc. - * configure Invocation:: Changing how @command{configure} runs -@@ -22383,7 +22383,7 @@ system it's running on. To do so it runs a script called - command or symbols predefined by the C preprocessor. - - Alternately, the user can specify the system type with command line --arguments to @command{configure} (@pxref{System Type}. Doing so is -+arguments to @command{configure} (@pxref{System Types}. Doing so is - necessary when - cross-compiling. In the most complex case of cross-compiling, three - system types are involved. The options to specify them are: -@@ -23303,7 +23303,7 @@ may use comes with Autoconf. - * Multiple Architectures:: Compiling for multiple architectures at once - * Installation Names:: Installing in different directories - * Optional Features:: Selecting optional features --* System Type:: Specifying the system type -+* System Types:: Specifying a system type - * Sharing Defaults:: Setting site-wide defaults for @command{configure} - * Defining Variables:: Specifying the compiler etc. - * configure Invocation:: Changing how @command{configure} runs -diff --git a/doc/install.texi b/doc/install.texi -index 6d9788fa9..a3ef17828 100644 ---- a/doc/install.texi -+++ b/doc/install.texi -@@ -157,8 +157,16 @@ Here is an example: - ./configure CC=gcc CFLAGS=-g LIBS=-lposix - @end example - --@xref{Defining Variables}, for more details. -- -+See -+@ref{Defining Variables} and -+@ifset autoconf -+@ref{Preset Output Variables} -+@end ifset -+@ifclear autoconf -+@ref{Preset Output Variables,,, autoconf, Autoconf} -+@c (@url{https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Preset-Output-Variables.html}) -+@end ifclear -+for more details. - - @node Multiple Architectures - @section Compiling For Multiple Architectures -@@ -263,18 +271,17 @@ output, which can be overridden with @code{make V=1}; while running - @samp{./configure --disable-silent-rules} sets the default to verbose, - which can be overridden with @code{make V=0}. - --@node System Type --@section Specifying the System Type -+@node System Types -+@section Specifying a System Type - --There may be some features @command{configure} cannot figure out --automatically, but needs to determine by the type of machine the package --will run on. Usually, assuming the package is built to be run on the --@emph{same} architectures, @command{configure} can figure that out, but --if it prints a message saying it cannot guess the machine type, give it --the @option{--build=@var{type}} option. @var{type} can either be a --short name like @samp{mingw64} for the system type, or a canonical name --like @samp{x86_64-pc-linux-gnu} --which has the form: -+The following sections go into details regarding situations where you -+may have to specify a system type, either through the option -+@option{--host=@var{type}}, or through the option -+@option{--build=@var{type}}, or -- in the case of compilers -- through -+@option{--target=@var{type}}. -+ -+A system type @var{type} can either be a short name like @samp{mingw64}, -+or a canonical name like @samp{x86_64-pc-linux-gnu} which has the form: - - @example - @var{cpu}-@var{company}-@var{system} -@@ -291,16 +298,93 @@ where @var{system} can have one of these forms: - @noindent - See the file @file{config.sub} for the possible values of each field. - If @file{config.sub} isn't included in this package, then this package --doesn't need to know the machine type. -+doesn't need to know any machine type. -+ -+The file @file{config.sub} is a program that validates and canonicalizes -+a system type. -+It can do canonicalization, as in -+ -+@example -+$ sh config.sub x86_64-linux -+x86_64-pc-linux-gnu -+$ sh config.sub arm64-linux -+aarch64-unknown-linux-gnu -+@end example -+ -+@noindent -+It also validates the parts. For example, this interaction tells you -+that ``crusoe'' is not a valid cpu architecture name: - --If you are @emph{building} compiler tools for cross-compiling, you --should use the option @option{--target=@var{type}} to select the type of --system they will produce code for. -+@example -+$ sh config.sub crusoe-linux -+Invalid configuration `crusoe-linux': machine `crusoe-unknown' not recognized -+@end example -+ -+@node Building for a different system type -+@section Creating binaries for a different system type -+ -+When you want to create binaries that will run on a different machine -+type than the one you are building on, you need to specify both -+@itemize @bullet -+@item -+a @option{--host=@var{type}} option, specifying the machine type on -+which the binaries shall run, -+@item -+compiler variables (@code{CC} for the C compiler, @code{CXX} for the C++ -+compiler, and so on), pointing to compilers that generate object code -+for that machine type. -+@end itemize -+ -+For example, to create binaries intended to run on a 64-bit ARM -+processor: -+@example -+./configure --host=aarch64-linux-gnu \ -+ CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ -+@end example - --If you want to @emph{use} a cross compiler, that generates code for a --platform different from the build platform, you should specify the --@dfn{host} platform (i.e., that on which the generated programs will --eventually be run) with @option{--host=@var{type}}. -+If you do this on a machine that can execute such binaries (e.g.@: by -+virtue of the @code{qemu-aarch64} program, system libraries for that -+architecture under @code{$QEMU_LD_PREFIX}, and a Linux -+@code{binfmt_misc} configuration), the build behaves like a native -+build. -+If not, the build is a cross-build, in the sense that @code{configure} -+will make cross-compilation guesses instead of running test programs, -+and ``make check'' will not work. -+ -+@node Troubleshooting the Build Type -+@section Fixing a ``cannot guess build type'' error -+ -+In rare cases, it may happen that @code{configure} fails with the error -+message ``cannot guess build type''. -+This error means that the files @file{config.guess} and -+@file{config.sub} don't recognize the type of the system on which you -+are building. -+In this case, first fetch the newest versions of these files, from -+@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess} -+and -+@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub}, -+respectively, and use these as drop-in replacement for the files -+@file{config.guess} and @file{config.sub} that were shipped with this -+package. -+ -+If this resolves the problem, feel free to report the solution to the -+maintainers of this package. -+ -+Otherwise, it means that your system is not yet supported by -+@file{config.guess} and @file{config.sub}. -+As a workaround, you can use a configure option -+@option{--build=@var{type}}, where @var{type} comes closest to your -+system type. -+Also, you're welcome to file a report to -+@email{config-patches@@gnu.org}. -+ -+@node Configuring a Compiler -+@section Configuration options specific to a compiler -+ -+If you are building a compiler, and this compiler should generate code -+for a system type that is different from the one on which the compiler -+binaries shall run on, use the option @option{--target=@var{type}} to -+select the type of system for which the compiler should produce code. - - @node Sharing Defaults - @section Sharing Defaults -@@ -384,9 +468,9 @@ Use @var{dir} as the installation prefix. @ref{Installation Names} - for more details, including other options available for fine-tuning - the installation locations. - --@item --build=@var{type} --Build for architecture @var{type}. @ref{System Type}. --for more details, including other system type options. -+@item --host=@var{type} -+Build binaries for architecture @var{type}. @ref{System Types} and -+@ref{Building for a different system type} for more details. - - @item --enable-@var{feature} - @itemx --disable-@var{feature} --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch deleted file mode 100644 index 9129ab789a..0000000000 --- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch +++ /dev/null @@ -1,366 +0,0 @@ -From d8ca8b323873e5cd9d969a062f70b31db450ba53 Mon Sep 17 00:00:00 2001 -From: Paul Eggert <eggert@cs.ucla.edu> -Date: Sat, 24 Jun 2023 14:39:34 -0700 -Subject: [PATCH 29/29] Shorten and improve INSTALL -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Rewrite install.texi so that INSTALL is shorter and hopefully -more useful for new installers. -* doc/install.texi: When not building the Autoconf manual, put -copyright notice at the end, and omit external references as they -do not work in INSTALL. -Avoid long URLs as they do not work well in INSTALL or -in info files. Be more consistent (though not entirely -consistent) about “system” vs “architecture”. -(System Types, Building for a different system type) -(Troubleshooting the Build Type): Coalesce into a single section -and rewrite for clarity and brevity. Mention build-aux. Do not -mention --target here as it’s too rare to make the cut. - -Upstream-Status: Backport -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - doc/install.texi | 224 +++++++++++++++++------------------------------ - 1 file changed, 82 insertions(+), 142 deletions(-) - -diff --git a/doc/install.texi b/doc/install.texi -index a3ef17828..6c3a9c21c 100644 ---- a/doc/install.texi -+++ b/doc/install.texi -@@ -2,23 +2,13 @@ - @c the INSTALL file. - - @ifclear autoconf -- - @unnumbered Installation Instructions -- --Copyright @copyright{} 1994--1996, 1999--2002, 2004--2017, 2020--2023 --Free Software Foundation, Inc. -- --Copying and distribution of this file, with or without modification, are --permitted in any medium without royalty provided the copyright notice --and this notice are preserved. This file is offered as-is, without --warranty of any kind. -- - @end ifclear - - @node Basic Installation - @section Basic Installation - --Briefly, the following shell commands: -+The following shell commands: - - @example - test -f configure || ./bootstrap -@@ -41,8 +31,13 @@ of the features documented below. The lack of an optional feature in a - given package is not necessarily a bug. - @end ifclear - More recommendations for GNU packages can be found in -+@ifset autoconf - @ref{Makefile Conventions, , Makefile Conventions, standards, - GNU Coding Standards}. -+@end ifset -+@ifclear autoconf -+the GNU Coding Standards. -+@end ifclear - - If the @command{bootstrap} shell script exists, it attempts to build the - @command{configure} shell script and related files, perhaps by -@@ -61,8 +56,8 @@ those values to create a @file{Makefile} in each directory of the - package. It may also create one or more @file{.h} files containing - system-dependent definitions. Finally, it creates a shell script - @file{config.status} that you can run in the future to recreate the --current configuration, and a file @file{config.log} containing compiler --output (useful mainly for debugging @command{configure}). -+current configuration, and a file @file{config.log} containing -+output useful for debugging @command{configure}. - - It can also use an optional file (typically called @file{config.cache} - and enabled with @option{--cache-file=config.cache} or simply -@@ -77,10 +72,9 @@ they can be considered for the next release. If you are using the - cache, and at some point @file{config.cache} contains results you don't - want to keep, you may remove or edit it. - --The file @file{configure.ac} (or @file{configure.in}) is used to create --@file{configure} by a program called @command{autoconf}. You need --@file{configure.ac} if you want to change it or regenerate --@file{configure} using a newer version of @command{autoconf}. -+The @command{autoconf} program generates @file{configure} from the file -+@file{configure.ac}. Normally you should edit @file{configure.ac} -+instead of editing @file{configure} directly. - - The simplest way to compile this package is: - -@@ -95,8 +89,7 @@ You may need special developer tools and network access to bootstrap. - - @item - Type @samp{./configure} to configure the package for your system. -- --Running @command{configure} might take a while. While running, it prints some -+This might take a while. While running, @command{configure} prints - messages telling which features it is checking for. - - @item -@@ -125,21 +118,11 @@ code directory by typing @samp{make clean}. To also remove the files - that @command{configure} created (so you can compile the package for a - different kind of computer), type @samp{make distclean}. There is also - a @samp{make maintainer-clean} target, but that is intended mainly for --the package's developers. If you use it, you may have to get all sorts --of other programs in order to regenerate files that came with the --distribution. -+the package's developers. If you use it, you may have to bootstrap again. - - @item --Often, you can also type @samp{make uninstall} to remove the installed --files again. In practice, not all packages have tested that --uninstallation works correctly, even though it is required by the --GNU Coding Standards. -- --@item --Some packages, particularly those that use Automake, provide @samp{make --distcheck}, which can by used by developers to test that all other --targets like @samp{make install} and @samp{make uninstall} work --correctly. This target is generally not run by end users. -+If the package follows the GNU Coding Standards, -+you can type @samp{make uninstall} to remove the installed files. - @end enumerate - - @node Compilers and Options -@@ -158,21 +141,17 @@ Here is an example: - @end example - - See --@ref{Defining Variables} and -+@ref{Defining Variables} - @ifset autoconf --@ref{Preset Output Variables} -+and @ref{Preset Output Variables} - @end ifset --@ifclear autoconf --@ref{Preset Output Variables,,, autoconf, Autoconf} --@c (@url{https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Preset-Output-Variables.html}) --@end ifclear - for more details. - - @node Multiple Architectures - @section Compiling For Multiple Architectures - - You can compile the package for more than one kind of computer at the --same time, by placing the object files for each architecture in their -+same time, by placing the object files for each system in their - own directory. To do this, you can use GNU @command{make}. - @command{cd} to the directory where you want the object files and - executables to go and run the @command{configure} script. -@@ -182,9 +161,9 @@ known as a @dfn{VPATH} build. - - With a non-GNU @command{make}, - it is safer to compile the package for one --architecture at a time in the source code directory. After you have --installed the package for one architecture, use @samp{make distclean} --before reconfiguring for another architecture. -+system at a time in the source code directory. After you have -+installed the package for one system, use @samp{make distclean} -+before reconfiguring for another system. - - Some platforms, notably macOS, support ``fat'' or ``universal'' binaries, - where a single binary can execute on different architectures. -@@ -274,117 +253,65 @@ which can be overridden with @code{make V=0}. - @node System Types - @section Specifying a System Type - --The following sections go into details regarding situations where you --may have to specify a system type, either through the option --@option{--host=@var{type}}, or through the option --@option{--build=@var{type}}, or -- in the case of compilers -- through --@option{--target=@var{type}}. -- --A system type @var{type} can either be a short name like @samp{mingw64}, --or a canonical name like @samp{x86_64-pc-linux-gnu} which has the form: -- --@example --@var{cpu}-@var{company}-@var{system} --@end example -- --@noindent --where @var{system} can have one of these forms: -+By default @command{configure} builds for the current system. -+To create binaries that can run on a different system type, -+specify a @option{--host=@var{type}} option along with compiler -+variables that specify how to generate object code for @var{type}. -+For example, to create binaries intended to run on a 64-bit ARM -+processor: - - @example --@var{os} --@var{kernel}-@var{os} -+./configure --host=aarch64-linux-gnu \ -+ CC=aarch64-linux-gnu-gcc \ -+ CXX=aarch64-linux-gnu-g++ - @end example - - @noindent --See the file @file{config.sub} for the possible values of each field. --If @file{config.sub} isn't included in this package, then this package --doesn't need to know any machine type. -- --The file @file{config.sub} is a program that validates and canonicalizes --a system type. --It can do canonicalization, as in -+If done on a machine that can execute these binaries -+(e.g., via @command{qemu-aarch64}, @env{$QEMU_LD_PREFIX}, and Linux's -+@code{binfmt_misc} capability), the build behaves like a native build. -+Otherwise it is a cross-build: @code{configure} -+will make cross-compilation guesses instead of running test programs, -+and @code{make check} will not work. -+ -+A system type can either be a short name like @samp{mingw64}, -+or a canonical name like @samp{x86_64-pc-linux-gnu}. -+Canonical names have the form @var{cpu}-@var{company}-@var{system} -+where @var{system} is either @var{os} or @var{kernel}-@var{os}. -+To canonicalize and validate a system type, -+you can run the command @file{config.sub}, -+which is often squirreled away in a subdirectory like @file{build-aux}. -+For example: - - @example --$ sh config.sub x86_64-linux --x86_64-pc-linux-gnu --$ sh config.sub arm64-linux -+$ build-aux/config.sub arm64-linux - aarch64-unknown-linux-gnu -+$ build-aux/config.sub riscv-lnx -+Invalid configuration 'riscv-lnx': OS 'lnx' not recognized - @end example - - @noindent --It also validates the parts. For example, this interaction tells you --that ``crusoe'' is not a valid cpu architecture name: -- --@example --$ sh config.sub crusoe-linux --Invalid configuration `crusoe-linux': machine `crusoe-unknown' not recognized --@end example -- --@node Building for a different system type --@section Creating binaries for a different system type -- --When you want to create binaries that will run on a different machine --type than the one you are building on, you need to specify both --@itemize @bullet --@item --a @option{--host=@var{type}} option, specifying the machine type on --which the binaries shall run, --@item --compiler variables (@code{CC} for the C compiler, @code{CXX} for the C++ --compiler, and so on), pointing to compilers that generate object code --for that machine type. --@end itemize -- --For example, to create binaries intended to run on a 64-bit ARM --processor: --@example --./configure --host=aarch64-linux-gnu \ -- CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --@end example -- --If you do this on a machine that can execute such binaries (e.g.@: by --virtue of the @code{qemu-aarch64} program, system libraries for that --architecture under @code{$QEMU_LD_PREFIX}, and a Linux --@code{binfmt_misc} configuration), the build behaves like a native --build. --If not, the build is a cross-build, in the sense that @code{configure} --will make cross-compilation guesses instead of running test programs, --and ``make check'' will not work. -- --@node Troubleshooting the Build Type --@section Fixing a ``cannot guess build type'' error -- --In rare cases, it may happen that @code{configure} fails with the error --message ``cannot guess build type''. --This error means that the files @file{config.guess} and --@file{config.sub} don't recognize the type of the system on which you --are building. --In this case, first fetch the newest versions of these files, from --@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess} --and --@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub}, --respectively, and use these as drop-in replacement for the files --@file{config.guess} and @file{config.sub} that were shipped with this --package. -- --If this resolves the problem, feel free to report the solution to the --maintainers of this package. -- --Otherwise, it means that your system is not yet supported by --@file{config.guess} and @file{config.sub}. --As a workaround, you can use a configure option --@option{--build=@var{type}}, where @var{type} comes closest to your --system type. --Also, you're welcome to file a report to -+You can look at the @file{config.sub} file to see which types are recognized. -+If the file is absent, this package does not need the system type. -+ -+If @command{configure} fails with the diagnostic ``cannot guess build type''. -+@file{config.sub} did not recognize your system's type. -+In this case, first fetch the newest versions of these files -+from the @url{https://savannah.gnu.org/projects/config, GNU config package}. -+If that fixes things, please report it to the -+maintainers of the package containing @command{configure}. -+Otherwise, you can try the configure option -+@option{--build=@var{type}} where @var{type} comes close to your -+system type; also, please report the problem to - @email{config-patches@@gnu.org}. - --@node Configuring a Compiler --@section Configuration options specific to a compiler -- --If you are building a compiler, and this compiler should generate code --for a system type that is different from the one on which the compiler --binaries shall run on, use the option @option{--target=@var{type}} to --select the type of system for which the compiler should produce code. -+For more details about configuring system types, see -+@ifset autoconf -+@ref{Manual Configuration}. -+@end ifset -+@ifclear autoconf -+the Autoconf documentation. -+@end ifclear - - @node Sharing Defaults - @section Sharing Defaults -@@ -469,8 +396,8 @@ for more details, including other options available for fine-tuning - the installation locations. - - @item --host=@var{type} --Build binaries for architecture @var{type}. @ref{System Types} and --@ref{Building for a different system type} for more details. -+Build binaries for system @var{type}. -+@xref{System Types}. - - @item --enable-@var{feature} - @itemx --disable-@var{feature} -@@ -497,6 +424,19 @@ Run the configure checks, but stop before creating any output files. - and accepts some other, less widely useful, options. - Run @samp{configure --help} for more details. - -+@ifclear autoconf -+@node Copyright notice -+@section Copyright notice -+ -+Copyright @copyright{} 1994--1996, 1999--2002, 2004--2017, 2020--2023 -+Free Software Foundation, Inc. -+ -+Copying and distribution of this file, with or without modification, are -+permitted in any medium without royalty provided the copyright notice -+and this notice are preserved. This file is offered as-is, without -+warranty of any kind. -+@end ifclear -+ - @c Local Variables: - @c fill-column: 72 - @c ispell-local-dictionary: "american" --- -2.41.0 - diff --git a/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb b/poky/meta/recipes-devtools/autoconf/autoconf_2.72d.bb index 76130d58a5..939fc3abd5 100644 --- a/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb +++ b/poky/meta/recipes-devtools/autoconf/autoconf_2.72d.bb @@ -12,49 +12,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=cc3f3a7596cb558bbd9eb7fbaa3ef16c \ file://COPYINGv3;md5=1ebbd3e34237af26da5dc08a4e440464" SRC_URI = " \ - https://alpha.gnu.org/gnu/autoconf/autoconf-2.72c.tar.gz \ + https://alpha.gnu.org/gnu/autoconf/${BP}.tar.gz \ file://program_prefix.patch \ file://autoreconf-exclude.patch \ file://remove-usr-local-lib-from-m4.patch \ file://preferbash.patch \ file://autotest-automake-result-format.patch \ file://man-host-perl.patch \ - ${BACKPORTS} \ " SRC_URI:append:class-native = " file://no-man.patch" -BACKPORTS = "\ - file://backports/0001-mention-prototypes-more-prominently-in-NEWS.patch \ - file://backports/0002-build-run-make-fetch-which-updated-these.patch \ - file://backports/0003-NEWS-Tighten-up-wording.patch \ - file://backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch \ - file://backports/0006-Fix-timing-bug-on-high-speed-builds.patch \ - file://backports/0007-Support-underquoted-callers-better.patch \ - file://backports/0008-New-script-for-building-inside-Guix-containers.patch \ - file://backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch \ - file://backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch \ - file://backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch \ - file://backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch \ - file://backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch \ - file://backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch \ - file://backports/0015-Support-circa-early-2022-Gnulib.patch \ - file://backports/0016-Improve-year2038-largefile-option-processing.patch \ - file://backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch \ - file://backports/0018-Document-limitation-of-BusyBox-tr.patch \ - file://backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch \ - file://backports/0020-Tone-down-year-2038-changes.patch \ - file://backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch \ - file://backports/0022-Fix-port-of-AC_FUNC_MMAP.patch \ - file://backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch \ - file://backports/0024-Improve-AC_FUNC_MMAP-comments.patch \ - file://backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch \ - file://backports/0026-Modernize-INSTALL.patch \ - file://backports/0027-doc-fix-broken-cross-refs.patch \ - file://backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch \ - file://backports/0029-Shorten-and-improve-INSTALL.patch \ -" - -SRC_URI[sha256sum] = "21b64169c820c6cdf27fc981ca9c2fb615546e5dead92bccf8d92d0784cdd364" +SRC_URI[sha256sum] = "c09dcba3d051507459df2fcd58d6f19e5b342568fa910e3bb3a74b4402cde3a6" RDEPENDS:${PN} = "m4 gnu-config \ perl \ diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.41.inc b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc index b4934c02a8..804f092965 100644 --- a/poky/meta/recipes-devtools/binutils/binutils-2.41.inc +++ b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc @@ -18,7 +18,7 @@ SRCBRANCH ?= "binutils-2_41-branch" UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)" -SRCREV ?= "cb4c3555ac4cf8aaf0935cb6e4b09e6882436d21" +SRCREV ?= "c1321df4eb0a136304205085cd4913dd4eb01054" BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=https" SRC_URI = "\ ${BINUTILS_GIT_URI} \ diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.27.7.bb index 546d117156..546d117156 100644 --- a/poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb +++ b/poky/meta/recipes-devtools/cmake/cmake-native_3.27.7.bb diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc index ef4eec5ab1..ecb0e487df 100644 --- a/poky/meta/recipes-devtools/cmake/cmake.inc +++ b/poky/meta/recipes-devtools/cmake/cmake.inc @@ -19,7 +19,7 @@ CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \ " -SRC_URI[sha256sum] = "5175e8fe1ca9b1dd09090130db7201968bcce1595971ff9e9998c2f0765004c9" +SRC_URI[sha256sum] = "08f71a106036bf051f692760ef9558c0577c42ac39e96ba097e7662bd4158d8e" UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake index d6a1e0464c..6434b27371 100644 --- a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake +++ b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake @@ -18,3 +18,6 @@ file( GLOB toolchain_config_files "${CMAKE_CURRENT_LIST_FILE}.d/*.cmake" ) foreach(config ${toolchain_config_files}) include(${config}) endforeach() + +unset(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES) +unset(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES) diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb b/poky/meta/recipes-devtools/cmake/cmake_3.27.7.bb index 6a9a3266df..6a9a3266df 100644 --- a/poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb +++ b/poky/meta/recipes-devtools/cmake/cmake_3.27.7.bb diff --git a/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb b/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.27.bb index f6d1146e89..55c88afcc9 100644 --- a/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb +++ b/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.27.bb @@ -8,18 +8,14 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://src/validator.c;beginline=4;endline=27;md5=281e1114ee6c486a1a0a4295986b9416" SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BP}.tar.xz" -SRC_URI[md5sum] = "29739e005f5887cf41639b8450f3c23f" -SRC_URI[sha256sum] = "b26dbde79ea72c8c84fb7f9d870ffd857381d049a86d25e0038c4cef4c747309" +SRC_URI[sha256sum] = "a0817df39ce385b6621880407c56f1f298168c040c2032cedf88d5b76affe836" DEPENDS = "glib-2.0" -inherit autotools pkgconfig - -EXTRA_OECONF += "ac_cv_prog_EMACS=no" +inherit meson pkgconfig BBCLASSEXTEND = "native nativesdk" do_install:append() { rm -rf ${D}${datadir}/emacs } - diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.6.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.7.1.bb index 5a89e4b8ee..a23cb330ea 100644 --- a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.6.bb +++ b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.7.1.bb @@ -5,11 +5,8 @@ SECTION = "base" LIC_FILES_CHKSUM = "file://COPYING;md5=73001d804ea1e3d84365f652242cca20" HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README" -SRCREV = "21710612d35cd952490959bfa6ea9fe87aaa52dd" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master;protocol=https \ - file://0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch \ - file://0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch \ -" +SRCREV = "83d94dc619075e71ca4d0f42941cfc18d269a2af" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master;protocol=https" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))" @@ -19,8 +16,9 @@ DEPENDS = "util-linux-libuuid" inherit pkgconfig autotools -PACKAGECONFIG ??= "lz4" +PACKAGECONFIG ??= "lz4 zlib" PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse" diff --git a/poky/meta/recipes-devtools/erofs-utils/files/0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch b/poky/meta/recipes-devtools/erofs-utils/files/0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch deleted file mode 100644 index 52f475dc42..0000000000 --- a/poky/meta/recipes-devtools/erofs-utils/files/0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch +++ /dev/null @@ -1,126 +0,0 @@ -From c769805c79d5acede65d96e5786aa5ebb46c01e0 Mon Sep 17 00:00:00 2001 -From: Gao Xiang <hsiangkao@linux.alibaba.com> -Date: Fri, 2 Jun 2023 11:05:19 +0800 -Subject: [PATCH 1/2] erofs-utils: fsck: don't allocate/read too large extents - -Since some crafted EROFS filesystem images could have insane large -extents, which causes unexpected bahaviors when extracting data. - -Fix it by extracting large extents with a buffer of a reasonable -maximum size limit and reading multiple times instead. - -Note that only `--extract` option is impacted. - -CVE: CVE-2023-33552 -Closes: https://nvd.nist.gov/vuln/detail/CVE-2023-33552 -Reported-by: Chaoming Yang <lometsj@live.com> -Fixes: 412c8f908132 ("erofs-utils: fsck: add --extract=X support to extract to path X") -Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> -Link: https://lore.kernel.org/r/20230602030519.117071-1-hsiangkao@linux.alibaba.com - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@arm.com> ---- - fsck/main.c | 63 +++++++++++++++++++++++++++++++++++++++++------------ - 1 file changed, 49 insertions(+), 14 deletions(-) - -diff --git a/fsck/main.c b/fsck/main.c -index 6b42252..6689ad8 100644 ---- a/fsck/main.c -+++ b/fsck/main.c -@@ -392,6 +392,8 @@ static int erofs_verify_inode_data(struct erofs_inode *inode, int outfd) - } - - while (pos < inode->i_size) { -+ unsigned int alloc_rawsize; -+ - map.m_la = pos; - if (compressed) - ret = z_erofs_map_blocks_iter(inode, &map, -@@ -420,10 +422,28 @@ static int erofs_verify_inode_data(struct erofs_inode *inode, int outfd) - if (!(map.m_flags & EROFS_MAP_MAPPED) || !fsckcfg.check_decomp) - continue; - -- if (map.m_plen > raw_size) { -- raw_size = map.m_plen; -- raw = realloc(raw, raw_size); -- BUG_ON(!raw); -+ if (map.m_plen > Z_EROFS_PCLUSTER_MAX_SIZE) { -+ if (compressed) { -+ erofs_err("invalid pcluster size %" PRIu64 " @ offset %" PRIu64 " of nid %" PRIu64, -+ map.m_plen, map.m_la, -+ inode->nid | 0ULL); -+ ret = -EFSCORRUPTED; -+ goto out; -+ } -+ alloc_rawsize = Z_EROFS_PCLUSTER_MAX_SIZE; -+ } else { -+ alloc_rawsize = map.m_plen; -+ } -+ -+ if (alloc_rawsize > raw_size) { -+ char *newraw = realloc(raw, alloc_rawsize); -+ -+ if (!newraw) { -+ ret = -ENOMEM; -+ goto out; -+ } -+ raw = newraw; -+ raw_size = alloc_rawsize; - } - - if (compressed) { -@@ -434,18 +454,27 @@ static int erofs_verify_inode_data(struct erofs_inode *inode, int outfd) - } - ret = z_erofs_read_one_data(inode, &map, raw, buffer, - 0, map.m_llen, false); -+ if (ret) -+ goto out; -+ -+ if (outfd >= 0 && write(outfd, buffer, map.m_llen) < 0) -+ goto fail_eio; - } else { -- ret = erofs_read_one_data(&map, raw, 0, map.m_plen); -- } -- if (ret) -- goto out; -+ u64 p = 0; - -- if (outfd >= 0 && write(outfd, compressed ? buffer : raw, -- map.m_llen) < 0) { -- erofs_err("I/O error occurred when verifying data chunk @ nid %llu", -- inode->nid | 0ULL); -- ret = -EIO; -- goto out; -+ do { -+ u64 count = min_t(u64, alloc_rawsize, -+ map.m_llen); -+ -+ ret = erofs_read_one_data(&map, raw, p, count); -+ if (ret) -+ goto out; -+ -+ if (outfd >= 0 && write(outfd, raw, count) < 0) -+ goto fail_eio; -+ map.m_llen -= count; -+ p += count; -+ } while (map.m_llen); - } - } - -@@ -460,6 +489,12 @@ out: - if (buffer) - free(buffer); - return ret < 0 ? ret : 0; -+ -+fail_eio: -+ erofs_err("I/O error occurred when verifying data chunk @ nid %llu", -+ inode->nid | 0ULL); -+ ret = -EIO; -+ goto out; - } - - static inline int erofs_extract_dir(struct erofs_inode *inode) --- -2.34.1 - diff --git a/poky/meta/recipes-devtools/erofs-utils/files/0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch b/poky/meta/recipes-devtools/erofs-utils/files/0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch deleted file mode 100644 index f2f1e34368..0000000000 --- a/poky/meta/recipes-devtools/erofs-utils/files/0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 6cebfbb79b1d5d8feb48801e1008eea5bfa8b599 Mon Sep 17 00:00:00 2001 -From: Gao Xiang <hsiangkao@linux.alibaba.com> -Date: Fri, 2 Jun 2023 13:52:56 +0800 -Subject: [PATCH 2/2] erofs-utils: fsck: block insane long paths when - extracting images - -Since some crafted EROFS filesystem images could have insane deep -hierarchy (or may form directory loops) which triggers the -PATH_MAX-sized path buffer OR stack overflow. - -Actually some crafted images cannot be deemed as real corrupted -images but over-PATH_MAX paths are not something that we'd like to -support for now. - -CVE: CVE-2023-33551 -Closes: https://nvd.nist.gov/vuln/detail/CVE-2023-33551 -Reported-by: Chaoming Yang <lometsj@live.com> -Fixes: f44043561491 ("erofs-utils: introduce fsck.erofs") -Fixes: b11f84f593f9 ("erofs-utils: fsck: convert to use erofs_iterate_dir()") -Fixes: 412c8f908132 ("erofs-utils: fsck: add --extract=X support to extract to path X") -Signeo-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> -Link: https://lore.kernel.org/r/20230602055256.18061-1-hsiangkao@linux.alibaba.com - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@arm.com> ---- - fsck/main.c | 23 +++++++++++++++-------- - 1 file changed, 15 insertions(+), 8 deletions(-) - -diff --git a/fsck/main.c b/fsck/main.c -index 6689ad8..28d95ec 100644 ---- a/fsck/main.c -+++ b/fsck/main.c -@@ -680,28 +680,35 @@ again: - static int erofsfsck_dirent_iter(struct erofs_dir_context *ctx) - { - int ret; -- size_t prev_pos = fsckcfg.extract_pos; -+ size_t prev_pos, curr_pos; - - if (ctx->dot_dotdot) - return 0; - -- if (fsckcfg.extract_path) { -- size_t curr_pos = prev_pos; -+ prev_pos = fsckcfg.extract_pos; -+ curr_pos = prev_pos; -+ -+ if (prev_pos + ctx->de_namelen >= PATH_MAX) { -+ erofs_err("unable to fsck since the path is too long (%u)", -+ curr_pos + ctx->de_namelen); -+ return -EOPNOTSUPP; -+ } - -+ if (fsckcfg.extract_path) { - fsckcfg.extract_path[curr_pos++] = '/'; - strncpy(fsckcfg.extract_path + curr_pos, ctx->dname, - ctx->de_namelen); - curr_pos += ctx->de_namelen; - fsckcfg.extract_path[curr_pos] = '\0'; -- fsckcfg.extract_pos = curr_pos; -+ } else { -+ curr_pos += ctx->de_namelen; - } -- -+ fsckcfg.extract_pos = curr_pos; - ret = erofsfsck_check_inode(ctx->dir->nid, ctx->de_nid); - -- if (fsckcfg.extract_path) { -+ if (fsckcfg.extract_path) - fsckcfg.extract_path[prev_pos] = '\0'; -- fsckcfg.extract_pos = prev_pos; -- } -+ fsckcfg.extract_pos = prev_pos; - return ret; - } - --- -2.34.1 - diff --git a/poky/meta/recipes-devtools/git/git_2.42.1.bb b/poky/meta/recipes-devtools/git/git_2.43.0.bb index 33269d39a9..f913290081 100644 --- a/poky/meta/recipes-devtools/git/git_2.42.1.bb +++ b/poky/meta/recipes-devtools/git/git_2.43.0.bb @@ -160,4 +160,4 @@ EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ " EXTRA_OEMAKE += "NO_GETTEXT=1" -SRC_URI[tarball.sha256sum] = "839d75c91ddfa9f7534f7b0888e462e3ad1422bb8ef12ec35f6261cea18efe33" +SRC_URI[tarball.sha256sum] = "ed238f5c72a014f238cc49fe7df4c6883732a3881111b381c105e2c5be77302f" diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb index 2a0e6f8e41..718f798a00 100644 --- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb +++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb @@ -9,8 +9,8 @@ DEPENDS:class-native = "hostperl-runtime-native" INHIBIT_DEFAULT_DEPS = "1" -SRCREV = "63acb96f92473ceb5e21d873d7c0aee266b3d6d3" -PV = "20230216+git" +SRCREV = "28ea239c53a2d5d8800c472bc2452eaa16e37af2" +PV = "20231127+git" SRC_URI = "git://git.savannah.gnu.org/git/config.git;protocol=https;branch=master \ file://gnu-configize.in" diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.17.bb b/poky/meta/recipes-devtools/json-c/json-c_0.17.bb index f4b7a32cea..20bcece768 100644 --- a/poky/meta/recipes-devtools/json-c/json-c_0.17.bb +++ b/poky/meta/recipes-devtools/json-c/json-c_0.17.bb @@ -17,6 +17,9 @@ UPSTREAM_CHECK_REGEX = "json-c-(?P<pver>\d+(\.\d+)+)-\d+" RPROVIDES:${PN} = "libjson" +# Required for ICECC builds +EXTRA_OECMAKE = "-DDISABLE_WERROR=ON" + inherit cmake ptest do_install_ptest() { diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb index de8d411686..9a88549260 100644 --- a/poky/meta/recipes-devtools/llvm/llvm_git.bb +++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb @@ -14,14 +14,14 @@ RDEPENDS:${PN}:append:class-target = " ncurses-terminfo" inherit cmake pkgconfig -PV = "17.0.5" +PV = "17.0.6" MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" LLVM_RELEASE = "${PV}" BRANCH = "release/${MAJOR_VERSION}.x" -SRCREV = "98bfdac5ce82d1679f8af9a57501471812ab68d7" +SRCREV = "6009708b4367171ccdbf4b5905cb6a803753fe18" SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \ file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \ file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \ diff --git a/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.0.bb b/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.1.bb index e0c16d2e73..be3c787ab2 100644 --- a/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.0.bb +++ b/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.1.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b" SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \ " -SRC_URI[sha256sum] = "2a8eb99d71b0680c0520c7c16248cdb4195da82f396b79fea30b0d9e289c8c72" +SRC_URI[sha256sum] = "42dc435928917fd2f847046c4a0c6086b2af23664d198c7fc1b982c0bfe600c1" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/" UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/" diff --git a/poky/meta/recipes-devtools/meson/meson_1.2.2.bb b/poky/meta/recipes-devtools/meson/meson_1.3.0.bb index c38d88fe61..e794bb28a5 100644 --- a/poky/meta/recipes-devtools/meson/meson_1.2.2.bb +++ b/poky/meta/recipes-devtools/meson/meson_1.3.0.bb @@ -15,7 +15,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/meson-${PV}.tar.gz \ file://0001-Make-CPU-family-warnings-fatal.patch \ file://0002-Support-building-allarch-recipes-again.patch \ " -SRC_URI[sha256sum] = "4a0f04de331fbc7af3b802a844fc8838f4ccd1ded1e792ba4f8f2faf8c5fe4d6" +SRC_URI[sha256sum] = "4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc" inherit python_setuptools_build_meta github-releases diff --git a/poky/meta/recipes-devtools/python/python-pyasn1.inc b/poky/meta/recipes-devtools/python/python-pyasn1.inc index 9eb87354cf..52fd98589d 100644 --- a/poky/meta/recipes-devtools/python/python-pyasn1.inc +++ b/poky/meta/recipes-devtools/python/python-pyasn1.inc @@ -3,7 +3,7 @@ HOMEPAGE = "http://pyasn1.sourceforge.net/" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=190f79253908c986e6cacf380c3a5f6d" -SRC_URI[sha256sum] = "97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde" +SRC_URI[sha256sum] = "6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c" RDEPENDS:${PN}:class-target += " \ ${PYTHON_PN}-codecs \ diff --git a/poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb b/poky/meta/recipes-devtools/python/python3-certifi_2023.11.17.bb index c4e1e7b917..daed712362 100644 --- a/poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb +++ b/poky/meta/recipes-devtools/python/python3-certifi_2023.11.17.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=3c2b7404369c587c3559afb604fce2f2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=11618cb6a975948679286b1211bd573c" -SRC_URI[sha256sum] = "539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082" +SRC_URI[sha256sum] = "9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1" inherit pypi setuptools3 diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc index da0a3f2ee8..3a5edaa349 100644 --- a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc +++ b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc @@ -9,6 +9,7 @@ SRC_URI += " \ crate://crates.io/autocfg/1.1.0 \ crate://crates.io/base64/0.13.1 \ crate://crates.io/bitflags/1.3.2 \ + crate://crates.io/bitflags/2.4.1 \ crate://crates.io/cc/1.0.79 \ crate://crates.io/cfg-if/1.0.0 \ crate://crates.io/foreign-types/0.3.2 \ @@ -18,9 +19,9 @@ SRC_URI += " \ crate://crates.io/lock_api/0.4.9 \ crate://crates.io/memoffset/0.8.0 \ crate://crates.io/once_cell/1.17.2 \ - crate://crates.io/openssl/0.10.54 \ + crate://crates.io/openssl/0.10.60 \ crate://crates.io/openssl-macros/0.1.1 \ - crate://crates.io/openssl-sys/0.9.88 \ + crate://crates.io/openssl-sys/0.9.96 \ crate://crates.io/ouroboros/0.15.6 \ crate://crates.io/ouroboros_macro/0.15.6 \ crate://crates.io/parking_lot/0.12.1 \ @@ -64,6 +65,7 @@ SRC_URI[asn1_derive-0.15.2.sha256sum] = "a045c3ccad89f244a86bd1e6cf1a7bf645296e7 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" @@ -73,9 +75,9 @@ SRC_URI[libc-0.2.144.sha256sum] = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5d SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" SRC_URI[once_cell-1.17.2.sha256sum] = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" -SRC_URI[openssl-0.10.54.sha256sum] = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019" +SRC_URI[openssl-0.10.60.sha256sum] = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -SRC_URI[openssl-sys-0.9.88.sha256sum] = "c2ce0f250f34a308dcfdbb351f511359857d4ed2134ba715a4eadd46e1ffd617" +SRC_URI[openssl-sys-0.9.96.sha256sum] = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" SRC_URI[ouroboros-0.15.6.sha256sum] = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" SRC_URI[ouroboros_macro-0.15.6.sha256sum] = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.5.bb b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.7.bb index 44c67fdd76..eda492d312 100644 --- a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.5.bb +++ b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.7.bb @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \ # NOTE: Make sure to keep this recipe at the same version as python3-cryptography # Upgrade both recipes at the same time -SRC_URI[sha256sum] = "75e82aea2982729312af735adb2983f347bb21fff88ad5dda3673ed70e1d1caf" +SRC_URI[sha256sum] = "7b36f976b6e58cc1801310e1c93c584c6539d371da7f8538edd8fc463dc80d5b" PYPI_PACKAGE = "cryptography_vectors" @@ -27,3 +27,5 @@ do_install:append () { BBCLASSEXTEND = "native nativesdk" UPSTREAM_CHECK_REGEX = "" + +RECIPE_NO_UPDATE_REASON = "Must be updated in sync with python3-cryptography." diff --git a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.5.bb b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.7.bb index 17b08f05cd..4585677440 100644 --- a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.5.bb +++ b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.7.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \ " LDSHARED += "-pthread" -SRC_URI[sha256sum] = "392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7" +SRC_URI[sha256sum] = "13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc" SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \ file://0001-Fix-include-directory-when-cross-compiling-9129.patch \ diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.89.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.90.0.bb index 035809c394..1760bb37a2 100644 --- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.89.0.bb +++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.90.0.bb @@ -13,7 +13,7 @@ SRC_URI += " \ file://test_rle.py \ " -SRC_URI[sha256sum] = "9168bb12cd29001067e66b5f25f1bbdeff08b80c29c3909e19fc8205d8b9aeed" +SRC_URI[sha256sum] = "0ab33900b9362318bd03d911a77a0dda8629c1877420074d87ae466919f6e4c0" RDEPENDS:${PN} += " \ python3-attrs \ diff --git a/poky/meta/recipes-devtools/python/python3-idna_3.4.bb b/poky/meta/recipes-devtools/python/python3-idna_3.6.bb index 41a666f3f4..228dce62d7 100644 --- a/poky/meta/recipes-devtools/python/python3-idna_3.4.bb +++ b/poky/meta/recipes-devtools/python/python3-idna_3.6.bb @@ -1,9 +1,9 @@ SUMMARY = "Internationalised Domain Names in Applications" HOMEPAGE = "https://github.com/kjd/idna" LICENSE = "BSD-3-Clause & Python-2.0 & Unicode-TOU" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dbec47b98e1469f6a104c82ff9698cee" -SRC_URI[sha256sum] = "814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4" +SRC_URI[sha256sum] = "9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca" inherit pypi python_flit_core diff --git a/poky/meta/recipes-devtools/python/python3-pyasn1_0.5.0.bb b/poky/meta/recipes-devtools/python/python3-pyasn1_0.5.1.bb index 0519ba5edb..0519ba5edb 100644 --- a/poky/meta/recipes-devtools/python/python3-pyasn1_0.5.0.bb +++ b/poky/meta/recipes-devtools/python/python3-pyasn1_0.5.1.bb diff --git a/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb b/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb index c3f1fb75ed..9d08e7acc4 100644 --- a/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb +++ b/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb @@ -22,3 +22,5 @@ RDEPENDS:${PN} += " \ do_compile:class-native () { python_flit_core_do_manual_build } + +UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}" diff --git a/poky/meta/recipes-devtools/python/python3-scons_4.5.2.bb b/poky/meta/recipes-devtools/python/python3-scons_4.6.0.bb index e0173a309e..c3cc3f0373 100644 --- a/poky/meta/recipes-devtools/python/python3-scons_4.5.2.bb +++ b/poky/meta/recipes-devtools/python/python3-scons_4.6.0.bb @@ -5,7 +5,7 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7" SRC_URI += " file://0001-Fix-man-page-installation.patch" -SRC_URI[sha256sum] = "813360b2bce476bc9cc12a0f3a22d46ce520796b352557202cb07d3e402f5458" +SRC_URI[sha256sum] = "7db28958b188b800f803c287d0680cc3ac7c422ed0b1cf9895042c52567803ec" PYPI_PACKAGE = "SCons" diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb b/poky/meta/recipes-devtools/python/python3-setuptools_69.0.2.bb index 06957d7000..8093ab9ba8 100644 --- a/poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb +++ b/poky/meta/recipes-devtools/python/python3-setuptools_69.0.2.bb @@ -11,7 +11,7 @@ SRC_URI:append:class-native = " file://0001-conditionally-do-not-fetch-code-by-e SRC_URI += " \ file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch" -SRC_URI[sha256sum] = "4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87" +SRC_URI[sha256sum] = "735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6" DEPENDS += "${PYTHON_PN}" diff --git a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.3.0.bb b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb index 83bf705766..46b46bf017 100644 --- a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.3.0.bb +++ b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb @@ -13,7 +13,7 @@ RDEPENDS:${PN} += " \ PYPI_PACKAGE = "sphinx_rtd_theme" -SRC_URI[sha256sum] = "590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931" +SRC_URI[sha256sum] = "bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b" UPSTREAM_CHECK_REGEX ?= "/sphinx-rtd-theme/(?P<pver>(\d+[\.\-_]*)+)/" inherit setuptools3 pypi diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.7.bb index e352601466..ec3670641d 100644 --- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb +++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.7.bb @@ -3,8 +3,11 @@ HOMEPAGE = "https://www.sphinx-doc.org" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=c7715857042d4c8c0105999ca0c072c5" -SRC_URI[sha256sum] = "828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e" +SRC_URI[sha256sum] = "39fdc8d762d33b01a7d8f026a3b7d71563ea3b72787d5f00ad8465bd9d6dfbfa" -inherit pypi python_setuptools_build_meta +inherit pypi python_flit_core + +PYPI_ARCHIVE_NAME = "sphinxcontrib_applehelp-${PV}.${PYPI_PACKAGE_EXT}" +S = "${WORKDIR}/sphinxcontrib_applehelp-${PV}" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.5.bb index 0d034366e7..47934bd6f5 100644 --- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb +++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.5.bb @@ -3,10 +3,13 @@ HOMEPAGE = "https://www.sphinx-doc.org" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=fd30d9972a142c857a80c9f312e92b93" -SRC_URI[sha256sum] = "ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4" +SRC_URI[sha256sum] = "63b41e0d38207ca40ebbeabcf4d8e51f76c03e78cd61abe118cf4435c73d4212" PYPI_PACKAGE = "sphinxcontrib-devhelp" -inherit pypi setuptools3 +inherit pypi python_flit_core + +PYPI_ARCHIVE_NAME = "sphinxcontrib_devhelp-${PV}.${PYPI_PACKAGE_EXT}" +S = "${WORKDIR}/sphinxcontrib_devhelp-${PV}" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.4.bb index bf034fb684..a0a4b4496f 100644 --- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb +++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.4.bb @@ -3,10 +3,13 @@ HOMEPAGE = "https://www.sphinx-doc.org" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=24dce5ef6a13563241c24bc366f48886" -SRC_URI[sha256sum] = "0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff" +SRC_URI[sha256sum] = "6c26a118a05b76000738429b724a0568dbde5b72391a688577da08f11891092a" PYPI_PACKAGE = "sphinxcontrib-htmlhelp" -inherit pypi python_setuptools_build_meta +inherit pypi python_flit_core + +PYPI_ARCHIVE_NAME = "sphinxcontrib_htmlhelp-${PV}.${PYPI_PACKAGE_EXT}" +S = "${WORKDIR}/sphinxcontrib_htmlhelp-${PV}" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.6.bb index 41d2b6187b..3538b063d6 100644 --- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb +++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.6.bb @@ -3,10 +3,13 @@ HOMEPAGE = "http://babel.edgewall.org/" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=f7a83b72ea86d04827575ec0b63430eb" -SRC_URI[sha256sum] = "4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72" +SRC_URI[sha256sum] = "62b9d1a186ab7f5ee3356d906f648cacb7a6bdb94d201ee7adf26db55092982d" PYPI_PACKAGE = "sphinxcontrib-qthelp" -inherit pypi setuptools3 +inherit pypi python_flit_core + +PYPI_ARCHIVE_NAME = "sphinxcontrib_qthelp-${PV}.${PYPI_PACKAGE_EXT}" +S = "${WORKDIR}/sphinxcontrib_qthelp-${PV}" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.9.bb index 7fa6d8aeb7..fbf0c3c9b2 100644 --- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb +++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.9.bb @@ -3,10 +3,13 @@ HOMEPAGE = "https://www.sphinx-doc.org" LICENSE = "BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=32a84ac5cd3bbd10c4d479233ad588b6" -SRC_URI[sha256sum] = "aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952" +SRC_URI[sha256sum] = "0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54" PYPI_PACKAGE = "sphinxcontrib-serializinghtml" -inherit pypi setuptools3 +inherit pypi python_flit_core + +PYPI_ARCHIVE_NAME = "sphinxcontrib_serializinghtml-${PV}.${PYPI_PACKAGE_EXT}" +S = "${WORKDIR}/sphinxcontrib_serializinghtml-${PV}" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.14.bb b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.22.bb index a6c7e95c51..44a6f5de03 100644 --- a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.14.bb +++ b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.22.bb @@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/pypa/trove-classifiers" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" -SRC_URI[sha256sum] = "64b5e78305a5de347f2cd7ec8c12d704a3ef0cb85cc10c0ca5f73488d1c201f8" +SRC_URI[sha256sum] = "c31a7e92f965f060a244b57d8ed5ee6f53fcb413ee17ce790e00577cb369ad99" inherit pypi python_setuptools_build_meta ptest diff --git a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.7.bb b/poky/meta/recipes-devtools/python/python3-urllib3_2.1.0.bb index c286838086..b5b37e2924 100644 --- a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.7.bb +++ b/poky/meta/recipes-devtools/python/python3-urllib3_2.1.0.bb @@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/shazow/urllib3" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda" -SRC_URI[sha256sum] = "c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84" +SRC_URI[sha256sum] = "df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54" inherit pypi python_hatchling diff --git a/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.9.bb b/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.11.bb index 983852d07d..c4db61e062 100644 --- a/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.9.bb +++ b/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.11.bb @@ -4,7 +4,7 @@ HOMEPAGE = "https://github.com/jquast/wcwidth" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb" -SRC_URI[sha256sum] = "a675d1a4a2d24ef67096a04b85b02deeecd8e226f57b5e3a72dbb9ed99d27da8" +SRC_URI[sha256sum] = "25eb3ecbec328cdb945f56f2a7cfe784bdf7a73a8197398c7a7c65e7fe93e9ae" inherit pypi setuptools3 ptest diff --git a/poky/meta/recipes-devtools/python/python3-wheel_0.41.3.bb b/poky/meta/recipes-devtools/python/python3-wheel_0.42.0.bb index bdba98b8d5..807888e6c0 100644 --- a/poky/meta/recipes-devtools/python/python3-wheel_0.41.3.bb +++ b/poky/meta/recipes-devtools/python/python3-wheel_0.42.0.bb @@ -4,7 +4,7 @@ SECTION = "devel/python" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7ffb0db04527cfe380e4f2726bd05ebf" -SRC_URI[sha256sum] = "4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841" +SRC_URI[sha256sum] = "c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8" inherit python_flit_core pypi diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch b/poky/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch new file mode 100644 index 0000000000..199031d42a --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch @@ -0,0 +1,32 @@ +From 013ff01fdf2aa6ca69a7c80a2a2996630877e4ea Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin <tgamblin@baylibre.com> +Date: Fri, 6 Oct 2023 10:59:44 -0400 +Subject: [PATCH] test_storlines: skip due to load variability + +This is yet another test that intermittently fails on the Yocto AB when +a worker is under heavy load, so skip it during testing. + +Upstream-Status: Inappropriate [OE-Specific] + +[YOCTO #14933] + +Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com> +--- + Lib/test/test_ftplib.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py +index 082a90d46b..508814d56a 100644 +--- a/Lib/test/test_ftplib.py ++++ b/Lib/test/test_ftplib.py +@@ -629,6 +629,7 @@ def test_storbinary_rest(self): + self.client.storbinary('stor', f, rest=r) + self.assertEqual(self.server.handler_instance.rest, str(r)) + ++ @unittest.skip('timing related test, dependent on load') + def test_storlines(self): + data = RETR_DATA.replace('\r\n', '\n').encode(self.client.encoding) + f = io.BytesIO(data) +-- +2.41.0 + diff --git a/poky/meta/recipes-devtools/python/python3_3.11.5.bb b/poky/meta/recipes-devtools/python/python3_3.11.5.bb index 8e023c7dfb..d375de4b19 100644 --- a/poky/meta/recipes-devtools/python/python3_3.11.5.bb +++ b/poky/meta/recipes-devtools/python/python3_3.11.5.bb @@ -33,6 +33,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-Avoid-shebang-overflow-on-python-config.py.patch \ file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \ file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \ + file://0001-test_storlines-skip-due-to-load-variability.patch \ " SRC_URI:append:class-native = " \ diff --git a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch index d3888c8bb2..fba89a32d8 100644 --- a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch +++ b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch @@ -19,8 +19,8 @@ index b13e34c..205e0e5 100755 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 - # -*- coding:utf-8 -*- # # Copyright (C) 2008 The Android Open Source Project + # -- 2.33.0 diff --git a/poky/meta/recipes-devtools/repo/repo_2.37.bb b/poky/meta/recipes-devtools/repo/repo_2.39.bb index d6d3d03a62..a0633a5cbb 100644 --- a/poky/meta/recipes-devtools/repo/repo_2.37.bb +++ b/poky/meta/recipes-devtools/repo/repo_2.39.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 = "83c66ec661e39e47795086a5d26d0f3782ac1d49" +SRCREV = "b99272c601bc5f466c3cfc782bb852c2c967ad27" MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git" diff --git a/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb b/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb index 57bbe79cdf..5bfc1faea8 100644 --- a/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb +++ b/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb @@ -30,9 +30,11 @@ CXXFLAGS:remove = "-g" LLVM_DIR = "llvm${LLVM_RELEASE}" +RUST_LLVM_TARGETS ?= "ARM;AArch64;Mips;PowerPC;RISCV;X86" + EXTRA_OECMAKE = " \ -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_TARGETS_TO_BUILD='ARM;AArch64;Mips;PowerPC;RISCV;X86' \ + -DLLVM_TARGETS_TO_BUILD='${RUST_LLVM_TARGETS}' \ -DLLVM_BUILD_DOCS=OFF \ -DLLVM_ENABLE_TERMINFO=OFF \ -DLLVM_ENABLE_ZLIB=OFF \ diff --git a/poky/meta/recipes-devtools/rust/rust-source.inc b/poky/meta/recipes-devtools/rust/rust-source.inc index 4a720e645b..7a0790f6b6 100644 --- a/poky/meta/recipes-devtools/rust/rust-source.inc +++ b/poky/meta/recipes-devtools/rust/rust-source.inc @@ -12,8 +12,5 @@ SRC_URI[rust.sha256sum] = "bb8e9c564566b2d3228d95de9063a9254182446a161353f1d843b RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src" -# Used by crossbeam_atomic.patch -export TARGET_VENDOR - UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html" UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src" diff --git a/poky/meta/recipes-devtools/rust/rust_1.70.0.bb b/poky/meta/recipes-devtools/rust/rust_1.70.0.bb index 16d433910f..3d176e54c1 100644 --- a/poky/meta/recipes-devtools/rust/rust_1.70.0.bb +++ b/poky/meta/recipes-devtools/rust/rust_1.70.0.bb @@ -72,10 +72,7 @@ do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER" python do_configure() { import json - try: - import configparser - except ImportError: - import ConfigParser as configparser + import configparser # toml is rather similar to standard ini like format except it likes values # that look more JSON like. So for our purposes simply escaping all values @@ -157,13 +154,9 @@ python do_configure() { config.set("build", "vendor", e(True)) - if not "targets" in locals(): - targets = [d.getVar("RUST_TARGET_SYS")] - config.set("build", "target", e(targets)) + config.set("build", "target", e([d.getVar("RUST_TARGET_SYS")])) - if not "hosts" in locals(): - hosts = [d.getVar("RUST_HOST_SYS")] - config.set("build", "host", e(hosts)) + config.set("build", "host", e([d.getVar("RUST_HOST_SYS")])) # We can't use BUILD_SYS since that is something the rust snapshot knows # nothing about when trying to build some stage0 tools (like fabricate) @@ -232,9 +225,11 @@ do_test_compile () { ALLOW_EMPTY:${PN} = "1" -PACKAGES =+ "${PN}-tools-clippy ${PN}-tools-rustfmt" +PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt" +FILES:${PN}-rustdoc = "${bindir}/rustdoc" FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver" FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt" +RDEPENDS:${PN}-rustdoc = "${PN}" RDEPENDS:${PN}-tools-clippy = "${PN}" RDEPENDS:${PN}-tools-rustfmt = "${PN}" diff --git a/poky/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch b/poky/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch new file mode 100644 index 0000000000..df92c2475d --- /dev/null +++ b/poky/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch @@ -0,0 +1,226 @@ +From 721d5be99eb37d31e48bd66d61808a66a4c5ab84 Mon Sep 17 00:00:00 2001 +From: Chet Ramey <chet.ramey@case.edu> +Date: Mon, 30 Oct 2023 12:16:07 -0400 +Subject: [PATCH] changes to SIGINT handler while waiting for a child; skip + vertical whitespace after translating an integer + +Upstream-Status: Backport from +[https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=fe24a6a55e8850298b496c5b9d82f1866eba190e] + +[Adjust and drop some codes to be applicable the tree] + +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +--- + general.c | 5 +++-- + jobs.c | 24 ++++++++++++++++-------- + tests/redir.right | 4 ++-- + tests/redir11.sub | 2 ++ + tests/type.right | 16 ++++++++-------- + tests/type.tests | 24 ++++++++++++------------ + 6 files changed, 43 insertions(+), 32 deletions(-) + +diff --git a/general.c b/general.c +index 85c5a8b6..65e2ee06 100644 +--- a/general.c ++++ b/general.c +@@ -262,8 +262,9 @@ legal_number (string, result) + if (errno || ep == string) + return 0; /* errno is set on overflow or underflow */ + +- /* Skip any trailing whitespace, since strtoimax does not. */ +- while (whitespace (*ep)) ++ /* Skip any trailing whitespace, since strtoimax does not, using the same ++ test that strtoimax uses for leading whitespace. */ ++ while (isspace ((unsigned char) *ep)) + ep++; + + /* If *string is not '\0' but *ep is '\0' on return, the entire string +diff --git a/jobs.c b/jobs.c +index 6b986ed7..262d78de 100644 +--- a/jobs.c ++++ b/jobs.c +@@ -2718,6 +2718,10 @@ wait_for_background_pids (ps) + #define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids + static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; + ++/* The current SIGINT handler as set by restore_sigint_handler. Only valid ++ immediately after restore_sigint_handler, used for continuations. */ ++static SigHandler *cur_sigint_handler = INVALID_SIGNAL_HANDLER; ++ + static int wait_sigint_received; + static int child_caught_sigint; + +@@ -2735,6 +2739,7 @@ wait_sigint_cleanup () + static void + restore_sigint_handler () + { ++ cur_sigint_handler = old_sigint_handler; + if (old_sigint_handler != INVALID_SIGNAL_HANDLER) + { + set_signal_handler (SIGINT, old_sigint_handler); +@@ -2758,8 +2763,7 @@ wait_sigint_handler (sig) + restore_sigint_handler (); + /* If we got a SIGINT while in `wait', and SIGINT is trapped, do + what POSIX.2 says (see builtins/wait.def for more info). */ +- if (this_shell_builtin && this_shell_builtin == wait_builtin && +- signal_is_trapped (SIGINT) && ++ if (signal_is_trapped (SIGINT) && + ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler)) + { + trap_handler (SIGINT); /* set pending_traps[SIGINT] */ +@@ -2782,6 +2786,8 @@ wait_sigint_handler (sig) + { + set_exit_status (128+SIGINT); + restore_sigint_handler (); ++ if (cur_sigint_handler == INVALID_SIGNAL_HANDLER) ++ set_sigint_handler (); /* XXX - only do this in one place */ + kill (getpid (), SIGINT); + } + +@@ -2926,11 +2932,13 @@ wait_for (pid, flags) + { + SigHandler *temp_sigint_handler; + +- temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +- if (temp_sigint_handler == wait_sigint_handler) +- internal_debug ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap); +- else +- old_sigint_handler = temp_sigint_handler; ++ temp_sigint_handler = old_sigint_handler; ++ old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); ++ if (old_sigint_handler == wait_sigint_handler) ++ { ++ internal_debug ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap); ++ old_sigint_handler = temp_sigint_handler; ++ } + waiting_for_child = 0; + if (old_sigint_handler == SIG_IGN) + set_signal_handler (SIGINT, old_sigint_handler); +@@ -4136,7 +4144,7 @@ set_job_status_and_cleanup (job) + SIGINT (if we reset the sighandler to the default). + In this case, we have to fix things up. What a crock. */ + if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0) +- temp_handler = trap_to_sighandler (SIGINT); ++ temp_handler = trap_to_sighandler (SIGINT); + restore_sigint_handler (); + if (temp_handler == SIG_DFL) + termsig_handler (SIGINT); /* XXX */ +diff --git a/tests/redir.right b/tests/redir.right +index 8db10414..9e1403c8 100644 +--- a/tests/redir.right ++++ b/tests/redir.right +@@ -154,10 +154,10 @@ foo + 1 + 7 + after: 42 +-./redir11.sub: line 53: $(ss= declare -i ss): ambiguous redirect ++./redir11.sub: line 55: $(ss= declare -i ss): ambiguous redirect + after: 42 + a+=3 + foo + foo +-./redir11.sub: line 75: 42: No such file or directory ++./redir11.sub: line 77: 42: No such file or directory + 42 +diff --git a/tests/redir11.sub b/tests/redir11.sub +index d417cdb6..ca9854cd 100644 +--- a/tests/redir11.sub ++++ b/tests/redir11.sub +@@ -34,6 +34,8 @@ a=4 b=7 ss=4 declare -i ss + a=4 b=7 foo + echo after: $a + ++exec 7>&- 4>&- ++ + unset a + a=4 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 3'; } + a=1 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 4'; } +diff --git a/tests/type.right b/tests/type.right +index bbc228e8..e0a66745 100644 +--- a/tests/type.right ++++ b/tests/type.right +@@ -24,15 +24,15 @@ func () + } + while + while is a shell keyword +-./type.tests: line 56: type: m: not found +-alias m='more' +-alias m='more' +-m is aliased to `more' ++./type.tests: line 59: type: morealias: not found ++alias morealias='more' ++alias morealias='more' ++morealias is aliased to `more' + alias +-alias m='more' +-alias m='more' +-alias m='more' +-m is aliased to `more' ++alias morealias='more' ++alias morealias='more' ++alias morealias='more' ++morealias is aliased to `more' + builtin + builtin is a shell builtin + /bin/sh +diff --git a/tests/type.tests b/tests/type.tests +index fd39c18a..ddc15407 100644 +--- a/tests/type.tests ++++ b/tests/type.tests +@@ -25,8 +25,6 @@ type -r ${THIS_SH} + type notthere + command -v notthere + +-alias m=more +- + unset -f func 2>/dev/null + func() { echo this is func; } + +@@ -49,24 +47,26 @@ command -V func + command -v while + command -V while + ++alias morealias=more ++ + # the following two lines should produce the same output + # post-3.0 patch makes command -v silent, as posix specifies + # first test with alias expansion off (should all fail or produce no output) +-type -t m +-type m +-command -v m ++type -t morealias ++type morealias ++command -v morealias + alias -p +-alias m ++alias morealias + + # then test with alias expansion on + shopt -s expand_aliases +-type m +-type -t m +-command -v m ++type morealias ++type -t morealias ++command -v morealias + alias -p +-alias m ++alias morealias + +-command -V m ++command -V morealias + shopt -u expand_aliases + + command -v builtin +@@ -76,7 +76,7 @@ command -V /bin/sh + + unset -f func + type func +-unalias m ++unalias morealias + type m + + hash -r +-- +2.35.5 + diff --git a/poky/meta/recipes-extended/bash/bash_5.2.21.bb b/poky/meta/recipes-extended/bash/bash_5.2.21.bb index 6df73b653b..46d921bbe6 100644 --- a/poky/meta/recipes-extended/bash/bash_5.2.21.bb +++ b/poky/meta/recipes-extended/bash/bash_5.2.21.bb @@ -12,6 +12,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \ file://run-bash-ptests \ file://fix-run-builtins.patch \ file://use_aclocal.patch \ + file://0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch \ " SRC_URI[tarball.sha256sum] = "c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8" diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc index ff5f55e62a..31f686cdfd 100644 --- a/poky/meta/recipes-extended/cups/cups.inc +++ b/poky/meta/recipes-extended/cups/cups.inc @@ -57,7 +57,7 @@ EXTRA_OECONF = " \ --enable-debug \ --disable-relro \ --enable-libusb \ - --with-system-groups=lpadmin \ + --with-system-groups=lpadmin,root,sys,wheel \ --with-cups-group=lp \ --with-domainsocket=/run/cups/cups.sock \ --with-pkgconfpath=${libdir}/pkgconfig \ diff --git a/poky/meta/recipes-extended/ethtool/ethtool_6.5.bb b/poky/meta/recipes-extended/ethtool/ethtool_6.6.bb index ef925e16b9..ab824356c2 100644 --- a/poky/meta/recipes-extended/ethtool/ethtool_6.5.bb +++ b/poky/meta/recipes-extended/ethtool/ethtool_6.6.bb @@ -11,7 +11,7 @@ SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ file://avoid_parallel_tests.patch \ " -SRC_URI[sha256sum] = "aed41ca58b3129126f18429172064d214191d7e7ef52c6e3f6b2ff7503706c03" +SRC_URI[sha256sum] = "d4cdb4f7498781fb516e2b3d0eadab28691da3fd3e3445954e82d745de95fb96" UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/" diff --git a/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch b/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch index 0c2c97cdc8..8824bf2af7 100644 --- a/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch +++ b/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch @@ -1,7 +1,7 @@ -From 698ed332e2c592235d2b737c545ac25ad0970e15 Mon Sep 17 00:00:00 2001 +From 0096c854d5015918ed154dccb3ad472fd06c1010 Mon Sep 17 00:00:00 2001 From: "Maxin B. John" <maxin.john@intel.com> Date: Tue, 21 Feb 2017 11:16:31 +0200 -Subject: [PATCH 1/4] configure: Add option to enable/disable libnfnetlink +Subject: [PATCH] configure: Add option to enable/disable libnfnetlink This changes the configure behaviour from autodetecting for libnfnetlink to having an option to disable it explicitly @@ -10,12 +10,13 @@ Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Maxin B. John <maxin.john@intel.com> + --- configure.ac | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac -index bc2ed47b..e27745e5 100644 +index d99fa3b..d607772 100644 --- a/configure.ac +++ b/configure.ac @@ -63,6 +63,9 @@ AC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH], @@ -28,9 +29,9 @@ index bc2ed47b..e27745e5 100644 AC_ARG_ENABLE([connlabel], AS_HELP_STRING([--disable-connlabel], [Do not build libnetfilter_conntrack]), -@@ -117,9 +120,10 @@ if test "x$enable_bpfc" = "xyes" || test "x$enable_nfsynproxy" = "xyes"; then - AC_CHECK_LIB(pcap, pcap_compile,, AC_MSG_ERROR(missing libpcap library required by bpf compiler or nfsynproxy tool)) - fi +@@ -113,9 +116,10 @@ AM_CONDITIONAL([ENABLE_SYNCONF], [test "$enable_nfsynproxy" = "yes"]) + AM_CONDITIONAL([ENABLE_NFTABLES], [test "$enable_nftables" = "yes"]) + AM_CONDITIONAL([ENABLE_CONNLABEL], [test "$enable_connlabel" = "yes"]) -PKG_CHECK_MODULES([libnfnetlink], [libnfnetlink >= 1.0], - [nfnetlink=1], [nfnetlink=0]) @@ -40,8 +41,5 @@ index bc2ed47b..e27745e5 100644 + ]) +AM_CONDITIONAL([HAVE_LIBNFNETLINK], [test "x$enable_libnfnetlink" = "xyes"]) - if test "x$enable_nftables" = "xyes"; then - PKG_CHECK_MODULES([libmnl], [libmnl >= 1.0], [mnl=1], [mnl=0]) --- -2.30.2 - + if test "x$enable_bpfc" = "xyes" || test "x$enable_nfsynproxy" = "xyes"; then + PKG_CHECK_MODULES([libpcap], [libpcap], [], [ diff --git a/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch b/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch index 9621d46c09..a190c7e8ae 100644 --- a/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch +++ b/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch @@ -1,7 +1,7 @@ -From d4699d2169fe2d91d0f1f4369d40d2e5f42b8877 Mon Sep 17 00:00:00 2001 +From 465e3ef77f1763d225adc76220e43ee9bd73b178 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin <alex@linutronix.de> Date: Tue, 17 May 2022 10:56:59 +0200 -Subject: [PATCH 2/4] iptables/xshared.h: add missing sys.types.h include +Subject: [PATCH] iptables/xshared.h: add missing sys.types.h include This resolves the build error under musl: @@ -12,12 +12,13 @@ This resolves the build error under musl: Upstream-Status: Submitted [via email to phil@nwl.cc] Signed-off-by: Alexander Kanavin <alex@linutronix.de> + --- iptables/xshared.h | 1 + 1 file changed, 1 insertion(+) diff --git a/iptables/xshared.h b/iptables/xshared.h -index 0ed9f3c2..b1413834 100644 +index a200e0d..f543dbf 100644 --- a/iptables/xshared.h +++ b/iptables/xshared.h @@ -6,6 +6,7 @@ @@ -28,6 +29,3 @@ index 0ed9f3c2..b1413834 100644 #include <linux/netfilter_arp/arp_tables.h> #include <linux/netfilter_ipv4/ip_tables.h> #include <linux/netfilter_ipv6/ip6_tables.h> --- -2.30.2 - diff --git a/poky/meta/recipes-extended/iptables/iptables/0003-Makefile.am-do-not-install-etc-ethertypes.patch b/poky/meta/recipes-extended/iptables/iptables/0003-Makefile.am-do-not-install-etc-ethertypes.patch deleted file mode 100644 index cbc97572ec..0000000000 --- a/poky/meta/recipes-extended/iptables/iptables/0003-Makefile.am-do-not-install-etc-ethertypes.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 28291b41bc3717f51e8d9d465f0100f1ca99dc26 Mon Sep 17 00:00:00 2001 -From: Trevor Gamblin <trevor.gamblin@windriver.com> -Date: Wed, 9 Mar 2022 12:50:39 -0500 -Subject: [PATCH 3/4] Makefile.am: do not install /etc/ethertypes - -The /etc/ethertypes is provided by netbase since 6.0[1]. -Do not instal the file in ebtables, otherwise there would be a conflict: -Error: Transaction test error: - file /etc/ethertypes conflicts between attempted installs of -netbase-1:6.2-r0.corei7_64 and iptables-1.8.7-r0.corei7_64 - -[1] -https://salsa.debian.org/md/netbase/-/commit/316680c6a2c3641b6abc76b3eebf88781f609d35) - -This patch is based off of the same change made for the ebtables recipe: - -http://cgit.openembedded.org/meta-openembedded/tree/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch?h=master - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 451c3cb2..5125238c 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -20,7 +20,7 @@ EXTRA_DIST = autogen.sh iptables-test.py xlate-test.py - - if ENABLE_NFTABLES - confdir = $(sysconfdir) --dist_conf_DATA = etc/ethertypes etc/xtables.conf -+dist_conf_DATA = etc/xtables.conf - endif - - .PHONY: tarball --- -2.30.2 - diff --git a/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch b/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch index 20c40c4039..5a022ebc8c 100644 --- a/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch +++ b/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch @@ -1,7 +1,7 @@ -From e7aa1dd2831f9bb5d0603c5e5027387ad7721b00 Mon Sep 17 00:00:00 2001 +From 6832501bbb90a3dab977a4625d0391804c0e795c Mon Sep 17 00:00:00 2001 From: "Maxin B. John" <maxin.john@intel.com> Date: Tue, 21 Feb 2017 11:49:07 +0200 -Subject: [PATCH 4/4] configure.ac: +Subject: [PATCH] configure.ac: only-check-conntrack-when-libnfnetlink-enabled.patch Package libnetfilter-conntrack depends on package libnfnetlink. iptables @@ -23,15 +23,16 @@ Upstream-Status: Pending Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Maxin B. John <maxin.john@intel.com> + --- configure.ac | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac -index e27745e5..528f1bb5 100644 +index d607772..25a8e75 100644 --- a/configure.ac +++ b/configure.ac -@@ -158,10 +158,12 @@ if test "$nftables" != 1; then +@@ -159,10 +159,12 @@ if test "$nftables" != 1; then fi if test "x$enable_connlabel" = "xyes"; then @@ -46,6 +47,3 @@ index e27745e5..528f1bb5 100644 if test "$nfconntrack" -ne 1; then blacklist_modules="$blacklist_modules connlabel"; echo "WARNING: libnetfilter_conntrack not found, connlabel match will not be built"; --- -2.30.2 - diff --git a/poky/meta/recipes-extended/iptables/iptables/format-security.patch b/poky/meta/recipes-extended/iptables/iptables/format-security.patch deleted file mode 100644 index fae920f0a8..0000000000 --- a/poky/meta/recipes-extended/iptables/iptables/format-security.patch +++ /dev/null @@ -1,31 +0,0 @@ -From ed4082a7405a5838c205a34c1559e289949200cc Mon Sep 17 00:00:00 2001 -From: Phil Sutter <phil@nwl.cc> -Date: Thu, 12 Jan 2023 14:38:44 +0100 -Subject: extensions: NAT: Fix for -Werror=format-security - -Have to pass either a string literal or format string to xt_xlate_add(). - -Fixes: f30c5edce0413 ("extensions: Merge SNAT, DNAT, REDIRECT and MASQUERADE") -Signed-off-by: Phil Sutter <phil@nwl.cc> -Upstream-Status: Backport [https://git.netfilter.org/iptables/commit/?id=ed4082a7405a5838c205a34c1559e289949200cc] -Signed-off-by: Alexander Kanavin <alex@linutronix.de> ---- - extensions/libxt_NAT.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/extensions/libxt_NAT.c b/extensions/libxt_NAT.c -index da9f2201..2a634398 100644 ---- a/extensions/libxt_NAT.c -+++ b/extensions/libxt_NAT.c -@@ -424,7 +424,7 @@ __NAT_xlate(struct xt_xlate *xl, const struct nf_nat_range2 *r, - if (r->flags & NF_NAT_RANGE_PROTO_OFFSET) - return 0; - -- xt_xlate_add(xl, tgt); -+ xt_xlate_add(xl, "%s", tgt); - if (strlen(range_str)) - xt_xlate_add(xl, " to %s", range_str); - if (r->flags & NF_NAT_RANGE_PROTO_RANDOM) { --- -cgit v1.2.3 - diff --git a/poky/meta/recipes-extended/iptables/iptables_1.8.9.bb b/poky/meta/recipes-extended/iptables/iptables_1.8.10.bb index dc91973548..cd2f3bce0b 100644 --- a/poky/meta/recipes-extended/iptables/iptables_1.8.9.bb +++ b/poky/meta/recipes-extended/iptables/iptables_1.8.10.bb @@ -15,11 +15,9 @@ SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.xz \ file://ip6tables.rules \ file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \ file://0002-iptables-xshared.h-add-missing-sys.types.h-include.patch \ - file://0003-Makefile.am-do-not-install-etc-ethertypes.patch \ file://0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch \ - file://format-security.patch \ " -SRC_URI[sha256sum] = "ef6639a43be8325a4f8ea68123ffac236cb696e8c78501b64e8106afb008c87f" +SRC_URI[sha256sum] = "5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c" SYSTEMD_SERVICE:${PN} = "\ iptables.service \ diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.26.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.27.bb index bae7960138..2ea80c6ce9 100644 --- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.26.bb +++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.27.bb @@ -12,7 +12,7 @@ SRC_URI = "git://github.com/openSUSE/libsolv.git;branch=master;protocol=https \ file://0001-utils-Conside-musl-when-wrapping-qsort_r.patch \ " -SRCREV = "48c985375134d2443eee551613161cadc278af2f" +SRCREV = "0caa2edb94ba228003bf18960e4574256e92f8fb" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" diff --git a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb index 7af3ea99d1..809d927f55 100644 --- a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb +++ b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb @@ -57,6 +57,11 @@ FILES:${PN}-dev += "${base_libdir}/security/*.la ${base_libdir}/*.la ${base_libd FILES:${PN}-runtime = "${sysconfdir} ${sbindir} ${systemd_system_unitdir}" FILES:${PN}-xtests = "${datadir}/Linux-PAM/xtests" +# libpam installs /etc/environment for use with the pam_env plugin. Make sure it is +# packaged with the pam-plugin-env package to avoid breaking installations which +# install that file via other packages +FILES:pam-plugin-env = "${sysconfdir}/environment" + PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*" def get_multilib_bit(d): @@ -113,7 +118,7 @@ python populate_packages:prepend () { pam_pkgname = mlprefix + 'pam-plugin%s' do_split_packages(d, pam_libdir, r'^pam(.*)\.so$', pam_pkgname, - 'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='') + 'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='', prepend=True) do_split_packages(d, pam_filterdir, r'^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='') } diff --git a/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch b/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch new file mode 100644 index 0000000000..1fabfe928e --- /dev/null +++ b/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch @@ -0,0 +1,147 @@ +From 25dbe2ce166a13322b7536ff2f738786ea2e61e7 Mon Sep 17 00:00:00 2001 +From: Alejandro Colomar <alx@kernel.org> +Date: Sat, 10 Jun 2023 16:20:05 +0200 +Subject: [PATCH] gpasswd(1): Fix password leak + +How to trigger this password leak? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When gpasswd(1) asks for the new password, it asks twice (as is usual +for confirming the new password). Each of those 2 password prompts +uses agetpass() to get the password. If the second agetpass() fails, +the first password, which has been copied into the 'static' buffer +'pass' via STRFCPY(), wasn't being zeroed. + +agetpass() is defined in <./libmisc/agetpass.c> (around line 91), and +can fail for any of the following reasons: + +- malloc(3) or readpassphrase(3) failure. + + These are going to be difficult to trigger. Maybe getting the system + to the limits of memory utilization at that exact point, so that the + next malloc(3) gets ENOMEM, and possibly even the OOM is triggered. + About readpassphrase(3), ENFILE and EINTR seem the only plausible + ones, and EINTR probably requires privilege or being the same user; + but I wouldn't discard ENFILE so easily, if a process starts opening + files. + +- The password is longer than PASS_MAX. + + The is plausible with physical access. However, at that point, a + keylogger will be a much simpler attack. + +And, the attacker must be able to know when the second password is being +introduced, which is not going to be easy. + +How to read the password after the leak? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Provoking the leak yourself at the right point by entering a very long +password is easy, and inspecting the process stack at that point should +be doable. Try to find some consistent patterns. + +Then, search for those patterns in free memory, right after the victim +leaks their password. + +Once you get the leak, a program should read all the free memory +searching for patterns that gpasswd(1) leaves nearby the leaked +password. + +On 6/10/23 03:14, Seth Arnold wrote: +> An attacker process wouldn't be able to use malloc(3) for this task. +> There's a handful of tools available for userspace to allocate memory: +> +> - brk / sbrk +> - mmap MAP_ANONYMOUS +> - mmap /dev/zero +> - mmap some other file +> - shm_open +> - shmget +> +> Most of these return only pages of zeros to a process. Using mmap of an +> existing file, you can get some of the contents of the file demand-loaded +> into the memory space on the first use. +> +> The MAP_UNINITIALIZED flag only works if the kernel was compiled with +> CONFIG_MMAP_ALLOW_UNINITIALIZED. This is rare. +> +> malloc(3) doesn't zero memory, to our collective frustration, but all the +> garbage in the allocations is from previous allocations in the current +> process. It isn't leftover from other processes. +> +> The avenues available for reading the memory: +> - /dev/mem and /dev/kmem (requires root, not available with Secure Boot) +> - /proc/pid/mem (requires ptrace privileges, mediated by YAMA) +> - ptrace (requires ptrace privileges, mediated by YAMA) +> - causing memory to be swapped to disk, and then inspecting the swap +> +> These all require a certain amount of privileges. + +How to fix it? +~~~~~~~~~~~~~~ + +memzero(), which internally calls explicit_bzero(3), or whatever +alternative the system provides with a slightly different name, will +make sure that the buffer is zeroed in memory, and optimizations are not +allowed to impede this zeroing. + +This is not really 100% effective, since compilers may place copies of +the string somewhere hidden in the stack. Those copies won't get zeroed +by explicit_bzero(3). However, that's arguably a compiler bug, since +compilers should make everything possible to avoid optimizing strings +that are later passed to explicit_bzero(3). But we all know that +sometimes it's impossible to have perfect knowledge in the compiler, so +this is plausible. Nevertheless, there's nothing we can do against such +issues, except minimizing the time such passwords are stored in plain +text. + +Security concerns +~~~~~~~~~~~~~~~~~ + +We believe this isn't easy to exploit. Nevertheless, and since the fix +is trivial, this fix should probably be applied soon, and backported to +all supported distributions, to prevent someone else having more +imagination than us to find a way. + +Affected versions +~~~~~~~~~~~~~~~~~ + +All. Bug introduced in shadow 19990709. That's the second commit in +the git history. + +Fixes: 45c6603cc86c ("[svn-upgrade] Integrating new upstream version, shadow (19990709)") + +CVE: CVE-2023-4641 +Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/65c88a43a23c2391dcc90c0abda3e839e9c57904] + +Reported-by: Alejandro Colomar <alx@kernel.org> +Cc: Serge Hallyn <serge@hallyn.com> +Cc: Iker Pedrosa <ipedrosa@redhat.com> +Cc: Seth Arnold <seth.arnold@canonical.com> +Cc: Christian Brauner <christian@brauner.io> +Cc: Balint Reczey <rbalint@debian.org> +Cc: Sam James <sam@gentoo.org> +Cc: David Runge <dvzrv@archlinux.org> +Cc: Andreas Jaeger <aj@suse.de> +Cc: <~hallyn/shadow@lists.sr.ht> +Signed-off-by: Alejandro Colomar <alx@kernel.org> +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +--- + src/gpasswd.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/gpasswd.c b/src/gpasswd.c +index 5983f787..2d8869ef 100644 +--- a/src/gpasswd.c ++++ b/src/gpasswd.c +@@ -896,6 +896,7 @@ static void change_passwd (struct group *gr) + strzero (cp); + cp = getpass (_("Re-enter new password: ")); + if (NULL == cp) { ++ memzero (pass, sizeof pass); + exit (1); + } + +-- +2.34.1 + diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc index 83e1a84769..ce3ce62715 100644 --- a/poky/meta/recipes-extended/shadow/shadow.inc +++ b/poky/meta/recipes-extended/shadow/shadow.inc @@ -17,6 +17,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \ file://0001-Fix-can-not-print-full-login.patch \ file://CVE-2023-29383.patch \ file://0001-Overhaul-valid_field.patch \ + file://CVE-2023-4641.patch \ " SRC_URI:append:class-target = " \ diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb b/poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb index 577eb43a80..c8631e05e9 100644 --- a/poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb +++ b/poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb @@ -31,7 +31,7 @@ SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GN file://migrator.patch \ file://distributor.patch \ " -SRC_URI[archive.sha256sum] = "5335dd573581db61e126d854dc16ae519657a5b8790789a47d25e43e17cd3a43" +SRC_URI[archive.sha256sum] = "7c994ef34ecd60e915de331ee123c08938f9623cefada6d50b99e3c9c5ad8135" # Developer mode enables debugging PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false" diff --git a/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb b/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb index 7722ebda8f..54d7ef7513 100644 --- a/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb +++ b/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f0120247 SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main" -SRCREV = "63b4fad4181e793f34b7777a89e5cb58fe8ac7e6" +SRCREV = "96f2e9b93e1d8a5338eb05b87fd879856ab7b3cc" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.117.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.118.bb index 3e6fb16e15..7e0b23e219 100644 --- a/poky/meta/recipes-graphics/drm/libdrm_2.4.117.bb +++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.118.bb @@ -13,7 +13,7 @@ DEPENDS = "libpthread-stubs" SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \ " -SRC_URI[sha256sum] = "a2888d69e3eb1c8a77adc08a75a60fbae01f0d208d26f034d1a12e362361242b" +SRC_URI[sha256sum] = "a777bd85f2b5fc9c57f886c82058300578317cafdbc77d0a769d7e9a9567ab88" inherit meson pkgconfig manpages 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 8230ba588b..06379ee716 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 c853c9e5c44f1b23a15a7ba629ee02f7d8ec23a0 Mon Sep 17 00:00:00 2001 +From 2afe24fc95dbb89e99df29ccbe73afa835f58202 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 @@ -14,15 +14,15 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 13d95bb..b241eb2 100644 +index de6d16b5..79cedbf6 100644 --- a/meson.build +++ b/meson.build -@@ -64,7 +64,7 @@ flags = [ +@@ -68,7 +68,7 @@ flags = [ add_project_arguments(cc.get_supported_arguments(flags), language : 'c') -prog_python = import('python').find_installation('python3') +prog_python = 'python3' - libdrm_dep = dependency('libdrm', version : '>=2.4.50') - thread_dep = dependency('threads') + not_found = dependency('', required: false) + libdrm_dep = dependency('libdrm', version : '>=2.4.50', required: get_option('drm').enabled() or get_option('venus')) diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch new file mode 100644 index 0000000000..48488d7be1 --- /dev/null +++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch @@ -0,0 +1,56 @@ +From ea328b246d093477cf26a68b42e975aaaef6abad Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 28 Nov 2023 21:55:36 -0800 +Subject: [PATCH] vtest: Fix undefined behavior with clang + +This is seen when compiling with CC="clang -D_FORTIFY_SOURCE=2" +Move #ifdef outside of printf() call. + +Fixes + +| ../git/vtest/vtest_server.c:244:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive] +| 244 | #ifdef ENABLE_VENUS +| | ^ +| ../git/vtest/vtest_server.c:246:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive] +| 246 | #endif +| | ^ + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1309] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + vtest/vtest_server.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c +index 1ca7f74f..93d949d7 100644 +--- a/vtest/vtest_server.c ++++ b/vtest/vtest_server.c +@@ -197,6 +197,12 @@ static void vtest_server_parse_args(int argc, char **argv) + /* getopt_long stores the option index here. */ + int option_index = 0; + ++#ifdef ENABLE_VENUS ++ char* ven = " [--venus]"; ++#else ++ char* ven = ""; ++#endif ++ + do { + ret = getopt_long(argc, argv, "", long_options, &option_index); + +@@ -244,10 +250,8 @@ static void vtest_server_parse_args(int argc, char **argv) + printf("Usage: %s [--no-fork] [--no-loop-or-fork] [--multi-clients] " + "[--use-glx] [--use-egl-surfaceless] [--use-gles] [--no-virgl]" + "[--rendernode <dev>] [--socket-path <path>] " +-#ifdef ENABLE_VENUS +- " [--venus]" +-#endif +- " [file]\n", argv[0]); ++ "%s" ++ " [file]\n", argv[0], ven); + exit(EXIT_FAILURE); + break; + } +-- +2.43.0 + diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.4.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb index f76e7cb1b9..eb7ba1089f 100644 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.4.bb +++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb @@ -9,18 +9,19 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" DEPENDS = "libdrm libepoxy virtual/egl virtual/libgbm" -SRCREV = "88b9fe3bfc64b23a701e4875006dbc0e769f14f6" -SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=master;protocol=https \ +SRCREV = "9c9d55ecbe502e0d71ee99529709efcca69aac42" +SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=main;protocol=https \ file://0001-meson.build-use-python3-directly-for-python.patch \ + file://0001-vtest-Fix-undefined-behavior-with-clang.patch \ " S = "${WORKDIR}/git" inherit meson pkgconfig features_check -PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus-experimental', '', d)}" +PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus', '', d)}" -PACKAGECONFIG[venus-experimental] = "-Dvenus-experimental=true,-Dvenus-experimental=false,vulkan-loader vulkan-headers" +PACKAGECONFIG[venus] = "-Dvenus=true,-Dvenus=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" diff --git a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.5.0.bb b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.6.0.bb index 62e9b158e4..02045cc212 100644 --- a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.5.0.bb +++ b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.6.0.bb @@ -9,11 +9,11 @@ DEPENDS = "flex-native bison-native" SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "560f11c4bbbca10f495f3ef7d3a6aa4ca62b4f8fb0b52e7d459d18a26e46e017" +SRC_URI[sha256sum] = "0edc14eccdd391514458bc5f5a4b99863ed2d651e4dd761a90abf4f46ef99c2b" UPSTREAM_CHECK_URI = "http://xkbcommon.org/" -inherit meson pkgconfig +inherit meson pkgconfig bash-completion PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} xkbregistry" diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch new file mode 100644 index 0000000000..598f5a7efa --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch @@ -0,0 +1,79 @@ +From 4f32efe70b618c4721bf197692fc9d709d352528 Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 20 Nov 2023 11:27:12 -0500 +Subject: [PATCH 1/2] fix: phys_proc_id and cpu_core_id moved in linux + 6.7.0-rc1 + +See upstream commit: + + commit 02fb601d27a7abf60d52b21bdf5b100a8d63da3f + Author: Thomas Gleixner <tglx@linutronix.de> + Date: Mon Aug 14 10:18:30 2023 +0200 + + x86/cpu: Move phys_proc_id into topology info + + Rename it to pkg_id which is the terminology used in the kernel. + + No functional change. + +See upstream commit: + + commit e95256335d45cc965cd12c423535002974313340 + Author: Thomas Gleixner <tglx@linutronix.de> + Date: Mon Aug 14 10:18:34 2023 +0200 + + x86/cpu: Move cpu_core_id into topology info + + Rename it to core_id and stick it to the other ID fields. + + No functional change. + +Upstream-Status: Backport [commit 4f32efe7] + +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: I574b02430210d5bb72c4b9db901d0e3a6dc7bea0 +--- + .../instrumentation/events/lttng-statedump.h | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/include/instrumentation/events/lttng-statedump.h b/include/instrumentation/events/lttng-statedump.h +index 642aa356..4831a941 100644 +--- a/include/instrumentation/events/lttng-statedump.h ++++ b/include/instrumentation/events/lttng-statedump.h +@@ -253,6 +253,23 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_interrupt, + + #define LTTNG_HAVE_STATEDUMP_CPU_TOPOLOGY + ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0)) ++LTTNG_TRACEPOINT_EVENT(lttng_statedump_cpu_topology, ++ TP_PROTO(struct lttng_kernel_session *session, struct cpuinfo_x86 *c), ++ TP_ARGS(session, c), ++ TP_FIELDS( ++ ctf_string(architecture, "x86") ++ ctf_integer(uint16_t, cpu_id, c->cpu_index) ++ ctf_string(vendor, c->x86_vendor_id[0] ? c->x86_vendor_id : "unknown") ++ ctf_integer(uint8_t, family, c->x86) ++ ctf_integer(uint8_t, model, c->x86_model) ++ ctf_string(model_name, c->x86_model_id[0] ? c->x86_model_id : "unknown") ++ ctf_integer(uint16_t, physical_id, c->topo.pkg_id) ++ ctf_integer(uint16_t, core_id, c->topo.core_id) ++ ctf_integer(uint16_t, cores, c->booted_cores) ++ ) ++) ++#else + LTTNG_TRACEPOINT_EVENT(lttng_statedump_cpu_topology, + TP_PROTO(struct lttng_kernel_session *session, struct cpuinfo_x86 *c), + TP_ARGS(session, c), +@@ -268,6 +285,8 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_cpu_topology, + ctf_integer(uint16_t, cores, c->booted_cores) + ) + ) ++#endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0) */ ++ + #endif /* CONFIG_X86_32 || CONFIG_X86_64 */ + + #endif /* LTTNG_TRACE_LTTNG_STATEDUMP_H */ +-- +2.34.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch index 76a5787c37..120528bf9c 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch @@ -19,10 +19,10 @@ Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> src/Kbuild | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) -diff --git a/src/Kbuild b/src/Kbuild -index 7137874..04eb5c9 100644 ---- a/src/Kbuild -+++ b/src/Kbuild +Index: lttng-modules-2.13.10/src/Kbuild +=================================================================== +--- lttng-modules-2.13.10.orig/src/Kbuild ++++ lttng-modules-2.13.10/src/Kbuild @@ -2,10 +2,13 @@ ifdef CONFIG_LOCALVERSION # Check if dot-config is included. @@ -38,7 +38,7 @@ index 7137874..04eb5c9 100644 TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/.. lttng_check_linux_version = $(shell pwd)/include/linux/version.h -@@ -150,3 +153,5 @@ lttng-statedump-objs := lttng-statedump-impl.o +@@ -150,3 +153,5 @@ lttng-statedump-objs := lttng-statedump- obj-$(CONFIG_LTTNG) += probes/ obj-$(CONFIG_LTTNG) += lib/ obj-$(CONFIG_LTTNG) += tests/ diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch new file mode 100644 index 0000000000..b374483517 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch @@ -0,0 +1,35 @@ +From 76e4ea0c33a8c7726c0df28083d5c8bc1c1335e8 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield <bruce.ashfield@gmail.com> +Date: Thu, 23 Nov 2023 13:49:51 -0500 +Subject: [PATCH] wrapper/fdtable: adjust fd lookup to v6.7+ + +commit 0ede61d8589cc2d93 [file: convert to SLAB_TYPESAFE_BY_RCU] +renames lookup_fd_rcu to lookup_fdget_rcu, so we need to +version adjust the fdtable wrapper accordingly. + +Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2023-November/030667.html] + +Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> +--- + include/wrapper/fdtable.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/include/wrapper/fdtable.h b/include/wrapper/fdtable.h +index fa5f7207..aaf2b9e7 100644 +--- a/include/wrapper/fdtable.h ++++ b/include/wrapper/fdtable.h +@@ -16,7 +16,11 @@ + static inline + struct file *lttng_lookup_fd_rcu(unsigned int fd) + { ++#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(6,7,0)) + return lookup_fd_rcu(fd); ++#else ++ return lookup_fdget_rcu(fd); ++#endif + } + #else + static inline +-- +2.34.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch new file mode 100644 index 0000000000..a1b979c95a --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch @@ -0,0 +1,71 @@ +From aee34d916bdae79abcf103ef098cbb2e0c20bf83 Mon Sep 17 00:00:00 2001 +From: Kienan Stewart <kstewart@efficios.com> +Date: Mon, 20 Nov 2023 11:33:14 -0500 +Subject: [PATCH 2/2] fix: mm, vmscan signatures changed in linux 6.7.0-rc1 + +See upstream commit: + + commit 3dfbb555c98ac55b9d911f9af0e35014b445fb41 + Author: Vlastimil Babka <vbabka@suse.cz> + Date: Thu Sep 14 15:16:39 2023 +0200 + + mm, vmscan: remove ISOLATE_UNMAPPED + + This isolate_mode_t flag is effectively unused since 89f6c88a6ab4 ("mm: + __isolate_lru_page_prepare() in isolate_migratepages_block()") as + sc->may_unmap is now checked directly (and only node_reclaim has a mode + that sets it to 0). The last remaining place is mm_vmscan_lru_isolate + tracepoint for the isolate_mode parameter. That one was mainly used to + indicate the active/inactive mode, which the trace-vmscan-postprocess.pl + script consumed, but that got silently broken. After fixing the script by + the previous patch, it does not need the isolate_mode anymore. So just + remove the parameter and with that the whole ISOLATE_UNMAPPED flag. + +Upstream-Status: Backport [commit aee34d91] + +Signed-off-by: Kienan Stewart <kstewart@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: Ie7346886d926a1a9d20bcb1570c587c5e943a1c3 +--- + include/instrumentation/events/mm_vmscan.h | 28 +++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +Index: lttng-modules-2.13.10/include/instrumentation/events/mm_vmscan.h +=================================================================== +--- lttng-modules-2.13.10.orig/include/instrumentation/events/mm_vmscan.h ++++ lttng-modules-2.13.10/include/instrumentation/events/mm_vmscan.h +@@ -369,7 +369,33 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_sla + ) + #endif + +-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) ++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0)) ++LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate, ++ ++ TP_PROTO(int classzone_idx, ++ int order, ++ unsigned long nr_requested, ++ unsigned long nr_scanned, ++ unsigned long nr_skipped, ++ unsigned long nr_taken, ++ int lru ++ ), ++ ++ TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_skipped, ++ nr_taken, lru ++ ), ++ ++ TP_FIELDS( ++ ctf_integer(int, classzone_idx, classzone_idx) ++ ctf_integer(int, order, order) ++ ctf_integer(unsigned long, nr_requested, nr_requested) ++ ctf_integer(unsigned long, nr_scanned, nr_scanned) ++ ctf_integer(unsigned long, nr_skipped, nr_skipped) ++ ctf_integer(unsigned long, nr_taken, nr_taken) ++ ctf_integer(int, lru, lru) ++ ) ++) ++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) + LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate, + + TP_PROTO(int classzone_idx, diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb index 4c0e37ebc7..a7e3096c6a 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb +++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb @@ -10,6 +10,9 @@ inherit module include lttng-platforms.inc SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch \ + file://0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch \ + file://0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch \ " # Use :append here so that the patch is applied also when using devupstream diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.32.3.bb index b03ee9f71a..3ea68b12a8 100644 --- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb +++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.32.3.bb @@ -10,7 +10,7 @@ LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169" SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" -SRC_URI[sha256sum] = "1ca77d3a69a5ff845b7a0536f783fee554e1041139a6b978f6afe14f5814ad1a" +SRC_URI[sha256sum] = "2d9913a57d4ee8f497a182c6e82582602409782a4fb481e989feebf4435867b4" UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar" @@ -40,7 +40,6 @@ CACHED_CONFIGUREVARS:libc-musl = "ac_cv_sys_file_offset_bits=no" EXTRA_OECONF = " \ --enable-shared \ --enable-largefile \ - --disable-lfs-alias \ --with-audio='${AUDIOMODS}' \ ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ diff --git a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch index e9967767a0..a1fc9e26a0 100644 --- a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch +++ b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch @@ -1,4 +1,4 @@ -From 174fd202f2c85e43261139d71ad18908cc29b586 Mon Sep 17 00:00:00 2001 +From 7cf4cf097895bd4c3f3d3a6f783c766b3173cf1a Mon Sep 17 00:00:00 2001 From: Randy Witt <randy.e.witt@intel.com> Date: Fri, 16 Oct 2020 16:54:30 -0700 Subject: [PATCH] Makefile: Allow for CC and AR to be overridden @@ -15,11 +15,11 @@ Upstream-Status: Inappropriate [other] 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile -index 4df61ec..a229986 100644 +index 223a839..a735584 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ - VERSION = 2.5 + VERSION = 2.6 -CC = $(CROSS_COMPILE)gcc -AR = $(CROSS_COMPILE)ar +CC ?= $(CROSS_COMPILE)gcc diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc index 527e14ad54..70315c4694 100644 --- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc +++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc @@ -1,5 +1,5 @@ -SRCREV = "4579b9a6d85ae528f76e92421eb5e7b33cd26b17" -PV = "2.5" +SRCREV = "217cd8518c5f7777d490892aa9c765a6b2782cb5" +PV = "2.6" PE = "1" SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main;protocol=https" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch index 34e0ff9af3..e5ece82ed3 100644 --- a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch +++ b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch @@ -1,4 +1,4 @@ -From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001 +From 95398982f4a120147a98a27e176facf6d95b2bf7 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] FELightningNEON.cpp fails to build, NEON fast path seems @@ -33,6 +33,7 @@ left for a follow-up fix. 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 | 52 +++++++++---------- @@ -203,7 +204,7 @@ index b17c603d..e4629cda 100644 - -#endif // FELightingNEON_h diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h -index 70c6512f..b032c82e 100644 +index 70f583b3..7d5d27e5 100644 --- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h +++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h @@ -26,6 +26,10 @@ @@ -218,7 +219,7 @@ index 70c6512f..b032c82e 100644 class DistantLightSource : public LightSource { diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h -index 53beb596..e78a9354 100644 +index 179edf6d..694d712d 100644 --- a/Source/WebCore/platform/graphics/filters/FELighting.h +++ b/Source/WebCore/platform/graphics/filters/FELighting.h @@ -35,8 +35,6 @@ @@ -229,8 +230,8 @@ index 53beb596..e78a9354 100644 - class FELighting : public FilterEffect { public: - const Color& lightingColor() const { return m_lightingColor; } -@@ -64,11 +62,6 @@ protected: + bool operator==(const FELighting&) const; +@@ -68,11 +66,6 @@ protected: std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override; @@ -243,7 +244,7 @@ index 53beb596..e78a9354 100644 float m_surfaceScale; float m_diffuseConstant; diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h -index 3a5723f0..675d63f5 100644 +index a8cfdab8..34f867bb 100644 --- a/Source/WebCore/platform/graphics/filters/PointLightSource.h +++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h @@ -26,6 +26,10 @@ @@ -258,7 +259,7 @@ index 3a5723f0..675d63f5 100644 class PointLightSource : public LightSource { diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h -index 684626f7..dea58389 100644 +index 6404467a..5cac38f2 100644 --- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h +++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h @@ -26,6 +26,10 @@ diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch b/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch deleted file mode 100644 index ae99810ced..0000000000 --- a/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch +++ /dev/null @@ -1,33 +0,0 @@ -Add additional check on GST_GL_HAVE_PLATFORM_GLX before using gst_gl_display_x11_new_with_display - -This ensures that there is a compile time check for glx support in gstreamer as -runtime check is not enough because gst_gl_display_x11_new_with_display() API comes from -gst/gl/x11/gstgldisplay_x11.h which is only included when GST_GL_HAVE_PLATFORM_GLX is defined -therefore make this check consistent to fix build with some platforms which use pvr gl drivers -where this problem appear at compile time. - - -/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; did you mean 'gst_gl_display_egl_new_with_egl_display'? - 68 | return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native())); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - | gst_gl_display_egl_new_with_egl_display - -This issue is 2.40 specific since GLX support is removed [1] from trunk upstream, therefore -this patch wont be needed when upgrading to 2.42+ - -[1] https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf - -Upstream-Status: Inappropriate [GLX support is gone in 2.41+] -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp 2023-02-20 01:22:18.917743700 -0800 -+++ b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp 2023-07-08 08:45:09.739177065 -0700 -@@ -63,7 +63,7 @@ - if (glPlatform == GST_GL_PLATFORM_EGL) - return GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay())); - #endif --#if USE(GLX) -+#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX - if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == GST_GL_PLATFORM_GLX) - return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native())); - #endif diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb index 0c54f202ca..2ba60eb65b 100644 --- a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb +++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb @@ -13,10 +13,9 @@ SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ file://reproducibility.patch \ file://0d3344e17d258106617b0e6d783d073b188a2548.patch \ - file://check-GST_GL_HAVE_PLATFORM_GLX.patch \ file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \ " -SRC_URI[sha256sum] = "7de051a263668621d91a61a5eb1c3771d1a7cec900043d4afef06c326c16037f" +SRC_URI[sha256sum] = "5720aa3e8627f1b9f63252187d4df0f8233ae71d697b1796ebfbe5ca750bd118" inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen @@ -75,6 +74,7 @@ PACKAGECONFIG[soup3] = ",,libsoup,,,soup2" PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd" PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif" PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad" +PACKAGECONFIG[jpegxl] = "-DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl" EXTRA_OECMAKE = " \ -DPORT=GTK \ diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_251.bb b/poky/meta/recipes-support/diffoscope/diffoscope_252.bb index 8862509e05..86dc85df83 100644 --- a/poky/meta/recipes-support/diffoscope/diffoscope_251.bb +++ b/poky/meta/recipes-support/diffoscope/diffoscope_252.bb @@ -12,7 +12,7 @@ PYPI_PACKAGE = "diffoscope" inherit pypi setuptools3 -SRC_URI[sha256sum] = "c9ba2fc24379b2ba4457dc7be6970884cc2ee94c20d44f3889c2a4741e6178d3" +SRC_URI[sha256sum] = "e268384fa484f3dd8a936da626e6ef1b231dcb286d09a360f37548637f8dd46d" RDEPENDS:${PN} += "\ binutils \ diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.8.1.bb b/poky/meta/recipes-support/gnutls/gnutls_3.8.2.bb index 455031dd47..43fb5c4c4e 100644 --- a/poky/meta/recipes-support/gnutls/gnutls_3.8.1.bb +++ b/poky/meta/recipes-support/gnutls/gnutls_3.8.2.bb @@ -25,7 +25,7 @@ SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar file://Add-ptest-support.patch \ " -SRC_URI[sha256sum] = "ba8b9e15ae20aba88f44661978f5b5863494316fe7e722ede9d069fe6294829c" +SRC_URI[sha256sum] = "e765e5016ffa9b9dd243e363a0460d577074444ee2491267db2e96c9c2adef77" inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest diff --git a/poky/meta/recipes-support/icu/icu_73-2.bb b/poky/meta/recipes-support/icu/icu_74-1.bb index 7c59f8bb89..88ded166b5 100644 --- a/poky/meta/recipes-support/icu/icu_73-2.bb +++ b/poky/meta/recipes-support/icu/icu_74-1.bb @@ -78,7 +78,7 @@ FILES:libicuio = "${libdir}/libicuio.so.*" BBCLASSEXTEND = "native nativesdk" -LIC_FILES_CHKSUM = "file://../LICENSE;md5=80c2cf39ad8ae12b9b9482a1737c6650" +LIC_FILES_CHKSUM = "file://../LICENSE;md5=08dc3852df8fffa807301902ad899ff8" def icu_download_version(d): pvsplit = d.getVar('PV').split('-') @@ -111,8 +111,8 @@ SRC_URI = "${BASE_SRC_URI};name=code \ SRC_URI:append:class-target = "\ file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \ " -SRC_URI[code.sha256sum] = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1" -SRC_URI[data.sha256sum] = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701" +SRC_URI[code.sha256sum] = "86ce8e60681972e60e4dcb2490c697463fcec60dd400a5f9bffba26d0b52b8d0" +SRC_URI[data.sha256sum] = "67d5ab39c5187e1dd0fed60a3fe52794dce9784b4c045cb85e19f5d317fd783f" UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)" GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases" diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb index 524b06ca22..1c4f4d6038 100644 --- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb +++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb @@ -27,7 +27,7 @@ SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ file://no-bench-slope.patch \ file://run-ptest \ " -SRC_URI[sha256sum] = "3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03" +SRC_URI[sha256sum] = "8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa" CVE_STATUS[CVE-2018-12433] = "disputed: CVE is disputed and not affecting crypto libraries for any distro." CVE_STATUS[CVE-2018-12438] = "disputed: CVE is disputed and not affecting crypto libraries for any distro." diff --git a/poky/meta/recipes-support/libksba/libksba_1.6.4.bb b/poky/meta/recipes-support/libksba/libksba_1.6.5.bb index f9636f9433..62ba73d2d5 100644 --- a/poky/meta/recipes-support/libksba/libksba_1.6.4.bb +++ b/poky/meta/recipes-support/libksba/libksba_1.6.5.bb @@ -24,7 +24,7 @@ UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ file://ksba-add-pkgconfig-support.patch" -SRC_URI[sha256sum] = "bbb43f032b9164d86c781ffe42213a83bf4f2fee91455edfa4654521b8b03b6b" +SRC_URI[sha256sum] = "a564628c574c99287998753f98d750babd91a4e9db451f46ad140466ef2a6d16" do_configure:prepend () { # Else these could be used in preference to those in aclocal-copy diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch b/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch new file mode 100644 index 0000000000..d867e5bc17 --- /dev/null +++ b/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch @@ -0,0 +1,44 @@ +From ced3c5d8cad0177b297666343f1561799dfefb0d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 22 Nov 2023 18:49:10 -0800 +Subject: [PATCH] Fix build with libxml2-2.12.0 and clang-17 + +Fixes build errors about missing function prototypes with clang-17 + +Fixes +| ../libsoup-2.74.3/libsoup/soup-xmlrpc-old.c:512:8: error: call to undeclared function 'xmlParseMemory'; ISO C99 and later do not support implicit function declarations + +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/385] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libsoup/soup-xmlrpc-old.c | 1 + + libsoup/soup-xmlrpc.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/libsoup/soup-xmlrpc-old.c b/libsoup/soup-xmlrpc-old.c +index c57086b6..527e3b23 100644 +--- a/libsoup/soup-xmlrpc-old.c ++++ b/libsoup/soup-xmlrpc-old.c +@@ -11,6 +11,7 @@ + + #include <string.h> + ++#include <libxml/parser.h> + #include <libxml/tree.h> + + #include "soup-xmlrpc-old.h" +diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c +index 42dcda9c..e991cbf0 100644 +--- a/libsoup/soup-xmlrpc.c ++++ b/libsoup/soup-xmlrpc.c +@@ -17,6 +17,7 @@ + + #include <string.h> + #include <errno.h> ++#include <libxml/parser.h> + #include <libxml/tree.h> + #include "soup-xmlrpc.h" + #include "soup.h" +-- +2.43.0 + diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb index a605857c60..ee20530b64 100644 --- a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb +++ b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb @@ -11,7 +11,8 @@ DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 libpsl" SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" -SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz" +SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \ + file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch" SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" CVE_PRODUCT = "libsoup" diff --git a/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb b/poky/meta/recipes-support/libxslt/libxslt_1.1.39.bb index ed5b15badd..2cc0c84bec 100644 --- a/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb +++ b/poky/meta/recipes-support/libxslt/libxslt_1.1.39.bb @@ -15,7 +15,7 @@ DEPENDS = "libxml2" SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz" -SRC_URI[sha256sum] = "1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1" +SRC_URI[sha256sum] = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0" UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar" diff --git a/poky/meta/recipes-support/p11-kit/files/strerror-1.patch b/poky/meta/recipes-support/p11-kit/files/strerror-1.patch deleted file mode 100644 index 6af4fee724..0000000000 --- a/poky/meta/recipes-support/p11-kit/files/strerror-1.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 3ba2c55dfdc8ff20de369f07f6c57d08718d3add Mon Sep 17 00:00:00 2001 -From: Adam Sampson <ats@offog.org> -Date: Sun, 2 Jul 2023 15:22:49 +0100 -Subject: [PATCH] Check for GNU strerror_r using the compiler only - -The new test that was added to distinguish GNU/XSI strerror_r ran a -compiled program, which doesn't work when cross-compiling. The only -difference at compile time is that the GNU version returns char * and -the XSI version returns int, so detect it by compiling a program that -dereferences the return value. - -Signed-off-by: Adam Sampson <ats@offog.org> - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@arm.com> ---- - configure.ac | 19 +++++++------------ - meson.build | 10 +++++----- - 2 files changed, 12 insertions(+), 17 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 40f5a583..29890622 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -146,19 +146,14 @@ if test "$os_unix" = "yes"; then - - AC_CHECK_FUNC( - [strerror_r], -- [AC_RUN_IFELSE( -- [AC_LANG_SOURCE([[ -- #include <errno.h> -- #include <string.h> -- -- int main (void) -- { -- char buf[32]; -- return strerror_r (EINVAL, buf, 32); -- } -- ]])], -- [AC_DEFINE([HAVE_XSI_STRERROR_R], 1, [Whether XSI-compliant strerror_r() is available])], -+ [AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM([[#include <errno.h> -+ #include <string.h>]], -+ [[/* GNU strerror_r returns char *, XSI returns int */ -+ char buf[32]; -+ return *strerror_r (EINVAL, buf, 32);]])], - [AC_DEFINE([HAVE_GNU_STRERROR_R], 1, [Whether GNU-specific strerror_r() is available])], -+ [AC_DEFINE([HAVE_XSI_STRERROR_R], 1, [Whether XSI-compliant strerror_r() is available])], - [])], - []) - -diff --git a/meson.build b/meson.build -index 0f8c8da0..4cc3f89a 100644 ---- a/meson.build -+++ b/meson.build -@@ -306,15 +306,15 @@ if cc.has_function('strerror_r', prefix: '#include <string.h>') - - int main (void) - { -+ /* GNU strerror_r returns char *, XSI returns int */ - char buf[32]; -- return strerror_r (EINVAL, buf, 32); -+ return *strerror_r (EINVAL, buf, 32); - } - ''' -- strerror_r_check = cc.run(strerror_r_code, name : 'strerror_r check') -- if strerror_r_check.returncode() == 0 -- conf.set('HAVE_XSI_STRERROR_R', 1) -- else -+ if cc.compiles(strerror_r_code, name : 'GNU strerror_r check') - conf.set('HAVE_GNU_STRERROR_R', 1) -+ else -+ conf.set('HAVE_XSI_STRERROR_R', 1) - endif - endif - diff --git a/poky/meta/recipes-support/p11-kit/files/strerror-2.patch b/poky/meta/recipes-support/p11-kit/files/strerror-2.patch deleted file mode 100644 index 1a9180b508..0000000000 --- a/poky/meta/recipes-support/p11-kit/files/strerror-2.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7aa6251bf4ce36d027d53c9c96bb05f90ef7eb5b Mon Sep 17 00:00:00 2001 -From: Adam Sampson <ats@offog.org> -Date: Sun, 2 Jul 2023 15:44:06 +0100 -Subject: [PATCH] Define _GNU_SOURCE when testing for strerror_r - -The Meson check for GNU/XSI strerror_r didn't inherit the project -options that include _GNU_SOURCE (unlike the autoconf version), so the -result didn't match how the code that uses it will be compiled. Add -_GNU_SOURCE explicitly as with the following checks. - -Signed-off-by: Adam Sampson <ats@offog.org> - -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@arm.com> ---- - meson.build | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/meson.build b/meson.build -index 4cc3f89a..9a72e148 100644 ---- a/meson.build -+++ b/meson.build -@@ -301,6 +301,7 @@ endforeach - - if cc.has_function('strerror_r', prefix: '#include <string.h>') - strerror_r_code = ''' -+#define _GNU_SOURCE - #include <errno.h> - #include <string.h> - diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.25.2.bb index ad1fda3f3b..d00ef2daf5 100644 --- a/poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb +++ b/poky/meta/recipes-support/p11-kit/p11-kit_0.25.2.bb @@ -10,10 +10,8 @@ DEPENDS = "libtasn1 libtasn1-native libffi" DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}" -SRC_URI = "git://github.com/p11-glue/p11-kit;branch=master;protocol=https \ - file://strerror-1.patch \ - file://strerror-2.patch" -SRCREV = "a8cce8bd8065bbf80bd47219f85f0cd9cf27dd0c" +SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https" +SRCREV = "66d6b42ef8dd84fcd8e199ac9f23f822f1a058c9" S = "${WORKDIR}/git" PACKAGECONFIG ??= "" diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch new file mode 100644 index 0000000000..936f72ccf8 --- /dev/null +++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch @@ -0,0 +1,26 @@ +From 665383306c725f299a1b373f947cda01949d49e4 Mon Sep 17 00:00:00 2001 +From: David Faure <faure@kde.org> +Date: Sun, 19 Nov 2023 11:18:11 +0100 +Subject: [PATCH] Fix build with libxml2-2.12.0 and clang-17 + +Fixes #219 + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/commit/c918fe77e255150938e83a6aec259f153d303573] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/test-subclassing.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/test-subclassing.c b/src/test-subclassing.c +index dd099e4..0758164 100644 +--- a/src/test-subclassing.c ++++ b/src/test-subclassing.c +@@ -1,4 +1,5 @@ + #include <libxml/tree.h> ++#include <libxml/parser.h> + #include <stdio.h> + #include <string.h> + +-- +2.43.0 + diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch new file mode 100644 index 0000000000..2af6b461b6 --- /dev/null +++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch @@ -0,0 +1,54 @@ +From 461d00fcd5c5842b9a56f7462d55d46bf21163cc Mon Sep 17 00:00:00 2001 +From: Patrick Williams <patrick@stwcx.xyz> +Date: Fri, 1 Dec 2023 11:19:02 -0600 +Subject: [PATCH] Handle build with older versions of GCC + +Older versions of GCC (prior to 9.1) did not put the `std::filesystem` +support directly into libstdcpp, but in a separate `libstdc++fs`. Add +meson logic to detect if an extra linker flag is necessary. + +Fixes #223. + +Tested on AlmaLinux 8 which uses GCC-8. + +Signed-off-by: Patrick Williams <patrick@stwcx.xyz> +Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/278] +--- + meson.build | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/meson.build b/meson.build +index ecc012f..93acd40 100644 +--- a/meson.build ++++ b/meson.build +@@ -11,6 +11,7 @@ config = configuration_data() + i18n = import('i18n') + + cc = meson.get_compiler('c') ++cxx = meson.get_compiler('cpp') + + ############################################################################### + # Project configuration +@@ -46,6 +47,19 @@ if not xdgmime_found + ''') + endif + ++############################################################################### ++# Check if GCC needs -lstdc++fs (before 9.1) ++ ++if not cxx.links(''' ++ #include <filesystem> ++ int main() { ++ return std::filesystem::is_directory( ++ std::filesystem::status("/tmp")) ? 0 : 1; ++ } ++ ''', name: 'std++fs-check') ++ add_project_link_arguments('-lstdc++fs', language : 'cpp') ++endif ++ + ############################################################################### + # Dependencies + +-- +2.41.0 + diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb b/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb index 5ba4023609..ef5df44ad6 100644 --- a/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb +++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb @@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native" -SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master" +SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \ + file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \ + file://0002-Handle-build-with-older-versions-of-GCC.patch" SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc index a37310afd8..6b440d8947 100644 --- a/poky/meta/recipes-support/vim/vim.inc +++ b/poky/meta/recipes-support/vim/vim.inc @@ -19,8 +19,8 @@ SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \ file://no-path-adjust.patch \ " -PV .= ".2068" -SRCREV = "9198c1f2b1ddecde22af918541e0de2a32f0f45a" +PV .= ".2130" +SRCREV = "075ad7047457debfeef13442c01e74088b461092" # Do not consider .z in x.y.z, as that is updated with every commit UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0" diff --git a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch index b4100fc381..8934d5f80a 100644 --- a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch +++ b/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch @@ -11,32 +11,25 @@ Upstream-Status: Submitted [1] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> [1] https://gitlab.gnome.org/GNOME/vte/issues/72 - --- - src/missing.hh | 4 ++++ - src/widget.cc | 1 + - 2 files changed, 5 insertions(+) + src/widget.cc | 4 +++ + 1 files changed, 4 insertions(+) ---- a/src/missing.hh -+++ b/src/missing.hh -@@ -24,6 +24,10 @@ - #define NSIG (8 * sizeof(sigset_t)) - #endif +diff --git a/src/widget.cc b/src/widget.cc +index 07f7cabf..31a77f68 100644 +--- a/src/widget.cc ++++ b/src/widget.cc +@@ -16,6 +16,10 @@ + * along with this library. If not, see <https://www.gnu.org/licenses/>. + */ +#ifndef W_EXITCODE +#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) +#endif + - #ifndef HAVE_FDWALK - int fdwalk(int (*cb)(void* data, int fd), - void* data); ---- a/src/widget.cc -+++ b/src/widget.cc -@@ -21,6 +21,7 @@ - #include "widget.hh" - - #include <sys/wait.h> // for W_EXITCODE -+#include "missing.hh" // for W_EXITCODE on non-glibc systems + #include "config.h" - #include <exception> - #include <new> + #include "widget.hh" +-- +2.42.0 + diff --git a/poky/meta/recipes-support/vte/vte_0.72.2.bb b/poky/meta/recipes-support/vte/vte_0.72.2.bb deleted file mode 100644 index 44e71491f6..0000000000 --- a/poky/meta/recipes-support/vte/vte_0.72.2.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "Virtual terminal emulator GTK+ widget library" -DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications." -HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE" -BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte" -LICENSE = "GPL-3.0-only & LGPL-3.0-or-later & MIT" -LICENSE:libvte = "LGPL-3.0-or-later" - -LIC_FILES_CHKSUM = " \ - file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \ - file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \ - file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \ -" - -DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu" - -GIR_MESON_OPTION = 'gir' -GIDOCGEN_MESON_OPTION = "docs" - -inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection - -# vapigen.m4 is required when vala is not present (but the one from vala should be used normally) -SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch" -SRC_URI[archive.sha256sum] = "f7966fd185a6981f53964162b71cfef7e606495155d6f5827b72aa0dd6741c9e" - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" - -# Help g-ir-scanner find the .so for linking -do_compile:prepend() { - export GIR_EXTRA_LIBS_PATH="${B}/src/.libs" -} - -# Package additional files -FILES:${PN}-dev += "${datadir}/vala/vapi/*" - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala" -PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" -PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd" -# vala requires gir -PACKAGECONFIG:remove:class-native = "vala" - -CFLAGS += "-D_GNU_SOURCE" - -PACKAGES =+ "libvte ${PN}-prompt" -FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" -FILES:${PN}-prompt = " \ - ${sysconfdir}/profile.d \ - ${libexecdir}/vte-urlencode-cwd \ -" - -FILES:${PN}-dev += "${datadir}/glade/" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/vte/vte_0.74.1.bb b/poky/meta/recipes-support/vte/vte_0.74.1.bb new file mode 100644 index 0000000000..071f668464 --- /dev/null +++ b/poky/meta/recipes-support/vte/vte_0.74.1.bb @@ -0,0 +1,56 @@ +SUMMARY = "Virtual terminal emulator GTK+ widget library" +DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications." +HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE" +BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte" +LICENSE = "GPL-3.0-only & LGPL-3.0-or-later & MIT" +LICENSE:libvte = "LGPL-3.0-or-later" + +LIC_FILES_CHKSUM = " \ + file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \ + file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \ + file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \ +" + +DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu" + +GIR_MESON_OPTION = 'gir' +GIDOCGEN_MESON_OPTION = "docs" + +inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection systemd vala + +SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch" +SRC_URI[archive.sha256sum] = "2328c3f1c998350a18e0e513348e9fc581d57ea4e7b89aedf11e0e3c65042b4f" + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}" +EXTRA_OEMESON:append = " ${@bb.utils.contains('GI_DATA_ENABLED', 'False', '-Ddocs=false', '', d)}" + +PACKAGECONFIG ??= " \ + gnutls \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gtk4', '', d)} \ +" +PACKAGECONFIG[fribidi] = "-Dfribidi=true,-Dfribidi=false,fribidi" +PACKAGECONFIG[gtk4] = "-Dgtk4=true,-Dgtk4=false,gtk4" +PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" +PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd" + +PACKAGES =+ "libvte-gtk4 ${PN}-gtk4 ${PN}-gtk4-dev libvte ${PN}-prompt" +FILES:libvte-gtk4 = "${libdir}/lib*gtk4.so.* ${libdir}/girepository-1.0/Vte-3.91.typelib" +FILES:${PN}-gtk4 ="${bindir}/vte-2.91-gtk4" +FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \ + ${libdir}/pkgconfig/vte-2.91-gtk4.pc \ + ${datadir}/gir-1.0/Vte-3.91.gir \ + ${datadir}/vala/vapi/vte-2.91-gtk4.deps \ + ${datadir}/vala/vapi/vte-2.91-gtk4.vapi \ + ${includedir}/vte-2.91-gtk4 \ + " +FILES:${PN} +="${systemd_user_unitdir}" +FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*" +FILES:${PN}-prompt = " \ + ${sysconfdir}/profile.d \ + ${libexecdir}/vte-urlencode-cwd \ +" + +FILES:${PN}-dev += "${datadir}/glade/" diff --git a/poky/scripts/lib/devtool/__init__.py b/poky/scripts/lib/devtool/__init__.py index 702db669de..b4f998a5bc 100644 --- a/poky/scripts/lib/devtool/__init__.py +++ b/poky/scripts/lib/devtool/__init__.py @@ -233,6 +233,30 @@ def setup_git_repo(repodir, version, devbranch, basetag='devtool-base', d=None): bb.process.run('git checkout -b %s' % devbranch, cwd=repodir) bb.process.run('git tag -f %s' % basetag, cwd=repodir) + # if recipe unpacks another git repo inside S, we need to declare it as a regular git submodule now, + # so we will be able to tag branches on it and extract patches when doing finish/update on the recipe + stdout, _ = bb.process.run("git status --porcelain", cwd=repodir) + found = False + for line in stdout.splitlines(): + if line.endswith("/"): + new_dir = line.split()[1] + for root, dirs, files in os.walk(os.path.join(repodir, new_dir)): + if ".git" in dirs + files: + (stdout, _) = bb.process.run('git remote', cwd=root) + remote = stdout.splitlines()[0] + (stdout, _) = bb.process.run('git remote get-url %s' % remote, cwd=root) + remote_url = stdout.splitlines()[0] + logger.error(os.path.relpath(os.path.join(root, ".."), root)) + bb.process.run('git submodule add %s %s' % (remote_url, os.path.relpath(root, os.path.join(root, ".."))), cwd=os.path.join(root, "..")) + found = True + if found: + useroptions = [] + oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=d) + bb.process.run('git %s commit -m "Adding additionnal submodule from SRC_URI\n\n%s"' % (' '.join(useroptions), oe.patch.GitApplyTree.ignore_commit_prefix), cwd=os.path.join(root, "..")) + found = False + if os.path.exists(os.path.join(repodir, '.gitmodules')): + bb.process.run('git submodule foreach --recursive "git tag -f %s"' % basetag, cwd=repodir) + def recipe_to_append(recipefile, config, wildcard=False): """ Convert a recipe file to a bbappend file path within the workspace. diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py index d53fb81007..ad6e346279 100644 --- a/poky/scripts/lib/devtool/standard.py +++ b/poky/scripts/lib/devtool/standard.py @@ -234,10 +234,14 @@ def add(args, config, basepath, workspace): if args.fetchuri and not args.no_git: setup_git_repo(srctree, args.version, 'devtool', d=tinfoil.config_data) - initial_rev = None + initial_rev = {} if os.path.exists(os.path.join(srctree, '.git')): (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) - initial_rev = stdout.rstrip() + initial_rev["."] = stdout.rstrip() + (stdout, _) = bb.process.run('git submodule --quiet foreach --recursive \'echo `git rev-parse HEAD` $PWD\'', cwd=srctree) + for line in stdout.splitlines(): + (rev, submodule) = line.split() + initial_rev[os.path.relpath(submodule, srctree)] = rev if args.src_subdir: srctree = os.path.join(srctree, args.src_subdir) @@ -251,7 +255,8 @@ def add(args, config, basepath, workspace): if b_is_s: f.write('EXTERNALSRC_BUILD = "%s"\n' % srctree) if initial_rev: - f.write('\n# initial_rev: %s\n' % initial_rev) + for key, value in initial_rev.items(): + f.write('\n# initial_rev %s: %s\n' % (key, value)) if args.binary: f.write('do_install:append() {\n') @@ -823,8 +828,8 @@ def modify(args, config, basepath, workspace): _check_compatible_recipe(pn, rd) - initial_rev = None - commits = [] + initial_revs = {} + commits = {} check_commits = False if bb.data.inherits_class('kernel-yocto', rd): @@ -880,15 +885,23 @@ def modify(args, config, basepath, workspace): args.no_extract = True if not args.no_extract: - initial_rev, _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) - if not initial_rev: + initial_revs["."], _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides) + if not initial_revs["."]: return 1 logger.info('Source tree extracted to %s' % srctree) + if os.path.exists(os.path.join(srctree, '.git')): # Get list of commits since this revision - (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree) - commits = stdout.split() + (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_revs["."], cwd=srctree) + commits["."] = stdout.split() check_commits = True + (stdout, _) = bb.process.run('git submodule --quiet foreach --recursive \'echo `git rev-parse devtool-base` $PWD\'', cwd=srctree) + for line in stdout.splitlines(): + (rev, submodule_path) = line.split() + submodule = os.path.relpath(submodule_path, srctree) + initial_revs[submodule] = rev + (stdout, _) = bb.process.run('git rev-list --reverse devtool-base..HEAD', cwd=submodule_path) + commits[submodule] = stdout.split() else: if os.path.exists(os.path.join(srctree, '.git')): # Check if it's a tree previously extracted by us. This is done @@ -905,11 +918,11 @@ def modify(args, config, basepath, workspace): for line in stdout.splitlines(): if line.startswith('*'): (stdout, _) = bb.process.run('git rev-parse devtool-base', cwd=srctree) - initial_rev = stdout.rstrip() - if not initial_rev: + initial_revs["."] = stdout.rstrip() + if not initial_revs["."]: # Otherwise, just grab the head revision (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) - initial_rev = stdout.rstrip() + initial_revs["."] = stdout.rstrip() branch_patches = {} if check_commits: @@ -976,10 +989,11 @@ def modify(args, config, basepath, workspace): ' ln -sfT ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.new\n' ' fi\n' '}\n') - if initial_rev: - f.write('\n# initial_rev: %s\n' % initial_rev) - for commit in commits: - f.write('# commit: %s\n' % commit) + if initial_revs: + for name, rev in initial_revs.items(): + f.write('\n# initial_rev %s: %s\n' % (name, rev)) + for commit in commits[name]: + f.write('# commit %s: %s\n' % (name, commit)) if branch_patches: for branch in branch_patches: if branch == args.branch: @@ -1202,44 +1216,56 @@ def _get_patchset_revs(srctree, recipe_path, initial_rev=None, force_patch_refre branchname = stdout.rstrip() # Parse initial rev from recipe if not specified - commits = [] + commits = {} patches = [] + initial_revs = {} with open(recipe_path, 'r') as f: for line in f: - if line.startswith('# initial_rev:'): - if not initial_rev: - initial_rev = line.split(':')[-1].strip() - elif line.startswith('# commit:') and not force_patch_refresh: - commits.append(line.split(':')[-1].strip()) - elif line.startswith('# patches_%s:' % branchname): - patches = line.split(':')[-1].strip().split(',') - - update_rev = initial_rev - changed_revs = None - if initial_rev: + pattern = r'^#\s.*\s(.*):\s([0-9a-fA-F]+)$' + match = re.search(pattern, line) + if match: + name = match.group(1) + rev = match.group(2) + if line.startswith('# initial_rev'): + if not (name == "." and initial_rev): + initial_revs[name] = rev + elif line.startswith('# commit') and not force_patch_refresh: + if name not in commits: + commits[name] = [rev] + else: + commits[name].append(rev) + elif line.startswith('# patches_%s:' % branchname): + patches = line.split(':')[-1].strip().split(',') + + update_revs = dict(initial_revs) + changed_revs = {} + for name, rev in initial_revs.items(): # Find first actually changed revision stdout, _ = bb.process.run('git rev-list --reverse %s..HEAD' % - initial_rev, cwd=srctree) + rev, cwd=os.path.join(srctree, name)) newcommits = stdout.split() - for i in range(min(len(commits), len(newcommits))): - if newcommits[i] == commits[i]: - update_rev = commits[i] + if name in commits: + for i in range(min(len(commits[name]), len(newcommits))): + if newcommits[i] == commits[name][i]: + update_revs[name] = commits[name][i] try: stdout, _ = bb.process.run('git cherry devtool-patched', - cwd=srctree) + cwd=os.path.join(srctree, name)) except bb.process.ExecutionError as err: stdout = None if stdout is not None and not force_patch_refresh: - changed_revs = [] for line in stdout.splitlines(): if line.startswith('+ '): rev = line.split()[1] if rev in newcommits: - changed_revs.append(rev) + if name not in changed_revs: + changed_revs[name] = [rev] + else: + changed_revs[name].append(rev) - return initial_rev, update_rev, changed_revs, patches + return initial_revs, update_revs, changed_revs, patches def _remove_file_entries(srcuri, filelist): """Remove file:// entries from SRC_URI""" @@ -1294,14 +1320,17 @@ def _remove_source_files(append, files, destpath, no_report_remove=False, dry_ru raise -def _export_patches(srctree, rd, start_rev, destdir, changed_revs=None): +def _export_patches(srctree, rd, start_revs, destdir, changed_revs=None): """Export patches from srctree to given location. Returns three-tuple of dicts: 1. updated - patches that already exist in SRCURI 2. added - new patches that don't exist in SRCURI 3 removed - patches that exist in SRCURI but not in exported patches - In each dict the key is the 'basepath' of the URI and value is the - absolute path to the existing file in recipe space (if any). + In each dict the key is the 'basepath' of the URI and value is: + - for updated and added dicts, a dict with 2 optionnal keys: + - 'path': the absolute path to the existing file in recipe space (if any) + - 'patchdir': the directory in wich the patch should be applied (if any) + - for removed dict, the absolute path to the existing file in recipe space """ import oe.recipeutils from oe.patch import GitApplyTree @@ -1315,54 +1344,60 @@ def _export_patches(srctree, rd, start_rev, destdir, changed_revs=None): # Generate patches from Git, exclude local files directory patch_pathspec = _git_exclude_path(srctree, 'oe-local-files') - GitApplyTree.extractPatches(srctree, start_rev, destdir, patch_pathspec) - - new_patches = sorted(os.listdir(destdir)) - for new_patch in new_patches: - # Strip numbering from patch names. If it's a git sequence named patch, - # the numbers might not match up since we are starting from a different - # revision This does assume that people are using unique shortlog - # values, but they ought to be anyway... - new_basename = seqpatch_re.match(new_patch).group(2) - match_name = None - for old_patch in existing_patches: - old_basename = seqpatch_re.match(old_patch).group(2) - old_basename_splitext = os.path.splitext(old_basename) - if old_basename.endswith(('.gz', '.bz2', '.Z')) and old_basename_splitext[0] == new_basename: - old_patch_noext = os.path.splitext(old_patch)[0] - match_name = old_patch_noext - break - elif new_basename == old_basename: - match_name = old_patch - break - if match_name: - # Rename patch files - if new_patch != match_name: - bb.utils.rename(os.path.join(destdir, new_patch), - os.path.join(destdir, match_name)) - # Need to pop it off the list now before checking changed_revs - oldpath = existing_patches.pop(old_patch) - if changed_revs is not None: - # Avoid updating patches that have not actually changed - with open(os.path.join(destdir, match_name), 'r') as f: - firstlineitems = f.readline().split() - # Looking for "From <hash>" line - if len(firstlineitems) > 1 and len(firstlineitems[1]) == 40: - if not firstlineitems[1] in changed_revs: - continue - # Recompress if necessary - if oldpath.endswith(('.gz', '.Z')): - bb.process.run(['gzip', match_name], cwd=destdir) - if oldpath.endswith('.gz'): - match_name += '.gz' - else: - match_name += '.Z' - elif oldpath.endswith('.bz2'): - bb.process.run(['bzip2', match_name], cwd=destdir) - match_name += '.bz2' - updated[match_name] = oldpath - else: - added[new_patch] = None + GitApplyTree.extractPatches(srctree, start_revs, destdir, patch_pathspec) + for dirpath, dirnames, filenames in os.walk(destdir): + new_patches = filenames + reldirpath = os.path.relpath(dirpath, destdir) + for new_patch in new_patches: + # Strip numbering from patch names. If it's a git sequence named patch, + # the numbers might not match up since we are starting from a different + # revision This does assume that people are using unique shortlog + # values, but they ought to be anyway... + new_basename = seqpatch_re.match(new_patch).group(2) + match_name = None + for old_patch in existing_patches: + old_basename = seqpatch_re.match(old_patch).group(2) + old_basename_splitext = os.path.splitext(old_basename) + if old_basename.endswith(('.gz', '.bz2', '.Z')) and old_basename_splitext[0] == new_basename: + old_patch_noext = os.path.splitext(old_patch)[0] + match_name = old_patch_noext + break + elif new_basename == old_basename: + match_name = old_patch + break + if match_name: + # Rename patch files + if new_patch != match_name: + bb.utils.rename(os.path.join(destdir, new_patch), + os.path.join(destdir, match_name)) + # Need to pop it off the list now before checking changed_revs + oldpath = existing_patches.pop(old_patch) + if changed_revs is not None and dirpath in changed_revs: + # Avoid updating patches that have not actually changed + with open(os.path.join(dirpath, match_name), 'r') as f: + firstlineitems = f.readline().split() + # Looking for "From <hash>" line + if len(firstlineitems) > 1 and len(firstlineitems[1]) == 40: + if not firstlineitems[1] in changed_revs[dirpath]: + continue + # Recompress if necessary + if oldpath.endswith(('.gz', '.Z')): + bb.process.run(['gzip', match_name], cwd=destdir) + if oldpath.endswith('.gz'): + match_name += '.gz' + else: + match_name += '.Z' + elif oldpath.endswith('.bz2'): + bb.process.run(['bzip2', match_name], cwd=destdir) + match_name += '.bz2' + updated[match_name] = {'path' : oldpath} + if reldirpath != ".": + updated[match_name]['patchdir'] = reldirpath + else: + added[new_patch] = {} + if reldirpath != ".": + added[new_patch]['patchdir'] = reldirpath + return (updated, added, existing_patches) @@ -1530,6 +1565,12 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi recipedir = os.path.basename(recipefile) logger.info('Updating SRCREV in recipe %s%s' % (recipedir, dry_run_suffix)) + # Get original SRCREV + old_srcrev = rd.getVar('SRCREV') or '' + if old_srcrev == "INVALID": + raise DevtoolError('Update mode srcrev is only valid for recipe fetched from an SCM repository') + old_srcrev = {'.': old_srcrev} + # Get HEAD revision try: stdout, _ = bb.process.run('git rev-parse HEAD', cwd=srctree) @@ -1556,13 +1597,12 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi if not no_remove: # Find list of existing patches in recipe file patches_dir = tempfile.mkdtemp(dir=tempdir) - old_srcrev = rd.getVar('SRCREV') or '' upd_p, new_p, del_p = _export_patches(srctree, rd, old_srcrev, patches_dir) logger.debug('Patches: update %s, new %s, delete %s' % (dict(upd_p), dict(new_p), dict(del_p))) # Remove deleted local files and "overlapping" patches - remove_files = list(del_f.values()) + list(upd_p.values()) + list(del_p.values()) + remove_files = list(del_f.values()) + [value["path"] for value in upd_p.values() if "path" in value] + [value["path"] for value in del_p.values() if "path" in value] if remove_files: removedentries = _remove_file_entries(srcuri, remove_files)[0] update_srcuri = True @@ -1576,11 +1616,10 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi patchfields['SRC_URI'] = '\\\n '.join(srcuri) if dry_run_outdir: logger.info('Creating bbappend (dry-run)') - else: - appendfile, destpath = oe.recipeutils.bbappend_recipe( - rd, appendlayerdir, files, wildcardver=wildcard_version, - extralines=patchfields, removevalues=removevalues, - redirect_output=dry_run_outdir) + appendfile, destpath = oe.recipeutils.bbappend_recipe( + rd, appendlayerdir, files, wildcardver=wildcard_version, + extralines=patchfields, removevalues=removevalues, + redirect_output=dry_run_outdir) else: files_dir = _determine_files_dir(rd) for basepath, path in upd_f.items(): @@ -1632,15 +1671,15 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil else: patchdir_params = {'patchdir': relpatchdir} - def srcuri_entry(basepath): + def srcuri_entry(basepath, patchdir_params): if patchdir_params: paramstr = ';' + ';'.join('%s=%s' % (k,v) for k,v in patchdir_params.items()) else: paramstr = '' return 'file://%s%s' % (basepath, paramstr) - initial_rev, update_rev, changed_revs, filter_patches = _get_patchset_revs(srctree, append, initial_rev, force_patch_refresh) - if not initial_rev: + initial_revs, update_revs, changed_revs, filter_patches = _get_patchset_revs(srctree, append, initial_rev, force_patch_refresh) + if not initial_revs: raise DevtoolError('Unable to find initial revision - please specify ' 'it with --initial-rev') @@ -1658,11 +1697,11 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil # Get updated patches from source tree patches_dir = tempfile.mkdtemp(dir=tempdir) - upd_p, new_p, _ = _export_patches(srctree, rd, update_rev, + upd_p, new_p, _ = _export_patches(srctree, rd, update_revs, patches_dir, changed_revs) # Get all patches from source tree and check if any should be removed all_patches_dir = tempfile.mkdtemp(dir=tempdir) - _, _, del_p = _export_patches(srctree, rd, initial_rev, + _, _, del_p = _export_patches(srctree, rd, initial_revs, all_patches_dir) logger.debug('Pre-filtering: update: %s, new: %s' % (dict(upd_p), dict(new_p))) if filter_patches: @@ -1677,18 +1716,31 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil updaterecipe = False destpath = None srcuri = (rd.getVar('SRC_URI', False) or '').split() + if appendlayerdir: files = OrderedDict((os.path.join(local_files_dir, key), val) for key, val in list(upd_f.items()) + list(new_f.items())) files.update(OrderedDict((os.path.join(patches_dir, key), val) for key, val in list(upd_p.items()) + list(new_p.items()))) + + params = [] + for file, param in files.items(): + patchdir_param = dict(patchdir_params) + patchdir = param.get('patchdir', ".") + if patchdir != "." : + if patchdir_param: + patchdir_param['patchdir'] += patchdir + else: + patchdir_param['patchdir'] = patchdir + params.append(patchdir_param) + if files or remove_files: removevalues = None if remove_files: removedentries, remaining = _remove_file_entries( srcuri, remove_files) if removedentries or remaining: - remaining = [srcuri_entry(os.path.basename(item)) for + remaining = [srcuri_entry(os.path.basename(item), patchdir_params) for item in remaining] removevalues = {'SRC_URI': removedentries + remaining} appendfile, destpath = oe.recipeutils.bbappend_recipe( @@ -1696,7 +1748,7 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil wildcardver=wildcard_version, removevalues=removevalues, redirect_output=dry_run_outdir, - params=[patchdir_params] * len(files)) + params=params) else: logger.info('No patches or local source files needed updating') else: @@ -1713,14 +1765,22 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil _move_file(os.path.join(local_files_dir, basepath), path, dry_run_outdir=dry_run_outdir, base_outdir=recipedir) updatefiles = True - for basepath, path in upd_p.items(): - patchfn = os.path.join(patches_dir, basepath) + for basepath, param in upd_p.items(): + path = param['path'] + patchdir = param.get('patchdir', ".") + if patchdir != "." : + patchdir_param = dict(patchdir_params) + if patchdir_param: + patchdir_param['patchdir'] += patchdir + else: + patchdir_param['patchdir'] = patchdir + patchfn = os.path.join(patches_dir, patchdir, basepath) if os.path.dirname(path) + '/' == dl_dir: # This is a a downloaded patch file - we now need to # replace the entry in SRC_URI with our local version logger.info('Replacing remote patch %s with updated local version' % basepath) path = os.path.join(files_dir, basepath) - _replace_srcuri_entry(srcuri, basepath, srcuri_entry(basepath)) + _replace_srcuri_entry(srcuri, basepath, srcuri_entry(basepath, patchdir_param)) updaterecipe = True else: logger.info('Updating patch %s%s' % (basepath, dry_run_suffix)) @@ -1734,15 +1794,23 @@ def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wil os.path.join(files_dir, basepath), dry_run_outdir=dry_run_outdir, base_outdir=recipedir) - srcuri.append(srcuri_entry(basepath)) + srcuri.append(srcuri_entry(basepath, patchdir_params)) updaterecipe = True - for basepath, path in new_p.items(): + for basepath, param in new_p.items(): + patchdir = param.get('patchdir', ".") logger.info('Adding new patch %s%s' % (basepath, dry_run_suffix)) - _move_file(os.path.join(patches_dir, basepath), + _move_file(os.path.join(patches_dir, patchdir, basepath), os.path.join(files_dir, basepath), dry_run_outdir=dry_run_outdir, base_outdir=recipedir) - srcuri.append(srcuri_entry(basepath)) + params = dict(patchdir_params) + if patchdir != "." : + if params: + params['patchdir'] += patchdir + else: + params['patchdir'] = patchdir + + srcuri.append(srcuri_entry(basepath, params)) updaterecipe = True # Update recipe, if needed if _remove_file_entries(srcuri, remove_files)[0]: diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py index 9cd50be3a2..10827a762b 100644 --- a/poky/scripts/lib/devtool/upgrade.py +++ b/poky/scripts/lib/devtool/upgrade.py @@ -90,7 +90,7 @@ def _rename_recipe_files(oldrecipe, bpn, oldpv, newpv, path): _rename_recipe_dirs(oldpv, newpv, path) return _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path) -def _write_append(rc, srctreebase, srctree, same_dir, no_same_dir, rev, copied, workspace, d): +def _write_append(rc, srctreebase, srctree, same_dir, no_same_dir, revs, copied, workspace, d): """Writes an append file""" if not os.path.exists(rc): raise DevtoolError("bbappend not created because %s does not exist" % rc) @@ -119,8 +119,9 @@ def _write_append(rc, srctreebase, srctree, same_dir, no_same_dir, rev, copied, if b_is_s: f.write('EXTERNALSRC_BUILD:pn-%s = "%s"\n' % (pn, srctree)) f.write('\n') - if rev: - f.write('# initial_rev: %s\n' % rev) + if revs: + for name, rev in revs.items(): + f.write('# initial_rev %s: %s\n' % (name, rev)) if copied: f.write('# original_path: %s\n' % os.path.dirname(d.getVar('FILE'))) f.write('# original_files: %s\n' % ' '.join(copied)) @@ -182,10 +183,15 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee uri, rev = _get_uri(crd) if srcrev: rev = srcrev + paths = [srctree] if uri.startswith('git://') or uri.startswith('gitsm://'): __run('git fetch') __run('git checkout %s' % rev) __run('git tag -f devtool-base-new') + __run('git submodule update --recursive') + __run('git submodule foreach \'git tag -f devtool-base-new\'') + (stdout, _) = __run('git submodule --quiet foreach \'echo $sm_path\'') + paths += [os.path.join(srctree, p) for p in stdout.splitlines()] md5 = None sha256 = None _, _, _, _, _, params = bb.fetch2.decodeurl(uri) @@ -256,29 +262,32 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee __run('git %s commit -q -m "Commit of upstream changes at version %s" --allow-empty' % (' '.join(useroptions), newpv)) __run('git tag -f devtool-base-%s' % newpv) - (stdout, _) = __run('git rev-parse HEAD') - rev = stdout.rstrip() + revs = {} + for path in paths: + (stdout, _) = _run('git rev-parse HEAD', cwd=path) + revs[os.path.relpath(path,srctree)] = stdout.rstrip() if no_patch: patches = oe.recipeutils.get_recipe_patches(crd) if patches: logger.warning('By user choice, the following patches will NOT be applied to the new source tree:\n %s' % '\n '.join([os.path.basename(patch) for patch in patches])) else: - __run('git checkout devtool-patched -b %s' % branch) - (stdout, _) = __run('git branch --list devtool-override-*') - branches_to_rebase = [branch] + stdout.split() - for b in branches_to_rebase: - logger.info("Rebasing {} onto {}".format(b, rev)) - __run('git checkout %s' % b) - try: - __run('git rebase %s' % rev) - except bb.process.ExecutionError as e: - if 'conflict' in e.stdout: - logger.warning('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip())) - __run('git rebase --abort') - else: - logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout)) - __run('git checkout %s' % branch) + for path in paths: + _run('git checkout devtool-patched -b %s' % branch, cwd=path) + (stdout, _) = _run('git branch --list devtool-override-*', cwd=path) + branches_to_rebase = [branch] + stdout.split() + for b in branches_to_rebase: + logger.info("Rebasing {} onto {}".format(b, revs[os.path.relpath(path,srctree)])) + _run('git checkout %s' % b, cwd=path) + try: + _run('git rebase %s' % revs[os.path.relpath(path, srctree)], cwd=path) + except bb.process.ExecutionError as e: + if 'conflict' in e.stdout: + logger.warning('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip())) + _run('git rebase --abort', cwd=path) + else: + logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout)) + _run('git checkout %s' % branch, cwd=path) if tmpsrctree: if keep_temp: @@ -288,7 +297,7 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee if tmpdir != tmpsrctree: shutil.rmtree(tmpdir) - return (rev, md5, sha256, srcbranch, srcsubdir_rel) + return (revs, md5, sha256, srcbranch, srcsubdir_rel) def _add_license_diff_to_recipe(path, diff): notice_text = """# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'. diff --git a/poky/scripts/lib/recipetool/append.py b/poky/scripts/lib/recipetool/append.py index 9dbb1cc4b5..4b6a7112c2 100644 --- a/poky/scripts/lib/recipetool/append.py +++ b/poky/scripts/lib/recipetool/append.py @@ -299,7 +299,7 @@ def appendfile(args): if st.st_mode & stat.S_IXUSR: perms = '0755' install = {args.newfile: (args.targetpath, perms)} - oe.recipeutils.bbappend_recipe(rd, args.destlayer, {args.newfile: sourcepath}, install, wildcardver=args.wildcard_version, machine=args.machine) + oe.recipeutils.bbappend_recipe(rd, args.destlayer, {args.newfile: {'path' : sourcepath}}, install, wildcardver=args.wildcard_version, machine=args.machine) tinfoil.modified_files() return 0 else: @@ -353,7 +353,7 @@ def appendsrc(args, files, rd, extralines=None): logger.warning('{0!r} is already in SRC_URI, not adding'.format(source_uri)) else: extralines.append('SRC_URI += {0}'.format(source_uri)) - copyfiles[newfile] = srcfile + copyfiles[newfile] = {'path' : srcfile} oe.recipeutils.bbappend_recipe(rd, args.destlayer, copyfiles, None, wildcardver=args.wildcard_version, machine=args.machine, extralines=extralines) tinfoil.modified_files() diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py index 4f30926f1a..13a9cddf4e 100644 --- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -400,9 +400,10 @@ class BootimgEFIPlugin(SourcePlugin): exec_native_cmd(objcopy_cmd, native_sysroot) else: - install_cmd = "install -m 0644 %s/%s %s/%s" % \ - (staging_kernel_dir, kernel, hdddir, kernel) - exec_cmd(install_cmd) + if source_params.get('install-kernel-into-boot-dir') != 'false': + install_cmd = "install -m 0644 %s/%s %s/%s" % \ + (staging_kernel_dir, kernel, hdddir, kernel) + exec_cmd(install_cmd) if get_bitbake_var("IMAGE_EFI_BOOT_FILES"): for src_path, dst_path in cls.install_task: diff --git a/poky/scripts/lib/wic/plugins/source/rawcopy.py b/poky/scripts/lib/wic/plugins/source/rawcopy.py index ccf332554e..21903c2f23 100644 --- a/poky/scripts/lib/wic/plugins/source/rawcopy.py +++ b/poky/scripts/lib/wic/plugins/source/rawcopy.py @@ -58,7 +58,8 @@ class RawCopyPlugin(SourcePlugin): decompressor = { ".bz2": "bzip2", ".gz": "gzip", - ".xz": "xz" + ".xz": "xz", + ".zst": "zstd -f", }.get(extension) if not decompressor: raise WicError("Not supported compressor filename extension: %s" % extension) |