mirror of
https://git.yoctoproject.org/poky
synced 2026-02-06 08:48:45 +01:00
We're fairly careful in bitbake about how we handle fork() calls and believe our code to be safe. The upstream deprecation warning is problematic as it can appear in log output as a WARNING, breaking tests. It also tends to alarm users. Hide the warning for now to avoids the test failures. (Bitbake rev: c636bd629896f56e5f3d4030da3d1f130590afc6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
57 lines
1.6 KiB
Python
Executable File
57 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Copyright (C) 2020 Richard Purdie
|
|
#
|
|
|
|
import os
|
|
import sys
|
|
import warnings
|
|
warnings.simplefilter("default")
|
|
warnings.filterwarnings("ignore", category=DeprecationWarning, message=".*use.of.fork.*may.lead.to.deadlocks.in.the.child.*")
|
|
import logging
|
|
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
|
|
|
|
import bb
|
|
|
|
bb.utils.check_system_locale()
|
|
|
|
# Users shouldn't be running this code directly
|
|
if len(sys.argv) != 11 or not sys.argv[1].startswith("decafbad"):
|
|
print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.")
|
|
sys.exit(1)
|
|
|
|
import bb.server.process
|
|
|
|
lockfd = int(sys.argv[2])
|
|
readypipeinfd = int(sys.argv[3])
|
|
logfile = sys.argv[4]
|
|
lockname = sys.argv[5]
|
|
sockname = sys.argv[6]
|
|
timeout = float(sys.argv[7])
|
|
profile = bool(int(sys.argv[8]))
|
|
xmlrpcinterface = (sys.argv[9], int(sys.argv[10]))
|
|
if xmlrpcinterface[0] == "None":
|
|
xmlrpcinterface = (None, xmlrpcinterface[1])
|
|
|
|
# Replace standard fds with our own
|
|
with open('/dev/null', 'r') as si:
|
|
os.dup2(si.fileno(), sys.stdin.fileno())
|
|
|
|
with open(logfile, 'a+') as so:
|
|
os.dup2(so.fileno(), sys.stdout.fileno())
|
|
os.dup2(so.fileno(), sys.stderr.fileno())
|
|
|
|
# Have stdout and stderr be the same so log output matches chronologically
|
|
# and there aren't two seperate buffers
|
|
sys.stderr = sys.stdout
|
|
|
|
logger = logging.getLogger("BitBake")
|
|
# Ensure logging messages get sent to the UI as events
|
|
handler = bb.event.LogHandler()
|
|
logger.addHandler(handler)
|
|
|
|
bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface, profile)
|
|
|