sanity.bbclass: the tmpdir can't be longer than 410
cover sanity.bbclass: the tmpdir can't be longer than 410
The following changes since commit 0b79c730f3e5c3c5329e439dffd137f2605b6cba:
prexport.bbclass: Fix typo in warning: "AUROPR" -> "AUTOPR". (2012-07-04 15:00:40 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/tmpdir
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/tmpdir
Robert Yang (1):
sanity.bbclass: the tmpdir can't be longer than 410
meta/classes/sanity.bbclass | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
PATCH 1/1 sanity.bbclass: the tmpdir can't be longer than 410
There will be errors when the length of the tmpdir is longer than 410:
1) Longer than 420:
Can't exec "/bin/sh": Argument list too long at /usr/lib/perl/5.10/IO/File.pm line 66.
This error happens on both Ubuntu 10.04 and 10.10 when the pkg needs run "autoreconf", this is because it passes many files with absolute path to aclocal, aclocal passes them to perl, this is a limitation of the perl on Ubuntu 10.04 and 10.10, and the perl-native is not ready at this very early stage.
2) Longer than 490:bitbake/lib/bb/persist_data.py", line 197, in connect(database=...)
Quoted 1 line
return
sqlite3.connect(database, timeout=5, isolation_level=None)
OperationalError: unable to open database file
This error happens on Ubuntu 10.04, 10.10 and Fedora 17. This is because the length of the database in sqlite3 module (host's) can't be longer than 490 (or little smaller). The python-native is not ready at this very early stage.
The 2 errors are host related, I think that limit the length of the TMPDIR to 410 is OK for most of the build, rarely build sets TMPDIR's longer than 410.
[YOCTO #2434]
--- meta/classes/sanity.bbclass | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
meta/classes/sanity.bbclass +8 -0
@@ -171,6 +171,11 @@ def check_create_long_filename(filepath, pathname): return "Failed to create %s directory in which to run long name sanity check: %s.\n" % (pathname, strerror) return "" +def check_path_length(filepath, pathname, limit): + if len(filepath) > limit: + return "The length of %s is longer than 410, this would cause unexpected errors, please use a shorter path.\n" % pathname + return "" + def check_connectivity(d): # URI's to check can be set in the CONNECTIVITY_CHECK_URIS variable # using the same syntax as for SRC_URI. If the variable is not set
@@ -453,6 +458,9 @@ def check_sanity(sanity_data): tmpdir = sanity_data.getVar('TMPDIR', True) sstate_dir = sanity_data.getVar('SSTATE_DIR', True) + # The length of tmpdir can't be longer than 410 + messages = messages + check_path_length(tmpdir, "TMPDIR", 410) + # Check saved sanity info last_sanity_version = 0 last_tmpdir = ""
Signature · 1 line
1.7.1
Saul Wold
AppliedQuoted 11 lines · Robert Yang
The following changes since commit
0b79c730f3e5c3c5329e439dffd137f2605b6cba:prexport.bbclass: Fix typo in warning: "AUROPR" -> "AUTOPR". (2012-07-04 15:00:40 +0100)are available in the git repository at:
git://git.pokylinux.org/poky-contribrobert/tmpdir
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/tmpdirRobert Yang (1):
sanity.bbclass: the tmpdir can't be longer than 410
Quoted 10 lines
meta/classes/sanity.bbclass | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Robert, great work digging into all the tail ends of getting this as large as you could!
Merged into OE-Core
Thanks
Sau!