From: "Jeremy A. Puhlman" <[email protected]>
This seems to work around the following issue. The recipe in quesiton
places all of its content in /opt, and we turn on license collection
globally. Systemd is turned on so usrmerge is also on. I doubt this
is the correct way to deal with this as it is not clear why it is
looking for /usr//usr in the first place. Not sure if its just a
wierd edge case or what.
File:
'/build/../layers/poky/meta/classes-global/package_rpm.bbclass',
lineno: 527, function: write_specfile
0523: spec_scriptlets_bottom.append('')
0524:
0525: # Now process files
0526: file_list = []
*** 0527: walk_files(root, file_list, conffiles, dirfiles)
0528: if not file_list and localdata.getVar('ALLOW_EMPTY',
False) != "1":
0529: bb.note("Not creating empty RPM package for %s" %
splitname)
0530: else:
0531: spec_files_bottom.append('%%files -n %s' %
splitname)
File:
'/build/../layers/poky/meta/classes-global/package_rpm.bbclass',
lineno: 249, function: walk_files
0245: target.append(get_attr(dir) + '%dir "' +
escape_chars(p) + '"')
0246: else:
0247: # packages own only empty directories or
explict directory.
0248: # This will prevent the overlapping of
security permission.
*** 0249: attr = get_attr(path)
0250: if path and not files and not dirs:
0251: target.append(attr + '%dir "' +
escape_chars(path) + '"')
0252: elif path and path in dirfiles:
0253: target.append(attr + '%dir "' +
escape_chars(path) + '"')
File:
'/build/../layers/poky/meta/classes-global/package_rpm.bbclass',
lineno: 203, function: get_attr
0199: # of the walk, the isdir() test would then fail and
the walk code would assume its a file
0200: # hence we check for the names in files too.
0201: for rootpath, dirs, files in os.walk(walkpath):
0202: def get_attr(path):
*** 0203: stat_f = os.stat(rootpath + "/" + path,
follow_symlinks=False)
0204: mode = stat.S_IMODE(stat_f.st_mode)
0205: try:
0206: owner =
pwd.getpwuid(stat_f.st_uid).pw_name
0207: except Exception as e:
Exception: FileNotFoundError: [Errno 2] No such file or directory:
'/build/tmp/work/corei7-64-montavista-linux/mvtest/2.0/packages-split/mvtest-lic/opt//opt'
Signed-off-by: Jeremy A. Puhlman <[email protected]>
---
meta/classes-global/package_rpm.bbclass | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/meta/classes-global/package_rpm.bbclass
b/meta/classes-global/package_rpm.bbclass
index 2e3e4e8c79..a6885ac74e 100644
--- a/meta/classes-global/package_rpm.bbclass
+++ b/meta/classes-global/package_rpm.bbclass
@@ -200,6 +200,8 @@ python write_specfile () {
# hence we check for the names in files too.
for rootpath, dirs, files in os.walk(walkpath):
def get_attr(path):
+ if not os.path.exists(rootpath + "/" + path):
+ return ""
stat_f = os.stat(rootpath + "/" + path, follow_symlinks=False)
mode = stat.S_IMODE(stat_f.st_mode)
try:
@@ -243,7 +245,7 @@ python write_specfile () {
p = path + '/' + dir
# All packages own the directories their files are in...
target.append(get_attr(dir) + '%dir "' + escape_chars(p) +
'"')
- elif path:
+ elif path and os.path.exists(path):
# packages own only empty directories or explict directory.
# This will prevent the overlapping of security permission.
attr = get_attr(path)
@@ -257,7 +259,7 @@ python write_specfile () {
p = path + '/' + file
if conffiles.count(p):
target.append(attr + '%config "' + escape_chars(p) + '"')
- else:
+ elif attr:
target.append(attr + '"' + escape_chars(p) + '"')
# Prevent the prerm/postrm scripts from being run during an upgrade
--
2.31.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196109):
https://lists.openembedded.org/g/openembedded-core/message/196109
Mute This Topic: https://lists.openembedded.org/mt/104536226/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-