[bitbake-devel] [PATCH 0/2] V4 replace os.system and os.popen with subbprocess module

Richard Purdie richard.purdie at linuxfoundation.org
Wed May 23 10:30:01 UTC 2012


On Sun, 2012-05-20 at 20:36 +0800, Robert Yang wrote:
> * Changes of V4:
>   Fix use readline() for the return value of bb.process.run(), the
>   return value is already a string, we can't (or don't have to) use
>   readline() for it, the string is what we need.
> 
> * 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 b4c8c74a45e386f99344cf9799eb5294ad6c9e3e:
> 
>   hob: update required pygtk to 2.22.0 and gtk+ to 2.20.0 (2012-05-20 09:24:26 +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

Merged to master, thanks.

Richard





More information about the bitbake-devel mailing list