Message ID | 20230530204117.949199-1-JPEWhacker@gmail.com |
---|---|
State | New |
Headers | show |
Series | classes/package: mark PKGDATA_VARS as a dependency of emit_pkgdata | expand |
On Tue, 2023-05-30 at 15:41 -0500, Joshua Watt wrote: > emit_pkgdata needs to re-run when PKGDATA_VARS changes, but bitbake is > unaware of this because the code that uses it is in a python library. > Fix this by explicitly marking PKGDATA_VARS as a dependency > > Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> > --- > meta/classes-global/package.bbclass | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass > index e8055a9cdc5..c466601266e 100644 > --- a/meta/classes-global/package.bbclass > +++ b/meta/classes-global/package.bbclass > @@ -381,6 +381,7 @@ python emit_pkgdata() { > import oe.packagedata > oe.packagedata.emit_pkgdata(pkgfiles, d) > } > +emit_pkgdata[vardeps] += "PKGDATA_VARS" > emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides ${PKGDESTWORK}/extended" > > ldconfig_postinst_fragment() { Is the auto dependency code somehow breaking for that function? Cheers, Richard
On Tue, May 30, 2023 at 4:23 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Tue, 2023-05-30 at 15:41 -0500, Joshua Watt wrote: > > emit_pkgdata needs to re-run when PKGDATA_VARS changes, but bitbake is > > unaware of this because the code that uses it is in a python library. > > Fix this by explicitly marking PKGDATA_VARS as a dependency > > > > Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> > > --- > > meta/classes-global/package.bbclass | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass > > index e8055a9cdc5..c466601266e 100644 > > --- a/meta/classes-global/package.bbclass > > +++ b/meta/classes-global/package.bbclass > > @@ -381,6 +381,7 @@ python emit_pkgdata() { > > import oe.packagedata > > oe.packagedata.emit_pkgdata(pkgfiles, d) > > } > > +emit_pkgdata[vardeps] += "PKGDATA_VARS" > > emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides ${PKGDESTWORK}/extended" > > > > ldconfig_postinst_fragment() { > > Is the auto dependency code somehow breaking for that function? It empirically seemed to not re-run the functions when I changed that variable as part of a (now abandoned) way to fix the SPDX builds. I thought the code scanner didn't go into library functions; or am I mistaken there? > > Cheers, > > Richard
On Tue, 2023-05-30 at 16:25 -0500, Joshua Watt wrote: > On Tue, May 30, 2023 at 4:23 PM Richard Purdie > <richard.purdie@linuxfoundation.org> wrote: > > > > On Tue, 2023-05-30 at 15:41 -0500, Joshua Watt wrote: > > > emit_pkgdata needs to re-run when PKGDATA_VARS changes, but bitbake is > > > unaware of this because the code that uses it is in a python library. > > > Fix this by explicitly marking PKGDATA_VARS as a dependency > > > > > > Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> > > > --- > > > meta/classes-global/package.bbclass | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass > > > index e8055a9cdc5..c466601266e 100644 > > > --- a/meta/classes-global/package.bbclass > > > +++ b/meta/classes-global/package.bbclass > > > @@ -381,6 +381,7 @@ python emit_pkgdata() { > > > import oe.packagedata > > > oe.packagedata.emit_pkgdata(pkgfiles, d) > > > } > > > +emit_pkgdata[vardeps] += "PKGDATA_VARS" > > > emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides ${PKGDESTWORK}/extended" > > > > > > ldconfig_postinst_fragment() { > > > > Is the auto dependency code somehow breaking for that function? > > It empirically seemed to not re-run the functions when I changed that > variable as part of a (now abandoned) way to fix the SPDX builds. > > I thought the code scanner didn't go into library functions; or am I > mistaken there? That used to be the case but I added: https://git.yoctoproject.org/poky/commit/bitbake/lib?id=f3bcd3c9a91f6212c30b9c778c11f3c8a9f6f1d4 and then: https://git.yoctoproject.org/poky/commit/bitbake/lib?id=2b406a3174b8142b1ae00e6cff4af43317a78f94 so it should auto-detect dependencies. It is certainly possible something isn't working but I'd like to understand what... Cheers, Richard
On Tue, May 30, 2023 at 4:30 PM Richard Purdie <richard.purdie@linuxfoundation.org> wrote: > > On Tue, 2023-05-30 at 16:25 -0500, Joshua Watt wrote: > > On Tue, May 30, 2023 at 4:23 PM Richard Purdie > > <richard.purdie@linuxfoundation.org> wrote: > > > > > > On Tue, 2023-05-30 at 15:41 -0500, Joshua Watt wrote: > > > > emit_pkgdata needs to re-run when PKGDATA_VARS changes, but bitbake is > > > > unaware of this because the code that uses it is in a python library. > > > > Fix this by explicitly marking PKGDATA_VARS as a dependency > > > > > > > > Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> > > > > --- > > > > meta/classes-global/package.bbclass | 1 + > > > > 1 file changed, 1 insertion(+) > > > > > > > > diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass > > > > index e8055a9cdc5..c466601266e 100644 > > > > --- a/meta/classes-global/package.bbclass > > > > +++ b/meta/classes-global/package.bbclass > > > > @@ -381,6 +381,7 @@ python emit_pkgdata() { > > > > import oe.packagedata > > > > oe.packagedata.emit_pkgdata(pkgfiles, d) > > > > } > > > > +emit_pkgdata[vardeps] += "PKGDATA_VARS" > > > > emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides ${PKGDESTWORK}/extended" > > > > > > > > ldconfig_postinst_fragment() { > > > > > > Is the auto dependency code somehow breaking for that function? > > > > It empirically seemed to not re-run the functions when I changed that > > variable as part of a (now abandoned) way to fix the SPDX builds. > > > > I thought the code scanner didn't go into library functions; or am I > > mistaken there? > > That used to be the case but I added: > > https://git.yoctoproject.org/poky/commit/bitbake/lib?id=f3bcd3c9a91f6212c30b9c778c11f3c8a9f6f1d4 > and then: > https://git.yoctoproject.org/poky/commit/bitbake/lib?id=2b406a3174b8142b1ae00e6cff4af43317a78f94 > > so it should auto-detect dependencies. > > It is certainly possible something isn't working but I'd like to > understand what... Hmm, good point.... I'm not sure; it's very possible I did something else wrong, let me try again to see what happens > > Cheers, > > Richard
diff --git a/meta/classes-global/package.bbclass b/meta/classes-global/package.bbclass index e8055a9cdc5..c466601266e 100644 --- a/meta/classes-global/package.bbclass +++ b/meta/classes-global/package.bbclass @@ -381,6 +381,7 @@ python emit_pkgdata() { import oe.packagedata oe.packagedata.emit_pkgdata(pkgfiles, d) } +emit_pkgdata[vardeps] += "PKGDATA_VARS" emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse ${PKGDESTWORK}/runtime-rprovides ${PKGDESTWORK}/extended" ldconfig_postinst_fragment() {
emit_pkgdata needs to re-run when PKGDATA_VARS changes, but bitbake is unaware of this because the code that uses it is in a python library. Fix this by explicitly marking PKGDATA_VARS as a dependency Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> --- meta/classes-global/package.bbclass | 1 + 1 file changed, 1 insertion(+)