Skip to contentSkip to conversation

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

PATCH Peter Seebach 2 participants 2 messages Jan 23, 2013 – Jan 24, 2013

lore
Share & tools
lore
#0 lore raw

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:

meta/classes/package.bbclass +2 -0
index b06cca5..9d50a61 100644
@@ -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

Signature · 1 line
Listen, get this.  Nobody with a good compiler needs to be justified.
#1 lore raw
Quoted 41 lines · Peter Seebach

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:

meta/classes/package.bbclass +2 -0
index b06cca5..9d50a61 100644
@@ -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?

Quoted 3 lines

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.

It is a bug and that would appear to be a reasonable fix or fix the unshipped list construction so it handles items without a . correctly. I'd take the above patch...

Cheers,

Richard