kumquat-buildroot/docs/manual
Yann E. MORIN 0aed4c2dae linux: allow packages to set kernel config options
Currently, the linux kernel will apply some fixups on its .config file,
based on whether some packages are enabled or not. That list of
conditional fixups is getting bigger and bigger with each new package
that needs such fixups, culminating with the pending firewalld one [0].

Furthermore, these fixups are not accessible to packages in br2-external
trees.

Add a new per-package variable, that packages may set to the commands to
run to fixup the kernel .config file, which is added at the end of the
linux' own fixups.

This opens the possibility to write things like;

    define FOO_LINUX_CONFIG_FIXUPS
        $(call KCONFIG_ENABLE_OPT,BLA)
    endef

Of course, it also opens the way to run arbitrary commands in there, but
any alternative that would be declarative only, such as a list of
options to enable or disable (as an example):

    FOO_LINUX_CONFIG_FIXUPS = +BAR -FOO +BUZ="value"

.. is not very nice either, and such lists fall flat when a value would
have a space.

For packages that we have in-tree, we can ensure they won't play foul
with their _LINUX_CONFIG_FIXUPS. For packages in br2-external trees,
there's nothing we can do; users already have the opportunity to hack
into the linux configure process by providing LINUX_PRE_CONFIGURE_HOOKS
or LINUX_POST_CONFIGURE_HOOKS anyway...

.. which brings the question of why we don't use that to implement the
per-package fixups. We don't, because _PRE or _POST_CONFIGURE_HOOKS are
run after we run 'make oldconfig' to sanitise the mangled .config.

[0] http://lists.busybox.net/pipermail/buildroot/2020-March/278683.html

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-05-01 15:50:28 +02:00
..
adding-board-support.txt manual/developer guide: minor rework of 'adding board support' section 2014-09-21 19:41:12 +02:00
adding-packages-asciidoc.txt core: drop now-useless prepare-kconfig rule 2019-08-03 21:51:40 +02:00
adding-packages-autotools.txt manual: Remove trailing space 2014-11-22 20:13:16 +01:00
adding-packages-cargo.txt docs/manual: fix Config.in option that cargo packages must depend on 2019-10-10 23:28:17 +02:00
adding-packages-cmake.txt pkg-cmake: allow to build package in a subdirectory 2015-03-13 22:34:43 +01:00
adding-packages-conclusion.txt manual: use one-line titles instead of two-line titles (trivial) 2014-05-02 10:27:59 +02:00
adding-packages-directory.txt docs/manual: fields in hash files must be separated by two sapces 2020-02-05 18:06:12 +01:00
adding-packages-generic.txt linux: allow packages to set kernel config options 2020-05-01 15:50:28 +02:00
adding-packages-gettext.txt docs/manual: update gettext details 2017-07-05 01:37:38 +02:00
adding-packages-golang.txt package/pkg-golang: add support for building host packages 2019-03-17 17:21:10 +01:00
adding-packages-hooks.txt manual: patches are not applied for SITE_METHOD = local 2017-07-09 17:25:48 +02:00
adding-packages-kconfig.txt docs/manual: update pkg-kconfig doc about <pkg>-diff-config 2019-08-05 22:37:01 +02:00
adding-packages-kernel-module.txt docs/manual: refer to SPDX License List 2017-04-01 15:11:18 +02:00
adding-packages-linux-kernel-spec-infra.txt package/linux-tools: change method for including linux-tool sub-makefiles 2017-07-19 21:16:38 +02:00
adding-packages-luarocks.txt package/pkg-luarocks.mk: add support of host-luarocks-package 2020-04-12 14:48:18 +02:00
adding-packages-meson.txt package/pkg-meson.mk: add FOO_MESON_EXTRA_PROPERTIES 2020-03-22 22:37:34 +01:00
adding-packages-perl.txt scancpan: add PERL_FOO_DISTNAME in perl-foo.mk 2018-10-24 00:22:13 +01:00
adding-packages-python.txt docs: adding-packages-python: don't mention distutilscross 2020-04-28 19:17:54 +02:00
adding-packages-qmake.txt package/pkg-qmake: new qmake package infrastructure 2020-03-09 22:26:42 +01:00
adding-packages-rebar.txt docs/manual: document <pkg>_KEEP_DEPENDENCIES in rebar-package infra 2018-12-09 17:24:29 +01:00
adding-packages-tips.txt package/libcurl: rename curl binary config symbol 2020-02-16 11:20:23 +01:00
adding-packages-virtual.txt manual: get rid of the lists of packages 2016-09-19 19:32:59 +02:00
adding-packages-waf.txt package/pkg-waf: add support for <pkg>_SUBDIR 2019-02-06 17:21:25 +01:00
adding-packages.txt package/pkg-qmake: new qmake package infrastructure 2020-03-09 22:26:42 +01:00
advanced.txt manual: high-level restructuring 2014-08-17 21:09:52 +02:00
appendix.txt docs/manual: add appendix about migration from older versions 2017-09-06 22:13:17 +02:00
beyond-buildroot.txt docs/manual/beyond-buildroot: additional minor fixes 2015-07-10 19:17:02 +02:00
ccache-support.txt ccache: support changing the output directory 2015-10-04 18:22:21 +02:00
common-usage.txt docs/manual: small typo fixes and cleanup 2020-03-28 19:45:28 +01:00
configure-other-components.txt docs/manual: add U-Boot configuration 2015-07-19 14:47:11 +02:00
configure.txt docs/manual/configure.txt: explain how to reuse a Buildroot toolchain as external toolchain 2019-10-27 16:29:07 +01:00
contribute.txt docs/manual: run-tests test framework 2020-01-14 17:29:23 +01:00
customize-configuration.txt docs/manual: add U-Boot configuration 2015-07-19 14:47:11 +02:00
customize-device-permission-tables.txt manual: remove the extra whitespaces 2014-12-20 15:55:54 +01:00
customize-directory-structure.txt docs/manual: add external.desc to list of files needed for BR2_EXTERNAL 2018-11-02 21:30:13 +01:00
customize-outside-br.txt linux: allow br2-externals to provide their own Linux extensions 2019-09-28 22:12:04 +02:00
customize-packages.txt docs/manual: document the br2-external NAME 2016-10-16 13:01:02 +02:00
customize-patches.txt docs/manual: small typo fixes and cleanup 2020-03-28 19:45:28 +01:00
customize-post-image.txt manual/user guide/customization: rework section on rootfs customization 2014-08-31 22:22:43 +02:00
customize-quick-guide.txt docs/manual: add U-Boot configuration 2015-07-19 14:47:11 +02:00
customize-rootfs.txt docs/manual: small typo fixes and cleanup 2020-03-28 19:45:28 +01:00
customize-users-tables.txt manual/user guide/customization: add section on users tables 2014-09-21 19:41:12 +02:00
customize.txt manual/user guide/customization: rework 'step-by-step instructions' 2014-09-21 19:41:12 +02:00
debugging-buildroot.txt docs/manual: add list of instrumentation steps 2015-05-05 22:47:32 +02:00
developers.txt docs/manual: fix typo get-developer (-> get-developers) 2019-01-03 22:44:43 +01:00
download-infra.txt manual: use one-line titles instead of two-line titles (trivial) 2014-05-02 10:27:59 +02:00
download-location.txt docs/manual: centralize recommendations about BR2_DL_DIR 2017-02-07 14:55:02 +01:00
eclipse-integration.txt manual/user guide: high-level restructuring 2014-08-21 15:39:32 +02:00
faq-troubleshooting.txt docs/manual: add details about top-level parallel build support 2019-11-29 15:42:22 +01:00
getting.txt docs/manual: misc improvements to Vagrant usage documentation 2016-02-08 13:33:43 +01:00
how-buildroot-works.txt manual/user guide: high-level restructuring 2014-08-21 15:39:32 +02:00
introduction.txt manual: high-level restructuring 2014-08-17 21:09:52 +02:00
known-issues.txt docs: known issues no longer valid 2017-07-01 12:56:21 +02:00
legal-notice.txt docs/manual/legal-notice.txt: update list of non-saved material 2020-01-18 18:38:40 +01:00
make-tips.txt docs/manual: document new behaviour of 'make printvars' 2019-03-12 21:59:00 +01:00
makedev-syntax.txt makedevs: add capability support 2016-06-30 12:13:38 +02:00
makeusers-syntax.txt scripts/mkusers: allow users with no password value set 2015-06-09 23:13:41 +02:00
manual.mk manual: get rid of the lists of packages 2016-09-19 19:32:59 +02:00
manual.txt Makefile, manual, website: Bump copyright year 2020-01-29 22:31:02 +01:00
migrating.txt docs/manual: add appendix about $(HOST_DIR)/usr 2017-09-06 22:13:40 +02:00
package-make-target.txt docs/manual: update package-make-target.txt with more targets 2019-01-29 00:32:11 +01:00
patch-policy.txt docs: clarify <packagename>_PATCH behaviour 2017-09-24 14:43:37 +02:00
prerequisite.txt docs/manual/prerequisite.txt: 'make xconfig' uses Qt5, not Qt4 2019-10-27 15:01:51 +01:00
quickstart.txt Merge branch 'next' 2019-12-02 09:39:41 +01:00
rebuilding-packages.txt docs/manual: fix typo 2020-01-02 09:28:47 +01:00
resources.txt docs: use lists.buildroot.org to refer to the mailman archives 2015-09-14 14:50:40 +02:00
using-buildroot-debugger.txt manual: remove references to host/usr paths 2017-07-05 16:06:28 +02:00
using-buildroot-development.txt docs: use-case for un-ignoring VCS directories and overridden source dir 2019-06-10 16:49:51 +02:00
using-buildroot-toolchain.txt core/sdk: generate the SDK tarball ourselves 2018-08-14 16:03:48 +02:00
writing-rules.txt docs/manual: small typo fixes and cleanup 2020-03-28 19:45:28 +01:00