subtree updates
meta-raspberrypi: 31c33d155c..cfbb192e5c:
Andrei Gherzan (1):
docs: Add information for RTC devices
Andrew Penner (2):
rpi-cmdline: Add ability to specify CPUs to add to the isolcpus list
extra-build-config: Add documentation for the ISOLATED_CPUS configuration variable
Jan Vermaete (1):
docs: untabify the few tabs in the file
Khem Raj (3):
userland: Update to latest as of 20220323
picamera-libs: Adjust sourcedir
omxplayer: Use internal version of ffmpeg
meta-openembedded: af11f6ce73..b9e440ead8:
Adrian Freihofer (1):
srecord: build fix
Andreas Müller (40):
octave: upgrade 4.4.1 -> 6.4.0 and overhaul recipe
mousepad: upgrade 0.5.8 -> 0.5.9
xfce4-terminal: upgrade 0.8.10 -> 1.0.0
orage: upgrade 4.12.1 -> 4.16.0
orage: enable notify PACKAGECONFIG by default
ristretto: upgrade 0.12.1 -> 0.12.2
xarchiver: upgrade 0.5.4.14 -> 0.5.4.17
xfce4-cpufreq-plugin: upgrade 1.2.5 -> 1.2.7
xfce4-cpugraph-plugin: upgrade 1.2.5 -> 1.2.6
xfce4-diskperf-plugin: upgrade 2.6.3 -> 2.7.0
xfce4-notifyd: upgrade 0.6.2 -> 0.6.3
xfce4-screenshooter: upgrade 1.9.9 -> 1.9.10
xfce4-sensors-plugin: upgrade 1.4.2 -> 1.4.3
Allow several components notification
meta-xfce: Add Andreas Müller back to maintainers list
accountsservice: upgrade 0.6.55 -> 22.08.8
colord-gtk: upgrade 0.2.0 -> 0.3.0
evince: upgrade 41.4 -> 42.1
evolution-data-server: upgrade 3.43.1 -> 3.44.0
file-roller: upgrade 3.40.0 -> 3.42.0
gdm: upgrade 41.0 -> 42.0
gedit: upgrade 41.0 -> 42.0
gfbgraph: upgrade 0.2.4 -> 0.2.5
gnome-calculator upgrade 41.1 -> 42-0
libgweather4: initial add 4.0.0
gnome-calendar 41.2 -> 42.0
gnome-desktop: upgrade 41.2 -> 42.0
libnma: upgrade 1.8.34 -> 1.8.36
gnome-bluetooth4: initial add 42.0
gnome-font-viewer: upgrade 41.0 -> 42.0
yelp-xsl: upgrade 41.1 -> 42.0
yelp-tools: upgrade 41.0 -> 42.0
yelp: upgrade 41.2 -> 42.1
upower: upgrade 0.99.13 -> 0.99.17 / build with mesom
upower: fix location of udev-rules with sysvinit
gnome-commander: initial add 1.14.2
gnome-text-editor: initial add 42.0
evolution-data-server: re-enable gobject-introspection
jack: upgrade 1.19.19 -> 1.19.20
fluidsynth: upgrade 2.2.4 -> 2.2.6
Chen Qi (1):
blueman: fix python site-packages installation issue
Craig McQueen (1):
dnsmasq: Fix a typo in initscript
Davide Gardenal (2):
python3-wxgtk4: add distro feature check to match dependency
fwupd: add COMPATIBLE_HOST to match dependency
Jose Quaresma (2):
srt: 1.4.2 -> 1.4.3
srt: 1.4.3 -> 1.4.4
Khem Raj (2):
xfce4-screenshooter: Add dependency on libxml-parser-perl-native
open-vm-tools: Use specific BSD-2-Clause for license
Matsunaga-Shinji (2):
samba: add 2 cves to allowlist
libzip: add CVE-2017-12858 to allowlist
Minjae Kim (1):
multipath-tools: update SRC_URI
Potin Lai (1):
libimobiledevice-glue: update recipe
Robert Yang (2):
wxwidgets: Fix checking for PACKAGECONFIG and DISTRO_FEATURES
wxwidgets: git -> gitsm to fix build when no x11
Samuli Piippo (1):
python3-qface: upgrade 2.0.6 -> 2.0.7
Xu Huan (5):
python3-cheetah: upgrade 3.2.6.post2 -> 3.2.6
python3-evdev: upgrade 1.4.0 -> 1.5.0
python3-google-api-python-client: upgrade 2.36.0 -> 2.42.0
python3-itsdangerous: upgrade 2.1.1 -> 2.1.2
python3-grpcio: upgrade 1.44.0 -> 1.45.0
Yi Zhao (1):
dracut: upgrade 055 -> 056
wangmy (20):
python3-bitarray: upgrade 2.4.0 -> 2.4.1
python3-click: upgrade 8.0.4 -> 8.1.2
python3-cppy: upgrade 1.2.0 -> 1.2.1
python3-pandas: upgrade 1.4.1 -> 1.4.2
python3-protobuf: upgrade 3.19.4 -> 3.20.0
python3-pychromecast: upgrade 10.3.0 -> 11.0.0
python3-pyparted: upgrade 3.11.7 -> 3.12.0
python3-redis: upgrade 4.2.0 -> 4.2.1
python3-sqlalchemy: upgrade 1.4.32 -> 1.4.34
python3-thrift: upgrade 0.15.0 -> 0.16.0
python3-trafaret: upgrade 2.1.0 -> 2.1.1
python3-twine: upgrade 3.8.0 -> 4.0.0
python3-tzlocal: upgrade 4.1 -> 4.2
python3-websocket-client: upgrade 1.3.1 -> 1.3.2
python3-werkzeug: upgrade 2.0.3 -> 2.1.1
zenity: upgrade 3.41.0 -> 3.42.0
ceres-solver: upgrade 2.0.0 -> 2.1.0
grpc: upgrade 1.45.0 -> 1.45.1
poppler: upgrade 22.03.0 -> 22.04.0
xorg-sgml-doctools: upgrade 1.11 -> 1.12
zhengrq.fnst (2):
python3-jdatetime: upgrade 4.0.0 -> 4.1.0
python3-kiwisolver: upgrade 1.4.0 -> 1.4.2
meta-security: da93339112..498ca39cd6:
Armin Kuster (5):
openscap-daemon: use renamaed python_setuptools_build_meta
python3-fail2ban: fix compile issue on some hosts
lkrg-module: covert to git fetcher
linux-yocto_security.inc: add lkrg kfrags
samhain: update to 4.4.7
Ashish Sharma (1):
meta-security : Use SPDX style licensing format
Davide Gardenal (2):
clamav: add COMPATIBLE_HOST to fix build error
fscrypt: update dependecy from go-dep-native to go-native
Robert Yang (1):
LICENSE: adopt SPDX standard names
poky: 1976521190..ed98f1a1ae:
Abongwa Amahnui Bonalais (1):
oe-init-build-env: add quotes around variables to prevent word splitting
Alessio Igor Bogani (1):
kernel.bbclass: Use KERNEL_IMAGEDEST instead of hardcoded boot path
Alexandre Belloni (1):
pseudo: Fix handling of absolute links
Bruce Ashfield (6):
linux-yocto/5.15: update to v5.15.32
linux-yocto/5.10: update to v5.10.109
linux-yocto/5.15: aufs: fixes and optimization
linux-yocto-rt/5.15: aufs: compile fix
linux-yocto/5.15: features/security: Move x86_64 configs to separate file
linux-yocto/5.10: features/security: Move x86_64 configs to separate file
Carlos Rafael Giani (1):
libsdl2: Disable libunwind dependency in native builds
Claudius Heine (1):
os-release: add os-release-initrd package
Ferry Toth (1):
package_manager: sign DEB package feeds
Joe Slater (1):
unzip: fix CVE-2021-4217
Khem Raj (1):
glib-2.0: Backport patches C++ variant of g_atomic_int_compare_and_exchange()
Oleksandr Kravchuk (1):
tzdata: update to 2022a
Peter Kjellerstedt (5):
python3-jinja2: Correct HOMEPAGE
insane.bbclass: Make do_qa_patch() depend on if patch-fuzz is in ERROR_QA
insane.bbclass: Make changes to QA_EMPTY_DIRS trigger package_qa to rerun
bitbake.conf: Remove ERROR_QA from BB_HASHEXCLUDE_COMMON
bitbake: knotty.py: Show elapsed time also for tasks with progress bars
Richard Purdie (11):
bitbake: parse: Ensure any existing siggen is closed down first
bitbake: data: Ensure vardepsexclude or BB_BASEHASH_IGNORE_VARS covers contains items
bitbake: server/process: Disable gc around critical section
bitbake: cooker: Reset and rebuild inotify watches
bitbake: pyinotify: Handle potential latent bug
mirrors: Switch glibc and binutils to use shallow mirror tarballs
bitbake: data: Fix accidentally added parameter
bitbake.conf: Drop unexports from a different era
vim: Upgrade 8.2.4524 -> 8.2.4681
Revert "meta: rust: Bug fix for target definitions returning 'NoneType'"
build-appliance-image: Update to master head revision
Robert Yang (1):
waffle: The surfaceless-egl and gbm requires opengl
Saul Wold (5):
busybox: Exclude .debug from depmod
kmod: Add an exclude directive to depmod
depmodwrapper: Use nonarch_base_libdir for depmod.d
kmod: Update exclude patch to Accepted
depmodwrapper-cross: Fix missing $
Sean Anderson (1):
u-boot: Fix condition for install_spl_helper
Simone Weiss (1):
popt: add ptest
Sundeep KOKKONDA (3):
gcc: sanitizer: Fix tsan against glibc 2.34
meta: rust: Bug fix for target definitions returning 'NoneType'
meta: scripts - relocation script adapted to support big-endian machines
Xavier Berger (1):
gpg-sign: Add parameters to gpg signature function
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I294af706d7b96796ff360b402b9d011082cf36a7
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index df4acca..08593d1 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -169,27 +169,15 @@
bb.debug(1, "BBCooker starting %s" % time.time())
sys.stdout.flush()
- self.configwatcher = pyinotify.WatchManager()
- bb.debug(1, "BBCooker pyinotify1 %s" % time.time())
- sys.stdout.flush()
+ self.configwatcher = None
+ self.confignotifier = None
- self.configwatcher.bbseen = set()
- self.configwatcher.bbwatchedfiles = set()
- self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications)
- bb.debug(1, "BBCooker pyinotify2 %s" % time.time())
- sys.stdout.flush()
self.watchmask = pyinotify.IN_CLOSE_WRITE | pyinotify.IN_CREATE | pyinotify.IN_DELETE | \
pyinotify.IN_DELETE_SELF | pyinotify.IN_MODIFY | pyinotify.IN_MOVE_SELF | \
pyinotify.IN_MOVED_FROM | pyinotify.IN_MOVED_TO
- self.watcher = pyinotify.WatchManager()
- bb.debug(1, "BBCooker pyinotify3 %s" % time.time())
- sys.stdout.flush()
- self.watcher.bbseen = set()
- self.watcher.bbwatchedfiles = set()
- self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
- bb.debug(1, "BBCooker pyinotify complete %s" % time.time())
- sys.stdout.flush()
+ self.watcher = None
+ self.notifier = None
# If being called by something like tinfoil, we need to clean cached data
# which may now be invalid
@@ -240,9 +228,29 @@
sys.stdout.flush()
self.handlePRServ()
+ def setupConfigWatcher(self):
+ if self.configwatcher:
+ self.configwatcher.close()
+ self.confignotifier = None
+ self.configwatcher = None
+ self.configwatcher = pyinotify.WatchManager()
+ self.configwatcher.bbseen = set()
+ self.configwatcher.bbwatchedfiles = set()
+ self.confignotifier = pyinotify.Notifier(self.configwatcher, self.config_notifications)
+
+ def setupParserWatcher(self):
+ if self.watcher:
+ self.watcher.close()
+ self.notifier = None
+ self.watcher = None
+ self.watcher = pyinotify.WatchManager()
+ self.watcher.bbseen = set()
+ self.watcher.bbwatchedfiles = set()
+ self.notifier = pyinotify.Notifier(self.watcher, self.notifications)
+
def process_inotify_updates(self):
for n in [self.confignotifier, self.notifier]:
- if n.check_events(timeout=0):
+ if n and n.check_events(timeout=0):
# read notified events and enqeue them
n.read_events()
n.process_events()
@@ -262,10 +270,6 @@
self.configwatcher.bbseen.remove(event.pathname)
# Could remove all entries starting with the directory but for now...
bb.parse.clear_cache()
- if "IN_CREATE" in event.maskname:
- self.add_filewatch([[event.pathname]], watcher=self.configwatcher, dirs=True)
- elif "IN_DELETE" in event.maskname and event.pathname in self.configwatcher.bbseen:
- self.configwatcher.bbseen.remove(event.pathname)
if not event.pathname in self.inotify_modified_files:
self.inotify_modified_files.append(event.pathname)
self.baseconfig_valid = False
@@ -285,10 +289,6 @@
self.watcher.bbseen.remove(event.pathname)
# Could remove all entries starting with the directory but for now...
bb.parse.clear_cache()
- if "IN_CREATE" in event.maskname:
- self.add_filewatch([[event.pathname]], dirs=True)
- elif "IN_DELETE" in event.maskname and event.pathname in self.watcher.bbseen:
- self.watcher.bbseen.remove(event.pathname)
if not event.pathname in self.inotify_modified_files:
self.inotify_modified_files.append(event.pathname)
self.parsecache_valid = False
@@ -358,6 +358,8 @@
if mod not in self.orig_sysmodules:
del sys.modules[mod]
+ self.setupConfigWatcher()
+
# Need to preserve BB_CONSOLELOG over resets
consolelog = None
if hasattr(self, "data"):
@@ -1639,6 +1641,8 @@
self.updateCacheSync()
if self.state != state.parsing and not self.parsecache_valid:
+ self.setupParserWatcher()
+
bb.parse.siggen.reset(self.data)
self.parseConfiguration ()
if CookerFeatures.SEND_SANITYEVENTS in self.featureset:
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 5d02bab..62ec214 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -272,7 +272,7 @@
"""Performs final steps upon the datastore, including application of overrides"""
d.finalize(parent = True)
-def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
+def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d):
deps = set()
try:
if key[-1] == ']':
@@ -283,12 +283,15 @@
return deps, value
varflags = d.getVarFlags(key, ["vardeps", "vardepvalue", "vardepsexclude", "exports", "postfuncs", "prefuncs", "lineno", "filename"]) or {}
vardeps = varflags.get("vardeps")
+ exclusions = varflags.get("vardepsexclude", "").split()
- def handle_contains(value, contains, d):
+ def handle_contains(value, contains, exclusions, d):
newvalue = []
if value:
newvalue.append(str(value))
for k in sorted(contains):
+ if k in exclusions or k in ignored_vars:
+ continue
l = (d.getVar(k) or "").split()
for item in sorted(contains[k]):
for word in item.split():
@@ -316,7 +319,7 @@
parser.parse_python(value, filename=varflags.get("filename"), lineno=varflags.get("lineno"))
deps = deps | parser.references
deps = deps | (keys & parser.execs)
- value = handle_contains(value, parser.contains, d)
+ value = handle_contains(value, parser.contains, exclusions, d)
else:
value, parsedvar = d.getVarFlag(key, "_content", False, retparser=True)
parser = bb.codeparser.ShellParser(key, logger)
@@ -324,7 +327,7 @@
deps = deps | shelldeps
deps = deps | parsedvar.references
deps = deps | (keys & parser.execs) | (keys & parsedvar.execs)
- value = handle_contains(value, parsedvar.contains, d)
+ value = handle_contains(value, parsedvar.contains, exclusions, d)
if hasattr(parsedvar, "removes"):
value = handle_remove(value, deps, parsedvar.removes, d)
if vardeps is None:
@@ -339,7 +342,7 @@
value, parser = d.getVarFlag(key, "_content", False, retparser=True)
deps |= parser.references
deps = deps | (keys & parser.execs)
- value = handle_contains(value, parser.contains, d)
+ value = handle_contains(value, parser.contains, exclusions, d)
if hasattr(parser, "removes"):
value = handle_remove(value, deps, parser.removes, d)
@@ -359,7 +362,7 @@
deps |= set(varfdeps)
deps |= set((vardeps or "").split())
- deps -= set(varflags.get("vardepsexclude", "").split())
+ deps -= set(exclusions)
except bb.parse.SkipRecipe:
raise
except Exception as e:
@@ -380,7 +383,7 @@
tasklist = d.getVar('__BBTASKS', False) or []
for task in tasklist:
- deps[task], values[task] = build_dependencies(task, keys, shelldeps, varflagsexcl, d)
+ deps[task], values[task] = build_dependencies(task, keys, shelldeps, varflagsexcl, ignored_vars, d)
newdeps = deps[task]
seen = set()
while newdeps:
@@ -389,7 +392,7 @@
newdeps = set()
for dep in nextdeps:
if dep not in deps:
- deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, d)
+ deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, ignored_vars, d)
newdeps |= deps[dep]
newdeps -= seen
#print "For %s: %s" % (task, str(deps[task]))
diff --git a/poky/bitbake/lib/bb/parse/__init__.py b/poky/bitbake/lib/bb/parse/__init__.py
index c01807b..3476095 100644
--- a/poky/bitbake/lib/bb/parse/__init__.py
+++ b/poky/bitbake/lib/bb/parse/__init__.py
@@ -113,6 +113,8 @@
return h['init'](data)
def init_parser(d):
+ if hasattr(bb.parse, "siggen"):
+ bb.parse.siggen.exit()
bb.parse.siggen = bb.siggen.init(d)
def resolve_file(fn, d):
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index ce53fdc..19ef839 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -28,6 +28,7 @@
import datetime
import pickle
import traceback
+import gc
import bb.server.xmlrpcserver
from bb import daemonize
from multiprocessing import queues
@@ -739,8 +740,10 @@
self.event = self
def _send(self, obj):
+ gc.disable()
with self.wlock:
self.writer.send_bytes(obj)
+ gc.enable()
def send(self, obj):
obj = multiprocessing.reduction.ForkingPickler.dumps(obj)
diff --git a/poky/bitbake/lib/bb/tests/codeparser.py b/poky/bitbake/lib/bb/tests/codeparser.py
index f485204..71ed382 100644
--- a/poky/bitbake/lib/bb/tests/codeparser.py
+++ b/poky/bitbake/lib/bb/tests/codeparser.py
@@ -318,7 +318,7 @@
"filename": "example.bb",
})
- deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
+ deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
self.assertEqual(deps, set(["somevar", "bar", "something", "inexpand", "test", "test2", "a"]))
@@ -365,7 +365,7 @@
self.d.setVarFlags("FOO", {"func": True})
self.setEmptyVars(execs)
- deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
+ deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
self.assertEqual(deps, set(["somevar", "inverted"] + execs))
@@ -375,7 +375,7 @@
self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
self.d.setVarFlag("FOO", "vardeps", "oe_libinstall")
- deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
+ deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
self.assertEqual(deps, set(["oe_libinstall"]))
@@ -384,7 +384,7 @@
self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
self.d.setVarFlag("FOO", "vardeps", "${@'oe_libinstall'}")
- deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
+ deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), set(), self.d)
self.assertEqual(deps, set(["oe_libinstall"]))
@@ -399,7 +399,7 @@
# Check dependencies
self.d.setVar('ANOTHERVAR', expr)
self.d.setVar('TESTVAR', 'anothervalue testval testval2')
- deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), self.d)
+ deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), self.d)
self.assertEqual(sorted(values.splitlines()),
sorted([expr,
'TESTVAR{anothervalue} = Set',
@@ -412,6 +412,24 @@
# Check final value
self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['anothervalue', 'yetanothervalue', 'lastone'])
+ def test_contains_vardeps_excluded(self):
+ # Check the ignored_vars option to build_dependencies is handled by contains functionality
+ varval = '${TESTVAR2} ${@bb.utils.filter("TESTVAR", "somevalue anothervalue", d)}'
+ self.d.setVar('ANOTHERVAR', varval)
+ self.d.setVar('TESTVAR', 'anothervalue testval testval2')
+ self.d.setVar('TESTVAR2', 'testval3')
+ deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(["TESTVAR"]), self.d)
+ self.assertEqual(sorted(values.splitlines()), sorted([varval]))
+ self.assertEqual(deps, set(["TESTVAR2"]))
+ self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
+
+ # Check the vardepsexclude flag is handled by contains functionality
+ self.d.setVarFlag('ANOTHERVAR', 'vardepsexclude', 'TESTVAR')
+ deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), self.d)
+ self.assertEqual(sorted(values.splitlines()), sorted([varval]))
+ self.assertEqual(deps, set(["TESTVAR2"]))
+ self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
+
#Currently no wildcard support
#def test_vardeps_wildcards(self):
# self.d.setVar("oe_libinstall", "echo test")
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index b2e7520..3f410fd 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -252,26 +252,26 @@
return
tasks = []
for t in runningpids:
+ start_time = activetasks[t].get("starttime", None)
+ if start_time:
+ msg = "%s - %s (pid %s)" % (activetasks[t]["title"], self.elapsed(currenttime - start_time), activetasks[t]["pid"])
+ else:
+ msg = "%s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"])
progress = activetasks[t].get("progress", None)
if progress is not None:
pbar = activetasks[t].get("progressbar", None)
rate = activetasks[t].get("rate", None)
- start_time = activetasks[t].get("starttime", None)
if not pbar or pbar.bouncing != (progress < 0):
if progress < 0:
- pbar = BBProgress("0: %s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"]), 100, widgets=[' ', progressbar.BouncingSlider(), ''], extrapos=3, resize_handler=self.sigwinch_handle)
+ pbar = BBProgress("0: %s" % msg, 100, widgets=[' ', progressbar.BouncingSlider(), ''], extrapos=3, resize_handler=self.sigwinch_handle)
pbar.bouncing = True
else:
- pbar = BBProgress("0: %s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"]), 100, widgets=[' ', progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=5, resize_handler=self.sigwinch_handle)
+ pbar = BBProgress("0: %s" % msg, 100, widgets=[' ', progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=5, resize_handler=self.sigwinch_handle)
pbar.bouncing = False
activetasks[t]["progressbar"] = pbar
- tasks.append((pbar, progress, rate, start_time))
+ tasks.append((pbar, msg, progress, rate, start_time))
else:
- start_time = activetasks[t].get("starttime", None)
- if start_time:
- tasks.append("%s - %s (pid %s)" % (activetasks[t]["title"], self.elapsed(currenttime - start_time), activetasks[t]["pid"]))
- else:
- tasks.append("%s (pid %s)" % (activetasks[t]["title"], activetasks[t]["pid"]))
+ tasks.append(msg)
if self.main.shutdown:
content = pluralise("Waiting for %s running task to finish",
@@ -308,12 +308,12 @@
if not self.quiet:
for tasknum, task in enumerate(tasks[:(self.rows - 1 - lines)]):
if isinstance(task, tuple):
- pbar, progress, rate, start_time = task
+ pbar, msg, progress, rate, start_time = task
if not pbar.start_time:
pbar.start(False)
if start_time:
pbar.start_time = start_time
- pbar.setmessage('%s:%s' % (tasknum, pbar.msg.split(':', 1)[1]))
+ pbar.setmessage('%s: %s' % (tasknum, msg))
pbar.setextra(rate)
if progress > -1:
content = pbar.update(progress)
diff --git a/poky/bitbake/lib/pyinotify.py b/poky/bitbake/lib/pyinotify.py
index 8c94b3e..5c9b6d0 100644
--- a/poky/bitbake/lib/pyinotify.py
+++ b/poky/bitbake/lib/pyinotify.py
@@ -603,6 +603,17 @@
unknown event.
"""
stripped_mask = event.mask - (event.mask & IN_ISDIR)
+ # Bitbake hack - we see event masks of 0x6, IN_MODIFY & IN_ATTRIB
+ # The kernel inotify code can set more than one of the bits in the mask,
+ # fsnotify_change() in linux/fsnotify.h is quite clear that IN_ATTRIB,
+ # IN_MODIFY and IN_ACCESS can arrive together.
+ # This breaks the code below which assume only one mask bit is ever
+ # set in an event. We don't care about attrib or access in bitbake so drop those
+ if (stripped_mask & IN_MODIFY) and (stripped_mask & IN_ATTRIB):
+ stripped_mask = stripped_mask - (stripped_mask & IN_ATTRIB)
+ if (stripped_mask & IN_MODIFY) and (stripped_mask & IN_ACCESS):
+ stripped_mask = stripped_mask - (stripped_mask & IN_ACCESS)
+
maskname = EventsCodes.ALL_VALUES.get(stripped_mask)
if maskname is None:
raise ProcessEventError("Unknown mask 0x%08x" % stripped_mask)
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 0deebdb..0bc6492 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -1117,6 +1117,7 @@
# binutils is used for most checks, so need to set as dependency
# POPULATESYSROOTDEPS is defined in staging class.
do_package_qa[depends] += "${POPULATESYSROOTDEPS}"
+do_package_qa[vardeps] = "${@bb.utils.contains('ERROR_QA', 'empty-dirs', 'QA_EMPTY_DIRS', '', d)}"
do_package_qa[vardepsexclude] = "BB_TASKDEPDATA"
do_package_qa[rdeptask] = "do_packagedata"
addtask do_package_qa after do_packagedata do_package before do_build
@@ -1182,9 +1183,9 @@
msg += " devtool modify %s\n" % d.getVar('PN')
msg += " devtool finish --force-patch-refresh %s <layer_path>\n\n" % d.getVar('PN')
msg += "Don't forget to review changes done by devtool!\n"
- if 'patch-fuzz' in d.getVar('ERROR_QA'):
+ if bb.utils.filter('ERROR_QA', 'patch-fuzz', d):
bb.error(msg)
- elif 'patch-fuzz' in d.getVar('WARN_QA'):
+ elif bb.utils.filter('WARN_QA', 'patch-fuzz', d):
bb.warn(msg)
msg = "Patch log indicates that patches do not apply cleanly."
oe.qa.handle_error("patch-fuzz", msg, d)
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index b3bbd3b..7ca847f 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -447,7 +447,6 @@
# Install various kernel output (zImage, map file, config, module support files)
#
install -d ${D}/${KERNEL_IMAGEDEST}
- install -d ${D}/boot
#
# When including an initramfs bundle inside a FIT image, the fitImage is created after the install task
@@ -465,10 +464,10 @@
fi
done
- install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
- install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION}
- install -m 0644 vmlinux ${D}/boot/vmlinux-${KERNEL_VERSION}
- [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/boot/Module.symvers-${KERNEL_VERSION}
+ install -m 0644 System.map ${D}/${KERNEL_IMAGEDEST}/System.map-${KERNEL_VERSION}
+ install -m 0644 .config ${D}/${KERNEL_IMAGEDEST}/config-${KERNEL_VERSION}
+ install -m 0644 vmlinux ${D}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION}
+ [ -e Module.symvers ] && install -m 0644 Module.symvers ${D}/${KERNEL_IMAGEDEST}/Module.symvers-${KERNEL_VERSION}
install -d ${D}${sysconfdir}/modules-load.d
install -d ${D}${sysconfdir}/modprobe.d
}
@@ -649,8 +648,8 @@
FILES:${PN} = ""
FILES:${KERNEL_PACKAGE_NAME}-base = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.order ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo"
FILES:${KERNEL_PACKAGE_NAME}-image = ""
-FILES:${KERNEL_PACKAGE_NAME}-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH} ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build"
-FILES:${KERNEL_PACKAGE_NAME}-vmlinux = "/boot/vmlinux-${KERNEL_VERSION_NAME}"
+FILES:${KERNEL_PACKAGE_NAME}-dev = "/${KERNEL_IMAGEDEST}/System.map* /${KERNEL_IMAGEDEST}/Module.symvers* /${KERNEL_IMAGEDEST}/config* ${KERNEL_SRC_PATH} ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build"
+FILES:${KERNEL_PACKAGE_NAME}-vmlinux = "/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION_NAME}"
FILES:${KERNEL_PACKAGE_NAME}-modules = ""
RDEPENDS:${KERNEL_PACKAGE_NAME} = "${KERNEL_PACKAGE_NAME}-base (= ${EXTENDPKGV})"
# Allow machines to override this dependency if kernel image files are
@@ -712,7 +711,7 @@
extra_sections = d.getVar('KERNEL_IMAGE_STRIP_EXTRA_SECTIONS')
kernel_image = d.getVar('B') + "/" + d.getVar('KERNEL_OUTPUT_DIR') + "/vmlinux"
- if (extra_sections and kernel_image.find('boot/vmlinux') != -1):
+ if (extra_sections and kernel_image.find('${KERNEL_IMAGEDEST}/vmlinux') != -1):
kernel_image_stripped = kernel_image + ".stripped"
shutil.copy2(kernel_image, kernel_image_stripped)
oe.package.runstrip((kernel_image_stripped, 8, strip, extra_sections))
diff --git a/poky/meta/classes/mirrors.bbclass b/poky/meta/classes/mirrors.bbclass
index 37dc449..ffdccff 100644
--- a/poky/meta/classes/mirrors.bbclass
+++ b/poky/meta/classes/mirrors.bbclass
@@ -76,3 +76,14 @@
git://.*/.* git://HOST/PATH;protocol=https \
git://.*/.* git://HOST/git/PATH;protocol=https \
"
+
+# Switch glibc and binutils recipes to use shallow clones as they're large and this
+# improves user experience whilst allowing the flexibility of git urls in the recipes
+BB_GIT_SHALLOW:pn-binutils = "1"
+BB_GIT_SHALLOW:pn-binutils-cross-${TARGET_ARCH} = "1"
+BB_GIT_SHALLOW:pn-binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "1"
+BB_GIT_SHALLOW:pn-binutils-cross-testsuite = "1"
+BB_GIT_SHALLOW:pn-binutils-crosssdk-${SDK_SYS} = "1"
+BB_GIT_SHALLOW:pn-glibc = "1"
+PREMIRRORS += "git://sourceware.org/git/glibc.git https://downloads.yoctoproject.org/mirror/sources/ \
+ git://sourceware.org/git/binutils-gdb.git https://downloads.yoctoproject.org/mirror/sources/"
diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass
index 8d136e9..4ca8118 100644
--- a/poky/meta/classes/uboot-sign.bbclass
+++ b/poky/meta/classes/uboot-sign.bbclass
@@ -250,7 +250,7 @@
[ -n "${UBOOT_DTB_BINARY}" ]; then
install_helper
fi
- if [ "${SPL_SIGN_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ]; then
+ if [ "${UBOOT_FITIMAGE_ENABLE}" = "1" -a -n "${SPL_DTB_BINARY}" ]; then
install_spl_helper
fi
done
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 7705415..3fa2bee 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -915,19 +915,6 @@
NO_RECOMMENDATIONS ??= ""
BAD_RECOMMENDATIONS ?= ""
-# Make sure MACHINE isn't exported
-# (breaks binutils at least)
-MACHINE[unexport] = "1"
-
-# Make sure TARGET_ARCH isn't exported
-# (breaks Makefiles using implicit rules, e.g. quilt, as GNU make has this
-# in them, undocumented)
-TARGET_ARCH[unexport] = "1"
-
-# Make sure DISTRO isn't exported
-# (breaks sysvinit at least)
-DISTRO[unexport] = "1"
-
# Make sure SHELL isn't exported
# (can break any number of things if the user's shell isn't POSIX-compliant,
# including the flock command). The user's shell shouldn't affect our builds.
@@ -949,7 +936,7 @@
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
STAMPS_DIR PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH SDKPKGSUFFIX \
- WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \
+ WARN_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \
BB_WORKERCONTEXT BB_LIMITEDDEPS BB_UNIHASH extend_recipe_sysroot DEPLOY_DIR \
SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \
SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES \
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index ac3295d..b51cce4 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -48,6 +48,7 @@
opkg-ptest \
pango-ptest \
parted-ptest \
+ popt-ptest \
python3-atomicwrites-ptest \
python3-bcrypt-ptest \
python3-hypothesis-ptest \
diff --git a/poky/meta/lib/oe/gpg_sign.py b/poky/meta/lib/oe/gpg_sign.py
index 1bce6cb..aa9bb49 100644
--- a/poky/meta/lib/oe/gpg_sign.py
+++ b/poky/meta/lib/oe/gpg_sign.py
@@ -58,7 +58,7 @@
for i in range(0, len(files), sign_chunk):
subprocess.check_output(shlex.split(cmd + ' '.join(files[i:i+sign_chunk])), stderr=subprocess.STDOUT)
- def detach_sign(self, input_file, keyid, passphrase_file, passphrase=None, armor=True):
+ def detach_sign(self, input_file, keyid, passphrase_file, passphrase=None, armor=True, output_suffix=None, use_sha256=False):
"""Create a detached signature of a file"""
if passphrase_file and passphrase:
@@ -71,6 +71,10 @@
cmd += ['--homedir', self.gpg_path]
if armor:
cmd += ['--armor']
+ if output_suffix:
+ cmd += ['-o', input_file + "." + output_suffix]
+ if use_sha256:
+ cmd += ['--digest-algo', "SHA256"]
#gpg > 2.1 supports password pipes only through the loopback interface
#gpg < 2.1 errors out if given unknown parameters
diff --git a/poky/meta/lib/oe/package_manager/deb/__init__.py b/poky/meta/lib/oe/package_manager/deb/__init__.py
index 9f112ae..86ddb13 100644
--- a/poky/meta/lib/oe/package_manager/deb/__init__.py
+++ b/poky/meta/lib/oe/package_manager/deb/__init__.py
@@ -53,6 +53,7 @@
index_cmds = []
deb_dirs_found = False
+ index_sign_files = set()
for arch in arch_list:
arch_dir = os.path.join(self.deploy_dir, arch)
if not os.path.isdir(arch_dir):
@@ -62,7 +63,10 @@
cmd += "%s -fcn Packages > Packages.gz;" % gzip
- with open(os.path.join(arch_dir, "Release"), "w+") as release:
+ release_file = os.path.join(arch_dir, "Release")
+ index_sign_files.add(release_file)
+
+ with open(release_file, "w+") as release:
release.write("Label: %s\n" % arch)
cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive
@@ -76,8 +80,17 @@
return
oe.utils.multiprocess_launch(create_index, index_cmds, self.d)
- if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
- raise NotImplementedError('Package feed signing not implementd for dpkg')
+ if self.d.getVar('PACKAGE_FEED_SIGN', True) == '1':
+ signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND', True))
+ else:
+ signer = None
+ if signer:
+ for f in index_sign_files:
+ signer.detach_sign(f,
+ self.d.getVar('PACKAGE_FEED_GPG_NAME', True),
+ self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE', True),
+ output_suffix="gpg",
+ use_sha256=True)
class PMPkgsList(PkgsList):
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-depmod-Ignore-.debug-directories.patch b/poky/meta/recipes-core/busybox/busybox/0001-depmod-Ignore-.debug-directories.patch
new file mode 100644
index 0000000..354f83a
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/busybox/0001-depmod-Ignore-.debug-directories.patch
@@ -0,0 +1,32 @@
+From 5f6ed003f10ee0bd4a508d5f59129a29f0920dfc Mon Sep 17 00:00:00 2001
+From: Saul Wold <saul.wold@windriver.com>
+Date: Thu, 31 Mar 2022 11:21:45 -0700
+Subject: [PATCH] depmod: Ignore .debug directories
+
+The .debug/<module>.ko files do not have the correct symbol information
+since it's split away from the actual <module>.ko file. Just ignore it.
+
+Upstream-Status: Pending
+
+Signed-off-by: Saul Wold <saul.wold@windriver.com>
+---
+ modutils/depmod.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modutils/depmod.c b/modutils/depmod.c
+index bb42bbe..aa5a2de 100644
+--- a/modutils/depmod.c
++++ b/modutils/depmod.c
+@@ -43,6 +43,9 @@ static int FAST_FUNC parse_module(struct recursive_state *state,
+ /* Arbitrary. Was sb->st_size, but that breaks .gz etc */
+ size_t len = (64*1024*1024 - 4096);
+
++ if (strstr(fname, ".debug") == NULL)
++ return TRUE;
++
+ if (strrstr(fname, ".ko") == NULL)
+ return TRUE;
+
+--
+2.31.1
+
diff --git a/poky/meta/recipes-core/busybox/busybox_1.35.0.bb b/poky/meta/recipes-core/busybox/busybox_1.35.0.bb
index 7ce1717..ab11f3d 100644
--- a/poky/meta/recipes-core/busybox/busybox_1.35.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox_1.35.0.bb
@@ -1,6 +1,7 @@
require busybox.inc
SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
+ file://0001-depmod-Ignore-.debug-directories.patch \
file://busybox-udhcpc-no_deconfig.patch \
file://find-touchscreen.sh \
file://busybox-cron \
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-Add-C-tests-for-typechecking-with-atomic-compa.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-Add-C-tests-for-typechecking-with-atomic-compa.patch
new file mode 100644
index 0000000..4842f46
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-tests-Add-C-tests-for-typechecking-with-atomic-compa.patch
@@ -0,0 +1,64 @@
+From 44b4bcd56d7ac2bd8ebf00e9fa433ad897d68216 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <pwithnall@endlessos.org>
+Date: Fri, 1 Apr 2022 13:44:45 +0100
+Subject: [PATCH 1/2] tests: Add C++ tests for typechecking with atomic compare
+ and exchanges
+
+Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
+
+Helps: #2625
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2578]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ glib/tests/cxx.cpp | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/glib/tests/cxx.cpp b/glib/tests/cxx.cpp
+index be0a6bfa1..7d7f27c91 100644
+--- a/glib/tests/cxx.cpp
++++ b/glib/tests/cxx.cpp
+@@ -53,6 +53,32 @@ test_typeof (void)
+ #endif
+ }
+
++static void
++test_atomic_pointer_compare_and_exchange (void)
++{
++ const gchar *str1 = "str1";
++ const gchar *str2 = "str2";
++ const gchar *atomic_string = str1;
++
++ g_test_message ("Test that g_atomic_pointer_compare_and_exchange() with a "
++ "non-void* pointer doesn’t have any compiler warnings in C++ mode");
++
++ g_assert_true (g_atomic_pointer_compare_and_exchange (&atomic_string, str1, str2));
++ g_assert_true (atomic_string == str2);
++}
++
++static void
++test_atomic_int_compare_and_exchange (void)
++{
++ gint atomic_int = 5;
++
++ g_test_message ("Test that g_atomic_int_compare_and_exchange() doesn’t have "
++ "any compiler warnings in C++ mode");
++
++ g_assert_true (g_atomic_int_compare_and_exchange (&atomic_int, 5, 50));
++ g_assert_cmpint (atomic_int, ==, 50);
++}
++
+ int
+ main (int argc, char *argv[])
+ {
+@@ -63,6 +89,8 @@ main (int argc, char *argv[])
+ #endif
+
+ g_test_add_func ("/C++/typeof", test_typeof);
++ g_test_add_func ("/C++/atomic-pointer-compare-and-exchange", test_atomic_pointer_compare_and_exchange);
++ g_test_add_func ("/C++/atomic-int-compare-and-exchange", test_atomic_int_compare_and_exchange);
+
+ return g_test_run ();
+ }
+--
+2.35.1
+
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0002-gatomic-Add-a-C-variant-of-g_atomic_int_compare_and_.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0002-gatomic-Add-a-C-variant-of-g_atomic_int_compare_and_.patch
new file mode 100644
index 0000000..a07f946
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0002-gatomic-Add-a-C-variant-of-g_atomic_int_compare_and_.patch
@@ -0,0 +1,70 @@
+From 2668390454bc0efe52a262eb2faa4a2bd5a062e2 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <pwithnall@endlessos.org>
+Date: Fri, 1 Apr 2022 13:47:19 +0100
+Subject: [PATCH 2/2] gatomic: Add a C++ variant of
+ g_atomic_int_compare_and_exchange()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The C++ variant implements type safety differently, to avoid warnings
+from C++ compilers about:
+```
+../../../gnome-commander-1.14.2/src/intviewer/searcher.cc:303:5: error: cannot initialize a parameter of type 'gint *' (aka 'int *') with an rvalue of type 'void *'
+ g_atomic_int_compare_and_exchange ((gint*)&src->priv->progress_value, oldval, (gint)d);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/cortexa72-yoe-linux/gnome-commander/1.14.2-r0/recipe-sysroot/usr/include/glib-2.0/glib/gatomic.h:160:44: note: expanded from macro 'g_atomic_int_compare_and_exchange'
+ __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+```
+
+This complements the existing C++ variant for
+`g_atomic_pointer_compare_and_exchange()`, and fixes a regression on C++
+from https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2114.
+
+With the addition of the unit tests in the previous commit, this is
+effectively tested by the FreeBSD and macOS CI jobs, as they use
+`clang++` in C++ mode. `g++` doesn’t seem to emit a warning about this.
+
+Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
+
+Fixes: #2625
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2578]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ glib/gatomic.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/glib/gatomic.h b/glib/gatomic.h
+index 5eba1dbc7..8b2b880c8 100644
+--- a/glib/gatomic.h
++++ b/glib/gatomic.h
+@@ -152,6 +152,17 @@ G_END_DECLS
+ (void) (0 ? *(atomic) ^ *(atomic) : 1); \
+ __atomic_fetch_sub ((atomic), 1, __ATOMIC_SEQ_CST) == 1; \
+ }))
++#if defined(glib_typeof) && defined(__cplusplus) && __cplusplus >= 201103L
++/* See comments below about equivalent g_atomic_pointer_compare_and_exchange()
++ * shenanigans for type-safety when compiling in C++ mode. */
++#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
++ (G_GNUC_EXTENSION ({ \
++ glib_typeof (*(atomic)) gaicae_oldval = (oldval); \
++ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
++ (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1); \
++ __atomic_compare_exchange_n ((atomic), &gaicae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
++ }))
++#else /* if !(defined(glib_typeof) && defined(__cplusplus) && __cplusplus >= 201103L) */
+ #define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
+ (G_GNUC_EXTENSION ({ \
+ gint gaicae_oldval = (oldval); \
+@@ -159,6 +170,7 @@ G_END_DECLS
+ (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1); \
+ __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \
+ }))
++#endif /* defined(glib_typeof) */
+ #define g_atomic_int_add(atomic, val) \
+ (G_GNUC_EXTENSION ({ \
+ G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
+--
+2.35.1
+
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.72.0.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.72.0.bb
index 8b7016e..62479e3 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.72.0.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.72.0.bb
@@ -16,6 +16,8 @@
file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+ file://0001-tests-Add-C-tests-for-typechecking-with-atomic-compa.patch \
+ file://0002-gatomic-Add-a-C-variant-of-g_atomic_int_compare_and_.patch \
"
SRC_URI:append:class-native = " file://relocate-modules.patch"
diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 73fdd5c..703e721 100644
--- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -24,7 +24,7 @@
inherit core-image setuptools3
-SRCREV ?= "0d518533e2794586234e69c80b65ca453b1b33b9"
+SRCREV ?= "0b4231b597618e18668b8340f4209cd364b2b2d0"
SRC_URI = "git://git.yoctoproject.org/poky;branch=master \
file://Yocto_Build_Appliance.vmx \
file://Yocto_Build_Appliance.vmxf \
diff --git a/poky/meta/recipes-core/os-release/os-release.bb b/poky/meta/recipes-core/os-release/os-release.bb
index 637d059..caa2ed2 100644
--- a/poky/meta/recipes-core/os-release/os-release.bb
+++ b/poky/meta/recipes-core/os-release/os-release.bb
@@ -50,6 +50,11 @@
install -d ${D}${nonarch_libdir} ${D}${sysconfdir}
install -m 0644 os-release ${D}${nonarch_libdir}/
ln -rs ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release
+ ln -rs ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/initrd-release
}
-FILES:${PN} += "${nonarch_libdir}/os-release"
+FILES:${PN} = "${sysconfdir}/os-release ${nonarch_libdir}/os-release"
+
+PACKAGES += "${PN}-initrd"
+FILES:${PN}-initrd = "${sysconfdir}/initrd-release"
+RDEPENDS:${PN}-initrd += "${PN}"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-11.2.inc b/poky/meta/recipes-devtools/gcc/gcc-11.2.inc
index 2394c86..68e0d20 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-11.2.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-11.2.inc
@@ -68,6 +68,7 @@
file://0003-CVE-2021-42574.patch \
file://0004-CVE-2021-42574.patch \
file://0001-CVE-2021-46195.patch \
+ file://0042-Fix-thread-stack-size-init.patch \
"
SRC_URI[sha256sum] = "d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0042-Fix-thread-stack-size-init.patch b/poky/meta/recipes-devtools/gcc/gcc/0042-Fix-thread-stack-size-init.patch
new file mode 100644
index 0000000..3fb9ee9
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0042-Fix-thread-stack-size-init.patch
@@ -0,0 +1,23 @@
+The patch is needed in order to support recent glibc (2.34).
+
+Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=91f8a7a34cf29ae7c465603a801326767f1cc7e9]
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+---
+--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 2022-03-15 07:59:54.515325204 -0700
++++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 2022-03-15 08:01:45.919405931 -0700
+@@ -166,9 +166,10 @@
+ #if !SANITIZER_GO
+ // TODO(glider): different tools may require different altstack size.
+ static uptr GetAltStackSize() {
+- // SIGSTKSZ is not enough.
+- static const uptr kAltStackSize = SIGSTKSZ * 4;
+- return kAltStackSize;
++ // Note: since GLIBC_2.31, SIGSTKSZ may be a function call, so this may be
++ // more costly that you think. However GetAltStackSize is only call 2-3 times
++ // per thread so don't cache the evaluation.
++ return SIGSTKSZ * 4;
+ }
+
+ void SetAlternateSignalStack() {
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index d20136a..e7ef6a7 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -13,7 +13,7 @@
file://older-glibc-symbols.patch"
SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa"
-SRCREV = "df1d1321fb093283485c387e3c933d2d264e509c"
+SRCREV = "2b4b88eb513335b0ece55fe51854693d9b20de35"
S = "${WORKDIR}/git"
PV = "1.9.0+git${SRCPV}"
diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_3.1.1.bb b/poky/meta/recipes-devtools/python/python3-jinja2_3.1.1.bb
index 0a2bcd7..c38686a 100644
--- a/poky/meta/recipes-devtools/python/python3-jinja2_3.1.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-jinja2_3.1.1.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
-HOMEPAGE = "https://pypi.org/project/Jinja/"
+HOMEPAGE = "https://pypi.org/project/Jinja2/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
diff --git a/poky/meta/recipes-extended/timezone/timezone.inc b/poky/meta/recipes-extended/timezone/timezone.inc
index 43d14d7..cdd1a2a 100644
--- a/poky/meta/recipes-extended/timezone/timezone.inc
+++ b/poky/meta/recipes-extended/timezone/timezone.inc
@@ -6,7 +6,7 @@
LICENSE = "PD & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba"
-PV = "2021e"
+PV = "2022a"
SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \
http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \
@@ -14,6 +14,6 @@
UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
-SRC_URI[tzcode.sha256sum] = "584666393a5424d13d27ec01183da17703273664742e049d4f62f62dab631775"
-SRC_URI[tzdata.sha256sum] = "07ec42b737d0d3c6be9c337f8abb5f00554a0f9cc4fcf01a703d69403b6bb2b1"
+SRC_URI[tzcode.sha256sum] = "f8575e7e33be9ee265df2081092526b81c80abac3f4a04399ae9d4d91cdadac7"
+SRC_URI[tzdata.sha256sum] = "ef7fffd9f4f50f4f58328b35022a32a5a056b245c5cb3d6791dddb342f871664"
diff --git a/poky/meta/recipes-extended/unzip/unzip/CVE-2021-4217.patch b/poky/meta/recipes-extended/unzip/unzip/CVE-2021-4217.patch
new file mode 100644
index 0000000..6ba2b87
--- /dev/null
+++ b/poky/meta/recipes-extended/unzip/unzip/CVE-2021-4217.patch
@@ -0,0 +1,67 @@
+From 731d698377dbd1f5b1b90efeb8094602ed59fc40 Mon Sep 17 00:00:00 2001
+From: Nils Bars <nils.bars@t-online.de>
+Date: Mon, 17 Jan 2022 16:53:16 +0000
+Subject: [PATCH] Fix null pointer dereference and use of uninitialized data
+
+This fixes a bug that causes use of uninitialized heap data if `readbuf` fails
+to read as many bytes as indicated by the extra field length attribute.
+Furthermore, this fixes a null pointer dereference if an archive contains an
+`EF_UNIPATH` extra field but does not have a filename set.
+---
+ fileio.c | 5 ++++-
+ process.c | 6 +++++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+---
+
+Patch from:
+https://bugs.launchpad.net/ubuntu/+source/unzip/+bug/1957077
+https://launchpadlibrarian.net/580782282/0001-Fix-null-pointer-dereference-and-use-of-uninitialized-data.patch
+Regenerated to apply without offsets.
+
+CVE: CVE-2021-4217
+
+Upstream-Status: Pending [infozip upstream inactive]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+diff --git a/fileio.c b/fileio.c
+index 14460f3..1dc319e 100644
+--- a/fileio.c
++++ b/fileio.c
+@@ -2301,8 +2301,11 @@ int do_string(__G__ length, option) /* return PK-type error code */
+ seek_zipf(__G__ G.cur_zipfile_bufstart - G.extra_bytes +
+ (G.inptr-G.inbuf) + length);
+ } else {
+- if (readbuf(__G__ (char *)G.extra_field, length) == 0)
++ unsigned bytes_read = readbuf(__G__ (char *)G.extra_field, length);
++ if (bytes_read == 0)
+ return PK_EOF;
++ if (bytes_read != length)
++ return PK_ERR;
+ /* Looks like here is where extra fields are read */
+ if (getZip64Data(__G__ G.extra_field, length) != PK_COOL)
+ {
+diff --git a/process.c b/process.c
+index 5f8f6c6..de843a5 100644
+--- a/process.c
++++ b/process.c
+@@ -2058,10 +2058,14 @@ int getUnicodeData(__G__ ef_buf, ef_len)
+ G.unipath_checksum = makelong(offset + ef_buf);
+ offset += 4;
+
++ if (!G.filename_full) {
++ /* Check if we have a unicode extra section but no filename set */
++ return PK_ERR;
++ }
++
+ /*
+ * Compute 32-bit crc
+ */
+-
+ chksum = crc32(chksum, (uch *)(G.filename_full),
+ strlen(G.filename_full));
+
+--
+2.32.0
+
diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
index af94a39..c222a68 100644
--- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -28,6 +28,7 @@
file://CVE-2019-13232_p3.patch \
file://unzip_optimization.patch \
file://0001-configure-Pass-LDFLAGS-to-tests-doing-link-step.patch \
+ file://CVE-2021-4217.patch \
"
UPSTREAM_VERSION_UNKNOWN = "1"
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch
new file mode 100644
index 0000000..214664f
--- /dev/null
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch
@@ -0,0 +1,38 @@
+From 50c691e83f81b235bb96ef996dd4568ffaae256f Mon Sep 17 00:00:00 2001
+From: Carlos Rafael Giani <crg7475@mailbox.org>
+Date: Fri, 18 Mar 2022 12:06:23 +0100
+Subject: [PATCH] Disable libunwind in native OE builds by not looking for
+ libunwind
+
+This is a workaround for this build error:
+
+| -- Checking for one of the modules 'libunwind'
+| CMake Error at [...]/build/tmp/work/x86_64-linux/libsdl2-native/2.0.20-r0/recipe-sysroot-native/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:890 (message):
+| None of the required 'libunwind' found
+| Call Stack (most recent call first):
+| CMakeLists.txt:1367 (pkg_search_module)
+
+By not looking for the libunwind header, the rest of the libunwind
+specific bits in the CMake build script are disabled.
+
+Upstream-Status: Inappropriate [OE specific]
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 64f9fbf..12a4d8f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -862,7 +862,7 @@ if(SDL_LIBC)
+ check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+ foreach(_HEADER
+ stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h limits.h float.h
+- strings.h wchar.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h libunwind.h)
++ strings.h wchar.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h)
+ string(TOUPPER "HAVE_${_HEADER}" _UPPER)
+ string(REPLACE "." "_" _HAVE_H ${_UPPER})
+ check_include_file("${_HEADER}" ${_HAVE_H})
+--
+2.32.0
+
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb
index 58bc94c..4ba22c1 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.20.bb
@@ -20,6 +20,7 @@
file://optional-libunwind-generic.patch \
file://0001-sdlchecks.cmake-pass-cflags-to-the-appropriate-cmake.patch \
"
+SRC_URI:append:class-native = " file://0001-Disable-libunwind-in-native-OE-builds-by-not-looking.patch"
S = "${WORKDIR}/SDL2-${PV}"
diff --git a/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb b/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb
index b931515..f1fd9e7 100644
--- a/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb
+++ b/poky/meta/recipes-graphics/waffle/waffle_1.7.0.bb
@@ -23,7 +23,8 @@
# stack.
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
- surfaceless-egl gbm"
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gbm surfaceless-egl', '', d)} \
+"
# virtual/libgl requires opengl in DISTRO_FEATURES.
REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}"
diff --git a/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
index 04fc14a..303026a 100644
--- a/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
+++ b/poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
@@ -30,11 +30,16 @@
kernelabi=\$(cat "${PKGDATA_DIR}/kernel-depmod/kernel-abiversion")
fi
+if [ ! -e "\$3${nonarch_base_libdir}/depmod.d/exclude.conf" ]; then
+ mkdir -p "\$3${nonarch_base_libdir}/depmod.d"
+ echo "exclude .debug" > "\$3${nonarch_base_libdir}/depmod.d/exclude.conf"
+fi
+
if [ ! -r ${PKGDATA_DIR}/kernel-depmod/System.map-\$4 ] || [ "\$kernelabi" != "\$4" ]; then
echo "Unable to read: ${PKGDATA_DIR}/kernel-depmod/System.map-\$4" >&2
- exec env depmod -C "\$3${sysconfdir}/depmod.d" "\$1" "\$2" "\$3" "\$4"
+ exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" "\$4"
else
- exec env depmod -C "\$3${sysconfdir}/depmod.d" "\$1" "\$2" "\$3" -F "${PKGDATA_DIR}/kernel-depmod/System.map-\$4" "\$4"
+ exec env depmod -C "\$3${nonarch_base_libdir}/depmod.d" "\$1" "\$2" "\$3" -F "${PKGDATA_DIR}/kernel-depmod/System.map-\$4" "\$4"
fi
EOF
chmod +x ${D}${bindir_crossscripts}/depmodwrapper
diff --git a/poky/meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch b/poky/meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch
new file mode 100644
index 0000000..ea0570a
--- /dev/null
+++ b/poky/meta/recipes-kernel/kmod/kmod/0001-depmod-Add-support-for-excluding-a-directory.patch
@@ -0,0 +1,172 @@
+From f50e2d67575ac5f256fb853ca9d29aeac92d9a57 Mon Sep 17 00:00:00 2001
+From: Saul Wold <saul.wold@windriver.com>
+Date: Thu, 31 Mar 2022 14:56:28 -0700
+Subject: [PATCH] depmod: Add support for excluding a directory
+
+This adds support to depmod to enable a new exclude directive in
+the depmod.d/*.conf configuration file. Currently depmod
+already excludes directories named source or build. This change
+will allow additional directories like .debug to be excluded also
+via a new exclude directive.
+
+depmod.d/exclude.conf example:
+exclude .debug
+
+Upstream-Status: Accepted
+
+Signed-off-by: Saul Wold <saul.wold@windriver.com>
+[ Fix warnings and make should_exclude_dir() return bool ]
+Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
+---
+ man/depmod.d.xml | 14 ++++++++++
+ tools/depmod.c | 66 +++++++++++++++++++++++++++++++++++++++++++++---
+ 2 files changed, 76 insertions(+), 4 deletions(-)
+
+diff --git a/man/depmod.d.xml b/man/depmod.d.xml
+index b315e93..76548e9 100644
+--- a/man/depmod.d.xml
++++ b/man/depmod.d.xml
+@@ -131,6 +131,20 @@
+ </para>
+ </listitem>
+ </varlistentry>
++ <varlistentry>
++ <term>exclude <replaceable>excludedir</replaceable>
++ </term>
++ <listitem>
++ <para>
++ This specifies the trailing directories that will be excluded
++ during the search for kernel modules.
++ </para>
++ <para>
++ The <replaceable>excludedir</replaceable> is the trailing directory
++ to exclude
++ </para>
++ </listitem>
++ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+diff --git a/tools/depmod.c b/tools/depmod.c
+index 07a35ba..4117dd1 100644
+--- a/tools/depmod.c
++++ b/tools/depmod.c
+@@ -458,6 +458,11 @@ struct cfg_external {
+ char path[];
+ };
+
++struct cfg_exclude {
++ struct cfg_exclude *next;
++ char exclude_dir[];
++};
++
+ struct cfg {
+ const char *kversion;
+ char dirname[PATH_MAX];
+@@ -469,6 +474,7 @@ struct cfg {
+ struct cfg_override *overrides;
+ struct cfg_search *searches;
+ struct cfg_external *externals;
++ struct cfg_exclude *excludes;
+ };
+
+ static enum search_type cfg_define_search_type(const char *path)
+@@ -580,6 +586,30 @@ static void cfg_external_free(struct cfg_external *ext)
+ free(ext);
+ }
+
++static int cfg_exclude_add(struct cfg *cfg, const char *path)
++{
++ struct cfg_exclude *exc;
++ size_t len = strlen(path);
++
++ exc = malloc(sizeof(struct cfg_exclude) + len + 1);
++ if (exc == NULL) {
++ ERR("exclude add: out of memory\n");
++ return -ENOMEM;
++ }
++ memcpy(exc->exclude_dir, path, len + 1);
++
++ DBG("exclude add: %s\n", path);
++
++ exc->next = cfg->excludes;
++ cfg->excludes = exc;
++ return 0;
++}
++
++static void cfg_exclude_free(struct cfg_exclude *exc)
++{
++ free(exc);
++}
++
+ static int cfg_kernel_matches(const struct cfg *cfg, const char *pattern)
+ {
+ regex_t re;
+@@ -657,6 +687,11 @@ static int cfg_file_parse(struct cfg *cfg, const char *filename)
+ }
+
+ cfg_external_add(cfg, dir);
++ } else if (streq(cmd, "exclude")) {
++ const char *sp;
++ while ((sp = strtok_r(NULL, "\t ", &saveptr)) != NULL) {
++ cfg_exclude_add(cfg, sp);
++ }
+ } else if (streq(cmd, "include")
+ || streq(cmd, "make_map_files")) {
+ INF("%s:%u: command %s not implemented yet\n",
+@@ -857,6 +892,12 @@ static void cfg_free(struct cfg *cfg)
+ cfg->externals = cfg->externals->next;
+ cfg_external_free(tmp);
+ }
++
++ while (cfg->excludes) {
++ struct cfg_exclude *tmp = cfg->excludes;
++ cfg->excludes = cfg->excludes->next;
++ cfg_exclude_free(tmp);
++ }
+ }
+
+
+@@ -1229,6 +1270,25 @@ add:
+ return 0;
+ }
+
++static bool should_exclude_dir(const struct cfg *cfg, const char *name)
++{
++ struct cfg_exclude *exc;
++
++ if (name[0] == '.' && (name[1] == '\0' ||
++ (name[1] == '.' && name[2] == '\0')))
++ return true;
++
++ if (streq(name, "build") || streq(name, "source"))
++ return true;
++
++ for (exc = cfg->excludes; exc != NULL; exc = exc->next) {
++ if (streq(name, exc->exclude_dir))
++ return true;
++ }
++
++ return false;
++}
++
+ static int depmod_modules_search_dir(struct depmod *depmod, DIR *d, size_t baselen, struct scratchbuf *s_path)
+ {
+ struct dirent *de;
+@@ -1240,11 +1300,9 @@ static int depmod_modules_search_dir(struct depmod *depmod, DIR *d, size_t basel
+ size_t namelen;
+ uint8_t is_dir;
+
+- if (name[0] == '.' && (name[1] == '\0' ||
+- (name[1] == '.' && name[2] == '\0')))
+- continue;
+- if (streq(name, "build") || streq(name, "source"))
++ if (should_exclude_dir(depmod->cfg, name))
+ continue;
++
+ namelen = strlen(name);
+ if (scratchbuf_alloc(s_path, baselen + namelen + 2) < 0) {
+ err = -ENOMEM;
+--
+2.31.1
+
diff --git a/poky/meta/recipes-kernel/kmod/kmod_29.bb b/poky/meta/recipes-kernel/kmod/kmod_29.bb
index 91951ed..9b66349 100644
--- a/poky/meta/recipes-kernel/kmod/kmod_29.bb
+++ b/poky/meta/recipes-kernel/kmod/kmod_29.bb
@@ -20,6 +20,7 @@
SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git;branch=master \
file://depmod-search.conf \
file://avoid_parallel_tests.patch \
+ file://0001-depmod-Add-support-for-excluding-a-directory.patch \
"
S = "${WORKDIR}/git"
@@ -64,6 +65,9 @@
# install depmod.d file for search/ dir
install -Dm644 "${WORKDIR}/depmod-search.conf" "${D}${nonarch_base_libdir}/depmod.d/search.conf"
+
+ # Add .debug to the exclude path for depmod
+ echo "exclude .debug" > ${D}${nonarch_base_libdir}/depmod.d/exclude.conf
}
ALTERNATIVE_PRIORITY = "70"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index a8b6aa2..3ff54b9 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "7f96d3fd60eea0ab38afdf07b3fc7c8c9f501802"
-SRCREV_meta ?= "24ab54209a8822aad92afe2c51ea5b95f5175394"
+SRCREV_machine ?= "40a6731993d406d6c9fed43cb20c6a4f178ff2cc"
+SRCREV_meta ?= "2278ed571c14df6e87d8e01ac26f649d98020623"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.10.107"
+LINUX_VERSION ?= "5.10.109"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
index 8edafbc..87ccfc1 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.15.bb
@@ -11,13 +11,13 @@
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
-SRCREV_machine ?= "593f500eff5997a184c8d3836e1e26b199af994f"
-SRCREV_meta ?= "fee71fc34f2e551ebfd7bf0996d82f3447787e7a"
+SRCREV_machine ?= "29d051cc421a76432897019edc33edae35b16e39"
+SRCREV_meta ?= "63e25b5717751b4b33685bd5991d10c52934a4c6"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}"
-LINUX_VERSION ?= "5.15.30"
+LINUX_VERSION ?= "5.15.32"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index 758260c..bbaa0eb 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.10.107"
+LINUX_VERSION ?= "5.10.109"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine:qemuarm ?= "d47f1b40f2f77d0c810defd853c69eb39cb84bf5"
-SRCREV_machine ?= "1ae0844c6a36151066744e43fd30db3a946bc21d"
-SRCREV_meta ?= "24ab54209a8822aad92afe2c51ea5b95f5175394"
+SRCREV_machine:qemuarm ?= "9524d0ca0feeeb4cb698e3c984f4391ccb4b8e19"
+SRCREV_machine ?= "bccf3a5f14511fb8ce6a9dd990216508d2c2ec6e"
+SRCREV_meta ?= "2278ed571c14df6e87d8e01ac26f649d98020623"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
index 01c59a1..d8ce5dc 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.15.bb
@@ -6,7 +6,7 @@
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "5.15.30"
+LINUX_VERSION ?= "5.15.32"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine:qemuarm ?= "0c05aecb4a6a902d8b44b69f887dd991e091b234"
-SRCREV_machine ?= "94c4403d43f8d4a4fa330d9342350b02426696d4"
-SRCREV_meta ?= "fee71fc34f2e551ebfd7bf0996d82f3447787e7a"
+SRCREV_machine:qemuarm ?= "cc9e92e826af229b841fcaf8c645e638a86eba43"
+SRCREV_machine ?= "c3d54a67cbf3fb8e6df2d88c80e9d2c74f69aba4"
+SRCREV_meta ?= "63e25b5717751b4b33685bd5991d10c52934a4c6"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index 9c1bd26..0cf14b7 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@
KBRANCH:qemux86-64 ?= "v5.10/standard/base"
KBRANCH:qemumips64 ?= "v5.10/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "2ef8231651bb6a4c79b307f59a794b92238546ec"
-SRCREV_machine:qemuarm64 ?= "00684b441f15d202c5849eed164a9b3b94a5c1e8"
-SRCREV_machine:qemumips ?= "661a4f517906253e074fe301d68ff1e6b6968e9f"
-SRCREV_machine:qemuppc ?= "bff933cb7a11019c64e6034c48ab79453f75b99e"
-SRCREV_machine:qemuriscv64 ?= "763c0dbc0458ebcb1d06afe2f324925f0f61bd27"
-SRCREV_machine:qemuriscv32 ?= "763c0dbc0458ebcb1d06afe2f324925f0f61bd27"
-SRCREV_machine:qemux86 ?= "763c0dbc0458ebcb1d06afe2f324925f0f61bd27"
-SRCREV_machine:qemux86-64 ?= "763c0dbc0458ebcb1d06afe2f324925f0f61bd27"
-SRCREV_machine:qemumips64 ?= "7a89b456542ff1fa0ab71fa4a2ae6f04281f3a2d"
-SRCREV_machine ?= "763c0dbc0458ebcb1d06afe2f324925f0f61bd27"
-SRCREV_meta ?= "24ab54209a8822aad92afe2c51ea5b95f5175394"
+SRCREV_machine:qemuarm ?= "dfeff112cafaf3a04da6cd60301d297406e1b77f"
+SRCREV_machine:qemuarm64 ?= "3641e4234255c71c33cb2d9422f54c17b70c8941"
+SRCREV_machine:qemumips ?= "7eead19134a43cf9ccc0fa9d75c45be2a7743f13"
+SRCREV_machine:qemuppc ?= "6e1d66b2a871be0450722a50fc087ff8ccbcddd7"
+SRCREV_machine:qemuriscv64 ?= "d2f7a595bf0b752275d503046494b668549cb151"
+SRCREV_machine:qemuriscv32 ?= "d2f7a595bf0b752275d503046494b668549cb151"
+SRCREV_machine:qemux86 ?= "d2f7a595bf0b752275d503046494b668549cb151"
+SRCREV_machine:qemux86-64 ?= "d2f7a595bf0b752275d503046494b668549cb151"
+SRCREV_machine:qemumips64 ?= "279f142932679a8ba212ebae4b9db851636a1fab"
+SRCREV_machine ?= "d2f7a595bf0b752275d503046494b668549cb151"
+SRCREV_meta ?= "2278ed571c14df6e87d8e01ac26f649d98020623"
# remap qemuarm to qemuarma15 for the 5.8 kernel
# KMACHINE:qemuarm ?= "qemuarma15"
@@ -32,7 +32,7 @@
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.107"
+LINUX_VERSION ?= "5.10.109"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
index de71d1f..54157fd 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.15.bb
@@ -13,24 +13,24 @@
KBRANCH:qemux86-64 ?= "v5.15/standard/base"
KBRANCH:qemumips64 ?= "v5.15/standard/mti-malta64"
-SRCREV_machine:qemuarm ?= "4632211e5b019b6337536305bfce0a5ffd3b570b"
-SRCREV_machine:qemuarm64 ?= "c88fcdb0b3ca81f0149309ed7025cb28f709ed3d"
-SRCREV_machine:qemumips ?= "ad268b2a1d6d1d6f1c9e9103cf4b1519477feb39"
-SRCREV_machine:qemuppc ?= "688bb26b6f83a60ec39a0f20f31ec2bc37b49c6f"
-SRCREV_machine:qemuriscv64 ?= "70cf8dde55448a804da825139fa12daf5a855047"
-SRCREV_machine:qemuriscv32 ?= "70cf8dde55448a804da825139fa12daf5a855047"
-SRCREV_machine:qemux86 ?= "70cf8dde55448a804da825139fa12daf5a855047"
-SRCREV_machine:qemux86-64 ?= "70cf8dde55448a804da825139fa12daf5a855047"
-SRCREV_machine:qemumips64 ?= "5e7bcff3dccd4749783b87d69ffd405ba71c9fda"
-SRCREV_machine ?= "70cf8dde55448a804da825139fa12daf5a855047"
-SRCREV_meta ?= "fee71fc34f2e551ebfd7bf0996d82f3447787e7a"
+SRCREV_machine:qemuarm ?= "b6fd1a7dd80a336567fa30c1d674f0d5df9af836"
+SRCREV_machine:qemuarm64 ?= "387a676543764b59e38cf6b13d6474846fb07d78"
+SRCREV_machine:qemumips ?= "7c084cf3a700f7a2c68c8909501f4d35b3215e40"
+SRCREV_machine:qemuppc ?= "239f7c8f37bf9ade16325101df3c06a485ccc74e"
+SRCREV_machine:qemuriscv64 ?= "c9f3902d8069e32a8928153a38d8f6115194d128"
+SRCREV_machine:qemuriscv32 ?= "c9f3902d8069e32a8928153a38d8f6115194d128"
+SRCREV_machine:qemux86 ?= "c9f3902d8069e32a8928153a38d8f6115194d128"
+SRCREV_machine:qemux86-64 ?= "c9f3902d8069e32a8928153a38d8f6115194d128"
+SRCREV_machine:qemumips64 ?= "a4805fe749c9c56d18a60b5378674760ef0e85ed"
+SRCREV_machine ?= "c9f3902d8069e32a8928153a38d8f6115194d128"
+SRCREV_meta ?= "63e25b5717751b4b33685bd5991d10c52934a4c6"
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
# get the <version>/base branch, which is pure upstream -stable, and the same
# meta SRCREV as the linux-yocto-standard builds. Select your version using the
# normal PREFERRED_VERSION settings.
BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "0464ab17184b8fdec6676fabe76059b90e54e74f"
+SRCREV_machine:class-devupstream ?= "e29be6724adbc9c3126d2a9550ec21f927f22f6d"
PN:class-devupstream = "linux-yocto-upstream"
KBRANCH:class-devupstream = "v5.15/base"
@@ -41,7 +41,7 @@
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.15;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.15.30"
+LINUX_VERSION ?= "5.15.32"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-support/popt/popt/0001-popt-test-output-format-for-ptest.patch b/poky/meta/recipes-support/popt/popt/0001-popt-test-output-format-for-ptest.patch
new file mode 100644
index 0000000..020949c
--- /dev/null
+++ b/poky/meta/recipes-support/popt/popt/0001-popt-test-output-format-for-ptest.patch
@@ -0,0 +1,68 @@
+From 330b77081c3a4c7ae76cb08602db385b40fa7ff7 Mon Sep 17 00:00:00 2001
+From: Simone Weiss <simone.weiss@elektrobit.com>
+Date: Mon, 13 Dec 2021 09:29:53 +0000
+Subject: [PATCH] popt test output format for ptest
+
+patch test output format to match simple-test as it is used in ptests.
+
+Upstream-Status: Pending
+
+Signed-off-by: Simone Weiss <simone.weiss@elektrobit.com>
+Signed-off-by: David Niederpruem <david.niederpruem@elektrobit.com>
+---
+ tests/testit.sh | 20 ++++++++------------
+ 1 file changed, 8 insertions(+), 12 deletions(-)
+
+diff --git a/tests/testit.sh b/tests/testit.sh
+index 2a7b4aa..50b42e2 100755
+--- a/tests/testit.sh
++++ b/tests/testit.sh
+@@ -5,12 +5,11 @@ run() {
+ name=$1; shift
+ answer=$1; shift
+
+- echo Running test $name.
+-
+ result=`HOME=$builddir $builddir/$prog $*`
+ if [ "$answer" != "$result" ]; then
+- echo "Test \"$prog $*\" failed with: \"$result\" != \"$answer\" "
+- exit 2
++ echo "FAIL: $name"
++ else
++ echo "PASS: $name"
+ fi
+ }
+
+@@ -23,17 +22,17 @@ run_diff() {
+ out=$builddir/tmp.out
+ diff_file=$builddir/tmp.diff
+
+- echo Running test $name.
+-
+ $builddir/$prog $in_file > $out
+ ret=$?
+ diff $out $answer_file > $diff_file
+ diff_ret=$?
+
+ if [ "$diff_ret" != "0" ]; then
+- echo "Test \"$name\" failed output is in $out, diff is:"
+- cat $diff_file
+- exit 2
++ echo "FAIL: $name"
++ echo "diff is:"
++ cat $diff_file
++ else
++ echo "PASS: $name"
+ fi
+ rm $out $diff_file
+ }
+@@ -174,6 +173,3 @@ Help options:
+ #run_diff test3 "test3 - 51" test3-data/01.input test3-data/01.answer
+ #run_diff test3 "test3 - 52" test3-data/02.input test3-data/02.answer
+ #run_diff test3 "test3 - 53" test3-data/03.input test3-data/03.answer
+-
+-echo ""
+-echo "Passed."
+--
+2.17.1
+
diff --git a/poky/meta/recipes-support/popt/popt/run-ptest b/poky/meta/recipes-support/popt/popt/run-ptest
new file mode 100644
index 0000000..8575403
--- /dev/null
+++ b/poky/meta/recipes-support/popt/popt/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./testit.sh
diff --git a/poky/meta/recipes-support/popt/popt_1.18.bb b/poky/meta/recipes-support/popt/popt_1.18.bb
index 057c44f..af8add4 100644
--- a/poky/meta/recipes-support/popt/popt_1.18.bb
+++ b/poky/meta/recipes-support/popt/popt_1.18.bb
@@ -8,9 +8,26 @@
DEPENDS = "virtual/libiconv"
-SRC_URI = "http://ftp.rpm.org/popt/releases/popt-1.x/${BP}.tar.gz"
+SRC_URI = "\
+ http://ftp.rpm.org/popt/releases/popt-1.x/${BP}.tar.gz \
+ file://0001-popt-test-output-format-for-ptest.patch \
+ file://run-ptest \
+"
SRC_URI[sha256sum] = "5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1"
-inherit autotools gettext
+inherit autotools gettext ptest
+
+RDEPENDS_${PN}-ptest += "bash"
+
+do_compile_ptest() {
+ sed 's#lt-test1#test1#g' ${S}/tests/testit.sh > ${B}/tests/testit.sh
+}
+
+do_install_ptest() {
+ install ${B}/tests/.libs/test* ${D}/${PTEST_PATH}
+ install ${B}/tests/.libs/tdict ${D}/${PTEST_PATH}
+ install ${B}/tests/testit.sh ${D}/${PTEST_PATH}
+ install ${B}/tests/test-poptrc ${D}/${PTEST_PATH}
+}
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc
index 905ba3f..21ff036 100644
--- a/poky/meta/recipes-support/vim/vim.inc
+++ b/poky/meta/recipes-support/vim/vim.inc
@@ -11,7 +11,7 @@
LICENSE = "Vim"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6b30ea4fa660c483b619924bc709ef99 \
- file://runtime/doc/uganda.txt;md5=a3f193c20c6faff93c69185d5d070535"
+ file://runtime/doc/uganda.txt;md5=daf48235bb824c77fe8ae88d5f575f74"
SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
file://disable_acl_header_check.patch \
@@ -21,8 +21,8 @@
file://racefix.patch \
"
-PV .= ".4524"
-SRCREV = "d8f8629b1bf566e1dada7515e9b146c69e5d9757"
+PV .= ".4681"
+SRCREV = "15f74fab653a784548d5d966644926b47ba2cfa7"
# Remove when 8.3 is out
UPSTREAM_VERSION_UNKNOWN = "1"
diff --git a/poky/oe-init-build-env b/poky/oe-init-build-env
index 8c1bd54..38333ab 100755
--- a/poky/oe-init-build-env
+++ b/poky/oe-init-build-env
@@ -42,8 +42,8 @@
unset THIS_SCRIPT
export OEROOT
-. $OEROOT/scripts/oe-buildenv-internal &&
- TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir || {
+. "$OEROOT"/scripts/oe-buildenv-internal &&
+ TEMPLATECONF="$TEMPLATECONF" "$OEROOT"/scripts/oe-setup-builddir || {
unset OEROOT
return 1
}
diff --git a/poky/scripts/oe-setup-builddir b/poky/scripts/oe-setup-builddir
index d4ac074..54048e6 100755
--- a/poky/scripts/oe-setup-builddir
+++ b/poky/scripts/oe-setup-builddir
@@ -42,7 +42,7 @@
TEMPLATECONF=$(cat "$BUILDDIR/conf/templateconf.cfg")
fi
-. $OEROOT/.templateconf
+. "$OEROOT"/.templateconf
if [ ! -f "$BUILDDIR/conf/templateconf.cfg" ]; then
echo "$TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg"
@@ -79,7 +79,7 @@
for more information as common configuration options are commented.
EOM
- cp -f $OECORELOCALCONF "$BUILDDIR/conf/local.conf"
+ cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf"
SHOWYPDOC=yes
fi
@@ -100,7 +100,7 @@
# to replace it for compatibility.
sed -e "s|##OEROOT##|$OEROOT|g" \
-e "s|##COREBASE##|$OEROOT|g" \
- $OECORELAYERCONF > "$BUILDDIR/conf/bblayers.conf"
+ "$OECORELAYERCONF" > "$BUILDDIR/conf/bblayers.conf"
SHOWYPDOC=yes
fi
@@ -125,5 +125,5 @@
if [ -z "$OECORENOTESCONF" ]; then
OECORENOTESCONF="$OEROOT/meta/conf/conf-notes.txt"
fi
-[ ! -r "$OECORENOTESCONF" ] || cat $OECORENOTESCONF
+[ ! -r "$OECORENOTESCONF" ] || cat "$OECORENOTESCONF"
unset OECORENOTESCONF
diff --git a/poky/scripts/relocate_sdk.py b/poky/scripts/relocate_sdk.py
index 8c0fdb9..4ed8bfc 100755
--- a/poky/scripts/relocate_sdk.py
+++ b/poky/scripts/relocate_sdk.py
@@ -30,9 +30,16 @@
old_prefix = re.compile(b("##DEFAULT_INSTALL_DIR##"))
def get_arch():
+ global endian_prefix
f.seek(0)
e_ident =f.read(16)
- ei_mag0,ei_mag1_3,ei_class = struct.unpack("<B3sB11x", e_ident)
+ ei_mag0,ei_mag1_3,ei_class,ei_data,ei_version = struct.unpack("<B3sBBB9x", e_ident)
+
+ # ei_data = 1 for little-endian & 0 for big-endian
+ if ei_data == 1:
+ endian_prefix = '<'
+ else:
+ endian_prefix = '>'
if (ei_mag0 != 0x7f and ei_mag1_3 != "ELF") or ei_class == 0:
return 0
@@ -51,11 +58,11 @@
if arch == 32:
# 32bit
- hdr_fmt = "<HHILLLIHHHHHH"
+ hdr_fmt = endian_prefix + "HHILLLIHHHHHH"
hdr_size = 52
else:
# 64bit
- hdr_fmt = "<HHIQQQIHHHHHH"
+ hdr_fmt = endian_prefix + "HHIQQQIHHHHHH"
hdr_size = 64
e_type, e_machine, e_version, e_entry, e_phoff, e_shoff, e_flags,\
@@ -64,9 +71,9 @@
def change_interpreter(elf_file_name):
if arch == 32:
- ph_fmt = "<IIIIIIII"
+ ph_fmt = endian_prefix + "IIIIIIII"
else:
- ph_fmt = "<IIQQQQQQ"
+ ph_fmt = endian_prefix + "IIQQQQQQ"
""" look for PT_INTERP section """
for i in range(0,e_phnum):
@@ -105,17 +112,17 @@
def change_dl_sysdirs(elf_file_name):
if arch == 32:
- sh_fmt = "<IIIIIIIIII"
+ sh_fmt = endian_prefix + "IIIIIIIIII"
else:
- sh_fmt = "<IIQQQQIIQQ"
+ sh_fmt = endian_prefix + "IIQQQQIIQQ"
""" read section string table """
f.seek(e_shoff + e_shstrndx * e_shentsize)
sh_hdr = f.read(e_shentsize)
if arch == 32:
- sh_offset, sh_size = struct.unpack("<16xII16x", sh_hdr)
+ sh_offset, sh_size = struct.unpack(endian_prefix + "16xII16x", sh_hdr)
else:
- sh_offset, sh_size = struct.unpack("<24xQQ24x", sh_hdr)
+ sh_offset, sh_size = struct.unpack(endian_prefix + "24xQQ24x", sh_hdr)
f.seek(sh_offset)
sh_strtab = f.read(sh_size)