package.bbclass: fix spurious 'installed but not shipped' warning
PATCH 1/1 package.bbclass: fix spurious 'installed but not shipped' warning
For packages that have files installed that aren't in a subdirectory, the following build WARNING is emitted (this for initramfs-live-boot as an example):
WARNING: For recipe initramfs-live-boot, the following files were
installed but not shipped in any package:
WARNING: init
The problem is that the filenames added to the 'seen' array are always added with a path separator at the beginning of the filename, but when the package dir is walked for comparison, any files at the top-level will be missing the beginning path separator and the comparison will fail despite the fact that the file was actually packaged. This because the remainder between the dirname and the dvar base name is used in the path join and in the case of files at the top-level, the remainder is the empty string, where it should be '/' for comparison purposes.
--- meta/classes/package.bbclass | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
meta/classes/package.bbclass +4 -1
@@ -936,8 +936,11 @@ python populate_packages () { unshipped = [] for root, dirs, files in os.walk(dvar): + dir = root[len(dvar):] + if not dir: + dir = os.sep for f in files: - path = os.path.join(root[len(dvar):], f) + path = os.path.join(dir, f) if ('.' + path) not in seen: unshipped.append(path)
Signature · 1 line
1.7.0.4
Quoted 1 line · Tom Zanussi
Signed-off-by Tom Zanussi <[email protected]>
I've seen this very ofthen in our internal images so this is a very welcome fix.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: [email protected] http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
Quoted 18 lines · Tom Zanussi
For packages that have files installed that aren't in a subdirectory, the following build WARNING is emitted (this for initramfs-live-boot as an example):
WARNING: For recipe initramfs-live-boot, the following files were
installed but not shipped in any package:
WARNING: initThe problem is that the filenames added to the 'seen' array are always added with a path separator at the beginning of the filename, but when the package dir is walked for comparison, any files at the top-level will be missing the beginning path separator and the comparison will fail despite the fact that the file was actually packaged. This because the remainder between the dirname and the dvar base name is used in the path join and in the case of files at the top-level, the remainder is the empty string, where it should be '/' for comparison purposes.
Quoted 4 lines
Signed-off-by Tom Zanussi <[email protected]>--- meta/classes/package.bbclass | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
Good fix, merged to master, thanks.
Richard