[OE-core] Is this a bug? Installed-but-not-packaged warning for a file which is in a package

Peter Seebach peter.seebach at windriver.com
Wed Jan 23 20:43:20 UTC 2013


FILES_${PN} = "fascinating"

do_install() {
	touch ${D}/fascinating
}

At least in our local copy of oe-core, this results in:

1. A package which contains a /fascinating file.
2. An installed-but-unpackaged warning for /fascinating.

This confused the heck out of me. I eventually figured it out: The "not
in seen" test is not aware of the possibility of differing path names.
In general, all path names in FILES_* are being written as absolute
paths by convention; in the actual code, this is silently corrected by
the addition of a leading period.

But an unqualified path works; it's treated as relative to the
sysroot/image/whatever, and it has the expected behavior. But then we
insert "fascinating" in seen, and check for "./fascinating" in the next
phase.

Possible solution:

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index b06cca5..9d50a61 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -981,6 +981,8 @@ python populate_packages () {
                 file.replace("//", "/")
             if os.path.isabs(file):
                 file = '.' + file
+            if not file.startswith("./")
+                fle = './' + file
             if not os.path.islink(file):
                 if os.path.isdir(file):

Before I send this as an actual patch and such: Is this behavior a bug?
If it is a bug, is this the right fix, or should we do something else,
like reject non-absolute paths?

Note that just adding a / to files that don't start with one doesn't
work; there appear to be at least *some* non-absolute paths in some
packages.

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.




More information about the Openembedded-core mailing list