Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp809486pxb; Sun, 21 Feb 2021 00:50:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJxxTsVUyXjyb+gZlapADLUObJUG3ZK7apllpRfCe1KPa7Apnf8AX77RgRltZFeyA/NHmQSk X-Received: by 2002:a50:9d0b:: with SMTP id v11mr17783288ede.308.1613897430106; Sun, 21 Feb 2021 00:50:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613897430; cv=none; d=google.com; s=arc-20160816; b=KN+qYtTVE6xUu0jfUX7rkn19Tw4/roP3mr75QrjJ2uHRvR6LP58Zdzu/Ht9loLlo6X yIUWb/0mj7S9YOwzCf0cqFW8MS2q4gBXbhEFOwIH23xzWXqfLTpK+e2gaZP1yrghNyNg 02wftLBk7lrXBZbsPZ7RS8m3MDXBOgU/k53320KUMGvReevrUMJXvPDaOcmKOMo2bIP5 rPHorrHHz0XYUZmgNSv+o5NTh0Lym2DHQzDp3hbjDq9S+LOZLFi68g29/UKEsEb62r54 QZh1CiSB33vYvByFY+IMwPoX4TjqfveNbveKIz64DGlBRw3RGYSrdtBLKdGJ5HXgT3W5 eSkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature:dkim-filter; bh=BSS3eTDyWT62pmJg+UVM56P/z1CrT+hpZLIdyuBm+wQ=; b=Ia+SWyNt4115xi1YDkQK68lecLGx8lH61KL3la59xsG/fnhczO3b1BDGFOt8XxSagC CfHwPQbvW5b/LJzi7+DcKiAuUXom83TKX2/QcaJjoMNJdk37OlL8hmIn6Sym1cndyzw3 +9P97CwsLZgCcAq1RImiSm/qcUokg8SUOkoWn2i3c353zOlX6WJoRWBwXXwCTvMgEcxR uNqRBLRW2C+vJQHJILiclyURbqKjC5hIeuwUIE8sZysNvsvrwt3/iuzH0HKlkWEdrSuW V1/IpTKEbueZhKJeO/ye1NA/6pJGn42htBzmcYXXd+22Iwhx4sh43hHYPBbBy/NSAsWL TFgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=j52JnoT5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q18si10623639eji.501.2021.02.21.00.50.06; Sun, 21 Feb 2021 00:50:30 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=j52JnoT5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229663AbhBUIsq (ORCPT + 99 others); Sun, 21 Feb 2021 03:48:46 -0500 Received: from conssluserg-03.nifty.com ([210.131.2.82]:63306 "EHLO conssluserg-03.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229605AbhBUIso (ORCPT ); Sun, 21 Feb 2021 03:48:44 -0500 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (authenticated) by conssluserg-03.nifty.com with ESMTP id 11L8loiM000725; Sun, 21 Feb 2021 17:47:50 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-03.nifty.com 11L8loiM000725 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1613897270; bh=BSS3eTDyWT62pmJg+UVM56P/z1CrT+hpZLIdyuBm+wQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=j52JnoT5lZSElu5nDxytNVEn5XtetIjD9OGyZf9zm+uhgvvi3wm93mKIzORDkfgqq 18qcnVzCaJJKLa6D9hzvikzb54L6job8erIgBhuWor5xrQhj8V0UG1qb3akKqLmQpr 4mHeixYXbawguhPOYMmlyfrw8tuxBkgS174Gl2lQSMlfS/fPByIQ5Eno02cNGcPSbC Uqk4sPMOt0vjqA6BLuVqbounFQDda79UfFaTB2BXA2Xk7psi0ZNcUqN0ndokpS2FD7 OUBrS6V27W3AszszTtcOQHnHbczeoDBv4SrIoJIaCID/9a2DwZVc7W4uZiS9R038kP dEeuTOY+SKngw== X-Nifty-SrcIP: [209.85.210.170] Received: by mail-pf1-f170.google.com with SMTP id t29so4680272pfg.11; Sun, 21 Feb 2021 00:47:50 -0800 (PST) X-Gm-Message-State: AOAM533PFAh4eaRxUJzatmyQ3YO6JfYSAPGkqlhC5GeoMpsSkzmJwOwU fEJAZWpJguubOJZYIbwqCv4NpT5Zzz2r8NkE9p8= X-Received: by 2002:a63:cc4f:: with SMTP id q15mr617682pgi.47.1613897269658; Sun, 21 Feb 2021 00:47:49 -0800 (PST) MIME-Version: 1.0 References: <20210215181511.2840674-1-mic@digikod.net> <20210215181511.2840674-3-mic@digikod.net> In-Reply-To: <20210215181511.2840674-3-mic@digikod.net> From: Masahiro Yamada Date: Sun, 21 Feb 2021 17:47:12 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 2/3] kconfig: Ask user if string needs to be changed when dependency changed To: =?UTF-8?B?TWlja2HDq2wgU2FsYcO8bg==?= Cc: James Morris , "Serge E . Hallyn" , Casey Schaufler , Nicolas Iooss , Linux Kbuild mailing list , Linux Kernel Mailing List , linux-security-module , =?UTF-8?B?TWlja2HDq2wgU2FsYcO8bg==?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 16, 2021 at 3:14 AM Micka=C3=ABl Sala=C3=BCn = wrote: > > From: Micka=C3=ABl Sala=C3=BCn > > Content of string configuration may depend on related kernel > configurations. Modify oldconfig and syncconfig to inform users about > possible required configuration update and give them the opportunity to > update it: > * if dependencies of this string has changed (e.g. enabled or disabled), > * and if the current value of this string is different than the (new) > default one. > > This is particularly relevant for CONFIG_LSM which contains a list of > LSMs enabled at boot, but users will not have a chance to update this > list with a make oldconfig. If CONFIG_LSM already exists in the .config, oldconfig does not show a prompt. This is the expected behavior. You are trying to fix your problem in a wrong way. NACK. > > Cc: Casey Schaufler > Cc: James Morris > Cc: Masahiro Yamada > Cc: Serge E. Hallyn > Signed-off-by: Micka=C3=ABl Sala=C3=BCn > Link: https://lore.kernel.org/r/20210215181511.2840674-3-mic@digikod.net > --- > scripts/kconfig/conf.c | 37 ++++++++++++++++++++++++++++++++++--- > 1 file changed, 34 insertions(+), 3 deletions(-) > > diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c > index 18a233d27a8d..8633dacd39a9 100644 > --- a/scripts/kconfig/conf.c > +++ b/scripts/kconfig/conf.c > @@ -82,6 +82,26 @@ static void xfgets(char *str, int size, FILE *in) > printf("%s", str); > } > > +static bool may_need_string_update(struct symbol *sym, const char *def) > +{ > + const struct symbol *dep_sym; > + const struct expr *e; > + > + if (sym->type !=3D S_STRING) > + return false; > + if (strcmp(def, sym_get_string_default(sym)) =3D=3D 0) > + return false; > + /* > + * The user may want to synchronize the content of a string relat= ed to > + * changed dependencies (e.g. CONFIG_LSM). > + */ > + expr_list_for_each_sym(sym->dir_dep.expr, e, dep_sym) { > + if (dep_sym->flags & SYMBOL_CHANGED) > + return true; > + } > + return false; > +} > + > static int conf_askvalue(struct symbol *sym, const char *def) > { > enum symbol_type type =3D sym_get_type(sym); > @@ -102,7 +122,7 @@ static int conf_askvalue(struct symbol *sym, const ch= ar *def) > switch (input_mode) { > case oldconfig: > case syncconfig: > - if (sym_has_value(sym)) { > + if (sym_has_value(sym) && !may_need_string_update(sym, de= f)) { > printf("%s\n", def); > return 0; > } > @@ -137,8 +157,19 @@ static int conf_string(struct menu *menu) > printf("%*s%s ", indent - 1, "", menu->prompt->text); > printf("(%s) ", sym->name); > def =3D sym_get_string_value(sym); > - if (def) > - printf("[%s] ", def); > + if (def) { > + if (may_need_string_update(sym, def)) { > + indent +=3D 2; > + printf("\n%*sDefault value is [%s]\n", > + indent - 1, "", > + sym_get_string_default(sy= m)); > + printf("%*sCurrent value is [%s] ", > + indent - 1, "", def); > + indent -=3D 2; > + } else { > + printf("[%s] ", def); > + } > + } > if (!conf_askvalue(sym, def)) > return 0; > switch (line[0]) { > -- > 2.30.0 > --=20 Best Regards Masahiro Yamada