Skip to content

V3 replace os.system and os.popen with subbprocess module

Robert Yang bitbake-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 3 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2replace os.system with subprocess.callbitbake/lib/bb/fetch2/perforce.py bitbake/lib/bb/shell.py bitbake/lib/bb/ui/crumbs/imagedetailspage.py +1 more+9 -70 replies
2/2replace os.popen with subprocess.Popenbitbake/lib/bb/fetch2/perforce.py bitbake/lib/bb/fetch2/svk.py bitbake/lib/bb/ui/crumbs/builddetailspage.py +1 more+10 -83 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/2] V3 replace os.system and os.popen with subbprocess module

* Changes of V3:
Use bb.process.run() rather than bb.process.Popen() to replace os.popen()

* Changes of V2:

- Remove the 2>/dev/null since we dont' need it.
- Use the wrapped Popen from bb.process, which is simpler than

    subprocess.Popen(....).

* Original message of V1:
Replace os.popen and os.system with subprocess.Popen and subprocess.call, since the older functions would fail (more or less) if the executed program cannot be found, this would cause potential errors since we don't know whether the problem executed well or not.

For the performance issue, I've done the testing before the patches and after with the oe-core layer (also the oe-core have applied the similar patches):

# The sources are on local disk

1) Before applied these pacthes to bitbake and similar patches to oe-core:

$ time bitbake core-image-sato
real    177m50.723s
user    436m1.551s
sys     71m29.588s

2) After applied the pathes:

$ time bitbake core-image-sato
real    176m26.194s
user    436m7.931s
sys     71m1.994s

After applied these patches, the time has reduced 84 seconds, this is very slight, I think that we can assume this is just a deviation, it doesn't cause performance problems.

// Robert

The following changes since commit f3ba3cb6af96aebf5167bb1565edf11cceb7897f:

gdk-pixbuf: Fix lsb builds where dependency may be missing (2012-05-15 19:44:37 +0100)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/subprocess
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/subprocess

Robert Yang (2):
replace os.system with subprocess.call
replace os.popen with subprocess.Popen

 bitbake/lib/bb/fetch2/perforce.py            |    9 +++++----
 bitbake/lib/bb/fetch2/svk.py                 |    2 +-
 bitbake/lib/bb/shell.py                      |    6 +++---
 bitbake/lib/bb/ui/crumbs/builddetailspage.py |    3 ++-
 bitbake/lib/bb/ui/crumbs/hig.py              |    7 ++++---
 bitbake/lib/bb/ui/crumbs/imagedetailspage.py |    3 ++-
 bitbake/lib/bb/ui/ncurses.py                 |    4 ++--
 7 files changed, 19 insertions(+), 15 deletions(-)