Message ID | 20231103102806.2332746-4-alex@linutronix.de |
---|---|
State | Accepted, archived |
Commit | a163b8f339f32bc9e3865736af321190bc89c61b |
Headers | show |
Series | [1/4] populate_sdk_ext.bbclass: do not symlink unfsd from sdk image sysroot into eSDK tools path | expand |
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 <alex@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 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#190151): https://lists.openembedded.org/g/openembedded-core/message/190151 > Mute This Topic: https://lists.openembedded.org/mt/102361115/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Thanks, I just sent a corrected patch. Alex On Sat, 4 Nov 2023 at 00:50, Alexandre Belloni <alexandre.belloni@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 <alex@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 > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#190151): https://lists.openembedded.org/g/openembedded-core/message/190151 > > Mute This Topic: https://lists.openembedded.org/mt/102361115/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
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.belloni@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 <alex@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 > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > > Links: You receive all messages sent to this group. > > > View/Reply Online (#190151): https://lists.openembedded.org/g/openembedded-core/message/190151 > > > Mute This Topic: https://lists.openembedded.org/mt/102361115/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
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):
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 <alex@linutronix.de> --- meta/classes-recipe/populate_sdk_ext.bbclass | 59 ++++++++++++++++---- 1 file changed, 47 insertions(+), 12 deletions(-)