ACK/Cmnt: [SRU focal:linux, groovy:linux 1/1] UBUNTU: [Packaging] kernelconfig -- only update/edit configurations on architectures we have compiler support

Frank Heimes frank.heimes at canonical.com
Wed Sep 23 14:52:45 UTC 2020


A SRU Justification is now added to the LP bug.


On Wed, Sep 23, 2020 at 4:08 PM Frank Heimes <frank.heimes at canonical.com>
wrote:

> I'm going to add the SRU Justification (since I initially raised the bug
> ...)
>
> On Wed, Sep 23, 2020 at 3:36 PM Stefan Bader <stefan.bader at canonical.com>
> wrote:
>
>> On 12.08.20 23:28, Andy Whitcroft wrote:
>> > We can only rebuild, edit, or update a configuration for an architecture
>> > nativly on that architecture or using a compatible cross-compiler for
>> > that architecture.  Skip architectures for which we do not have an
>> > apropriate compiler.  When we do not perform the requested operation on
>> > all architectures report those which have been skipped clearly at the
>> > bottom of the output.
>> >
>> >     WARNING: configuration operation applied only to a subset of
>> >         architectures (skipped i386 armhf arm64 ppc64el s390x)
>> >
>> > [seth.forshee at canonical.com: remove i386 special case.]
>> > BugLink: https://bugs.launchpad.net/bugs/1863116
>> > Signed-off-by: Andy Whitcroft <apw at canonical.com>
>> Acked-by: Stefan Bader <stefan.bader at canonical.com>
>> > ---
>>
>> The bug report should contain a filled in justification template. Mind
>> adding
>> that? I have added nominations for focal and groovy which were missing,
>> too.
>>
>> -Stefan
>>
>> >  debian/scripts/misc/kernelconfig | 79 +++++++++++++++++++-------------
>> >  1 file changed, 47 insertions(+), 32 deletions(-)
>> >
>> > diff --git a/debian/scripts/misc/kernelconfig
>> b/debian/scripts/misc/kernelconfig
>> > index fc50c48df3b7..dd45d2f2b085 100755
>> > --- a/debian/scripts/misc/kernelconfig
>> > +++ b/debian/scripts/misc/kernelconfig
>> > @@ -39,6 +39,8 @@ if [ "$mode" = "genconfigs" ]; then
>> >       test -d CONFIGS || mkdir CONFIGS
>> >  fi
>> >
>> > +warning_partial=
>> > +
>> >  for arch in $archs; do
>> >       rm -rf build
>> >       mkdir build
>> > @@ -64,9 +66,15 @@ for arch in $archs; do
>> >       # Environment variables for 'make *config'. We omit CROSS_COMPILE
>> >       # for i386 since it is no longer supported after 19.04, however
>> >       # we maintain the configs for hwe.
>> > +     modify_config=true
>> >       env="ARCH=$kernarch"
>> > -     if [ "$arch" != "i386" ]; then
>> > +     compiler_path=$(which "${cross_compile}gcc" || true)
>> > +     if [ "$compiler_path" != '' ]; then
>> >               env="$env CROSS_COMPILE=$cross_compile"
>> > +     else
>> > +             echo "WARNING: ${cross_compile}gcc not installed"
>> > +             modify_config=
>> > +             warning_partial="$warning_partial $arch"
>> >       fi
>> >
>> >       archconfdir=$confdir/$arch
>> > @@ -100,38 +108,39 @@ for arch in $archs; do
>> >                       fullconf="$tmpdir/$arch-$config-full"
>> >                       cat "$fullconf" > build/.config
>> >                       # Call oldconfig or menuconfig
>> > -                     case "$mode" in
>> > -                         editconfigs)
>> > -                             # Interactively edit config parameters
>> > -                             while : ; do
>> > -                                     echo -n "Do you want to edit
>> config: $arch/$config? [Y/n] "
>> > -                                     read choice
>> > -
>> > -                                     case "$choice" in
>> > -                                     y* | Y* | "" )
>> > -                                             make O=`pwd`/build $env
>> menuconfig
>> > -                                             break ;;
>> > -                                     n* | N* )
>> > -                                             # 'syncconfig' prevents
>> > -                                             # errors for '-' options
>> set
>> > -                                             # in common config
>> fragments
>> > -                                             make O=`pwd`/build $env
>> syncconfig
>> > -                                             break ;;
>> > -                                     *)
>> > -                                             echo "Entry not valid"
>> > -                                     esac
>> > -                             done
>> > -                             ;;
>> > -                         *)
>> > -                             echo "* Run $mode (yes=$yes) on
>> $arch/$config ..."
>> > -                             if [ "$yes" -eq 1 ]; then
>> > -                                     yes "" | make O=`pwd`/build $env
>> "$mode"
>> > -                             else
>> > -                                     make O=`pwd`/build $env "$mode"
>> > -                             fi ;;
>> > -                     esac
>> > +                     if [ "$modify_config" ]; then
>> > +                             case "$mode" in
>> > +                                 editconfigs)
>> > +                                     # Interactively edit config
>> parameters
>> > +                                     while : ; do
>> > +                                             echo -n "Do you want to
>> edit config: $arch/$config? [Y/n] "
>> > +                                             read choice
>> > +                                             case "$choice" in
>> > +                                             y* | Y* | "" )
>> > +                                                     make
>> O=`pwd`/build $env menuconfig
>> > +                                                     break ;;
>> > +                                             n* | N* )
>> > +                                                     # 'syncconfig'
>> prevents
>> > +                                                     # errors for '-'
>> options set
>> > +                                                     # in common
>> config fragments
>> > +                                                     make
>> O=`pwd`/build $env syncconfig
>> > +                                                     break ;;
>> > +                                             *)
>> > +                                                     echo "Entry not
>> valid"
>> > +                                             esac
>> > +                                     done
>> > +                                     ;;
>> > +                                 *)
>> > +                                     echo "* Run $mode (yes=$yes) on
>> $arch/$config ..."
>> > +                                     if [ "$yes" -eq 1 ]; then
>> > +                                             yes "" | make
>> O=`pwd`/build $env "$mode"
>> > +                                     else
>> > +                                             make O=`pwd`/build $env
>> "$mode"
>> > +                                     fi ;;
>> > +                             esac
>> > +                     fi
>> >                       cat build/.config > $archconfdir/$config
>> > -                     cat build/.config >
>> "$tmpdir/CONFIGS/$arch-$config"
>> > +                     [ "$modify_config" ] && cat build/.config
>> >"$tmpdir/CONFIGS/$arch-$config"
>> >                       if [ "$keep" = "1" ]; then
>> >                               cat build/.config > CONFIGS/$arch-$config
>> >                       fi
>> > @@ -176,6 +185,7 @@ for arch in $archs; do
>> >               flavour="${config##*.}"
>> >               if [ -f $archconfdir/$config ]; then
>> >                       fullconf="$tmpdir/CONFIGS/$arch-$config"
>> > +                     [ ! -f "$fullconf" ] && continue
>> >                       "$bindir/../config-check" "$fullconf" "$arch"
>> "$flavour" "$confdir" "0" "0" || let "fail=$fail+1"
>> >               fi
>> >       done
>> > @@ -189,3 +199,8 @@ fi
>> >
>> >  rm -rf build
>> >
>> > +if [ "$warning_partial" ]; then
>> > +     echo ""
>> > +     echo "WARNING: configuration operation applied only to a subset
>> of architectures (skipped$warning_partial)" 1>&2
>> > +     echo ""
>> > +fi
>> >
>>
>>
>> --
>> kernel-team mailing list
>> kernel-team at lists.ubuntu.com
>> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20200923/280116d9/attachment-0001.html>


More information about the kernel-team mailing list