diff mbox series

classes/package: mark PKGDATA_VARS as a dependency of emit_pkgdata

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

Commit Message

Joshua Watt May 30, 2023, 8:41 p.m. UTC
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(+)

Comments

Richard Purdie May 30, 2023, 9:23 p.m. UTC | #1
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
Joshua Watt May 30, 2023, 9:25 p.m. UTC | #2
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
Richard Purdie May 30, 2023, 9:30 p.m. UTC | #3
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
Joshua Watt May 30, 2023, 9:34 p.m. UTC | #4
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 mbox series

Patch

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() {