From: Ole Schuerks <ole0811sch@gmail.com>
To: linux-kbuild@vger.kernel.org
Cc: ole0811sch@gmail.com, jude.gyimah@rub.de, thorsten.berger@rub.de,
deltaone@debian.org, jan.sollmann@rub.de, mcgrof@kernel.org,
masahiroy@kernel.org, linux-kernel@vger.kernel.org,
nathan@kernel.org, nicolas@fjasle.eu
Subject: [PATCH v5 11/11] kconfig: Add documentation for the conflict resolver
Date: Fri, 20 Sep 2024 10:56:28 +0200 [thread overview]
Message-ID: <20240920085628.51863-12-ole0811sch@gmail.com> (raw)
In-Reply-To: <20240920085628.51863-1-ole0811sch@gmail.com>
Add documentation for the interface of the conflict resolver and
instructions for installing PicoSAT. The target audience is everyone
using xconfig, in particular, kernel developers, end users, system
administrators, and distributors.
Signed-off-by: Ole Schuerks <ole0811sch@gmail.com>
---
Documentation/kbuild/kconfig.rst | 53 ++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
diff --git a/Documentation/kbuild/kconfig.rst b/Documentation/kbuild/kconfig.rst
index fc4e845bc249..6a606c83d8e9 100644
--- a/Documentation/kbuild/kconfig.rst
+++ b/Documentation/kbuild/kconfig.rst
@@ -285,6 +285,59 @@ Searching in xconfig:
You can also enter a different search string without having
to return to the main menu.
+Conflict resolution
+-------------------
+
+ xconfig has support for conflict resolution. A conflict is in this case any
+ situation where you want to change the value of a symbol, but
+ unfulfilled dependencies prevent this. You can create a list of symbols
+ and their desired values, and the conflict resolver will calculate a series
+ of changes in xconfig, which allows setting the symbols to their desired
+ values.
+
+Requirements:
+
+ To use the conflict resolver, PicoSAT needs to be installed as a library.
+
+ Debian-based distributions::
+
+ sudo apt install picosat
+
+ Fedora::
+
+ sudo dnf install picosat
+
+ Other::
+
+ sudo scripts/kconfig/install-picosat.sh
+
+Usage:
+
+ To add a symbol to the list of symbols whose values should be changed (that
+ is, the 'conflict'), you select the symbol in the main view of xconfig. With
+ the button "Add symbol" you add the symbol to the conflict, which makes it
+ appear in a table below the main view. You need to switch to "Show Prompt
+ Options" under the tab "Option" if the symbol is hidden in the main view.
+ You can set the desired value of a symbol by either clicking on the
+ corresponding cell in the column "Wanted Value," or by selecting the
+ symbol's row and using one of the buttons above the table.
+
+ Once the 'conflict' is declared, the solutions can be calculated using the
+ button "Calculate Fixes". Once calculated, they appear in the menu on the
+ bottom right. You can select a solution from up to three candidates. The
+ solutions are presented in a table that shows which values the symbols need
+ to have to resolve the conflict. Using the button "Apply selected solution"
+ the indicated changes can automatically be applied. If you want to change
+ the values manually, the symbols are color-coded to indicate the order in
+ which they need to be set: Green means that a symbol is already set to the
+ calculated value. Gray means that a symbol cannot yet be set to the
+ calculated value and that other symbols' values need to be changed first.
+ Red means that a symbol is not yet set to the calculated value, but that you
+ can set it to the calculated value.
+
+ Note that in rare cases the conflict resolver cannot resolve the conflict
+ even when a solution exists, it suggests unnecessary changes, or it suggests
+ changes that do not resolve the conflict.
gconfig
=======
--
2.39.2
next prev parent reply other threads:[~2024-09-20 8:57 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-20 8:56 [PATCH v5 00/11] kbuild, kconfig: Add support for conflict resolution Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 01/11] kconfig: Add PicoSAT interface Ole Schuerks
2024-09-20 11:11 ` Luis Chamberlain
2024-09-20 8:56 ` [PATCH v5 02/11] kbuild: Add list_is_{first,last}, list_size, list_at_index, list_for_each_from Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 03/11] kconfig: Add definitions Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 04/11] kconfig: Add files for building constraints Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 05/11] kconfig: Add files for handling expressions Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 06/11] kconfig: Add files for RangeFix Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 07/11] kconfig: Add files with utility functions Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 08/11] kconfig: Add tools Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 09/11] kconfig: Add xconfig-modifications Ole Schuerks
2024-09-20 8:56 ` [PATCH v5 10/11] kconfig: Add loader.gif Ole Schuerks
2024-09-20 8:56 ` Ole Schuerks [this message]
2025-01-13 16:35 ` [PATCH v5 11/11] kconfig: Add documentation for the conflict resolver Brendan Jackman
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=20240920085628.51863-12-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=nathan@kernel.org \
--cc=nicolas@fjasle.eu \
--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