diff options
Diffstat (limited to 'bitbake/bin/bitbake-server')
-rwxr-xr-x | bitbake/bin/bitbake-server | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/bitbake/bin/bitbake-server b/bitbake/bin/bitbake-server index ffbc7894ef..a559109e3f 100755 --- a/bitbake/bin/bitbake-server +++ b/bitbake/bin/bitbake-server | |||
@@ -8,14 +8,17 @@ | |||
8 | import os | 8 | import os |
9 | import sys | 9 | import sys |
10 | import warnings | 10 | import warnings |
11 | warnings.simplefilter("default") | ||
12 | warnings.filterwarnings("ignore", category=DeprecationWarning, message=".*use.of.fork.*may.lead.to.deadlocks.in.the.child.*") | ||
11 | import logging | 13 | import logging |
12 | sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) | 14 | sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib')) |
13 | 15 | ||
14 | if sys.getfilesystemencoding() != "utf-8": | 16 | import bb |
15 | sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.") | 17 | |
18 | bb.utils.check_system_locale() | ||
16 | 19 | ||
17 | # Users shouldn't be running this code directly | 20 | # Users shouldn't be running this code directly |
18 | if len(sys.argv) != 10 or not sys.argv[1].startswith("decafbad"): | 21 | if len(sys.argv) != 11 or not sys.argv[1].startswith("decafbad"): |
19 | print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.") | 22 | print("bitbake-server is meant for internal execution by bitbake itself, please don't use it standalone.") |
20 | sys.exit(1) | 23 | sys.exit(1) |
21 | 24 | ||
@@ -26,20 +29,19 @@ readypipeinfd = int(sys.argv[3]) | |||
26 | logfile = sys.argv[4] | 29 | logfile = sys.argv[4] |
27 | lockname = sys.argv[5] | 30 | lockname = sys.argv[5] |
28 | sockname = sys.argv[6] | 31 | sockname = sys.argv[6] |
29 | timeout = sys.argv[7] | 32 | timeout = float(sys.argv[7]) |
30 | xmlrpcinterface = (sys.argv[8], int(sys.argv[9])) | 33 | profile = bool(int(sys.argv[8])) |
34 | xmlrpcinterface = (sys.argv[9], int(sys.argv[10])) | ||
31 | if xmlrpcinterface[0] == "None": | 35 | if xmlrpcinterface[0] == "None": |
32 | xmlrpcinterface = (None, xmlrpcinterface[1]) | 36 | xmlrpcinterface = (None, xmlrpcinterface[1]) |
33 | if timeout == "None": | ||
34 | timeout = None | ||
35 | 37 | ||
36 | # Replace standard fds with our own | 38 | # Replace standard fds with our own |
37 | with open('/dev/null', 'r') as si: | 39 | with open('/dev/null', 'r') as si: |
38 | os.dup2(si.fileno(), sys.stdin.fileno()) | 40 | os.dup2(si.fileno(), sys.stdin.fileno()) |
39 | 41 | ||
40 | so = open(logfile, 'a+') | 42 | with open(logfile, 'a+') as so: |
41 | os.dup2(so.fileno(), sys.stdout.fileno()) | 43 | os.dup2(so.fileno(), sys.stdout.fileno()) |
42 | os.dup2(so.fileno(), sys.stderr.fileno()) | 44 | os.dup2(so.fileno(), sys.stderr.fileno()) |
43 | 45 | ||
44 | # Have stdout and stderr be the same so log output matches chronologically | 46 | # Have stdout and stderr be the same so log output matches chronologically |
45 | # and there aren't two seperate buffers | 47 | # and there aren't two seperate buffers |
@@ -50,5 +52,5 @@ logger = logging.getLogger("BitBake") | |||
50 | handler = bb.event.LogHandler() | 52 | handler = bb.event.LogHandler() |
51 | logger.addHandler(handler) | 53 | logger.addHandler(handler) |
52 | 54 | ||
53 | bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface) | 55 | bb.server.process.execServer(lockfd, readypipeinfd, lockname, sockname, timeout, xmlrpcinterface, profile) |
54 | 56 | ||