summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2015-06-29 07:20:10 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-02 23:04:04 +0100
commit10c7cf0683494ea1bf2cc6de9b121abf2a04b253 (patch)
treeee6d527471c87ff17e4424702e537948ad038395
parent1b696a45ddb00fbe1d993b19339071486d0cfef2 (diff)
downloadopenembedded-core-10c7cf0683494ea1bf2cc6de9b121abf2a04b253.tar.gz
openembedded-core-10c7cf0683494ea1bf2cc6de9b121abf2a04b253.tar.bz2
openembedded-core-10c7cf0683494ea1bf2cc6de9b121abf2a04b253.zip
sanity.bbclass: Check if /tmp is writable
If /tmp can't be written, bitbake gaves an unrelated error. This checks if /tmp can be written in every build. [YOCTO #7922] Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/classes/sanity.bbclass13
1 files changed, 13 insertions, 0 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 2855941a7b..7a580da755 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -704,6 +704,19 @@ def check_sanity_everybuild(status, d):
if "." in paths or "./" in paths or "" in paths:
status.addresult("PATH contains '.', './' or '' (empty element), which will break the build, please remove this.\nParsed PATH is " + str(paths) + "\n")
+ # Check if /tmp is writable
+ from string import ascii_letters
+ from random import choice
+ filename = "bb_writetest.%s" % os.getpid()
+ testfile = os.path.join("/tmp", filename)
+ try:
+ f = open(testfile, "w")
+ f.write("".join(choice(ascii_letters) for x in range(1024)))
+ f.close()
+ os.remove(testfile)
+ except:
+ status.addresult("Failed to write into /tmp. Please verify your filesystem.")
+
# Check that the DISTRO is valid, if set
# need to take into account DISTRO renaming DISTRO
distro = d.getVar('DISTRO', True)