* [bitbake][scarthgap][2.8][PATCH 0/2] Patch review
@ 2024-07-18 13:48 Steve Sakoman
0 siblings, 0 replies; 6+ messages in thread
From: Steve Sakoman @ 2024-07-18 13:48 UTC (permalink / raw)
To: bitbake-devel
Please review this set of changes for 2.8/scarthgap and have comments back by
end of day Monday, July 21
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/7150
The following changes since commit 8714a02e13477a9d97858b3642e05f28247454b5:
fetch2/wget: Fix failure path for files that are empty or don't exist (2024-06-14 08:48:23 -0700)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.8-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.8-nut
Richard Purdie (2):
codeparser/data: Ensure module function contents changing is accounted
for
codeparser: Skip non-local functions for module dependencies
lib/bb/codeparser.py | 33 ++++++++++++++++++++++-----------
lib/bb/data.py | 2 +-
2 files changed, 23 insertions(+), 12 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bitbake][scarthgap][2.8][PATCH 0/2] Patch review
@ 2025-09-10 15:59 Steve Sakoman
2025-09-10 15:59 ` [bitbake][scarthgap][2.8][PATCH 1/2] Use a "fork" multiprocessing context Steve Sakoman
2025-09-10 15:59 ` [bitbake][scarthgap][2.8][PATCH 2/2] bb/fetch2/__init__.py: remove a DeprecationWarning in uri_replace() Steve Sakoman
0 siblings, 2 replies; 6+ messages in thread
From: Steve Sakoman @ 2025-09-10 15:59 UTC (permalink / raw)
To: bitbake-devel
Please review this set of changes for 2.18/scarthgap and have comments back
by end of day Friday, September 12
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/2347
The following changes since commit 982645110a19ebb94d519926a4e14c8a2a205cfd:
utils: Optimise signal/sigmask performance (2025-07-31 09:21:27 -0700)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.8-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.8-nut
Bin Lan (1):
bb/fetch2/__init__.py: remove a DeprecationWarning in uri_replace()
Joshua Watt (1):
Use a "fork" multiprocessing context
lib/bb/__init__.py | 28 ++++++++++++++++++++++++++++
lib/bb/asyncrpc/serv.py | 2 +-
lib/bb/cooker.py | 2 +-
lib/bb/fetch2/__init__.py | 2 +-
lib/bb/server/process.py | 2 +-
lib/bb/tests/support/httpserver.py | 4 ++--
lib/bb/utils.py | 4 +---
lib/hashserv/tests.py | 2 +-
8 files changed, 36 insertions(+), 10 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bitbake][scarthgap][2.8][PATCH 1/2] Use a "fork" multiprocessing context
2025-09-10 15:59 [bitbake][scarthgap][2.8][PATCH 0/2] Patch review Steve Sakoman
@ 2025-09-10 15:59 ` Steve Sakoman
2025-09-10 15:59 ` [bitbake][scarthgap][2.8][PATCH 2/2] bb/fetch2/__init__.py: remove a DeprecationWarning in uri_replace() Steve Sakoman
1 sibling, 0 replies; 6+ messages in thread
From: Steve Sakoman @ 2025-09-10 15:59 UTC (permalink / raw)
To: bitbake-devel
From: Joshua Watt <JPEWhacker@gmail.com>
Python 3.14 changes the default multiprocessing context from "fork" to
"forkserver"; however bitbake heavily relies on "fork" to efficiently
pass data to the child processes. As such, make "fork" context in the bb
namespace and use it in place of the normal multiprocessing module.
Note that multiprocessing contexts were added in Python 3.4, so this
should be safe to use even before Python 3.14
[YOCTO #15858]
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
lib/bb/__init__.py | 28 ++++++++++++++++++++++++++++
lib/bb/asyncrpc/serv.py | 2 +-
lib/bb/cooker.py | 2 +-
lib/bb/server/process.py | 2 +-
lib/bb/tests/support/httpserver.py | 4 ++--
lib/bb/utils.py | 4 +---
lib/hashserv/tests.py | 2 +-
7 files changed, 35 insertions(+), 9 deletions(-)
diff --git a/lib/bb/__init__.py b/lib/bb/__init__.py
index cdec9e4d6..f59c2515b 100644
--- a/lib/bb/__init__.py
+++ b/lib/bb/__init__.py
@@ -37,6 +37,34 @@ class BBHandledException(Exception):
import os
import logging
from collections import namedtuple
+import multiprocessing as mp
+
+# Python 3.14 changes the default multiprocessing context from "fork" to
+# "forkserver". However, bitbake heavily relies on "fork" behavior to
+# efficiently pass data to the child processes. Places that need this should do:
+# from bb import multiprocessing
+# in place of
+# import multiprocessing
+
+class MultiprocessingContext(object):
+ """
+ Multiprocessing proxy object that uses the "fork" context for a property if
+ available, otherwise goes to the main multiprocessing module. This allows
+ it to be a drop-in replacement for the multiprocessing module, but use the
+ fork context
+ """
+ def __init__(self):
+ super().__setattr__("_ctx", mp.get_context("fork"))
+
+ def __getattr__(self, name):
+ if hasattr(self._ctx, name):
+ return getattr(self._ctx, name)
+ return getattr(mp, name)
+
+ def __setattr__(self, name, value):
+ raise AttributeError(f"Unable to set attribute {name}")
+
+multiprocessing = MultiprocessingContext()
class NullHandler(logging.Handler):
diff --git a/lib/bb/asyncrpc/serv.py b/lib/bb/asyncrpc/serv.py
index a66117aca..953c02ef3 100644
--- a/lib/bb/asyncrpc/serv.py
+++ b/lib/bb/asyncrpc/serv.py
@@ -11,7 +11,7 @@ import os
import signal
import socket
import sys
-import multiprocessing
+from bb import multiprocessing
import logging
from .connection import StreamConnection, WebsocketConnection
from .exceptions import ClientError, ServerError, ConnectionClosedError, InvokeError
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 6fce19b46..778cbb589 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -12,7 +12,7 @@
import sys, os, glob, os.path, re, time
import itertools
import logging
-import multiprocessing
+from bb import multiprocessing
import threading
from io import StringIO, UnsupportedOperation
from contextlib import closing
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index 76b189291..34b3a2ae9 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -13,7 +13,7 @@
import bb
import bb.event
import logging
-import multiprocessing
+from bb import multiprocessing
import threading
import array
import os
diff --git a/lib/bb/tests/support/httpserver.py b/lib/bb/tests/support/httpserver.py
index 78f766005..03327e923 100644
--- a/lib/bb/tests/support/httpserver.py
+++ b/lib/bb/tests/support/httpserver.py
@@ -3,7 +3,7 @@
#
import http.server
-import multiprocessing
+from bb import multiprocessing
import os
import traceback
import signal
@@ -43,7 +43,7 @@ class HTTPService(object):
self.process = multiprocessing.Process(target=self.server.server_start, args=[self.root_dir, self.logger])
# The signal handler from testimage.bbclass can cause deadlocks here
- # if the HTTPServer is terminated before it can restore the standard
+ # if the HTTPServer is terminated before it can restore the standard
#signal behaviour
orig = signal.getsignal(signal.SIGTERM)
signal.signal(signal.SIGTERM, signal.SIG_DFL)
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index d2f11e437..1b4fb93a3 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -14,7 +14,7 @@ import logging
import bb
import bb.msg
import locale
-import multiprocessing
+from bb import multiprocessing
import fcntl
import importlib
import importlib.machinery
@@ -1174,8 +1174,6 @@ def process_profilelog(fn, pout = None):
#
def multiprocessingpool(*args, **kwargs):
- import multiprocessing.pool
- #import multiprocessing.util
#multiprocessing.util.log_to_stderr(10)
# Deal with a multiprocessing bug where signals to the processes would be delayed until the work
# completes. Putting in a timeout means the signals (like SIGINT/SIGTERM) get processed.
diff --git a/lib/hashserv/tests.py b/lib/hashserv/tests.py
index 5349cd586..ed1ade749 100644
--- a/lib/hashserv/tests.py
+++ b/lib/hashserv/tests.py
@@ -11,7 +11,7 @@ from bb.asyncrpc import InvokeError
from .client import ClientPool
import hashlib
import logging
-import multiprocessing
+from bb import multiprocessing
import os
import sys
import tempfile
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bitbake][scarthgap][2.8][PATCH 2/2] bb/fetch2/__init__.py: remove a DeprecationWarning in uri_replace()
2025-09-10 15:59 [bitbake][scarthgap][2.8][PATCH 0/2] Patch review Steve Sakoman
2025-09-10 15:59 ` [bitbake][scarthgap][2.8][PATCH 1/2] Use a "fork" multiprocessing context Steve Sakoman
@ 2025-09-10 15:59 ` Steve Sakoman
1 sibling, 0 replies; 6+ messages in thread
From: Steve Sakoman @ 2025-09-10 15:59 UTC (permalink / raw)
To: bitbake-devel
From: Bin Lan <bin.lan.cn@windriver.com>
There is the following warning when executing to bitbake linux-yocto:
bitbake/lib/bb/fetch2/__init__.py:464: DeprecationWarning: 'count' is passed as positional argument
This is because the 4th parameter of re.sub(pattern, repl, string, count=0, flags=0)
is a keyword parameter. We use keyword arguments for parameters that are not positional.
Signed-off-by: Bin Lan <bin.lan.cn@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
lib/bb/fetch2/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index 1a6ff25d4..7b75d5d83 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -460,7 +460,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
for k in replacements:
uri_replace_decoded[loc] = uri_replace_decoded[loc].replace(k, replacements[k])
#bb.note("%s %s %s" % (regexp, uri_replace_decoded[loc], uri_decoded[loc]))
- result_decoded[loc] = re.sub(regexp, uri_replace_decoded[loc], uri_decoded[loc], 1)
+ result_decoded[loc] = re.sub(regexp, uri_replace_decoded[loc], uri_decoded[loc], count=1)
if loc == 2:
# Handle path manipulations
basename = None
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [bitbake][scarthgap][2.8][PATCH 0/2] Patch review
@ 2025-11-05 14:46 Steve Sakoman
0 siblings, 0 replies; 6+ messages in thread
From: Steve Sakoman @ 2025-11-05 14:46 UTC (permalink / raw)
To: bitbake-devel
Please review this set of changes for 2.8/scarthgap and have comments back by
end of day Thursday, November 6
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/2676
The following changes since commit 1c9ec1ffde75809de34c10d3ec2b40d84d258cb4:
bitbake: Bump version to 2.8.1 (2025-09-17 23:22:33 +0100)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.8-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.8-nut
Bin Lan (1):
bb/fetch2/__init__.py: remove a DeprecationWarning in uri_replace()
Philippe-Alexandre Mathieu (1):
fetch2/wget: Keep query parameters in URL during checkstatus
lib/bb/fetch2/__init__.py | 2 +-
lib/bb/fetch2/wget.py | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [bitbake][scarthgap][2.8][PATCH 0/2] Patch review
@ 2026-02-09 9:33 Yoann Congal
0 siblings, 0 replies; 6+ messages in thread
From: Yoann Congal @ 2026-02-09 9:33 UTC (permalink / raw)
To: bitbake-devel
Please review this set of changes for scarthgap and have comments back by
end of day Wednesday, February 11.
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3183
The following changes since commit 8dcf084522b9c66a6639b5f117f554fde9b6b45a:
fetch2/wget: Keep query parameters in URL during checkstatus (2025-11-12 15:53:31 +0000)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.8-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.8-nut
for you to fetch changes up to 1b923cdd50449aaa41152b72eac8669f27ec7ec2:
knotty: Make sure getTerminalColumns() returns two integers (2026-02-09 01:22:13 +0100)
----------------------------------------------------------------
Enrico Scholz (1):
knotty: fix TIOCGWINSZ call for Python 3.14 and later
Zoltan Boszormenyi (1):
knotty: Make sure getTerminalColumns() returns two integers
lib/bb/ui/knotty.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-02-09 9:33 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-10 15:59 [bitbake][scarthgap][2.8][PATCH 0/2] Patch review Steve Sakoman
2025-09-10 15:59 ` [bitbake][scarthgap][2.8][PATCH 1/2] Use a "fork" multiprocessing context Steve Sakoman
2025-09-10 15:59 ` [bitbake][scarthgap][2.8][PATCH 2/2] bb/fetch2/__init__.py: remove a DeprecationWarning in uri_replace() Steve Sakoman
-- strict thread matches above, loose matches on Subject: below --
2026-02-09 9:33 [bitbake][scarthgap][2.8][PATCH 0/2] Patch review Yoann Congal
2025-11-05 14:46 Steve Sakoman
2024-07-18 13:48 Steve Sakoman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox