summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-01-15 17:47:45 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-01-16 12:05:48 +0000
commite4319b6dd0dbaed7a509cb82bc4251896f612c0f (patch)
tree32a11d9817e4cbd7efccd3975b34548ab4d88353 /meta
parentfd291d0120ae171108d71eabf7d7b2e3e9fc0e44 (diff)
downloadpoky-e4319b6dd0dbaed7a509cb82bc4251896f612c0f.tar.gz
package_rpm: Fix a race with package_deb/package_ipk
We have the odd situation where the CONTROL/DEBIAN directory can be removed in the middle of the walk, the isdir() test would then fail and the walk code would assume its a file hence we check for the names in files too. This resolves the autobuilder failure: error: File not found: /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-fsl-arm/build/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/xinit/1_1.3.3-r0/package/DEBIAN RPM build errors: File not found: /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-fsl-arm/build/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/xinit/1_1.3.3-r0/package/DEBIAN (From OE-Core rev: e38d7702be279d6d6d4c79b3f2379e689a7473d2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/package_rpm.bbclass5
1 files changed, 5 insertions, 0 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index fcde73ebe9..acbb18d686 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -659,6 +659,9 @@ python write_specfile () {
659 # We can race against the ipk/deb backends which create CONTROL or DEBIAN directories 659 # We can race against the ipk/deb backends which create CONTROL or DEBIAN directories
660 # when packaging. We just ignore these files which are created in 660 # when packaging. We just ignore these files which are created in
661 # packages-split/ and not package/ 661 # packages-split/ and not package/
662 # We have the odd situation where the CONTROL/DEBIAN directory can be removed in the middle of
663 # of the walk, the isdir() test would then fail and the walk code would assume its a file
664 # hence we check for the names in files too.
662 for rootpath, dirs, files in os.walk(walkpath): 665 for rootpath, dirs, files in os.walk(walkpath):
663 path = rootpath.replace(walkpath, "") 666 path = rootpath.replace(walkpath, "")
664 if path.endswith("DEBIAN") or path.endswith("CONTROL"): 667 if path.endswith("DEBIAN") or path.endswith("CONTROL"):
@@ -669,6 +672,8 @@ python write_specfile () {
669 # All packages own the directories their files are in... 672 # All packages own the directories their files are in...
670 target.append('%dir "' + path + '/' + dir + '"') 673 target.append('%dir "' + path + '/' + dir + '"')
671 for file in files: 674 for file in files:
675 if file == "CONTROL" or file == "DEBIAN":
676 continue
672 if conffiles.count(path + '/' + file): 677 if conffiles.count(path + '/' + file):
673 target.append('%config "' + path + '/' + file + '"') 678 target.append('%config "' + path + '/' + file + '"')
674 else: 679 else: