mbox series

[v3,0/3] Add bblock helper scripts

Message ID 20230727135612.951926-1-jstephan@baylibre.com
Headers show
Series Add bblock helper scripts | expand

Message

Julien Stephan July 27, 2023, 1:56 p.m. UTC
Hi all,

This is v3 from bblock script.

Improvement from v2:
* Add a function in bb.cooker to compute task signatures
* Replace the findSigInfo function by the new created one. This has the
  following advantages:
    * findSigInfo needs the task to be already built to get the siginfo
      file, meaning we cannot lock a recipe on a fresh build
    * we can now generate the signatures for all available task of a given
      recipe
* Check if a given task is already locked. If so, don't duplicate
  entry in bblock.conf

Limitations:
* Needs to taint tasks that are locked, to display a warning
* I may be still missing some checks on user input
* Silently does nothing if given task doesn't exist
* Silently does nothing when resetting a recipe that doesn't exist

I did some tests using qemux86-64 and qemuarm but I may be missing some
corner cases.

Improvement from V1:
* Signatures are now package architecture specific meaning that if you
  switch MACHINE, the lock sig will not be taken into account
* I added the -r option to unlock recipes
* I added a -d option to display the current bblock.conf
* Added an include directive for conf/bblock.conf inside bitbake.conf
* Added -t option to specify the tasks to lock/unlock

Limitations:
* I may be still missing some checks on user input
* I need to find a way to get the list of tasks ( by default still lock
  only the do_compile for now, unless -t is specified)
* Do not check if a particular recipe/task is already locked when trying
  to add lock. So entries may appear multiple times
* We still need the signature of the tasks to be already computed before
  locking. Need to find a way to generate it if missing

V2: https://lists.openembedded.org/g/openembedded-core/message/184697
V1: https://lists.openembedded.org/g/openembedded-core/message/184584

My branch is available here [1]

Cheers
Julien

[1]: https://git.yoctoproject.org/poky-contrib/commit/?h=jstephan/bblock

Julien Stephan (3):
  bitbake.conf: include bblock.conf
  bitbake: cooker: add a new function to retrieve task signatures
  scripts/bblock: add a script to lock/unlock recipes

 bitbake/lib/bb/command.py |   6 ++
 bitbake/lib/bb/cooker.py  |  16 ++++
 bitbake/lib/bb/event.py   |   8 ++
 meta/conf/bitbake.conf    |   1 +
 scripts/bblock            | 182 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 213 insertions(+)
 create mode 100755 scripts/bblock

--
2.41.0

Comments

Alexandre Belloni July 29, 2023, 10:44 p.m. UTC | #1
Hello,

On 27/07/2023 15:56:09+0200, Julien Stephan wrote:
> Hi all,
> 
> This is v3 from bblock script.
> 

This doesn't apply cleanly on master, can you rebase?

Thanks!

> Improvement from v2:
> * Add a function in bb.cooker to compute task signatures
> * Replace the findSigInfo function by the new created one. This has the
>   following advantages:
>     * findSigInfo needs the task to be already built to get the siginfo
>       file, meaning we cannot lock a recipe on a fresh build
>     * we can now generate the signatures for all available task of a given
>       recipe
> * Check if a given task is already locked. If so, don't duplicate
>   entry in bblock.conf
> 
> Limitations:
> * Needs to taint tasks that are locked, to display a warning
> * I may be still missing some checks on user input
> * Silently does nothing if given task doesn't exist
> * Silently does nothing when resetting a recipe that doesn't exist
> 
> I did some tests using qemux86-64 and qemuarm but I may be missing some
> corner cases.
> 
> Improvement from V1:
> * Signatures are now package architecture specific meaning that if you
>   switch MACHINE, the lock sig will not be taken into account
> * I added the -r option to unlock recipes
> * I added a -d option to display the current bblock.conf
> * Added an include directive for conf/bblock.conf inside bitbake.conf
> * Added -t option to specify the tasks to lock/unlock
> 
> Limitations:
> * I may be still missing some checks on user input
> * I need to find a way to get the list of tasks ( by default still lock
>   only the do_compile for now, unless -t is specified)
> * Do not check if a particular recipe/task is already locked when trying
>   to add lock. So entries may appear multiple times
> * We still need the signature of the tasks to be already computed before
>   locking. Need to find a way to generate it if missing
> 
> V2: https://lists.openembedded.org/g/openembedded-core/message/184697
> V1: https://lists.openembedded.org/g/openembedded-core/message/184584
> 
> My branch is available here [1]
> 
> Cheers
> Julien
> 
> [1]: https://git.yoctoproject.org/poky-contrib/commit/?h=jstephan/bblock
> 
> Julien Stephan (3):
>   bitbake.conf: include bblock.conf
>   bitbake: cooker: add a new function to retrieve task signatures
>   scripts/bblock: add a script to lock/unlock recipes
> 
>  bitbake/lib/bb/command.py |   6 ++
>  bitbake/lib/bb/cooker.py  |  16 ++++
>  bitbake/lib/bb/event.py   |   8 ++
>  meta/conf/bitbake.conf    |   1 +
>  scripts/bblock            | 182 ++++++++++++++++++++++++++++++++++++++
>  5 files changed, 213 insertions(+)
>  create mode 100755 scripts/bblock
> 
> --
> 2.41.0

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184932): https://lists.openembedded.org/g/openembedded-core/message/184932
> Mute This Topic: https://lists.openembedded.org/mt/100390731/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Julien Stephan Aug. 2, 2023, 2:26 p.m. UTC | #2
Le dim. 30 juil. 2023 à 00:44, Alexandre Belloni
<alexandre.belloni@bootlin.com> a écrit :
>
> Hello,
>
> On 27/07/2023 15:56:09+0200, Julien Stephan wrote:
> > Hi all,
> >
> > This is v3 from bblock script.
> >
>
> This doesn't apply cleanly on master, can you rebase?
>
> Thanks!

Hi Alexandre,

done, just pushed v4 here:
https://lists.openembedded.org/g/openembedded-core/message/185403

Best
Julien
>
> > Improvement from v2:
> > * Add a function in bb.cooker to compute task signatures
> > * Replace the findSigInfo function by the new created one. This has the
> >   following advantages:
> >     * findSigInfo needs the task to be already built to get the siginfo
> >       file, meaning we cannot lock a recipe on a fresh build
> >     * we can now generate the signatures for all available task of a given
> >       recipe
> > * Check if a given task is already locked. If so, don't duplicate
> >   entry in bblock.conf
> >
> > Limitations:
> > * Needs to taint tasks that are locked, to display a warning
> > * I may be still missing some checks on user input
> > * Silently does nothing if given task doesn't exist
> > * Silently does nothing when resetting a recipe that doesn't exist
> >
> > I did some tests using qemux86-64 and qemuarm but I may be missing some
> > corner cases.
> >
> > Improvement from V1:
> > * Signatures are now package architecture specific meaning that if you
> >   switch MACHINE, the lock sig will not be taken into account
> > * I added the -r option to unlock recipes
> > * I added a -d option to display the current bblock.conf
> > * Added an include directive for conf/bblock.conf inside bitbake.conf
> > * Added -t option to specify the tasks to lock/unlock
> >
> > Limitations:
> > * I may be still missing some checks on user input
> > * I need to find a way to get the list of tasks ( by default still lock
> >   only the do_compile for now, unless -t is specified)
> > * Do not check if a particular recipe/task is already locked when trying
> >   to add lock. So entries may appear multiple times
> > * We still need the signature of the tasks to be already computed before
> >   locking. Need to find a way to generate it if missing
> >
> > V2: https://lists.openembedded.org/g/openembedded-core/message/184697
> > V1: https://lists.openembedded.org/g/openembedded-core/message/184584
> >
> > My branch is available here [1]
> >
> > Cheers
> > Julien
> >
> > [1]: https://git.yoctoproject.org/poky-contrib/commit/?h=jstephan/bblock
> >
> > Julien Stephan (3):
> >   bitbake.conf: include bblock.conf
> >   bitbake: cooker: add a new function to retrieve task signatures
> >   scripts/bblock: add a script to lock/unlock recipes
> >
> >  bitbake/lib/bb/command.py |   6 ++
> >  bitbake/lib/bb/cooker.py  |  16 ++++
> >  bitbake/lib/bb/event.py   |   8 ++
> >  meta/conf/bitbake.conf    |   1 +
> >  scripts/bblock            | 182 ++++++++++++++++++++++++++++++++++++++
> >  5 files changed, 213 insertions(+)
> >  create mode 100755 scripts/bblock
> >
> > --
> > 2.41.0
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#184932): https://lists.openembedded.org/g/openembedded-core/message/184932
> > Mute This Topic: https://lists.openembedded.org/mt/100390731/3617179
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com