]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commit
sanity.bbclass: Lower the length of TMPDIR limit to 400
authorChangqing Li <changqing.li@windriver.com>
Mon, 30 Dec 2024 07:31:00 +0000 (15:31 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 3 Jan 2025 11:05:00 +0000 (11:05 +0000)
commitda1c0998bdaf5def7ae94f44a33b9a505edc99c1
treed111efc53779761a6a2989f4495ffa93adeef21f
parente820fa96d078478ea3510164373989090e8c9419
sanity.bbclass: Lower the length of TMPDIR limit to 400

When TMPDIR has length 410,  bitbake uninative-tarball will fail at
do_populate_sdk with error: Failed to open backup database:
"TMPDIR/work/x86_64-nativesdk-pokysdk-linux/uninative-tarball/1.0/sdk/image/var/lib/dnf/history.sqlite"

sqlite3 has a hardcode max pathname limit 512, refer [1], and there is a
check, refer [2], pathname + 8 > max path name limit(512) is not
allowed.  So the pathname length need to <= 504.  While, length of
"TMPDIR/work/x86_64-nativesdk-pokysdk-linux/uninative-tarball/1.0/sdk/image/var/lib/dnf/history.sqlite"
is 505, so error happened.

We had met similar issue [3], and refer the comments, upstream reject
the change of the hardcode length, see [4][5].

This patch try to improve and workaround this issue by lower max TMPDIR
length to 400, at least for distro name length <=13, the build can
success.

[1] https://github.com/sqlite/sqlite/blob/master/src/os_unix.c#L180
[2] https://github.com/sqlite/sqlite/blob/master/src/pager.c#L4777
[3] https://bugzilla.yoctoproject.org/show_bug.cgi?id=12374
[4] https://sqlite.org/cgi/src/tktview/c060923a5422590b3734
[5] https://sqlite.org/forum/forumpost/0b1b8b5116

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-global/sanity.bbclass