mbox series

[v1,0/8] support/kconfig: bump to linux-v6.9-rc5 version

Message ID 20240506144555.31709-1-ps.report@gmx.net
Headers show
Series support/kconfig: bump to linux-v6.9-rc5 version | expand

Message

Peter Seiderer May 6, 2024, 2:45 p.m. UTC
First draft of updating support/kconfig to an actual linux upstream version
(6.9-rc5).

The patches are orderd by the first 5 handling some minor nits (result of
the new kconfig beeing a little more strict about the syntax, can be
applied in advance):

  - boot/barebox/Config.in: source argument needs quotation marks
  - package/cmocka/Config.in: bool argument needs quotation marks
  - package/dovecot/Config.in: source argument needs quotation marks
  - package/python-pydal/Config.in: bool argument needs quotation marks
  - package/x11r7/Config.in: source argument needs quotation marks

The kconfig version dump itself:

  - support/kconfig: bump to linux-v6.9-rc5 version

And two 'real' changes due to kconfig language changes:

  - support/kconfig: reference environment variables directly (remove 'option env=')
  - package/openssl: move libopenssl/libressl source statemetns outside of the choice

Works for me despite 'make defconfig'...

Regards,
Peter

Peter Seiderer (8):
  boot/barebox/Config.in: source argument needs quotation marks
  package/cmocka/Config.in: bool argument needs quotation marks
  package/dovecot/Config.in: source argument needs quotation marks
  package/python-pydal/Config.in: bool argument needs quotation marks
  package/x11r7/Config.in: source argument needs quotation marks
  support/kconfig: bump to linux-v6.9-rc5 version
  support/kconfig: reference environment variables directly (remove
    'option env=')
  package/openssl: move libopenssl/libressl source statemetns outside of
    the choice

 Config.in                                     |   51 +-
 Config.in.legacy                              |    6 +-
 boot/arm-trusted-firmware/Config.in           |    2 +-
 boot/barebox/Config.in                        |    4 +-
 boot/beaglev-ddrinit/Config.in                |    2 +-
 boot/beaglev-secondboot/Config.in             |    2 +-
 boot/s500-bootloader/Config.in                |    2 +-
 linux/Config.ext.in                           |    2 +-
 package/amlogic-boot-fip/Config.in.host       |    2 +-
 package/cmocka/Config.in                      |    2 +-
 package/dovecot/Config.in                     |    2 +-
 package/erlang/Config.in                      |    6 +-
 package/flutter-sdk-bin/Config.in.host        |    2 +-
 package/go-bootstrap-stage1/Config.in.host    |    6 +-
 package/google-breakpad/Config.in.host        |   12 +-
 package/jpeg/Config.in                        |    2 +-
 package/kvm-unit-tests/Config.in              |    2 +-
 package/luajit/Config.in                      |    4 +-
 package/mono/Config.in                        |    4 +-
 package/nodejs/Config.in.host                 |    8 +-
 package/openjdk/Config.in                     |    4 +-
 package/openssl/Config.in                     |    9 +-
 package/protobuf/Config.in                    |   22 +-
 package/python-pydal/Config.in                |    2 +-
 package/qt5/qt5webengine/Config.in            |    2 +-
 package/rustc/Config.in.host                  |   16 +-
 package/sam-ba/Config.in.host                 |    2 +-
 package/supertuxkart/Config.in                |    4 +-
 package/ti-cgt-pru/Config.in.host             |    2 +-
 package/ti-gfx/Config.in                      |    2 +-
 package/wine/Config.in                        |    6 +-
 package/x11r7/Config.in                       |  420 +-
 support/kconfig/Kbuild.include                |  273 ++
 support/kconfig/Makefile                      |  375 +-
 support/kconfig/Makefile.br                   |   10 +-
 support/kconfig/POTFILES.in                   |   12 -
 support/kconfig/README.buildroot              |    9 +-
 support/kconfig/array_size.h                  |   11 +
 support/kconfig/check.sh                      |   14 -
 support/kconfig/conf.c                        |  562 ++-
 support/kconfig/confdata.c                    | 1358 +++---
 support/kconfig/expr.c                        |   29 +-
 support/kconfig/expr.h                        |   49 +-
 support/kconfig/foo.h                         |   12 -
 support/kconfig/gconf-cfg.sh                  |   33 +
 support/kconfig/gconf.c                       |  100 +-
 support/kconfig/hashtable.h                   |   48 +
 support/kconfig/images.c                      |   34 +-
 support/kconfig/images.h                      |   33 +
 support/kconfig/internal.h                    |   21 +
 support/kconfig/kconf_id.c                    |   53 -
 support/kconfig/kxgettext.c                   |  235 -
 support/kconfig/lexer.l                       |  460 ++
 support/kconfig/lexer.lex.c_shipped           | 4103 +++++++++++++++++
 support/kconfig/list.h                        |  254 +-
 support/kconfig/list_types.h                  |   17 +
 support/kconfig/lkc.h                         |  117 +-
 support/kconfig/lkc_proto.h                   |   33 +-
 support/kconfig/lxdialog/.gitignore           |    4 -
 support/kconfig/lxdialog/BIG.FAT.WARNING      |    2 +-
 support/kconfig/lxdialog/check-lxdialog.sh    |   93 -
 support/kconfig/lxdialog/checklist.c          |   26 +-
 support/kconfig/lxdialog/dialog.h             |   76 +-
 support/kconfig/lxdialog/inputbox.c           |   24 +-
 support/kconfig/lxdialog/menubox.c            |   35 +-
 support/kconfig/lxdialog/textbox.c            |  330 +-
 support/kconfig/lxdialog/util.c               |   41 +-
 support/kconfig/lxdialog/yesno.c              |   21 +-
 support/kconfig/mconf-cfg.sh                  |   55 +
 support/kconfig/mconf.c                       |  529 +--
 support/kconfig/menu.c                        |  345 +-
 support/kconfig/merge_config.sh               |   91 +-
 support/kconfig/mnconf-common.c               |   53 +
 support/kconfig/mnconf-common.h               |   18 +
 support/kconfig/nconf-cfg.sh                  |   53 +
 support/kconfig/nconf.c                       |  297 +-
 support/kconfig/nconf.gui.c                   |  329 +-
 support/kconfig/nconf.h                       |   62 +-
 support/kconfig/parser.tab.c_shipped          | 2189 +++++++++
 support/kconfig/parser.tab.h_shipped          |  134 +
 support/kconfig/{zconf.y => parser.y}         |  467 +-
 .../01-kconfig-kernel-to-buildroot.patch      |  115 +-
 .../06-br-build-system-integration.patch      |  103 +-
 .../kconfig/patches/10-br-build-system.patch  |   66 +-
 .../patches/11-use-mktemp-for-lxdialog.patch  |   17 -
 .../patches/12-fix-glade-file-path.patch      |   14 +-
 .../14-support-out-of-tree-config.patch       |  202 +-
 .../16-fix-space-to-de-select-options.patch   |   19 +-
 .../kconfig/patches/17-backport-kecho.patch   |   26 -
 ...fig.sh-create-temporary-files-in-tmp.patch |   19 +-
 ...e_config.sh-add-br2-external-support.patch |   24 +-
 ...fig.sh-Allow-to-define-config-prefix.patch |   31 -
 ...-positive-matches-from-comment-lines.patch |   32 -
 ...config-lxdialog-fix-check-with-GCC14.patch |   43 -
 ...llow-only-config-comment-and-if-insi.patch |  956 ++++
 support/kconfig/patches/series                |    6 +-
 support/kconfig/preprocess.c                  |  580 +++
 support/kconfig/preprocess.h                  |   19 +
 support/kconfig/qconf-cfg.sh                  |   40 +
 support/kconfig/qconf.cc                      | 1199 ++---
 support/kconfig/qconf.h                       |  163 +-
 support/kconfig/streamline_config.pl          |  104 +-
 support/kconfig/symbol.c                      |  374 +-
 support/kconfig/util.c                        |  122 +-
 support/kconfig/zconf.l                       |  372 --
 support/kconfig/zconf.lex.c_shipped           | 2500 ----------
 support/kconfig/zconf.tab.c_shipped           | 2488 ----------
 system/Config.in                              |    4 +-
 toolchain/toolchain-external/Config.in        |    2 +-
 .../Config.in                                 |    2 +-
 .../toolchain-external-arm-aarch64/Config.in  |    2 +-
 .../toolchain-external-arm-arm/Config.in      |    2 +-
 .../toolchain-external-bootlin/Config.in      |    2 +-
 .../Config.in                                 |    2 +-
 .../Config.in                                 |    2 +-
 .../Config.in                                 |    2 +-
 .../toolchain-external-linaro-arm/Config.in   |    2 +-
 .../toolchain-external-linaro-armeb/Config.in |    2 +-
 .../toolchain-external-synopsys-arc/Config.in |    2 +-
 119 files changed, 13182 insertions(+), 10621 deletions(-)
 create mode 100644 support/kconfig/Kbuild.include
 delete mode 100644 support/kconfig/POTFILES.in
 create mode 100644 support/kconfig/array_size.h
 delete mode 100755 support/kconfig/check.sh
 delete mode 100644 support/kconfig/foo.h
 create mode 100755 support/kconfig/gconf-cfg.sh
 create mode 100644 support/kconfig/hashtable.h
 create mode 100644 support/kconfig/images.h
 create mode 100644 support/kconfig/internal.h
 delete mode 100644 support/kconfig/kconf_id.c
 delete mode 100644 support/kconfig/kxgettext.c
 create mode 100644 support/kconfig/lexer.l
 create mode 100644 support/kconfig/lexer.lex.c_shipped
 create mode 100644 support/kconfig/list_types.h
 delete mode 100644 support/kconfig/lxdialog/.gitignore
 delete mode 100755 support/kconfig/lxdialog/check-lxdialog.sh
 create mode 100755 support/kconfig/mconf-cfg.sh
 create mode 100644 support/kconfig/mnconf-common.c
 create mode 100644 support/kconfig/mnconf-common.h
 create mode 100755 support/kconfig/nconf-cfg.sh
 create mode 100644 support/kconfig/parser.tab.c_shipped
 create mode 100644 support/kconfig/parser.tab.h_shipped
 rename support/kconfig/{zconf.y => parser.y} (56%)
 delete mode 100644 support/kconfig/patches/11-use-mktemp-for-lxdialog.patch
 delete mode 100644 support/kconfig/patches/17-backport-kecho.patch
 delete mode 100644 support/kconfig/patches/20-merge_config.sh-Allow-to-define-config-prefix.patch
 delete mode 100644 support/kconfig/patches/21-Avoid-false-positive-matches-from-comment-lines.patch
 delete mode 100644 support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch
 create mode 100644 support/kconfig/patches/23-Revert-kconfig-allow-only-config-comment-and-if-insi.patch
 create mode 100644 support/kconfig/preprocess.c
 create mode 100644 support/kconfig/preprocess.h
 create mode 100755 support/kconfig/qconf-cfg.sh
 delete mode 100644 support/kconfig/zconf.l
 delete mode 100644 support/kconfig/zconf.lex.c_shipped
 delete mode 100644 support/kconfig/zconf.tab.c_shipped

Comments

Thomas Petazzoni May 6, 2024, 7:04 p.m. UTC | #1
Hello,

On Mon,  6 May 2024 16:45:43 +0200
Peter Seiderer via buildroot <buildroot@buildroot.org> wrote:

> The patches are orderd by the first 5 handling some minor nits (result of
> the new kconfig beeing a little more strict about the syntax, can be
> applied in advance):
> 
>   - boot/barebox/Config.in: source argument needs quotation marks
>   - package/cmocka/Config.in: bool argument needs quotation marks
>   - package/dovecot/Config.in: source argument needs quotation marks
>   - package/python-pydal/Config.in: bool argument needs quotation marks
>   - package/x11r7/Config.in: source argument needs quotation marks

I have applied those preparation patches that make sense regardless of
what happens with the bump.

> The kconfig version dump itself:
> 
>   - support/kconfig: bump to linux-v6.9-rc5 version

So this commit without the next two leads to a broken situation,
correct? (Note: this is not a complaint, I agree with them being split).

> And two 'real' changes due to kconfig language changes:
> 
>   - support/kconfig: reference environment variables directly (remove 'option env=')
>   - package/openssl: move libopenssl/libressl source statemetns outside of the choice

But don't we have this situation of source statements inside a
choice..endchoice in other places? I remember Yann saying that this was
a problematic change for us in the upstream kconfig code.

Best regards,

Thomas
Yann E. MORIN May 6, 2024, 8:19 p.m. UTC | #2
Thomas, Peter, All,

On 2024-05-06 21:04 +0200, Thomas Petazzoni via buildroot spake thusly:
> On Mon,  6 May 2024 16:45:43 +0200
> Peter Seiderer via buildroot <buildroot@buildroot.org> wrote:
[--SNIP--]
> > The kconfig version dump itself:
> >   - support/kconfig: bump to linux-v6.9-rc5 version
> So this commit without the next two leads to a broken situation,
> correct? (Note: this is not a complaint, I agree with them being split).

Except they should be reversed: the new commits can work with the
kconfig we currently have, so it looks like it should be OK to do the
required changes before doing the kconfig bump.

> > And two 'real' changes due to kconfig language changes:
> >   - support/kconfig: reference environment variables directly (remove 'option env=')
> >   - package/openssl: move libopenssl/libressl source statemetns outside of the choice
> But don't we have this situation of source statements inside a
> choice..endchoice in other places?

Toolchains, skeletons, init systems, jpeg library, linux extensions, and
indeed openssl.

> I remember Yann saying that this was
> a problematic change for us in the upstream kconfig code.

Yes, so given that there are two problematic changes:
  - source statements in choices,
  - environment variable direct expansion,
I wonder if it makes sense for us to update our kconfig infra...

Regards,
Yann E. MORIN.
Thomas Petazzoni May 6, 2024, 8:21 p.m. UTC | #3
On Mon, 6 May 2024 22:19:39 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> > So this commit without the next two leads to a broken situation,
> > correct? (Note: this is not a complaint, I agree with them being split).  
> 
> Except they should be reversed: the new commits can work with the
> kconfig we currently have, so it looks like it should be OK to do the
> required changes before doing the kconfig bump.

I don't think the logic changed in "support/kconfig: reference
environment variables directly (remove 'option env=')" can work with
the current kconfig code base.

> > I remember Yann saying that this was
> > a problematic change for us in the upstream kconfig code.  
> 
> Yes, so given that there are two problematic changes:
>   - source statements in choices,
>   - environment variable direct expansion,
> I wonder if it makes sense for us to update our kconfig infra...

But we'd hate to stay stuck on an old kconfig code base forever. Gtk is
going to move on, Qt is going to move on, which means at some point in
the future, our "make xconfig" and "make gconfig" would no longer work.

Thomas
Peter Seiderer May 8, 2024, 3:16 p.m. UTC | #4
Hello Thomas,

On Mon, 6 May 2024 21:04:40 +0200, Thomas Petazzoni via buildroot <buildroot@buildroot.org> wrote:

> Hello,
>
> On Mon,  6 May 2024 16:45:43 +0200
> Peter Seiderer via buildroot <buildroot@buildroot.org> wrote:
>
> > The patches are orderd by the first 5 handling some minor nits (result of
> > the new kconfig beeing a little more strict about the syntax, can be
> > applied in advance):
> >
> >   - boot/barebox/Config.in: source argument needs quotation marks
> >   - package/cmocka/Config.in: bool argument needs quotation marks
> >   - package/dovecot/Config.in: source argument needs quotation marks
> >   - package/python-pydal/Config.in: bool argument needs quotation marks
> >   - package/x11r7/Config.in: source argument needs quotation marks
>
> I have applied those preparation patches that make sense regardless of
> what happens with the bump.

Thanks...

>
> > The kconfig version dump itself:
> >
> >   - support/kconfig: bump to linux-v6.9-rc5 version
>
> So this commit without the next two leads to a broken situation,
> correct? (Note: this is not a complaint, I agree with them being split).

Yes, but the next two patches can eventually squashed with this one, but did
keep separate for better patch review/iteration (suspected some more
discussion on this ones)...

>
> > And two 'real' changes due to kconfig language changes:
> >
> >   - support/kconfig: reference environment variables directly (remove 'option env=')
> >   - package/openssl: move libopenssl/libressl source statemetns outside of the choice
>
> But don't we have this situation of source statements inside a
> choice..endchoice in other places? I remember Yann saying that this was
> a problematic change for us in the upstream kconfig code.

Yes, that is the reasoning for the (suggested by Yann)

	patches/23-Revert-kconfig-allow-only-config-comment-and-if-insi.patch

With this one reverted I get the following warnings/errors:

  toolchain/toolchain-external/Config.in:12: syntax error
  toolchain/toolchain-external/Config.in:12: invalid statement
  toolchain/toolchain-external/Config.in:13: invalid statement
  toolchain/toolchain-external/Config.in:16: invalid statement
  toolchain/toolchain-external/Config.in:17: invalid statement
  toolchain/toolchain-external/Config.in:20: invalid statement
  toolchain/toolchain-external/Config.in:23: invalid statement
  toolchain/toolchain-external/Config.in:24: invalid statement
  toolchain/toolchain-external/Config.in:27: invalid statement
  toolchain/toolchain-external/Config.in:30: invalid statement
  toolchain/toolchain-external/Config.in:33: invalid statement
  toolchain/toolchain-external/Config.in:38: invalid statement
  toolchain/toolchain-external/Config.in:41: invalid statement
  system/Config.in:23: syntax error
  system/Config.in:23: invalid statement
  system/Config.in:157: syntax error
  system/Config.in:157: invalid statement
  package/openssl/Config.in:46: syntax error
  package/openssl/Config.in:46: invalid statement
  package/jpeg/Config.in:43: syntax error
  package/jpeg/Config.in:43: invalid statement

With the patch the remaining problematic source-inside-choice are
in package/openssl/Config.in, seems not all content is allowed
to be included...

Regards,
Peter

>
> Best regards,
>
> Thomas
Peter Seiderer May 8, 2024, 3:21 p.m. UTC | #5
Hello Yann, Thomas,

On Mon, 6 May 2024 22:19:39 +0200, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Thomas, Peter, All,
>
> On 2024-05-06 21:04 +0200, Thomas Petazzoni via buildroot spake thusly:
> > On Mon,  6 May 2024 16:45:43 +0200
> > Peter Seiderer via buildroot <buildroot@buildroot.org> wrote:
> [--SNIP--]
> > > The kconfig version dump itself:
> > >   - support/kconfig: bump to linux-v6.9-rc5 version
> > So this commit without the next two leads to a broken situation,
> > correct? (Note: this is not a complaint, I agree with them being split).
>
> Except they should be reversed: the new commits can work with the
> kconfig we currently have, so it looks like it should be OK to do the
> required changes before doing the kconfig bump.

A solution for the two remaining patches working with the old/new kconfig would
be nice..., will test if it works for the escape problem...

Regards,
Peter

>
> > > And two 'real' changes due to kconfig language changes:
> > >   - support/kconfig: reference environment variables directly (remove 'option env=')
> > >   - package/openssl: move libopenssl/libressl source statemetns outside of the choice
> > But don't we have this situation of source statements inside a
> > choice..endchoice in other places?
>
> Toolchains, skeletons, init systems, jpeg library, linux extensions, and
> indeed openssl.
>
> > I remember Yann saying that this was
> > a problematic change for us in the upstream kconfig code.
>
> Yes, so given that there are two problematic changes:
>   - source statements in choices,
>   - environment variable direct expansion,
> I wonder if it makes sense for us to update our kconfig infra...
>
> Regards,
> Yann E. MORIN.
>
Yann E. MORIN May 8, 2024, 7:08 p.m. UTC | #6
Peter, All,

On 2024-05-08 17:21 +0200, Peter Seiderer via buildroot spake thusly:
> On Mon, 6 May 2024 22:19:39 +0200, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> > On 2024-05-06 21:04 +0200, Thomas Petazzoni via buildroot spake thusly:
> > > On Mon,  6 May 2024 16:45:43 +0200
> > > Peter Seiderer via buildroot <buildroot@buildroot.org> wrote:
> > [--SNIP--]
> > > > The kconfig version dump itself:
> > > >   - support/kconfig: bump to linux-v6.9-rc5 version
> > > So this commit without the next two leads to a broken situation,
> > > correct? (Note: this is not a complaint, I agree with them being split).
> > Except they should be reversed: the new commits can work with the
> > kconfig we currently have, so it looks like it should be OK to do the
> > required changes before doing the kconfig bump.
> A solution for the two remaining patches working with the old/new kconfig would
> be nice..., will test if it works for the escape problem...

Right, making the env vars work in both caes would be quite difficult...

However, the source-in-choice fix can very well be done before the
kconfig bump.

Regards,
Yann E. MORIN.