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