| Submitter | Saul Wold |
|---|---|
| Date | Oct. 2, 2012, 10 p.m. |
| Message ID | <1349215201-30117-1-git-send-email-sgw@linux.intel.com> |
| Download | mbox | patch |
| Permalink | /patch/37637/ |
| State | New |
| Headers | show |
Comments
On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: > - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) > + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) That seems potentially misleading: the file that needs fixing isn't necessarily the one that triggers this warning. What would be ideal would be to have it output the names of all recipes that have tried to stage the files in question so that the user can make an informed decision about which one ought to be putting them there. p.
On Tue, 2012-10-02 at 15:06 -0700, Saul Wold wrote: > On 10/02/2012 03:00 PM, Phil Blundell wrote: > > On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: > >> - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) > >> + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) > > > > That seems potentially misleading: the file that needs fixing isn't > > necessarily the one that triggers this warning. What would be ideal > > would be to have it output the names of all recipes that have tried to > > stage the files in question so that the user can make an informed > > decision about which one ought to be putting them there. > > > True enough, but we don't have that information at that time, but it > gives more information than we had before, as to which recipe was adding > the files, I guess if I change the wording to something like > "verify" or "check"? Yeah, sounds good. p.
On 10/02/2012 03:00 PM, Phil Blundell wrote: > On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: >> - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) >> + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) > > That seems potentially misleading: the file that needs fixing isn't > necessarily the one that triggers this warning. What would be ideal > would be to have it output the names of all recipes that have tried to > stage the files in question so that the user can make an informed > decision about which one ought to be putting them there. > True enough, but we don't have that information at that time, but it gives more information than we had before, as to which recipe was adding the files, I guess if I change the wording to something like "verify" or "check"? Sau! > p. > > > >
On Tue, Oct 02, 2012 at 11:00:53PM +0100, Phil Blundell wrote: > On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: > > - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) > > + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) > > That seems potentially misleading: the file that needs fixing isn't > necessarily the one that triggers this warning. What would be ideal > would be to have it output the names of all recipes that have tried to > stage the files in question so that the user can make an informed > decision about which one ought to be putting them there. Maybe something like master.list was before http://git.openembedded.org/openembedded-core/commit/?id=603daf343ad3f18c8adb799e3625ae2a18d94f56 with added recipe name, but that doesn't detect files already stored in sysroot directly from do_configure/do_compile etc like RP suspects python recipe is doing in this case. And yes it does, to use that to compile own extensions later. do_compile: install -d ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/ install -d ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ install -m 0644 pyconfig.h ${STAGING_INCDIR}/python${PYTHON_MAJMIN}/ install -m 0644 Makefile ${STAGING_LIBDIR}/python${PYTHON_MAJMIN}/config/ .. Cheers,
On Tue, 2012-10-02 at 23:00 +0100, Phil Blundell wrote: > On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: > > - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) > > + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) > > That seems potentially misleading: the file that needs fixing isn't > necessarily the one that triggers this warning. What would be ideal > would be to have it output the names of all recipes that have tried to > stage the files in question so that the user can make an informed > decision about which one ought to be putting them there. *if* you can get that information. The python recipe is poking things into the sysroot outside the knowledge of sstate, then triggering a warning. We have no way to know who put files there if it wasn't done through sstate. This isn't to say we shouldn't improve the message and use the sstate manifests to find any culprits, just that we can't find an answer in all cases. Cheers, Richard
On Wed, 2012-10-03 at 00:11 +0200, Martin Jansa wrote: > On Tue, Oct 02, 2012 at 11:00:53PM +0100, Phil Blundell wrote: > > On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: > > > - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) > > > + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) > > > > That seems potentially misleading: the file that needs fixing isn't > > necessarily the one that triggers this warning. What would be ideal > > would be to have it output the names of all recipes that have tried to > > stage the files in question so that the user can make an informed > > decision about which one ought to be putting them there. > > Maybe something like master.list was before > http://git.openembedded.org/openembedded-core/commit/?id=603daf343ad3f18c8adb799e3625ae2a18d94f56 > with added recipe name, but that doesn't detect files already We can list any sstate manifest files (tmp/sstate-control) also adding that file which may or may not have a listing of it. We might as well just grep those files and print matches. We are not going back to a master.list file, its a performance headache. Cheers, Richard
On Tue, Oct 2, 2012 at 5:22 PM, Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > On Wed, 2012-10-03 at 00:11 +0200, Martin Jansa wrote: >> On Tue, Oct 02, 2012 at 11:00:53PM +0100, Phil Blundell wrote: >> > On Tue, 2012-10-02 at 15:00 -0700, Saul Wold wrote: >> > > - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) >> > > + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) >> > >> > That seems potentially misleading: the file that needs fixing isn't >> > necessarily the one that triggers this warning. What would be ideal >> > would be to have it output the names of all recipes that have tried to >> > stage the files in question so that the user can make an informed >> > decision about which one ought to be putting them there. >> >> Maybe something like master.list was before >> http://git.openembedded.org/openembedded-core/commit/?id=603daf343ad3f18c8adb799e3625ae2a18d94f56 >> with added recipe name, but that doesn't detect files already > > We can list any sstate manifest files (tmp/sstate-control) also adding > that file which may or may not have a listing of it. We might as well > just grep those files and print matches. > > We are not going back to a master.list file, its a performance headache. I had to do this manually recently, so this error would be very useful ;) -M
Patch
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 03f083e..ca50483 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -158,7 +158,7 @@ def sstate_install(ss, d): if realmatch: match.append(f) if match: - bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match)) + bb.warn("The %s recipe is trying to install files into a shared area when those files already exist (please fix %s). Those files are:\n %s" % (d.getVar('PN', True), d.getVar('FILE', True), "\n ".join(match))) # Write out the manifest f = open(manifest, "w")
[YOCTO #3191] Signed-off-by: Saul Wold <sgw@linux.intel.com> --- meta/classes/sstate.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)