mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
classes/sanity: check for case-sensitive file systems
Case-insensitive file systems fail during builds in very mysterious ways, such
as mpfr:
ERROR: patch_do_patch: Not a directory
The problem here being that mpfr has a PATCHES file, so when we try to copy the
patches into ${S}/patches/ it fails.
We can't and won't support case-insensitive file systems so add a sanity check
to abort the build if one is found.
(From OE-Core rev: 20ce04fb64f559e64490d53678fa00644a92894a)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
173760abc6
commit
6e46b4c1b2
@@ -350,6 +350,14 @@ def check_not_nfs(path, name):
|
|||||||
return "The %s: %s can't be located on nfs.\n" % (name, path)
|
return "The %s: %s can't be located on nfs.\n" % (name, path)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
# Check that the path is on a case-sensitive file system
|
||||||
|
def check_case_sensitive(path, name):
|
||||||
|
import tempfile
|
||||||
|
with tempfile.NamedTemporaryFile(prefix='TmP', dir=path) as tmp_file:
|
||||||
|
if os.path.exists(tmp_file.name.lower()):
|
||||||
|
return "The %s (%s) can't be on a case-insensitive file system.\n" % (name, path)
|
||||||
|
return ""
|
||||||
|
|
||||||
# Check that path isn't a broken symlink
|
# Check that path isn't a broken symlink
|
||||||
def check_symlink(lnk, data):
|
def check_symlink(lnk, data):
|
||||||
if os.path.islink(lnk) and not os.path.exists(lnk):
|
if os.path.islink(lnk) and not os.path.exists(lnk):
|
||||||
@@ -672,6 +680,10 @@ def check_sanity_version_change(status, d):
|
|||||||
# Check that TMPDIR isn't located on nfs
|
# Check that TMPDIR isn't located on nfs
|
||||||
status.addresult(check_not_nfs(tmpdir, "TMPDIR"))
|
status.addresult(check_not_nfs(tmpdir, "TMPDIR"))
|
||||||
|
|
||||||
|
# Check for case-insensitive file systems (such as Linux in Docker on
|
||||||
|
# macOS with default HFS+ file system)
|
||||||
|
status.addresult(check_case_sensitive(tmpdir, "TMPDIR"))
|
||||||
|
|
||||||
def sanity_check_locale(d):
|
def sanity_check_locale(d):
|
||||||
"""
|
"""
|
||||||
Currently bitbake switches locale to en_US.UTF-8 so check that this locale actually exists.
|
Currently bitbake switches locale to en_US.UTF-8 so check that this locale actually exists.
|
||||||
|
|||||||
Reference in New Issue
Block a user