2017-12-19 01:28:05

by Marc Herbert

[permalink] [raw]
Subject: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal
interface and "oldconfig" is just as silent now. It's not part of the
user interface so remove it from "make help" to stop confusing people
trying to use it as seen for instance at
https://chromium-review.googlesource.com/271688

On the other hand, correct and expand its description in the help of
scripts/kconfig/conf.c

Signed-off-by: Marc Herbert <[email protected]>
---
scripts/kconfig/Makefile | 1 -
scripts/kconfig/conf.c | 5 ++++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 297c1bf35140..bf13b8fa3ccc 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -142,7 +142,6 @@ help:
@echo ' oldconfig - Update current config utilising a provided .config as base'
@echo ' localmodconfig - Update current config disabling modules not loaded'
@echo ' localyesconfig - Update current config converting local mods to core'
- @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
@echo ' defconfig - New config with default from ARCH supplied defconfig'
@echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
@echo ' allnoconfig - New config where all options are answered with no'
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 866369f10ff8..f8c002a19f62 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -477,7 +477,10 @@ static void conf_usage(const char *progname)
printf(" --listnewconfig List new options\n");
printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
printf(" --oldconfig Update a configuration using a provided .config as base\n");
- printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
+ printf(" --silentoldconfig Similar to oldconfig but:\n"
+ " - no re-formatting of .config when nothing's missing\n"
+ " - generates configuration in include/{generated/,config/}\n"
+ " (oldconfig used to be more verbose)\n");
printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
printf(" --oldnoconfig An alias of olddefconfig\n");
printf(" --defconfig <file> New config with default defined in <file>\n");
--
2.9.5


2018-01-04 17:22:22

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

(+CC Michal's new address)

2017-12-19 10:26 GMT+09:00 Marc Herbert <[email protected]>:
> As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
> silentoldconfig has become a misnomer. It has become an internal
> interface and "oldconfig" is just as silent now.


Hmm, I'd like to be sure about your intention.

"oldconfig" is not silent. (nor is silentoldconfig).

When it finds a new symbol, it will show a dialog
to ask users to input a value.

"olddefconfig" is really silent
because it automatically sets new symbols to default.

I agree it is confusing due to the historical misnomer.



> It's not part of the
> user interface so remove it from "make help" to stop confusing people
> trying to use it as seen for instance at
> https://chromium-review.googlesource.com/271688
>
> On the other hand, correct and expand its description in the help of
> scripts/kconfig/conf.c
>
> Signed-off-by: Marc Herbert <[email protected]>
> ---
> scripts/kconfig/Makefile | 1 -
> scripts/kconfig/conf.c | 5 ++++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 297c1bf35140..bf13b8fa3ccc 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -142,7 +142,6 @@ help:
> @echo ' oldconfig - Update current config utilising a provided .config as base'
> @echo ' localmodconfig - Update current config disabling modules not loaded'
> @echo ' localyesconfig - Update current config converting local mods to core'
> - @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
> @echo ' defconfig - New config with default from ARCH supplied defconfig'
> @echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
> @echo ' allnoconfig - New config where all options are answered with no'
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c


A few lines below, I see


@echo ' olddefconfig - Same as silentoldconfig but sets
new symbols to their'
@echo ' default value'


If you drop silentoldconfig help,
the "Same as silentoldconfig" is not sensible.
You need to update this line, too.

I think "Same as oldconfig but ..." will be OK.



> index 866369f10ff8..f8c002a19f62 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -477,7 +477,10 @@ static void conf_usage(const char *progname)
> printf(" --listnewconfig List new options\n");
> printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
> printf(" --oldconfig Update a configuration using a provided .config as base\n");
> - printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
> + printf(" --silentoldconfig Similar to oldconfig but:\n"
> + " - no re-formatting of .config when nothing's missing\n"
> + " - generates configuration in include/{generated/,config/}\n"
> + " (oldconfig used to be more verbose)\n");


What do you mean by "oldconfig used to be more verbose" ?

Did oldconfig change its behavior?

Unless I am missing something, the current behavior of "oldconfig" has
been the same
at least since the beginning of the git era.





> printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
> printf(" --oldnoconfig An alias of olddefconfig\n");
> printf(" --defconfig <file> New config with default defined in <file>\n");
> --
> 2.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html



--
Best Regards
Masahiro Yamada

2018-01-05 22:21:17

by Marc Herbert

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

On 04/01/2018 09:21, Masahiro Yamada wrote:
> (+CC Michal's new address)
>
> 2017-12-19 10:26 GMT+09:00 Marc Herbert <[email protected]>:
>> As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
>> silentoldconfig has become a misnomer. It has become an internal
>> interface and "oldconfig" is just as silent now.
>
>
> Hmm, I'd like to be sure about your intention.

My main intention is to stop advertising the now internal silentoldconfig
target in the user interface. A secondary goal is to provide an accurate
background information in the commit message.

> "oldconfig" is not silent. (nor is silentoldconfig).
> When it finds a new symbol, it will show a dialog
> to ask users to input a value.
>
> "olddefconfig" is really silent
> because it automatically sets new symbols to default.

I think "silent" is typically missing well-defined semantics (another appeal
to remove "silentoldconfig" from the user interface...) and I'm not sure
"silent" ever meant "non-interactive" as you just described here. I think
silent just meant "quiet(er)" here.

This commit message was purely based on Michal's message that I'm
referencing. He wrote there: "... nowadays oldconfig is silent as well"

I can change that part of the commit message to:

| As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
| silentoldconfig has become a misnomer. It has become an internal
| interface and "oldconfig" is just as QUIET now.

... or to anything else you prefer.


> If you drop silentoldconfig help,
> the "Same as silentoldconfig" is not sensible.
> You need to update this line, too.

> I think "Same as oldconfig but ..." will be OK.

Agreed, thank you! I will also search for other occurrences.


> What do you mean by "oldconfig used to be more verbose" ?
> Did oldconfig change its behavior?
>
> Unless I am missing something, the current behavior of "oldconfig" has
> been the same at least since the beginning of the git era.

Again that's what Michal's message claimed in 2011. I don't know to which
even older era he was referring to.

It was already quite time consuming to understand and verify the subtle
nuances of the current state (which luckily still matches what Michal
reported 7 years ago), so for the even older past I just deferred to Michal.

Now I just checked out v2.6.12-rc2 (2005) and it looks like Michal was
right: oldconfig was much more verbose then; it was dumping the entire
.config file on stdout.

If you prefer I can keep referring to Michal's message but without
paraphrasing it at all; sticking to the description of the current
behaviours and not mentioning any possible past behaviour and saving all of
us the time spent doing archeology. Just let me know, thx!

--
Marc

2018-01-10 07:18:11

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

2018-01-06 7:21 GMT+09:00 Marc Herbert <[email protected]>:
> On 04/01/2018 09:21, Masahiro Yamada wrote:
>> (+CC Michal's new address)
>>
>> 2017-12-19 10:26 GMT+09:00 Marc Herbert <[email protected]>:
>>> As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
>>> silentoldconfig has become a misnomer. It has become an internal
>>> interface and "oldconfig" is just as silent now.
>>
>>
>> Hmm, I'd like to be sure about your intention.
>
> My main intention is to stop advertising the now internal silentoldconfig
> target in the user interface. A secondary goal is to provide an accurate
> background information in the commit message.

OK.


>> "oldconfig" is not silent. (nor is silentoldconfig).
>> When it finds a new symbol, it will show a dialog
>> to ask users to input a value.
>>
>> "olddefconfig" is really silent
>> because it automatically sets new symbols to default.
>
> I think "silent" is typically missing well-defined semantics (another appeal
> to remove "silentoldconfig" from the user interface...) and I'm not sure
> "silent" ever meant "non-interactive" as you just described here. I think
> silent just meant "quiet(er)" here.

I imagined "silent" meant "non-interactive" at first,
but, you are right, Michal probably referred to this word "quiet(er)".


> This commit message was purely based on Michal's message that I'm
> referencing. He wrote there: "... nowadays oldconfig is silent as well"
>
> I can change that part of the commit message to:
>
> | As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
> | silentoldconfig has become a misnomer. It has become an internal
> | interface and "oldconfig" is just as QUIET now.


Sounds good.

(but, currently, there is a slight difference of quiet level
between oldconfig and silentoldconfig)

See below.


> ... or to anything else you prefer.
>
>
>> If you drop silentoldconfig help,
>> the "Same as silentoldconfig" is not sensible.
>> You need to update this line, too.
>
>> I think "Same as oldconfig but ..." will be OK.
>
> Agreed, thank you! I will also search for other occurrences.
>
>
>> What do you mean by "oldconfig used to be more verbose" ?
>> Did oldconfig change its behavior?
>>
>> Unless I am missing something, the current behavior of "oldconfig" has
>> been the same at least since the beginning of the git era.
>
> Again that's what Michal's message claimed in 2011. I don't know to which
> even older era he was referring to.
>
> It was already quite time consuming to understand and verify the subtle
> nuances of the current state (which luckily still matches what Michal
> reported 7 years ago), so for the even older past I just deferred to Michal.
>
> Now I just checked out v2.6.12-rc2 (2005) and it looks like Michal was
> right: oldconfig was much more verbose then; it was dumping the entire
> .config file on stdout.

You and Michal are right.

It is commit cd9140e1e73a ("kconfig: make oldconfig is now less chatty").


I took a closer look at this.

Currently, oldconfig is a little bit more verbose than silentoldconfig,
but it should not be. I'd like to fix it.

I attached a test case in my patch
https://patchwork.kernel.org/patch/10154095/

At the end of its git-log,
I attached deeper analysis of the history of oldconfig.
Please check it out if you are interested.


> If you prefer I can keep referring to Michal's message but without
> paraphrasing it at all; sticking to the description of the current
> behaviours and not mentioning any possible past behaviour and saving all of
> us the time spent doing archeology. Just let me know, thx!

Sounds good to me. (I recorded the backgound in my patch, anyway...)

I leave the detail of the commit log up to you.



> + printf(" --silentoldconfig Similar to oldconfig but:\n"
> + " - no re-formatting of .config when nothing's missing\n"
> + " - generates configuration in include/{generated/,config/}\n"
> + " (oldconfig used to be more verbose)\n");

How about "Similar to oldconfig but, generates configuration ..." ?

I'd like to drop the following description.

"no re-formatting of .config when nothing's missing"
This is very subtle difference, less important.
It may not be stable in the future.


"(oldconfig used to be more verbose)"
The historical background is git.
If people are interested in archeology,
they would be able to do it by "git log", "git blame", etc.
We are generally interested in the current behavior.



--
Best Regards
Masahiro Yamada

2018-01-12 22:50:58

by Marc Herbert

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

Masahiro,

On 09/01/2018 23:17, Masahiro Yamada wrote:

> > "(oldconfig used to be more verbose)"

> The historical background is git.
> If people are interested in archeology,
> they would be able to do it by "git log", "git blame", etc.
> We are generally interested in the current behavior.

I'd like to keep that sentence because it's there to explain the legacy and
confusing "--silentoldconfig" name which unfortunately still sticks out in
the *current* conf.c interface.

+ printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
+ " include/{generated/,config/} (oldconfig used to be more verbose)\n");

The purpose of this sentence is to warn people that: "silentoldconfig is
just archeology, so you can safely ignore it" and save them time.

The alternative I considered was to entirely remove "silentconfig" not just
from the Makefile's help but from the conf.c help too.

Thoughts?

--
Marc

2018-01-18 01:42:47

by Marc Herbert

[permalink] [raw]
Subject: [PATCH v2] Remove silentoldconfig from "make help"; fix kconfig/conf's help

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface
so remove it from "make help" to stop confusing people trying to use it as
seen for instance at https://chromium-review.googlesource.com/835632

On the other hand, correct and expand its description in the help of
scripts/kconfig/conf.c

Signed-off-by: Marc Herbert <[email protected]>
---
v2: rewordings (Masahiro)

scripts/kconfig/Makefile | 5 ++---
scripts/kconfig/conf.c | 5 +++--
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 297c1bf35140..ac4bda790922 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -142,7 +142,6 @@ help:
@echo ' oldconfig - Update current config utilising a provided .config as base'
@echo ' localmodconfig - Update current config disabling modules not loaded'
@echo ' localyesconfig - Update current config converting local mods to core'
- @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
@echo ' defconfig - New config with default from ARCH supplied defconfig'
@echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
@echo ' allnoconfig - New config where all options are answered with no'
@@ -151,8 +150,8 @@ help:
@echo ' alldefconfig - New config with all symbols set to default'
@echo ' randconfig - New config with random answer to all options'
@echo ' listnewconfig - List new options'
- @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their'
- @echo ' default value'
+ @echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
+ @echo ' default value without prompting'
@echo ' kvmconfig - Enable additional options for kvm guest kernel support'
@echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support'
@echo ' tinyconfig - Configure the tiniest possible kernel'
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 866369f10ff8..303fbe2ffa04 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -477,8 +477,9 @@ static void conf_usage(const char *progname)
printf(" --listnewconfig List new options\n");
printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
printf(" --oldconfig Update a configuration using a provided .config as base\n");
- printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
- printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
+ printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
+ " include/{generated/,config/} (oldconfig used to be more verbose)\n");
+ printf(" --olddefconfig Same as oldconfig but sets new symbols to their default value\n");
printf(" --oldnoconfig An alias of olddefconfig\n");
printf(" --defconfig <file> New config with default defined in <file>\n");
printf(" --savedefconfig <file> Save the minimal current configuration to <file>\n");
--
2.13.6


2018-01-18 04:33:10

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

Hi Marc,

Sorry for my late reply.

2018-01-13 7:49 GMT+09:00 Marc Herbert <[email protected]>:
> Masahiro,
>
> On 09/01/2018 23:17, Masahiro Yamada wrote:
>
>> > "(oldconfig used to be more verbose)"
>
>> The historical background is git.
>> If people are interested in archeology,
>> they would be able to do it by "git log", "git blame", etc.
>> We are generally interested in the current behavior.
>
> I'd like to keep that sentence because it's there to explain the legacy and
> confusing "--silentoldconfig" name which unfortunately still sticks out in
> the *current* conf.c interface.
>
> + printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
> + " include/{generated/,config/} (oldconfig used to be more verbose)\n");
>
> The purpose of this sentence is to warn people that: "silentoldconfig is
> just archeology, so you can safely ignore it" and save them time.
>
> The alternative I considered was to entirely remove "silentconfig" not just
> from the Makefile's help but from the conf.c help too.
>
> Thoughts?


Another possibility might be to rename 'silentoldconfig'.
instead of explaining the background in the help message.

Your git-log 'internal interface' implies
renaming has no impact.

Commit fb16d8912db5268f29706010ecafff74b971c58d
renamed oldnoconfig to olddefconfig
to match the name to its behavior.

Then, I want to drop the 'oldnoconfig' alias:
https://patchwork.kernel.org/patch/10172375/


If we worry about the compatibility just in case,
we can keep 'silentoldconfig' as an alias as well.



It is difficult to suggest a clear name,
but 'syncconfig' is the one I came up with.

Please suggest if you have a better idea.


What do you think?

--
Best Regards
Masahiro Yamada

2018-01-26 23:00:05

by Marc Herbert

[permalink] [raw]
Subject: [PATCH v3] Remove silentoldconfig from help and docs; fix kconfig/conf's help

As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
silentoldconfig has become a misnomer. It has become an internal interface
so remove it from "make help" and Documentation/ to stop confusing people
using it as seen for instance at
https://chromium-review.googlesource.com/835632 Don't remove it from
kconfig/Makefile yet not to break any (other) tool using it.

On the other hand, correct and expand its description in the help of
the (internal) scripts/kconfig/conf.c

Signed-off-by: Marc Herbert <[email protected]>
---
v2: rewordings (Masahiro)
v3: remove from Documentation/ too. Add warning comments in source.

Documentation/admin-guide/README.rst | 5 -----
scripts/kconfig/Makefile | 7 ++++---
scripts/kconfig/conf.c | 6 ++++--
3 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/Documentation/admin-guide/README.rst b/Documentation/admin-guide/README.rst
index 63066db39910..af5a437198d0 100644
--- a/Documentation/admin-guide/README.rst
+++ b/Documentation/admin-guide/README.rst
@@ -170,11 +170,6 @@ Configuring the kernel
your existing ./.config file and asking about
new config symbols.

- "make silentoldconfig"
- Like above, but avoids cluttering the screen
- with questions already answered.
- Additionally updates the dependencies.
-
"make olddefconfig"
Like above, but sets new symbols to their default
values without prompting.
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index df6469fd3dcc..a460f9f7b733 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -34,6 +34,8 @@ config: $(obj)/conf
nconfig: $(obj)/nconf
$< $(silent) $(Kconfig)

+# This has become an internal implementation detail and is now deprecated
+# for external use.
silentoldconfig: $(obj)/conf
$(Q)mkdir -p include/config include/generated
$(Q)test -e include/generated/autoksyms.h || \
@@ -142,7 +144,6 @@ help:
@echo ' oldconfig - Update current config utilising a provided .config as base'
@echo ' localmodconfig - Update current config disabling modules not loaded'
@echo ' localyesconfig - Update current config converting local mods to core'
- @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
@echo ' defconfig - New config with default from ARCH supplied defconfig'
@echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
@echo ' allnoconfig - New config where all options are answered with no'
@@ -151,8 +152,8 @@ help:
@echo ' alldefconfig - New config with all symbols set to default'
@echo ' randconfig - New config with random answer to all options'
@echo ' listnewconfig - List new options'
- @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their'
- @echo ' default value'
+ @echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
+ @echo ' default value without prompting'
@echo ' kvmconfig - Enable additional options for kvm guest kernel support'
@echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support'
@echo ' tinyconfig - Configure the tiniest possible kernel'
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index a8a97efd3dfc..a309ccec1000 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -457,6 +457,7 @@ static void check_conf(struct menu *menu)
static struct option long_opts[] = {
{"oldaskconfig", no_argument, NULL, oldaskconfig},
{"oldconfig", no_argument, NULL, oldconfig},
+ /* Has become a misnomer, "syncconfig" would be more accurate */
{"silentoldconfig", no_argument, NULL, silentoldconfig},
{"defconfig", optional_argument, NULL, defconfig},
{"savedefconfig", required_argument, NULL, savedefconfig},
@@ -484,8 +485,9 @@ static void conf_usage(const char *progname)
printf(" --listnewconfig List new options\n");
printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
printf(" --oldconfig Update a configuration using a provided .config as base\n");
- printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
- printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
+ printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
+ " include/{generated/,config/} (oldconfig used to be more verbose)\n");
+ printf(" --olddefconfig Same as oldconfig but sets new symbols to their default value\n");
printf(" --oldnoconfig An alias of olddefconfig\n");
printf(" --defconfig <file> New config with default defined in <file>\n");
printf(" --savedefconfig <file> Save the minimal current configuration to <file>\n");
--
2.13.6


2018-01-26 23:01:58

by Marc Herbert

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

Masahiro,

On 17/01/2018 20:31, Masahiro Yamada wrote:

> Sorry for my late reply.

I think we're even now :-)

>> I'd like to keep that sentence because it's there to explain the legacy and
>> confusing "--silentoldconfig" name which unfortunately still sticks out in
>> the *current* conf.c interface.
>>
>> + printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
>> + " include/{generated/,config/} (oldconfig used to be more verbose)\n");
>>
>> The purpose of this sentence is to warn people that: "silentoldconfig is
>> just archeology, so you can safely ignore it" and save them time.
>>
>> The alternative I considered was to entirely remove "silentconfig" not just
>> from the Makefile's help but from the conf.c help too.

>
> Another possibility might be to rename 'silentoldconfig'.
> instead of explaining the background in the help message.
> [...]
> It is difficult to suggest a clear name,
> but 'syncconfig' is the one I came up with.
>
> Please suggest if you have a better idea.

Look like a good idea and name to me but... for a different, bigger
and later commit.

> Commit fb16d8912db5268f29706010ecafff74b971c58d
> renamed oldnoconfig to olddefconfig...

... but it didn't remove any "now internal API" from "make help". Instead it
changed the name of an external and preserved "API".

> If we worry about the compatibility just in case,
> we can keep 'silentoldconfig' as an alias as well.

Yes - but later?

In the meantime I found another instance of silentoldconfig in
Documentation/admin-guide/; posting v3 with that removed too.
I'm also adding some deprecation comments in the source.

--
Marc

2018-01-28 01:29:40

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help

2018-01-27 8:00 GMT+09:00 Marc Herbert <[email protected]>:
> Masahiro,
>
> On 17/01/2018 20:31, Masahiro Yamada wrote:
>
>> Sorry for my late reply.
>
> I think we're even now :-)
>
>>> I'd like to keep that sentence because it's there to explain the legacy and
>>> confusing "--silentoldconfig" name which unfortunately still sticks out in
>>> the *current* conf.c interface.
>>>
>>> + printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
>>> + " include/{generated/,config/} (oldconfig used to be more verbose)\n");
>>>
>>> The purpose of this sentence is to warn people that: "silentoldconfig is
>>> just archeology, so you can safely ignore it" and save them time.
>>>
>>> The alternative I considered was to entirely remove "silentconfig" not just
>>> from the Makefile's help but from the conf.c help too.
>
>>
>> Another possibility might be to rename 'silentoldconfig'.
>> instead of explaining the background in the help message.
>> [...]
>> It is difficult to suggest a clear name,
>> but 'syncconfig' is the one I came up with.
>>
>> Please suggest if you have a better idea.
>
> Look like a good idea and name to me but... for a different, bigger
> and later commit.
>
>> Commit fb16d8912db5268f29706010ecafff74b971c58d
>> renamed oldnoconfig to olddefconfig...
>
> ... but it didn't remove any "now internal API" from "make help". Instead it
> changed the name of an external and preserved "API".
>
>> If we worry about the compatibility just in case,
>> we can keep 'silentoldconfig' as an alias as well.
>
> Yes - but later?
>
> In the meantime I found another instance of silentoldconfig in
> Documentation/admin-guide/; posting v3 with that removed too.
> I'm also adding some deprecation comments in the source.
>
> --

Okay, let's go with your patch for now.



--
Best Regards
Masahiro Yamada

2018-01-28 01:42:24

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH v3] Remove silentoldconfig from help and docs; fix kconfig/conf's help

2018-01-27 7:59 GMT+09:00 Marc Herbert <[email protected]>:
> As explained by Michal Marek at https://lkml.org/lkml/2011/8/31/189
> silentoldconfig has become a misnomer. It has become an internal interface
> so remove it from "make help" and Documentation/ to stop confusing people
> using it as seen for instance at
> https://chromium-review.googlesource.com/835632 Don't remove it from
> kconfig/Makefile yet not to break any (other) tool using it.
>
> On the other hand, correct and expand its description in the help of
> the (internal) scripts/kconfig/conf.c
>
> Signed-off-by: Marc Herbert <[email protected]>
> ---
> v2: rewordings (Masahiro)
> v3: remove from Documentation/ too. Add warning comments in source.
>
> Documentation/admin-guide/README.rst | 5 -----
> scripts/kconfig/Makefile | 7 ++++---
> scripts/kconfig/conf.c | 6 ++++--
> 3 files changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/Documentation/admin-guide/README.rst b/Documentation/admin-guide/README.rst
> index 63066db39910..af5a437198d0 100644
> --- a/Documentation/admin-guide/README.rst
> +++ b/Documentation/admin-guide/README.rst
> @@ -170,11 +170,6 @@ Configuring the kernel
> your existing ./.config file and asking about
> new config symbols.
>
> - "make silentoldconfig"
> - Like above, but avoids cluttering the screen
> - with questions already answered.
> - Additionally updates the dependencies.
> -
> "make olddefconfig"
> Like above, but sets new symbols to their default
> values without prompting.
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index df6469fd3dcc..a460f9f7b733 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -34,6 +34,8 @@ config: $(obj)/conf
> nconfig: $(obj)/nconf
> $< $(silent) $(Kconfig)
>
> +# This has become an internal implementation detail and is now deprecated
> +# for external use.
> silentoldconfig: $(obj)/conf
> $(Q)mkdir -p include/config include/generated
> $(Q)test -e include/generated/autoksyms.h || \
> @@ -142,7 +144,6 @@ help:
> @echo ' oldconfig - Update current config utilising a provided .config as base'
> @echo ' localmodconfig - Update current config disabling modules not loaded'
> @echo ' localyesconfig - Update current config converting local mods to core'
> - @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
> @echo ' defconfig - New config with default from ARCH supplied defconfig'
> @echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
> @echo ' allnoconfig - New config where all options are answered with no'
> @@ -151,8 +152,8 @@ help:
> @echo ' alldefconfig - New config with all symbols set to default'
> @echo ' randconfig - New config with random answer to all options'
> @echo ' listnewconfig - List new options'
> - @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their'
> - @echo ' default value'
> + @echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
> + @echo ' default value without prompting'
> @echo ' kvmconfig - Enable additional options for kvm guest kernel support'
> @echo ' xenconfig - Enable additional options for xen dom0 and guest kernel support'
> @echo ' tinyconfig - Configure the tiniest possible kernel'
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index a8a97efd3dfc..a309ccec1000 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -457,6 +457,7 @@ static void check_conf(struct menu *menu)
> static struct option long_opts[] = {
> {"oldaskconfig", no_argument, NULL, oldaskconfig},
> {"oldconfig", no_argument, NULL, oldconfig},
> + /* Has become a misnomer, "syncconfig" would be more accurate */

I removed this line (since nobody is sure about the future),
then applied to linux-kbuild/kconfig. Thanks!



> {"silentoldconfig", no_argument, NULL, silentoldconfig},
> {"defconfig", optional_argument, NULL, defconfig},
> {"savedefconfig", required_argument, NULL, savedefconfig},
> @@ -484,8 +485,9 @@ static void conf_usage(const char *progname)
> printf(" --listnewconfig List new options\n");
> printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
> printf(" --oldconfig Update a configuration using a provided .config as base\n");
> - printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
> - printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
> + printf(" --silentoldconfig Similar to oldconfig but generates configuration in\n"
> + " include/{generated/,config/} (oldconfig used to be more verbose)\n");
> + printf(" --olddefconfig Same as oldconfig but sets new symbols to their default value\n");
> printf(" --oldnoconfig An alias of olddefconfig\n");
> printf(" --defconfig <file> New config with default defined in <file>\n");
> printf(" --savedefconfig <file> Save the minimal current configuration to <file>\n");
> --
> 2.13.6
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html



--
Best Regards
Masahiro Yamada