diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-15 17:47:45 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-16 12:05:48 +0000 |
commit | e4319b6dd0dbaed7a509cb82bc4251896f612c0f (patch) | |
tree | 32a11d9817e4cbd7efccd3975b34548ab4d88353 /meta | |
parent | fd291d0120ae171108d71eabf7d7b2e3e9fc0e44 (diff) | |
download | poky-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.bbclass | 5 |
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: |