From patchwork Tue Feb 5 02:36:09 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel,1/1] perforce.py: fix the perforce fetcher Date: Tue, 05 Feb 2013 02:36:09 -0000 From: Robert Yang X-Patchwork-Id: 44051 Message-Id: <51107019.2070509@windriver.com> To: Chris Larson Cc: "bitbake-devel@lists.openembedded.org" , Zhenfeng.Zhao@windriver.com Hi Chris, Thank you very much, I've updated the pull request: git://git.pokylinux.org/poky-contrib robert/p4 http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/p4 depot, loc) // Robert On 02/04/2013 11:46 PM, Chris Larson wrote: > On Mon, Feb 4, 2013 at 2:27 AM, Robert Yang wrote: > >> The bb.process.run() will return one tuple, e.g: >> >> p4file = ('strA\nStrB\nstrC\n'), then there will be an iteration on p4file: >> >> for i in p4file: >> [snip] >> >> The i will be 's t r A ...', this is incorrect. use: >> >> p4file = p4file.splitlines() >> >> will fix the problem. >> >> [YOCTO #3619] >> >> Signed-off-by: Robert Yang >> --- >> bitbake/lib/bb/fetch2/perforce.py | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/bitbake/lib/bb/fetch2/perforce.py >> b/bitbake/lib/bb/fetch2/perforce.py >> index df3a3a3..86ec9ba 100644 >> --- a/bitbake/lib/bb/fetch2/perforce.py >> +++ b/bitbake/lib/bb/fetch2/perforce.py >> @@ -170,7 +170,7 @@ class Perforce(FetchMethod): >> logger.info("Fetch " + loc) >> logger.info("%s%s files %s", p4cmd, p4opt, depot) >> p4file, errors = bb.process.run("%s%s files %s" % (p4cmd, p4opt, >> depot)) >> - p4file = p4file.strip() >> + p4file = p4file.splitlines() >> > > Note that splitlines doesn't chop off the trailing newlines from the > individual strings. It *probably* wont cause an issue in this case due to > how it's passed to the shell in the subsequent subprocess call, but from a > correctness standpoint, I'd suggest changing this to something like p4files > = [f.rstrip() for f in p4file.splitlines], or doing an rstrip on the > individual files in the later iteration. > diff --git a/bitbake/lib/bb/fetch2/perforce.py b/bitbake/lib/bb/fetch2/perforce.py index df3a3a3..fc4074d 100644 --- a/bitbake/lib/bb/fetch2/perforce.py +++ b/bitbake/lib/bb/fetch2/perforce.py @@ -170,7 +170,7 @@ class Perforce(FetchMethod): logger.info("Fetch " + loc) logger.info("%s%s files %s", p4cmd, p4opt, depot) p4file, errors = bb.process.run("%s%s files %s" % (p4cmd, p4opt, depot)) - p4file = p4file.strip() + p4file = [f.rstrip() for f in p4file.splitlines()] if not p4file: raise FetchError("Fetch: unable to get the P4 files from %s" %