diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-03-14 08:59:03 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-20 23:12:25 +0000 |
commit | 600b7007f6240c8dc26a40c3bd3e40ef16d0d3c0 (patch) | |
tree | 71a02690c35d6fc7dee69f18c88b7f4dbb53f2b8 | |
parent | 8debfea81e69d038bd2d56314b272cb74f5582ed (diff) | |
download | poky-600b7007f6240c8dc26a40c3bd3e40ef16d0d3c0.tar.gz |
recipetool: create: don't create extra files directory unconditionally
The extra directory next to the recipe should only be created if there
are files to put into it; currently only the npm plugin does this. I
didn't notice the issue earlier because the test was actually able to
succeed under these circumstances if the recipe file came first in the
directory listing, which was a fault in my original oe-selftest test;
apparently on some YP autobuilder machines the order came out reversed.
With this change we can put the oe-selftest test that highlighted the
issue back to the way it was, with an extra check to reinforce that only
a single file should be created.
(From OE-Core rev: b8b778345eb0997c2cd952a1f61fdd2050b6b894)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oeqa/selftest/recipetool.py | 6 | ||||
-rw-r--r-- | scripts/lib/recipetool/create.py | 15 |
2 files changed, 12 insertions, 9 deletions
diff --git a/meta/lib/oeqa/selftest/recipetool.py b/meta/lib/oeqa/selftest/recipetool.py index 72ee110876..a04ee87db2 100644 --- a/meta/lib/oeqa/selftest/recipetool.py +++ b/meta/lib/oeqa/selftest/recipetool.py | |||
@@ -410,9 +410,11 @@ class RecipetoolTests(RecipetoolBase): | |||
410 | srcuri = 'http://www.dest-unreach.org/socat/download/socat-%s.tar.bz2' % pv | 410 | srcuri = 'http://www.dest-unreach.org/socat/download/socat-%s.tar.bz2' % pv |
411 | result = runCmd('recipetool create %s -o %s' % (srcuri, temprecipe)) | 411 | result = runCmd('recipetool create %s -o %s' % (srcuri, temprecipe)) |
412 | dirlist = os.listdir(temprecipe) | 412 | dirlist = os.listdir(temprecipe) |
413 | if len(dirlist) < 1 or not os.path.isfile(os.path.join(temprecipe, 'socat_%s.bb' % pv)): | 413 | if len(dirlist) > 1: |
414 | self.fail('recipetool created more than just one file; output:\n%s\ndirlist:\n%s' % (result.output, str(dirlist))) | ||
415 | if len(dirlist) < 1 or not os.path.isfile(os.path.join(temprecipe, dirlist[0])): | ||
414 | self.fail('recipetool did not create recipe file; output:\n%s\ndirlist:\n%s' % (result.output, str(dirlist))) | 416 | self.fail('recipetool did not create recipe file; output:\n%s\ndirlist:\n%s' % (result.output, str(dirlist))) |
415 | self.assertIn('socat_%s.bb' % pv, dirlist, 'Recipe file incorrectly named') | 417 | self.assertEqual(dirlist[0], 'socat_%s.bb' % pv, 'Recipe file incorrectly named') |
416 | checkvars = {} | 418 | checkvars = {} |
417 | checkvars['LICENSE'] = set(['Unknown', 'GPLv2']) | 419 | checkvars['LICENSE'] = set(['Unknown', 'GPLv2']) |
418 | checkvars['LIC_FILES_CHKSUM'] = set(['file://COPYING.OpenSSL;md5=5c9bccc77f67a8328ef4ebaf468116f4', 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263']) | 420 | checkvars['LIC_FILES_CHKSUM'] = set(['file://COPYING.OpenSSL;md5=5c9bccc77f67a8328ef4ebaf468116f4', 'file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263']) |
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index 1649e406e9..bb9fb9b049 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py | |||
@@ -604,13 +604,14 @@ def create_recipe(args): | |||
604 | sys.exit(1) | 604 | sys.exit(1) |
605 | 605 | ||
606 | # Move any extra files the plugins created to a directory next to the recipe | 606 | # Move any extra files the plugins created to a directory next to the recipe |
607 | if outfile == '-': | 607 | if extrafiles: |
608 | extraoutdir = pn | 608 | if outfile == '-': |
609 | else: | 609 | extraoutdir = pn |
610 | extraoutdir = os.path.join(os.path.dirname(outfile), pn) | 610 | else: |
611 | bb.utils.mkdirhier(extraoutdir) | 611 | extraoutdir = os.path.join(os.path.dirname(outfile), pn) |
612 | for destfn, extrafile in extrafiles.iteritems(): | 612 | bb.utils.mkdirhier(extraoutdir) |
613 | shutil.move(extrafile, os.path.join(extraoutdir, destfn)) | 613 | for destfn, extrafile in extrafiles.iteritems(): |
614 | shutil.move(extrafile, os.path.join(extraoutdir, destfn)) | ||
614 | 615 | ||
615 | lines = lines_before | 616 | lines = lines_before |
616 | lines_before = [] | 617 | lines_before = [] |