Message ID | 20211201230827.35080-1-matthew.weber@collins.com |
---|---|
State | Rejected |
Headers | show |
Series | [1/3] utils/test-pkg: add support for externals | expand |
Matthew, All, On 2021-12-01 17:08 -0600, Matthew Weber via buildroot spake thusly: > Add support to test-pkg to allow the usage br2-externals, so that > it may be leveraged for packages outside of upstream buildroot as well. Why is it even needed? Just pass BR2_EXTERNAL in the environment: BR2_EXTERNAL=/path/to/foo:/path/to/bar ./utils/test-pkg Maybe we should change the manual to state that BR2_EXTERNAL can be set in the environment as well, and the help for ./utils/test-pkg could also mention that. Oh, and by the way: we should not have added the -e option to support/kconfig/merge_config.sh either, because even in that case, BR2_EXTERNAL in the environment works as well. Regards, Yann E. MORIN. > Signed-off-by: Matthew Weber <matthew.weber@collins.com> > --- > utils/test-pkg | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/utils/test-pkg b/utils/test-pkg > index 526b95b1fb..d0472f176b 100755 > --- a/utils/test-pkg > +++ b/utils/test-pkg > @@ -3,6 +3,7 @@ set -e > > TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv' > TEMP_CONF="" > +BR2_EXTERNALS="" > > do_clean() { > if [ ! -z "${TEMP_CONF}" ]; then > @@ -17,8 +18,8 @@ main() { > local -a toolchains > local pkg_br_name > > - o='hakc:d:n:p:r:t:' > - O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:' > + o='hakc:d:n:p:r:t:e:' > + O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:,externals:,' > opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")" > eval set -- "${opts}" > > @@ -61,6 +62,9 @@ main() { > (-t|--toolchains-csv) > toolchains_csv="${2}"; shift 2 > ;; > + (-e|--externals) > + BR2_EXTERNALS="${2}"; shift 2 > + ;; > (--) > shift; break > ;; > @@ -155,7 +159,7 @@ build_one() { > > mkdir -p "${dir}" > > - CONFIG_= support/kconfig/merge_config.sh -O "${dir}" \ > + CONFIG_= support/kconfig/merge_config.sh -e "${BR2_EXTERNALS}" -O "${dir}" \ > "${toolchainconfig}" "support/config-fragments/minimal.config" "${cfg}" \ > >> "${dir}/logfile" 2>&1 > # We want all the options from the snippet to be present as-is (set > @@ -181,7 +185,7 @@ build_one() { > fi > > if [ -n "${pkg}" ]; then > - if ! make O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then > + if ! make BR2_EXTERNAL="${BR2_EXTERNALS}" O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then > return 2 > fi > fi > @@ -193,14 +197,14 @@ build_one() { > > # legal-info done systematically, because some packages have different > # sources depending on the configuration (e.g. lua-5.2 vs. lua-5.3) > - if ! make O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then > + if ! make BR2_EXTERNAL="${BR2_EXTERNALS}" O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then > return 3 > fi > > # If we get here, the build was successful. Clean up the build/host > # directories to save disk space, unless 'keep' was set. > if [ ${keep} -ne 1 ]; then > - make O="${dir}" clean >> "${dir}/logfile" 2>&1 > + make BR2_EXTERNAL="${BR2_EXTERNALS}" O="${dir}" clean >> "${dir}/logfile" 2>&1 > fi > } > > @@ -271,6 +275,10 @@ Options: > Only prepare the .config files, but do not build them. Output the > list of build directories to stdout, and the status on stderr. > > + -e, --externals > + Externals to be used as part of the build process. Packages from > + within these externals may be tested. > + > Example: > > Testing libcec would require a config snippet that contains: > -- > 2.17.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
diff --git a/utils/test-pkg b/utils/test-pkg index 526b95b1fb..d0472f176b 100755 --- a/utils/test-pkg +++ b/utils/test-pkg @@ -3,6 +3,7 @@ set -e TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv' TEMP_CONF="" +BR2_EXTERNALS="" do_clean() { if [ ! -z "${TEMP_CONF}" ]; then @@ -17,8 +18,8 @@ main() { local -a toolchains local pkg_br_name - o='hakc:d:n:p:r:t:' - O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:' + o='hakc:d:n:p:r:t:e:' + O='help,all,keep,prepare-only,config-snippet:,build-dir:,number:,package:,random:,toolchains-csv:,externals:,' opts="$(getopt -n "${my_name}" -o "${o}" -l "${O}" -- "${@}")" eval set -- "${opts}" @@ -61,6 +62,9 @@ main() { (-t|--toolchains-csv) toolchains_csv="${2}"; shift 2 ;; + (-e|--externals) + BR2_EXTERNALS="${2}"; shift 2 + ;; (--) shift; break ;; @@ -155,7 +159,7 @@ build_one() { mkdir -p "${dir}" - CONFIG_= support/kconfig/merge_config.sh -O "${dir}" \ + CONFIG_= support/kconfig/merge_config.sh -e "${BR2_EXTERNALS}" -O "${dir}" \ "${toolchainconfig}" "support/config-fragments/minimal.config" "${cfg}" \ >> "${dir}/logfile" 2>&1 # We want all the options from the snippet to be present as-is (set @@ -181,7 +185,7 @@ build_one() { fi if [ -n "${pkg}" ]; then - if ! make O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then + if ! make BR2_EXTERNAL="${BR2_EXTERNALS}" O="${dir}" "${pkg}-dirclean" >> "${dir}/logfile" 2>&1; then return 2 fi fi @@ -193,14 +197,14 @@ build_one() { # legal-info done systematically, because some packages have different # sources depending on the configuration (e.g. lua-5.2 vs. lua-5.3) - if ! make O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then + if ! make BR2_EXTERNAL="${BR2_EXTERNALS}" O="${dir}" legal-info >> "${dir}/logfile" 2>&1; then return 3 fi # If we get here, the build was successful. Clean up the build/host # directories to save disk space, unless 'keep' was set. if [ ${keep} -ne 1 ]; then - make O="${dir}" clean >> "${dir}/logfile" 2>&1 + make BR2_EXTERNAL="${BR2_EXTERNALS}" O="${dir}" clean >> "${dir}/logfile" 2>&1 fi } @@ -271,6 +275,10 @@ Options: Only prepare the .config files, but do not build them. Output the list of build directories to stdout, and the status on stderr. + -e, --externals + Externals to be used as part of the build process. Packages from + within these externals may be tested. + Example: Testing libcec would require a config snippet that contains:
Add support to test-pkg to allow the usage br2-externals, so that it may be leveraged for packages outside of upstream buildroot as well. Signed-off-by: Matthew Weber <matthew.weber@collins.com> --- utils/test-pkg | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-)