From: Ole Schuerks <ole0811sch@gmail.com>
To: mcgrof@kernel.org
Cc: deltaone@debian.org, jan.sollmann@rub.de, jude.gyimah@rub.de,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
masahiroy@kernel.org, ole0811sch@gmail.com,
thorsten.berger@rub.de
Subject: Re: [PATCH v4 02/12] kconfig: Add picosat.c (1/3)
Date: Thu, 29 Aug 2024 23:23:52 +0200 [thread overview]
Message-ID: <20240829212352.38083-1-ole0811sch@gmail.com> (raw)
In-Reply-To: <ZsPBfBQXNZmbNfpE@bombadil.infradead.org>
On 8/20/24 00:04, Luis Chamberlain wrote:
> On Fri, Aug 16, 2024 at 12:20:01PM +0200, Ole Schuerks wrote:
>> What's the best way of letting the user know that they need to
>> install PicoSAT if they want to use the conflict resolver?
>> My idea would
>> be to notify the user via the GUI when they try to use the interface of
>> the conflict resolver without having PicoSAT installed. Do you see any
>> issues with that/do you prefer some alternative approach?
>
> Conflicts don't happen often and we already have a printf which happens when
> one does, my recommendation would be that we simply opt-in for the
> resolver if the user has the requirements installed. Otherwise we only
> inform the user to install it if a conflict comes up. Documentation can
> also be enhanced to describe this functionality / support.
>
> Luis
There's perhaps a misunderstanding here. I think you are talking about the
rare scenario where a symbol is selected despite the dependencies not being
met (where the printf tells you that). But ConfigFix isn't only useful in
this case. We believe that the most common use will be to enable or disable
symbols with missing dependencies that prevent directly setting the
symbols' values via the GUI.
For example, when one symbol depends on a second symbol, and the second
symbol is set to N, then the first symbol cannot directly be set to M or Y
(assuming it isn't already selected by some symbol). One case of such a
constellation is DEBUG_MISC, which depends on DEBUG_KERNEL. ConfigFix can
identify that DEBUG_KERNEL must be set to Y in order to set DEBUG_MISC to
Y. Conflicts can also occur when trying to lower the value of a symbol: If
a symbol is selected by a second symbol, and the second symbol is set to Y,
then the first symbol can't directly be set to N or M. One such case is
EXPERT, which selects DEBUG_KERNEL.
So, the conflict resolution is useful when users want to quickly enable
some grayed out symbols. If one has to install some external package first,
then that might diminish the usefulness. While there are extreme cases
where it can take hours to manually identify all the dependencies, first
having to build PicoSAT might take longer than manually resolving the
conflict. Many users might then never install PicoSAT to try out the
conflict resolver, even if they would benefit from it.
So the question is whether using PicoSAT as an external library is worth
the portability issues and effort, and whether it wouldn't make more sense
to directly include the PicoSAT source file.
Otherwise, if we go with not including the PicoSAT source, then one could
inform users about the missing package in the GUI, like this:
When PicoSAT is installed:
https://drive.google.com/file/d/1asBfLp1qfOq94a69ZLz2bf3VsUv4IYwL/view?usp=sharing
When PicoSAT is not installed:
https://drive.google.com/file/d/1ytUppyFPtH_G8Gr22X0JAf5wIne-FiJD/view?usp=sharing
Let us know what you think. Include PicoSAT directly as a source or not,
and then inform the user via the GUI?
next prev parent reply other threads:[~2024-08-29 21:24 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-10 6:52 [PATCH v4 00/12] kconfig: Add support for conflict resolution Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 01/12] kconfig: Add picosat.h Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 02/12] kconfig: Add picosat.c (1/3) Ole Schuerks
2024-08-12 8:41 ` Masahiro Yamada
2024-08-16 10:20 ` Ole Schuerks
2024-08-19 22:04 ` Luis Chamberlain
2024-08-29 21:23 ` Ole Schuerks [this message]
2024-09-05 8:55 ` Luis Chamberlain
2024-09-20 9:07 ` Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 03/12] kconfig: Add picosat.c (2/3) Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 04/12] kconfig: Add picosat.c (3/3) Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 05/12] kconfig: Add definitions Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 06/12] kconfig: Add files for building constraints Ole Schuerks
2024-08-12 8:49 ` Masahiro Yamada
2024-08-12 10:00 ` Masahiro Yamada
2024-07-10 6:52 ` [PATCH v4 07/12] kconfig: Add files for handling expressions Ole Schuerks
2024-08-12 8:46 ` Masahiro Yamada
2024-08-16 10:23 ` Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 08/12] kconfig: Add files for RangeFix Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 09/12] kconfig: Add files with utility functions Ole Schuerks
2024-08-12 8:48 ` Masahiro Yamada
2024-07-10 6:52 ` [PATCH v4 10/12] kconfig: Add tools Ole Schuerks
2024-07-10 6:52 ` [PATCH v4 11/12] kconfig: Add xconfig-modifications Ole Schuerks
2024-08-12 9:28 ` Masahiro Yamada
2024-07-10 6:52 ` [PATCH v4 12/12] kconfig: Add loader.gif Ole Schuerks
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240829212352.38083-1-ole0811sch@gmail.com \
--to=ole0811sch@gmail.com \
--cc=deltaone@debian.org \
--cc=jan.sollmann@rub.de \
--cc=jude.gyimah@rub.de \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=mcgrof@kernel.org \
--cc=thorsten.berger@rub.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox