On 06/11/2023 13:54:16+0100, Alexander Kanavin wrote:
> Thanks, I just sent a corrected patch.
> 

Thanks!

> Alex
> 
> On Sat, 4 Nov 2023 at 00:50, Alexandre Belloni
> <alexandre.bell...@bootlin.com> wrote:
> >
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/97/builds/7419/steps/16/logs/stdio
> >
> > On 03/11/2023 11:28:06+0100, Alexander Kanavin wrote:
> > > copy_buildsystem() has become far too large and needs to be split
> > > into shorter and more understandable pieces; some of those
> > > pieces will be reused for the purpose of providing esdk mode
> > > directly from a plain yocto build.
> > >
> > > Signed-off-by: Alexander Kanavin <a...@linutronix.de>
> > > ---
> > >  meta/classes-recipe/populate_sdk_ext.bbclass | 59 ++++++++++++++++----
> > >  1 file changed, 47 insertions(+), 12 deletions(-)
> > >
> > > diff --git a/meta/classes-recipe/populate_sdk_ext.bbclass 
> > > b/meta/classes-recipe/populate_sdk_ext.bbclass
> > > index 53adc868d47..a20f38fb210 100644
> > > --- a/meta/classes-recipe/populate_sdk_ext.bbclass
> > > +++ b/meta/classes-recipe/populate_sdk_ext.bbclass
> > > @@ -186,12 +186,7 @@ def create_filtered_tasklist(d, sdkbasepath, 
> > > tasklistfile, conf_initpath):
> > >          if os.path.exists(localconf + '.bak'):
> > >              os.replace(localconf + '.bak', localconf)
> > >
> > > -python copy_buildsystem () {
> > > -    import re
> > > -    import shutil
> > > -    import glob
> > > -    import oe.copy_buildsystem
> > > -
> > > +def copy_bitbake_and_layers(d, baseoutpath, derivative):
> > >      oe_init_env_script = d.getVar('OE_INIT_ENV_SCRIPT')
> > >
> > >      conf_bbpath = ''
> > > @@ -200,13 +195,7 @@ python copy_buildsystem () {
> > >
> > >      # Copy in all metadata layers + bitbake (as repositories)
> > >      buildsystem = oe.copy_buildsystem.BuildSystem('extensible SDK', d)
> > > -    baseoutpath = d.getVar('SDK_OUTPUT') + '/' + d.getVar('SDKPATH')
> > >
> > > -    #check if custome templateconf path is set
> > > -    use_custom_templateconf = d.getVar('SDK_CUSTOM_TEMPLATECONF')
> > > -
> > > -    # Determine if we're building a derivative extensible SDK (from 
> > > devtool build-sdk)
> > > -    derivative = (d.getVar('SDK_DERIVATIVE') or '') == '1'
> > >      if derivative:
> > >          workspace_name = 'orig-workspace'
> > >      else:
> > > @@ -231,6 +220,9 @@ python copy_buildsystem () {
> > >      d.setVar('oe_init_build_env_path', conf_initpath)
> > >      d.setVar('esdk_tools_path', esdk_tools_path)
> > >
> > > +    return (conf_initpath, conf_bbpath, core_meta_subdir, sdkbblayers)
> > > +
> > > +def write_devtool_config(d, baseoutpath, conf_bbpath, conf_initpath, 
> > > core_meta_subdir):
> > >      # Write out config file for devtool
> > >      import configparser
> > >      config = configparser.ConfigParser()
> > > @@ -247,10 +239,12 @@ python copy_buildsystem () {
> > >      with open(os.path.join(baseoutpath, 'conf', 'devtool.conf'), 'w') as 
> > > f:
> > >          config.write(f)
> > >
> > > +def write_unlocked_sigs(d, baseoutpath):
> > >      unlockedsigs =  os.path.join(baseoutpath, 'conf', 
> > > 'unlocked-sigs.inc')
> > >      with open(unlockedsigs, 'w') as f:
> > >          pass
> > >
> > > +def write_bblayers_conf(d, baseoutpath, sdkbblayers):
> > >      # Create a layer for new recipes / appends
> > >      bbpath = d.getVar('BBPATH')
> > >      env = os.environ.copy()
> > > @@ -279,6 +273,9 @@ python copy_buildsystem () {
> > >          f.write('    $' + '{SDKBASEMETAPATH}/workspace \\\n')
> > >          f.write('    "\n')
> > >
> > > +def copy_uninative(d, baseoutpath):
> > > +    import shutil
> > > +
> > >      # Copy uninative tarball
> > >      # For now this is where uninative.bbclass expects the tarball
> > >      if bb.data.inherits_class('uninative', d):
> > > @@ -288,6 +285,12 @@ python copy_buildsystem () {
> > >          bb.utils.mkdirhier(uninative_outdir)
> > >          shutil.copy(uninative_file, uninative_outdir)
> > >
> > > +    return uninative_checksum
> > > +
> > > +def write_local_conf(d, baseoutpath, derivative, core_meta_subdir, 
> > > uninative_checksum):
> > > +    #check if custome templateconf path is set
> > > +    use_custom_templateconf = d.getVar('SDK_CUSTOM_TEMPLATECONF')
> > > +
> > >      env_passthrough = (d.getVar('BB_ENV_PASSTHROUGH_ADDITIONS') or 
> > > '').split()
> > >      env_passthrough_values = {}
> > >
> > > @@ -457,6 +460,9 @@ python copy_buildsystem () {
> > >                  f.write(line)
> > >              f.write('\n')
> > >
> > > +def prepare_locked_cache(d, baseoutpath, conf_initpath):
> > > +    import shutil
> > > +
> > >      # Filter the locked signatures file to just the sstate tasks we are 
> > > interested in
> > >      excluded_targets = get_sdk_install_targets(d, images_only=True)
> > >      sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc'
> > > @@ -560,6 +566,9 @@ python copy_buildsystem () {
> > >                  f = os.path.join(root, name)
> > >                  os.remove(f)
> > >
> > > +def write_manifest(d, baseoutpath):
> > > +    import glob
> > > +
> > >      # Write manifest file
> > >      # Note: at the moment we cannot include the env setup script here to 
> > > keep
> > >      # it updated, since it gets modified during SDK installation (see
> > > @@ -583,6 +592,32 @@ python copy_buildsystem () {
> > >                      continue
> > >                  chksum = bb.utils.sha256_file(fn)
> > >                  f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, 
> > > baseoutpath)))
> > > +
> > > +
> > > +python copy_buildsystem () {
> > > +    import oe.copy_buildsystem
> > > +
> > > +    baseoutpath = d.getVar('SDK_OUTPUT') + '/' + d.getVar('SDKPATH')
> > > +
> > > +    # Determine if we're building a derivative extensible SDK (from 
> > > devtool build-sdk)
> > > +    derivative = (d.getVar('SDK_DERIVATIVE') or '') == '1'
> > > +
> > > +    conf_initpath, conf_bbpath, core_meta_subdir, sdkbblayers = 
> > > copy_bitbake_and_layers(d, baseoutpath, derivative)
> > > +
> > > +    write_devtool_config(d, baseoutpath, conf_bbpath, conf_initpath, 
> > > core_meta_subdir)
> > > +
> > > +    write_unlocked_sigs(d, baseoutpath)
> > > +
> > > +    write_bblayers_conf(d, baseoutpath, sdkbblayers)
> > > +
> > > +    uninative_checksum = copy_uninative(d, baseoutpath)
> > > +
> > > +    write_local_conf(d, baseoutpath, derivative, core_meta_subdir, 
> > > uninative_checksum)
> > > +
> > > +    prepare_locked_cache(d, baseoutpath, conf_initpath)
> > > +
> > > +    write_manifest(d, baseoutpath)
> > > +
> > >  }
> > >
> > >  def get_current_buildtools(d):
> > > --
> > > 2.39.2
> > >
> >
> > >
> > > 
> > >
> >
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#190223): 
https://lists.openembedded.org/g/openembedded-core/message/190223
Mute This Topic: https://lists.openembedded.org/mt/102361115/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to