public inbox for linux-kbuild@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
@ 2017-12-19  1:26 Marc Herbert
  2018-01-04 17:21 ` Masahiro Yamada
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Marc Herbert @ 2017-12-19  1:26 UTC (permalink / raw)
  To: Michal Marek, Thiago Macieira, Masahiro Yamada, Josh Triplett,
	Guenter Roeck, Wayne Boyer, linux-kbuild, linux-kernel
  Cc: Marc Herbert

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 <marc.herbert@intel.com>
---
 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


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2017-12-19  1:26 [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help Marc Herbert
@ 2018-01-04 17:21 ` Masahiro Yamada
  2018-01-05 22:21   ` Marc Herbert
  2018-01-18  1:41 ` [PATCH v2] " Marc Herbert
  2018-01-26 22:59 ` [PATCH v3] Remove silentoldconfig from help and docs; " Marc Herbert
  2 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2018-01-04 17:21 UTC (permalink / raw)
  To: Marc Herbert
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek

(+CC Michal's new address)

2017-12-19 10:26 GMT+09:00 Marc Herbert <marc.herbert@intel.com>:
> 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 <marc.herbert@intel.com>
> ---
>  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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2018-01-04 17:21 ` Masahiro Yamada
@ 2018-01-05 22:21   ` Marc Herbert
  2018-01-10  7:17     ` Masahiro Yamada
  0 siblings, 1 reply; 11+ messages in thread
From: Marc Herbert @ 2018-01-05 22:21 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek

On 04/01/2018 09:21, Masahiro Yamada wrote:
> (+CC Michal's new address)
> 
> 2017-12-19 10:26 GMT+09:00 Marc Herbert <marc.herbert@intel.com>:
>> 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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2018-01-05 22:21   ` Marc Herbert
@ 2018-01-10  7:17     ` Masahiro Yamada
  2018-01-12 22:49       ` Marc Herbert
  0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2018-01-10  7:17 UTC (permalink / raw)
  To: Marc Herbert
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek

2018-01-06 7:21 GMT+09:00 Marc Herbert <Marc.Herbert@intel.com>:
> On 04/01/2018 09:21, Masahiro Yamada wrote:
>> (+CC Michal's new address)
>>
>> 2017-12-19 10:26 GMT+09:00 Marc Herbert <marc.herbert@intel.com>:
>>> 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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2018-01-10  7:17     ` Masahiro Yamada
@ 2018-01-12 22:49       ` Marc Herbert
  2018-01-18  4:31         ` Masahiro Yamada
  0 siblings, 1 reply; 11+ messages in thread
From: Marc Herbert @ 2018-01-12 22:49 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2017-12-19  1:26 [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help Marc Herbert
  2018-01-04 17:21 ` Masahiro Yamada
@ 2018-01-18  1:41 ` Marc Herbert
  2018-01-26 22:59 ` [PATCH v3] Remove silentoldconfig from help and docs; " Marc Herbert
  2 siblings, 0 replies; 11+ messages in thread
From: Marc Herbert @ 2018-01-18  1:41 UTC (permalink / raw)
  To: Masahiro Yamada, linux-kbuild, linux-kernel
  Cc: Michal Marek, Wayne Boyer, Marc Herbert

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 <marc.herbert@intel.com>
---
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


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2018-01-12 22:49       ` Marc Herbert
@ 2018-01-18  4:31         ` Masahiro Yamada
  2018-01-26 23:00           ` Marc Herbert
  0 siblings, 1 reply; 11+ messages in thread
From: Masahiro Yamada @ 2018-01-18  4:31 UTC (permalink / raw)
  To: Marc Herbert
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek, Sam Ravnborg

Hi Marc,

Sorry for my late reply.

2018-01-13 7:49 GMT+09:00 Marc Herbert <Marc.Herbert@intel.com>:
> 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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3] Remove silentoldconfig from help and docs; fix kconfig/conf's help
  2017-12-19  1:26 [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help Marc Herbert
  2018-01-04 17:21 ` Masahiro Yamada
  2018-01-18  1:41 ` [PATCH v2] " Marc Herbert
@ 2018-01-26 22:59 ` Marc Herbert
  2018-01-28  1:40   ` Masahiro Yamada
  2 siblings, 1 reply; 11+ messages in thread
From: Marc Herbert @ 2018-01-26 22:59 UTC (permalink / raw)
  To: Masahiro Yamada, linux-kbuild, linux-kernel
  Cc: Michal Marek, Wayne Boyer, Marc Herbert

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 <marc.herbert@intel.com>
---
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


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2018-01-18  4:31         ` Masahiro Yamada
@ 2018-01-26 23:00           ` Marc Herbert
  2018-01-28  1:28             ` Masahiro Yamada
  0 siblings, 1 reply; 11+ messages in thread
From: Marc Herbert @ 2018-01-26 23:00 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek, Sam Ravnborg

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help
  2018-01-26 23:00           ` Marc Herbert
@ 2018-01-28  1:28             ` Masahiro Yamada
  0 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2018-01-28  1:28 UTC (permalink / raw)
  To: Marc Herbert
  Cc: Thiago Macieira, Josh Triplett, Guenter Roeck, Wayne Boyer,
	Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek, Sam Ravnborg

2018-01-27 8:00 GMT+09:00 Marc Herbert <Marc.Herbert@intel.com>:
> 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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3] Remove silentoldconfig from help and docs; fix kconfig/conf's help
  2018-01-26 22:59 ` [PATCH v3] Remove silentoldconfig from help and docs; " Marc Herbert
@ 2018-01-28  1:40   ` Masahiro Yamada
  0 siblings, 0 replies; 11+ messages in thread
From: Masahiro Yamada @ 2018-01-28  1:40 UTC (permalink / raw)
  To: Marc Herbert
  Cc: Linux Kbuild mailing list, Linux Kernel Mailing List,
	Michal Marek, Wayne Boyer

2018-01-27 7:59 GMT+09:00 Marc Herbert <marc.herbert@intel.com>:
> 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 <marc.herbert@intel.com>
> ---
> 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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-01-28  1:41 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-19  1:26 [PATCH] Remove silentoldconfig from "make help"; fix kconfig/conf's help Marc Herbert
2018-01-04 17:21 ` Masahiro Yamada
2018-01-05 22:21   ` Marc Herbert
2018-01-10  7:17     ` Masahiro Yamada
2018-01-12 22:49       ` Marc Herbert
2018-01-18  4:31         ` Masahiro Yamada
2018-01-26 23:00           ` Marc Herbert
2018-01-28  1:28             ` Masahiro Yamada
2018-01-18  1:41 ` [PATCH v2] " Marc Herbert
2018-01-26 22:59 ` [PATCH v3] Remove silentoldconfig from help and docs; " Marc Herbert
2018-01-28  1:40   ` Masahiro Yamada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox