classes/package: Clean up getstatusoutput
PATCH 1/1 classes/package: Clean up getstatusoutput
Replaces usage of the deprecated oe.utils.getstatusoutput() with Python subprocess calls.
--- meta/classes/package.bbclass | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)
meta/classes/package.bbclass +11 -8
@@ -380,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # sourcefile is also generated containing a list of debugsources import stat + import subprocess src = file[len(dvar):] dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
@@ -409,16 +410,18 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, bb.utils.mkdirhier(os.path.dirname(debugfile)) - cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + cmd = (objcopy, '--only-keep-debug', file, debugfile) + try: + subprocess.check_output(cmd) + except subprocess.CalledProcessError as e: + bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (e.returncode, ' '.join(cmd), ":\n%s" % output.decode('utf-8') if e.output else "")) # Set the debuglink to have the view of the file path on the target - cmd = "'%s' --add-gnu-debuglink='%s' '%s'" % (objcopy, debugfile, file) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + cmd = (objcopy, '--add-gnu-debuglink', debugfile, file) + try: + subprocess.check_output(cmd) + except subprocess.CalledProcessError as e: + bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (e.returncode, ' '.join(cmd), ":\n%s" % output.decode('utf-8') if e.output else "")) if newmode: os.chmod(file, origmode)
Signature · 1 line
2.17.1
Quoted 37 lines · Joshua Watt
Replaces usage of the deprecated
oe.utils.getstatusoutput()with Python subprocess calls.Signed-off-by Joshua Watt <[email protected]>--- meta/classes/package.bbclass | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)meta/classes/package.bbclass +6
-6@@ -380,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # sourcefile is also generated containing a list of debugsources import stat + import subprocess src = file[len(dvar):] dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend@@ -409,16 +410,18 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, bb.utils.mkdirhier(os.path.dirname(debugfile)) - cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + cmd = (objcopy, '--only-keep-debug', file, debugfile) + try: + subprocess.check_output(cmd) + except subprocess.CalledProcessError as e: + bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (e.returncode, ' '.join(cmd), ":\n%s" % output.decode('utf-8') if e.output else "")) # Set the debuglink to have the view of the file path on the target - cmd = "'%s' --add-gnu-debuglink='%s' '%s'" % (objcopy, debugfile, file) - (retval, output) = oe.utils.getstatusoutput(cmd)
meta/classes/package.bbclass def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, · line 427
Quoted 10 lines
meta/classes/package.bbclass +5
-2- if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + cmd = (objcopy, '--add-gnu-debuglink', debugfile, file) + try: + subprocess.check_output(cmd) + except subprocess.CalledProcessError as e: + bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (e.returncode, ' '.join(cmd), ":\n%s" % output.decode('utf-8') if e.output else "")) if newmode: os.chmod(file, origmode)
I appreciate this is a direct replacement and functionally equivalent but are these custom exceptions any real use? Its hard to actually get them right and I suspect we may be better off without them using the standard formatter?
Cheers,
Richard
PATCH v2 1/1 classes/package: Clean up getstatusoutput
In reply to Joshua WattReplaces usage of the deprecated oe.utils.getstatusoutput() with Python subprocess calls.
--- meta/classes/package.bbclass | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
meta/classes/package.bbclass +3 -8
@@ -380,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # sourcefile is also generated containing a list of debugsources import stat + import subprocess src = file[len(dvar):] dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
@@ -409,16 +410,10 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, bb.utils.mkdirhier(os.path.dirname(debugfile)) - cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--only-keep-debug', file, debugfile]) # Set the debuglink to have the view of the file path on the target - cmd = "'%s' --add-gnu-debuglink='%s' '%s'" % (objcopy, debugfile, file) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--add-gnu-debuglink', debugfile, file]) if newmode: os.chmod(file, origmode)
Signature · 1 line
2.17.1
Quoted 25 lines · Joshua Watt
Replaces usage of the deprecated
oe.utils.getstatusoutput()with Python
subprocess calls.Signed-off-by Joshua Watt <[email protected]>--- meta/classes/package.bbclass | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)meta/classes/package.bbclass +1
-0@@ -380,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # sourcefile is also generated containing a list of debugsources import stat + import subprocess src = file[len(dvar):]dest = debuglibdir +
os.path.dirname(src)+ debugdir + "/" +os.path.basename(src)+ debugappend
meta/classes/package.bbclass def splitdebuginfo(file, dvar, debugdir, · line 414
Quoted 9 lines
meta/classes/package.bbclass +1
-4@@ -409,16 +410,10 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, bb.utils.mkdirhier(os.path.dirname(debugfile)) - cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--only-keep-debug', file, debugfile])
Sorry, I just realised it needs a stderr=subprocess.STDOUT in there to ensure the right things happen with logging...
Cheers,
Richard
PATCH v3 1/1 classes/package: Clean up getstatusoutput
In reply to Joshua WattReplaces usage of the deprecated oe.utils.getstatusoutput() with Python subprocess calls.
--- meta/classes/package.bbclass | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
meta/classes/package.bbclass +3 -8
@@ -380,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # sourcefile is also generated containing a list of debugsources import stat + import subprocess src = file[len(dvar):] dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
@@ -409,16 +410,10 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, bb.utils.mkdirhier(os.path.dirname(debugfile)) - cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--only-keep-debug', file, debugfile]) # Set the debuglink to have the view of the file path on the target - cmd = "'%s' --add-gnu-debuglink='%s' '%s'" % (objcopy, debugfile, file) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--add-gnu-debuglink', debugfile, file]) if newmode: os.chmod(file, origmode)
Signature · 1 line
2.17.1
PATCH v4 1/1 classes/package: Clean up getstatusoutput
Replaces usage of the deprecated oe.utils.getstatusoutput() with Python subprocess calls.
--- meta/classes/package.bbclass | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-)
meta/classes/package.bbclass +3 -8
@@ -380,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # sourcefile is also generated containing a list of debugsources import stat + import subprocess src = file[len(dvar):] dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
@@ -409,16 +410,10 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, bb.utils.mkdirhier(os.path.dirname(debugfile)) - cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--only-keep-debug', file, debugfile], stderr=subprocess.STDOUT) # Set the debuglink to have the view of the file path on the target - cmd = "'%s' --add-gnu-debuglink='%s' '%s'" % (objcopy, debugfile, file) - (retval, output) = oe.utils.getstatusoutput(cmd) - if retval: - bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else "")) + subprocess.check_output([objcopy, '--add-gnu-debuglink', debugfile, file], stderr=subprocess.STDOUT) if newmode: os.chmod(file, origmode)
Signature · 1 line
2.17.1