mirror of
https://git.yoctoproject.org/poky
synced 2026-03-19 13:49:41 +01:00
package_rpm: Check if file exists before open()
Exception handler tries to read() /etc/passwd file in sysroot and if file doesn't exist for any reason then it raises FileNotFoundError exception which mask the original source of the problem and makes debugging of the issue more difficult. Fixes: Exception: FileNotFoundError: [Errno 2] No such file or directory: '/codebuild/output/src1899304708/src/build/tmp-container/work/core2-64-oe-linux/emqx-bin/4.3.12/recipe-sysroot/etc/passwd' (From OE-Core rev: 4ad9a0e0b11eb7bc5a3dd45fc8945e094ea949e9) Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
a475c8ab38
commit
0d564b3ad1
@@ -201,14 +201,22 @@ python write_specfile () {
|
||||
try:
|
||||
owner = pwd.getpwuid(stat_f.st_uid).pw_name
|
||||
except Exception as e:
|
||||
bb.error("Content of /etc/passwd in sysroot:\n{}".format(
|
||||
open(d.getVar("RECIPE_SYSROOT") +"/etc/passwd").read()))
|
||||
filename = d.getVar('RECIPE_SYSROOT') + '/etc/passwd'
|
||||
if os.path.exists(filename):
|
||||
bb.error("Content of /etc/passwd in sysroot:\n{}".format(
|
||||
open(filename).read()))
|
||||
else:
|
||||
bb.error("File {} doesn't exist in sysroot!".format(filename))
|
||||
raise e
|
||||
try:
|
||||
group = grp.getgrgid(stat_f.st_gid).gr_name
|
||||
except Exception as e:
|
||||
bb.error("Content of /etc/group in sysroot:\n{}".format(
|
||||
open(d.getVar("RECIPE_SYSROOT") +"/etc/group").read()))
|
||||
filename = d.getVar("RECIPE_SYSROOT") +"/etc/group"
|
||||
if os.path.exists(filename):
|
||||
bb.error("Content of /etc/group in sysroot:\n{}".format(
|
||||
open(filename).read()))
|
||||
else:
|
||||
bb.error("File {} doesn't exists in sysroot!".format(filename))
|
||||
raise e
|
||||
return "%attr({:o},{},{}) ".format(mode, owner, group)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user