* [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments
@ 2015-04-28 14:34 Floris Bos
2015-04-28 14:34 ` [Buildroot] [PATCH v2 2/5] linux: add option to specify " Floris Bos
` (6 more replies)
0 siblings, 7 replies; 16+ messages in thread
From: Floris Bos @ 2015-04-28 14:34 UTC (permalink / raw)
To: buildroot
Adds functionality to the kconfig infrastructure to merge additional
configuration fragment files to the main configuration file of
kconfig packages, using support/kconfig/merge_config.sh
Typical use-case is when you want your configuration to be
kept in sync with an upstream (def)config file, but do require
some minor local modifications.
Disables -update-config and -update-defconfig targets when
fragment files are set.
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
v2:
- use shell commands to print error message when
update-(def)config target is used while fragment files are set.
- document changes to kconfig infrastructure.
---
docs/manual/adding-packages-kconfig.txt | 11 +++++++++++
package/pkg-kconfig.mk | 14 ++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/docs/manual/adding-packages-kconfig.txt b/docs/manual/adding-packages-kconfig.txt
index e87d393..dc9ea11 100644
--- a/docs/manual/adding-packages-kconfig.txt
+++ b/docs/manual/adding-packages-kconfig.txt
@@ -36,6 +36,12 @@ This snippet creates the following make targets:
* +foo-update-config+, which copies the configuration back to the source
configuration file.
+ It is not possible to use this target when fragment files are set.
+
+* +foo-update-defconfig+, which copies the configuration back to the source
+ configuration file. The configuration file will only list the
+ options that differ from the default values.
+ It is not possible to use this target when fragment files are set.
and ensures that the source configuration file is copied to the build
directory at the right moment.
@@ -46,6 +52,11 @@ be set to suit the needs of the package under consideration:
* +FOO_KCONFIG_EDITORS+: a space-separated list of kconfig editors to
support, for example 'menuconfig xconfig'. By default, 'menuconfig'.
+* +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration
+ fragment files that are merged to the main configuration file.
+ Fragment files are typically used when there is a desire to stay in sync
+ with an upstream (def)config file, with some minor modifications.
+
* +FOO_KCONFIG_OPTS+: extra options to pass when calling the kconfig
editors. This may need to include '$(FOO_MAKE_OPTS)', for example. By
default, empty.
diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
index 8361064..21fbfdb 100644
--- a/package/pkg-kconfig.mk
+++ b/package/pkg-kconfig.mk
@@ -35,18 +35,20 @@ $(call inner-generic-package,$(1),$(2),$(3),$(4))
$(2)_KCONFIG_EDITORS ?= menuconfig
$(2)_KCONFIG_OPTS ?=
$(2)_KCONFIG_FIXUP_CMDS ?=
+$(2)_KCONFIG_FRAGMENT_FILES ?=
# The config file could be in-tree, so before depending on it the package should
# be extracted (and patched) first
$$($(2)_KCONFIG_FILE): | $(1)-patch
-# The .config file is obtained by copying it from the specified source
-# configuration file, after the package has been patched.
+# The specified source configuration file and any additional configuration file
+# fragments are merged together to .config, after the package has been patched.
# Since the file could be a defconfig file it needs to be expanded to a
# full .config first. We use 'make oldconfig' because this can be safely
# done even when the package does not support defconfigs.
-$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE)
- $$(INSTALL) -m 0644 $$($(2)_KCONFIG_FILE) $$($(2)_DIR)/.config
+$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
+ support/kconfig/merge_config.sh -m -O $$(@D) \
+ $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
@yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
$$($(2)_KCONFIG_OPTS) oldconfig
@@ -87,6 +89,8 @@ $(1)-savedefconfig: $$($(2)_DIR)/.stamp_kconfig_fixup_done
# Even though we could use 'cp --preserve-timestamps' here, the separate
# cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig.
$(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
+ $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
+ echo "Unable to perform $(1)-update-config when fragment files are set"; exit 1)
cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
@@ -95,6 +99,8 @@ $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
# $(1)-update-config, the reference for 'touch' is _not_ the file from which
# we copy.
$(1)-update-defconfig: $(1)-savedefconfig
+ $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
+ echo "Unable to perform $(1)-update-defconfig when fragment files are set"; exit 1)
cp -f $$($(2)_DIR)/defconfig $$($(2)_KCONFIG_FILE)
touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
--
2.1.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 2/5] linux: add option to specify config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
@ 2015-04-28 14:34 ` Floris Bos
2015-05-02 10:39 ` Arnout Vandecappelle
2015-05-02 12:44 ` Arnout Vandecappelle
2015-04-28 14:34 ` [Buildroot] [PATCH v2 3/5] busybox: " Floris Bos
` (5 subsequent siblings)
6 siblings, 2 replies; 16+ messages in thread
From: Floris Bos @ 2015-04-28 14:34 UTC (permalink / raw)
To: buildroot
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
linux/Config.in | 6 ++++++
linux/linux.mk | 1 +
2 files changed, 7 insertions(+)
diff --git a/linux/Config.in b/linux/Config.in
index 0ab9f26..ac483c1 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -164,6 +164,12 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
Note: this can be a defconfig file or a complete .config file,
which can later be saved back with make linux-update-(def)config.
+config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
+ string "Additional configuration fragment files"
+ help
+ A space-separated list of kernel configuration fragment files,
+ that will be merged to the main kernel configuration file.
+
#
# Binary format
#
diff --git a/linux/linux.mk b/linux/linux.mk
index 0c348da..694061e 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -175,6 +175,7 @@ KERNEL_SOURCE_CONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
endif
LINUX_KCONFIG_FILE = $(KERNEL_SOURCE_CONFIG)
+LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))
LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
--
2.1.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 3/5] busybox: add option to specify config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
2015-04-28 14:34 ` [Buildroot] [PATCH v2 2/5] linux: add option to specify " Floris Bos
@ 2015-04-28 14:34 ` Floris Bos
2015-05-02 12:47 ` Arnout Vandecappelle
2015-04-28 14:34 ` [Buildroot] [PATCH v2 4/5] uclibc: " Floris Bos
` (4 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Floris Bos @ 2015-04-28 14:34 UTC (permalink / raw)
To: buildroot
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
package/busybox/Config.in | 6 ++++++
package/busybox/busybox.mk | 1 +
2 files changed, 7 insertions(+)
diff --git a/package/busybox/Config.in b/package/busybox/Config.in
index b4f949f..6847a60 100644
--- a/package/busybox/Config.in
+++ b/package/busybox/Config.in
@@ -20,6 +20,12 @@ config BR2_PACKAGE_BUSYBOX_CONFIG
Most people will just use the default BusyBox configuration file.
+config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES
+ string "Additional BusyBox configuration fragment files"
+ help
+ A space-separated list of configuration fragment files,
+ that will be merged to the main BusyBox configuration file.
+
config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
bool "Show packages that are also provided by busybox"
help
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index 1ce508a..090e174 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -46,6 +46,7 @@ ifndef BUSYBOX_CONFIG_FILE
endif
BUSYBOX_KCONFIG_FILE = $(BUSYBOX_CONFIG_FILE)
+BUSYBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES))
BUSYBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig
BUSYBOX_KCONFIG_OPTS = $(BUSYBOX_MAKE_OPTS)
--
2.1.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 4/5] uclibc: add option to specify config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
2015-04-28 14:34 ` [Buildroot] [PATCH v2 2/5] linux: add option to specify " Floris Bos
2015-04-28 14:34 ` [Buildroot] [PATCH v2 3/5] busybox: " Floris Bos
@ 2015-04-28 14:34 ` Floris Bos
2015-05-02 12:55 ` Arnout Vandecappelle
2015-04-28 14:34 ` [Buildroot] [PATCH v2 5/5] barebox: " Floris Bos
` (3 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Floris Bos @ 2015-04-28 14:34 UTC (permalink / raw)
To: buildroot
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
package/uclibc/Config.in | 6 ++++++
package/uclibc/uclibc.mk | 1 +
2 files changed, 7 insertions(+)
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index b5525e5..dd23853 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -86,6 +86,12 @@ config BR2_UCLIBC_CONFIG
See also docs/README in this package.
If unsure, use the default.
+config BR2_UCLIBC_CONFIG_FRAGMENT_FILES
+ string "Additional uClibc configuration fragment files"
+ help
+ A space-separated list of configuration fragment files,
+ that will be merged to the main uClibc configuration file.
+
config BR2_TOOLCHAIN_BUILDROOT_INET_RPC
bool "Enable RPC support"
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index ce9b2b4..b9dce7e 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -42,6 +42,7 @@ UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
endif
UCLIBC_KCONFIG_FILE = $(UCLIBC_CONFIG_FILE)
+UCLIBC_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_UCLIBC_CONFIG_FRAGMENT_FILES))
UCLIBC_KCONFIG_OPTS = \
$(UCLIBC_MAKE_FLAGS) \
--
2.1.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 5/5] barebox: add option to specify config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
` (2 preceding siblings ...)
2015-04-28 14:34 ` [Buildroot] [PATCH v2 4/5] uclibc: " Floris Bos
@ 2015-04-28 14:34 ` Floris Bos
2015-05-02 12:55 ` Arnout Vandecappelle
2015-05-02 10:37 ` [Buildroot] [PATCH v2 1/5] kconfig-package: add support for " Arnout Vandecappelle
` (2 subsequent siblings)
6 siblings, 1 reply; 16+ messages in thread
From: Floris Bos @ 2015-04-28 14:34 UTC (permalink / raw)
To: buildroot
Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
---
boot/barebox/Config.in | 6 ++++++
boot/barebox/barebox.mk | 1 +
2 files changed, 7 insertions(+)
diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
index 48431bd..dbe79e9 100644
--- a/boot/barebox/Config.in
+++ b/boot/barebox/Config.in
@@ -91,6 +91,12 @@ config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE
help
Path to the barebox configuration file
+config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES
+ string "Additional configuration fragment files"
+ help
+ A space-separated list of configuration fragment files,
+ that will be merged to the main Barebox configuration file.
+
config BR2_TARGET_BAREBOX_BAREBOXENV
bool "bareboxenv tool in target"
help
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
index 54f52bb..5095ffa 100644
--- a/boot/barebox/barebox.mk
+++ b/boot/barebox/barebox.mk
@@ -60,6 +60,7 @@ BAREBOX_SOURCE_CONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE))
endif
BAREBOX_KCONFIG_FILE = $(BAREBOX_SOURCE_CONFIG)
+BAREBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES))
BAREBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
BAREBOX_KCONFIG_OPTS = $(BAREBOX_MAKE_FLAGS)
--
2.1.4
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
` (3 preceding siblings ...)
2015-04-28 14:34 ` [Buildroot] [PATCH v2 5/5] barebox: " Floris Bos
@ 2015-05-02 10:37 ` Arnout Vandecappelle
2015-05-02 11:30 ` Floris Bos
2015-05-02 12:43 ` Arnout Vandecappelle
2015-05-21 21:52 ` Thomas Petazzoni
6 siblings, 1 reply; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 10:37 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Adds functionality to the kconfig infrastructure to merge additional
> configuration fragment files to the main configuration file of
> kconfig packages, using support/kconfig/merge_config.sh
>
> Typical use-case is when you want your configuration to be
> kept in sync with an upstream (def)config file, but do require
> some minor local modifications.
>
> Disables -update-config and -update-defconfig targets when
> fragment files are set.
>
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
[snip]
> +* +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration
> + fragment files that are merged to the main configuration file.
> + Fragment files are typically used when there is a desire to stay in sync
> + with an upstream (def)config file, with some minor modifications.
I should have noticed this in the first iteration, but why do we need an
additional config option for this? We could just rename _KCONFIG_FILE to
_KCONFIG_FILES and update the help texts to explain that the files may consist
of fragments.
> +
> * +FOO_KCONFIG_OPTS+: extra options to pass when calling the kconfig
> editors. This may need to include '$(FOO_MAKE_OPTS)', for example. By
> default, empty.
> diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
> index 8361064..21fbfdb 100644
> --- a/package/pkg-kconfig.mk
> +++ b/package/pkg-kconfig.mk
> @@ -35,18 +35,20 @@ $(call inner-generic-package,$(1),$(2),$(3),$(4))
> $(2)_KCONFIG_EDITORS ?= menuconfig
> $(2)_KCONFIG_OPTS ?=
> $(2)_KCONFIG_FIXUP_CMDS ?=
> +$(2)_KCONFIG_FRAGMENT_FILES ?=
>
> # The config file could be in-tree, so before depending on it the package should
> # be extracted (and patched) first
> $$($(2)_KCONFIG_FILE): | $(1)-patch
The fragments could also be in-tree, in theory.
Not that it matters in practice because it is only relevant for the .config
dependency.
>
> -# The .config file is obtained by copying it from the specified source
> -# configuration file, after the package has been patched.
> +# The specified source configuration file and any additional configuration file
> +# fragments are merged together to .config, after the package has been patched.
> # Since the file could be a defconfig file it needs to be expanded to a
> # full .config first. We use 'make oldconfig' because this can be safely
> # done even when the package does not support defconfigs.
> -$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE)
> - $$(INSTALL) -m 0644 $$($(2)_KCONFIG_FILE) $$($(2)_DIR)/.config
> +$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
> + support/kconfig/merge_config.sh -m -O $$(@D) \
> + $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
> @yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
> $$($(2)_KCONFIG_OPTS) oldconfig
>
> @@ -87,6 +89,8 @@ $(1)-savedefconfig: $$($(2)_DIR)/.stamp_kconfig_fixup_done
> # Even though we could use 'cp --preserve-timestamps' here, the separate
> # cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig.
> $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
> + $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
So this could be
$$(if $$(word 2,$$($(2)_KCONFIG_FILES)), \
Regards,
Arnout
> + echo "Unable to perform $(1)-update-config when fragment files are set"; exit 1)
> cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
> touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>
> @@ -95,6 +99,8 @@ $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
> # $(1)-update-config, the reference for 'touch' is _not_ the file from which
> # we copy.
> $(1)-update-defconfig: $(1)-savedefconfig
> + $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
> + echo "Unable to perform $(1)-update-defconfig when fragment files are set"; exit 1)
> cp -f $$($(2)_DIR)/defconfig $$($(2)_KCONFIG_FILE)
> touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 2/5] linux: add option to specify config fragments
2015-04-28 14:34 ` [Buildroot] [PATCH v2 2/5] linux: add option to specify " Floris Bos
@ 2015-05-02 10:39 ` Arnout Vandecappelle
2015-05-02 12:44 ` Arnout Vandecappelle
1 sibling, 0 replies; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 10:39 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
> ---
> linux/Config.in | 6 ++++++
> linux/linux.mk | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/linux/Config.in b/linux/Config.in
> index 0ab9f26..ac483c1 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -164,6 +164,12 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
> Note: this can be a defconfig file or a complete .config file,
> which can later be saved back with make linux-update-(def)config.
>
> +config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
> + string "Additional configuration fragment files"
> + help
> + A space-separated list of kernel configuration fragment files,
> + that will be merged to the main kernel configuration file.
Oh, of course we'll still need this additional config option, because the main
defconfig could be in-tree while the fragments are external. Silly me.
I'll come back to the first patch.
This one already gets my
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Regards,
Arnout
> +
> #
> # Binary format
> #
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 0c348da..694061e 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -175,6 +175,7 @@ KERNEL_SOURCE_CONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
> endif
>
> LINUX_KCONFIG_FILE = $(KERNEL_SOURCE_CONFIG)
> +LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))
> LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
> LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments
2015-05-02 10:37 ` [Buildroot] [PATCH v2 1/5] kconfig-package: add support for " Arnout Vandecappelle
@ 2015-05-02 11:30 ` Floris Bos
0 siblings, 0 replies; 16+ messages in thread
From: Floris Bos @ 2015-05-02 11:30 UTC (permalink / raw)
To: buildroot
On 05/02/2015 12:37 PM, Arnout Vandecappelle wrote:
> On 28/04/15 16:34, Floris Bos wrote:
>> Adds functionality to the kconfig infrastructure to merge additional
>> configuration fragment files to the main configuration file of
>> kconfig packages, using support/kconfig/merge_config.sh
>>
>> Typical use-case is when you want your configuration to be
>> kept in sync with an upstream (def)config file, but do require
>> some minor local modifications.
>>
>> Disables -update-config and -update-defconfig targets when
>> fragment files are set.
>>
>> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
> [snip]
>
>> +* +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration
>> + fragment files that are merged to the main configuration file.
>> + Fragment files are typically used when there is a desire to stay in sync
>> + with an upstream (def)config file, with some minor modifications.
> I should have noticed this in the first iteration, but why do we need an
> additional config option for this? We could just rename _KCONFIG_FILE to
> _KCONFIG_FILES and update the help texts to explain that the files may consist
> of fragments.
Has been briefly discussed during the first iteration.
Main problem is _KCONFIG_FILE is not just a source file, but also a
destination file for the update-config and update-defconfig targets.
--
Yours sincerely,
Floris Bos
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
` (4 preceding siblings ...)
2015-05-02 10:37 ` [Buildroot] [PATCH v2 1/5] kconfig-package: add support for " Arnout Vandecappelle
@ 2015-05-02 12:43 ` Arnout Vandecappelle
2015-05-06 4:14 ` Gergely Imreh
2015-05-21 21:52 ` Thomas Petazzoni
6 siblings, 1 reply; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 12:43 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Adds functionality to the kconfig infrastructure to merge additional
> configuration fragment files to the main configuration file of
> kconfig packages, using support/kconfig/merge_config.sh
>
> Typical use-case is when you want your configuration to be
> kept in sync with an upstream (def)config file, but do require
> some minor local modifications.
>
> Disables -update-config and -update-defconfig targets when
> fragment files are set.
>
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Some trivial feedback below, with that:
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Build test of linux-configure after applying patch 2, verified that the config
options in the fragment end up in the configuration, checked that
linux-update-{def,}config errors out with fragment and works without fragments,
When the fragment file doesn't exist, you get:
make: *** No rule to make target 'test_fragment', needed by
'/home/arnout/src/buildroot/output/build/linux-3.15.10/.config'. Stop.
which is good enough for me.
>
> ---
> v2:
>
> - use shell commands to print error message when
> update-(def)config target is used while fragment files are set.
>
> - document changes to kconfig infrastructure.
> ---
> docs/manual/adding-packages-kconfig.txt | 11 +++++++++++
> package/pkg-kconfig.mk | 14 ++++++++++----
> 2 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/docs/manual/adding-packages-kconfig.txt b/docs/manual/adding-packages-kconfig.txt
> index e87d393..dc9ea11 100644
> --- a/docs/manual/adding-packages-kconfig.txt
> +++ b/docs/manual/adding-packages-kconfig.txt
> @@ -36,6 +36,12 @@ This snippet creates the following make targets:
>
> * +foo-update-config+, which copies the configuration back to the source
> configuration file.
> + It is not possible to use this target when fragment files are set.
There is not reason to start a new line - in the generated manual, the line
split will vanish anyway.
> +
> +* +foo-update-defconfig+, which copies the configuration back to the source
> + configuration file. The configuration file will only list the
> + options that differ from the default values.
Word wrapping is a bit weird here.
> + It is not possible to use this target when fragment files are set.
>
> and ensures that the source configuration file is copied to the build
> directory at the right moment.
> @@ -46,6 +52,11 @@ be set to suit the needs of the package under consideration:
> * +FOO_KCONFIG_EDITORS+: a space-separated list of kconfig editors to
> support, for example 'menuconfig xconfig'. By default, 'menuconfig'.
>
> +* +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration
> + fragment files that are merged to the main configuration file.
> + Fragment files are typically used when there is a desire to stay in sync
> + with an upstream (def)config file, with some minor modifications.
> +
> * +FOO_KCONFIG_OPTS+: extra options to pass when calling the kconfig
> editors. This may need to include '$(FOO_MAKE_OPTS)', for example. By
> default, empty.
> diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
> index 8361064..21fbfdb 100644
> --- a/package/pkg-kconfig.mk
> +++ b/package/pkg-kconfig.mk
> @@ -35,18 +35,20 @@ $(call inner-generic-package,$(1),$(2),$(3),$(4))
> $(2)_KCONFIG_EDITORS ?= menuconfig
> $(2)_KCONFIG_OPTS ?=
> $(2)_KCONFIG_FIXUP_CMDS ?=
> +$(2)_KCONFIG_FRAGMENT_FILES ?=
>
> # The config file could be in-tree, so before depending on it the package should
> # be extracted (and patched) first
> $$($(2)_KCONFIG_FILE): | $(1)-patch
>
> -# The .config file is obtained by copying it from the specified source
> -# configuration file, after the package has been patched.
> +# The specified source configuration file and any additional configuration file
> +# fragments are merged together to .config, after the package has been patched.
> # Since the file could be a defconfig file it needs to be expanded to a
> # full .config first. We use 'make oldconfig' because this can be safely
> # done even when the package does not support defconfigs.
> -$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE)
> - $$(INSTALL) -m 0644 $$($(2)_KCONFIG_FILE) $$($(2)_DIR)/.config
> +$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
> + support/kconfig/merge_config.sh -m -O $$(@D) \
> + $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
> @yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
> $$($(2)_KCONFIG_OPTS) oldconfig
>
> @@ -87,6 +89,8 @@ $(1)-savedefconfig: $$($(2)_DIR)/.stamp_kconfig_fixup_done
> # Even though we could use 'cp --preserve-timestamps' here, the separate
> # cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig.
> $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
> + $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
> + echo "Unable to perform $(1)-update-config when fragment files are set"; exit 1)
There should be an @ in front of this, otherwise you see the error twice.
> cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
> touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>
> @@ -95,6 +99,8 @@ $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
> # $(1)-update-config, the reference for 'touch' is _not_ the file from which
> # we copy.
> $(1)-update-defconfig: $(1)-savedefconfig
> + $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
> + echo "Unable to perform $(1)-update-defconfig when fragment files are set"; exit 1)
And here.
Regards,
Arnout
> cp -f $$($(2)_DIR)/defconfig $$($(2)_KCONFIG_FILE)
> touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 2/5] linux: add option to specify config fragments
2015-04-28 14:34 ` [Buildroot] [PATCH v2 2/5] linux: add option to specify " Floris Bos
2015-05-02 10:39 ` Arnout Vandecappelle
@ 2015-05-02 12:44 ` Arnout Vandecappelle
2015-05-06 4:16 ` Gergely Imreh
1 sibling, 1 reply; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 12:44 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(see previous patch)
Regards,
Arnout
> ---
> linux/Config.in | 6 ++++++
> linux/linux.mk | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/linux/Config.in b/linux/Config.in
> index 0ab9f26..ac483c1 100644
> --- a/linux/Config.in
> +++ b/linux/Config.in
> @@ -164,6 +164,12 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
> Note: this can be a defconfig file or a complete .config file,
> which can later be saved back with make linux-update-(def)config.
>
> +config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
> + string "Additional configuration fragment files"
> + help
> + A space-separated list of kernel configuration fragment files,
> + that will be merged to the main kernel configuration file.
> +
> #
> # Binary format
> #
> diff --git a/linux/linux.mk b/linux/linux.mk
> index 0c348da..694061e 100644
> --- a/linux/linux.mk
> +++ b/linux/linux.mk
> @@ -175,6 +175,7 @@ KERNEL_SOURCE_CONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
> endif
>
> LINUX_KCONFIG_FILE = $(KERNEL_SOURCE_CONFIG)
> +LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))
> LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
> LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 3/5] busybox: add option to specify config fragments
2015-04-28 14:34 ` [Buildroot] [PATCH v2 3/5] busybox: " Floris Bos
@ 2015-05-02 12:47 ` Arnout Vandecappelle
0 siblings, 0 replies; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 12:47 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Not tested but obviously correct :-)
Regards,
Arnout
> ---
> package/busybox/Config.in | 6 ++++++
> package/busybox/busybox.mk | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/package/busybox/Config.in b/package/busybox/Config.in
> index b4f949f..6847a60 100644
> --- a/package/busybox/Config.in
> +++ b/package/busybox/Config.in
> @@ -20,6 +20,12 @@ config BR2_PACKAGE_BUSYBOX_CONFIG
>
> Most people will just use the default BusyBox configuration file.
>
> +config BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES
> + string "Additional BusyBox configuration fragment files"
> + help
> + A space-separated list of configuration fragment files,
> + that will be merged to the main BusyBox configuration file.
> +
> config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
> bool "Show packages that are also provided by busybox"
> help
> diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
> index 1ce508a..090e174 100644
> --- a/package/busybox/busybox.mk
> +++ b/package/busybox/busybox.mk
> @@ -46,6 +46,7 @@ ifndef BUSYBOX_CONFIG_FILE
> endif
>
> BUSYBOX_KCONFIG_FILE = $(BUSYBOX_CONFIG_FILE)
> +BUSYBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES))
> BUSYBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig
> BUSYBOX_KCONFIG_OPTS = $(BUSYBOX_MAKE_OPTS)
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 4/5] uclibc: add option to specify config fragments
2015-04-28 14:34 ` [Buildroot] [PATCH v2 4/5] uclibc: " Floris Bos
@ 2015-05-02 12:55 ` Arnout Vandecappelle
0 siblings, 0 replies; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 12:55 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Regards,
Arnout
> ---
> package/uclibc/Config.in | 6 ++++++
> package/uclibc/uclibc.mk | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
> index b5525e5..dd23853 100644
> --- a/package/uclibc/Config.in
> +++ b/package/uclibc/Config.in
> @@ -86,6 +86,12 @@ config BR2_UCLIBC_CONFIG
> See also docs/README in this package.
> If unsure, use the default.
>
> +config BR2_UCLIBC_CONFIG_FRAGMENT_FILES
> + string "Additional uClibc configuration fragment files"
> + help
> + A space-separated list of configuration fragment files,
> + that will be merged to the main uClibc configuration file.
> +
> config BR2_TOOLCHAIN_BUILDROOT_INET_RPC
> bool "Enable RPC support"
> select BR2_TOOLCHAIN_HAS_NATIVE_RPC
> diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
> index ce9b2b4..b9dce7e 100644
> --- a/package/uclibc/uclibc.mk
> +++ b/package/uclibc/uclibc.mk
> @@ -42,6 +42,7 @@ UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
> endif
>
> UCLIBC_KCONFIG_FILE = $(UCLIBC_CONFIG_FILE)
> +UCLIBC_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_UCLIBC_CONFIG_FRAGMENT_FILES))
>
> UCLIBC_KCONFIG_OPTS = \
> $(UCLIBC_MAKE_FLAGS) \
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 5/5] barebox: add option to specify config fragments
2015-04-28 14:34 ` [Buildroot] [PATCH v2 5/5] barebox: " Floris Bos
@ 2015-05-02 12:55 ` Arnout Vandecappelle
0 siblings, 0 replies; 16+ messages in thread
From: Arnout Vandecappelle @ 2015-05-02 12:55 UTC (permalink / raw)
To: buildroot
On 28/04/15 16:34, Floris Bos wrote:
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Regards,
Arnout
> ---
> boot/barebox/Config.in | 6 ++++++
> boot/barebox/barebox.mk | 1 +
> 2 files changed, 7 insertions(+)
>
> diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
> index 48431bd..dbe79e9 100644
> --- a/boot/barebox/Config.in
> +++ b/boot/barebox/Config.in
> @@ -91,6 +91,12 @@ config BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE
> help
> Path to the barebox configuration file
>
> +config BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES
> + string "Additional configuration fragment files"
> + help
> + A space-separated list of configuration fragment files,
> + that will be merged to the main Barebox configuration file.
> +
> config BR2_TARGET_BAREBOX_BAREBOXENV
> bool "bareboxenv tool in target"
> help
> diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk
> index 54f52bb..5095ffa 100644
> --- a/boot/barebox/barebox.mk
> +++ b/boot/barebox/barebox.mk
> @@ -60,6 +60,7 @@ BAREBOX_SOURCE_CONFIG = $(call qstrip,$(BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE))
> endif
>
> BAREBOX_KCONFIG_FILE = $(BAREBOX_SOURCE_CONFIG)
> +BAREBOX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_TARGET_BAREBOX_CONFIG_FRAGMENT_FILES))
> BAREBOX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
> BAREBOX_KCONFIG_OPTS = $(BAREBOX_MAKE_FLAGS)
>
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments
2015-05-02 12:43 ` Arnout Vandecappelle
@ 2015-05-06 4:14 ` Gergely Imreh
0 siblings, 0 replies; 16+ messages in thread
From: Gergely Imreh @ 2015-05-06 4:14 UTC (permalink / raw)
To: buildroot
On 2 May 2015 at 20:43, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 28/04/15 16:34, Floris Bos wrote:
>> Adds functionality to the kconfig infrastructure to merge additional
>> configuration fragment files to the main configuration file of
>> kconfig packages, using support/kconfig/merge_config.sh
>>
>> Typical use-case is when you want your configuration to be
>> kept in sync with an upstream (def)config file, but do require
>> some minor local modifications.
>>
>> Disables -update-config and -update-defconfig targets when
>> fragment files are set.
>>
>> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
>
> Some trivial feedback below, with that:
> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Gergely Imreh <imrehg@gmail.com>
together with patch 2/5 of this series: kernel fragment ending up in
config; make targets error out when fragments were set and fine when
not
>> ---
>> v2:
>>
>> - use shell commands to print error message when
>> update-(def)config target is used while fragment files are set.
>>
>> - document changes to kconfig infrastructure.
>> ---
>> docs/manual/adding-packages-kconfig.txt | 11 +++++++++++
>> package/pkg-kconfig.mk | 14 ++++++++++----
>> 2 files changed, 21 insertions(+), 4 deletions(-)
>>
>> diff --git a/docs/manual/adding-packages-kconfig.txt b/docs/manual/adding-packages-kconfig.txt
>> index e87d393..dc9ea11 100644
>> --- a/docs/manual/adding-packages-kconfig.txt
>> +++ b/docs/manual/adding-packages-kconfig.txt
>> @@ -36,6 +36,12 @@ This snippet creates the following make targets:
>>
>> * +foo-update-config+, which copies the configuration back to the source
>> configuration file.
>> + It is not possible to use this target when fragment files are set.
>
> There is not reason to start a new line - in the generated manual, the line
> split will vanish anyway.
>
>> +
>> +* +foo-update-defconfig+, which copies the configuration back to the source
>> + configuration file. The configuration file will only list the
>> + options that differ from the default values.
>
> Word wrapping is a bit weird here.
>
>> + It is not possible to use this target when fragment files are set.
>>
>> and ensures that the source configuration file is copied to the build
>> directory at the right moment.
>> @@ -46,6 +52,11 @@ be set to suit the needs of the package under consideration:
>> * +FOO_KCONFIG_EDITORS+: a space-separated list of kconfig editors to
>> support, for example 'menuconfig xconfig'. By default, 'menuconfig'.
>>
>> +* +FOO_KCONFIG_FRAGMENT_FILES+: a space-separated list of configuration
>> + fragment files that are merged to the main configuration file.
>> + Fragment files are typically used when there is a desire to stay in sync
>> + with an upstream (def)config file, with some minor modifications.
>> +
>> * +FOO_KCONFIG_OPTS+: extra options to pass when calling the kconfig
>> editors. This may need to include '$(FOO_MAKE_OPTS)', for example. By
>> default, empty.
>> diff --git a/package/pkg-kconfig.mk b/package/pkg-kconfig.mk
>> index 8361064..21fbfdb 100644
>> --- a/package/pkg-kconfig.mk
>> +++ b/package/pkg-kconfig.mk
>> @@ -35,18 +35,20 @@ $(call inner-generic-package,$(1),$(2),$(3),$(4))
>> $(2)_KCONFIG_EDITORS ?= menuconfig
>> $(2)_KCONFIG_OPTS ?=
>> $(2)_KCONFIG_FIXUP_CMDS ?=
>> +$(2)_KCONFIG_FRAGMENT_FILES ?=
>>
>> # The config file could be in-tree, so before depending on it the package should
>> # be extracted (and patched) first
>> $$($(2)_KCONFIG_FILE): | $(1)-patch
>>
>> -# The .config file is obtained by copying it from the specified source
>> -# configuration file, after the package has been patched.
>> +# The specified source configuration file and any additional configuration file
>> +# fragments are merged together to .config, after the package has been patched.
>> # Since the file could be a defconfig file it needs to be expanded to a
>> # full .config first. We use 'make oldconfig' because this can be safely
>> # done even when the package does not support defconfigs.
>> -$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE)
>> - $$(INSTALL) -m 0644 $$($(2)_KCONFIG_FILE) $$($(2)_DIR)/.config
>> +$$($(2)_DIR)/.config: $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
>> + support/kconfig/merge_config.sh -m -O $$(@D) \
>> + $$($(2)_KCONFIG_FILE) $$($(2)_KCONFIG_FRAGMENT_FILES)
>> @yes "" | $$($(2)_MAKE_ENV) $$(MAKE) -C $$($(2)_DIR) \
>> $$($(2)_KCONFIG_OPTS) oldconfig
>>
>> @@ -87,6 +89,8 @@ $(1)-savedefconfig: $$($(2)_DIR)/.stamp_kconfig_fixup_done
>> # Even though we could use 'cp --preserve-timestamps' here, the separate
>> # cp and 'touch --reference' is used for symmetry with $(1)-update-defconfig.
>> $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
>> + $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
>> + echo "Unable to perform $(1)-update-config when fragment files are set"; exit 1)
>
> There should be an @ in front of this, otherwise you see the error twice.
>
>> cp -f $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>> touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>>
>> @@ -95,6 +99,8 @@ $(1)-update-config: $$($(2)_DIR)/.stamp_kconfig_fixup_done
>> # $(1)-update-config, the reference for 'touch' is _not_ the file from which
>> # we copy.
>> $(1)-update-defconfig: $(1)-savedefconfig
>> + $$(if $$($(2)_KCONFIG_FRAGMENT_FILES), \
>> + echo "Unable to perform $(1)-update-defconfig when fragment files are set"; exit 1)
>
> And here.
>
>
> Regards,
> Arnout
>
>> cp -f $$($(2)_DIR)/defconfig $$($(2)_KCONFIG_FILE)
>> touch --reference $$($(2)_DIR)/.config $$($(2)_KCONFIG_FILE)
>>
>>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 2/5] linux: add option to specify config fragments
2015-05-02 12:44 ` Arnout Vandecappelle
@ 2015-05-06 4:16 ` Gergely Imreh
0 siblings, 0 replies; 16+ messages in thread
From: Gergely Imreh @ 2015-05-06 4:16 UTC (permalink / raw)
To: buildroot
On 2 May 2015 at 20:44, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 28/04/15 16:34, Floris Bos wrote:
>> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
>
> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> (see previous patch)
Tested-by: Gergely Imreh <imrehg@gmail.com>
together with v2 1/5 of this patch series
>
> Regards,
> Arnout
>
>> ---
>> linux/Config.in | 6 ++++++
>> linux/linux.mk | 1 +
>> 2 files changed, 7 insertions(+)
>>
>> diff --git a/linux/Config.in b/linux/Config.in
>> index 0ab9f26..ac483c1 100644
>> --- a/linux/Config.in
>> +++ b/linux/Config.in
>> @@ -164,6 +164,12 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
>> Note: this can be a defconfig file or a complete .config file,
>> which can later be saved back with make linux-update-(def)config.
>>
>> +config BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
>> + string "Additional configuration fragment files"
>> + help
>> + A space-separated list of kernel configuration fragment files,
>> + that will be merged to the main kernel configuration file.
>> +
>> #
>> # Binary format
>> #
>> diff --git a/linux/linux.mk b/linux/linux.mk
>> index 0c348da..694061e 100644
>> --- a/linux/linux.mk
>> +++ b/linux/linux.mk
>> @@ -175,6 +175,7 @@ KERNEL_SOURCE_CONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE))
>> endif
>>
>> LINUX_KCONFIG_FILE = $(KERNEL_SOURCE_CONFIG)
>> +LINUX_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES))
>> LINUX_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
>> LINUX_KCONFIG_OPTS = $(LINUX_MAKE_FLAGS)
>>
>>
>
>
> --
> Arnout Vandecappelle arnout at mind be
> Senior Embedded Software Architect +32-16-286500
> Essensium/Mind http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
` (5 preceding siblings ...)
2015-05-02 12:43 ` Arnout Vandecappelle
@ 2015-05-21 21:52 ` Thomas Petazzoni
6 siblings, 0 replies; 16+ messages in thread
From: Thomas Petazzoni @ 2015-05-21 21:52 UTC (permalink / raw)
To: buildroot
Dear Floris Bos,
On Tue, 28 Apr 2015 16:34:31 +0200, Floris Bos wrote:
> Adds functionality to the kconfig infrastructure to merge additional
> configuration fragment files to the main configuration file of
> kconfig packages, using support/kconfig/merge_config.sh
>
> Typical use-case is when you want your configuration to be
> kept in sync with an upstream (def)config file, but do require
> some minor local modifications.
>
> Disables -update-config and -update-defconfig targets when
> fragment files are set.
>
> Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
>
> ---
> v2:
Entire series applied to the next branch!
On the first patch, I've fixed the minor issues pointed by Arnout:
[Thomas: take into account comments made by Arnout:
- Minor fixes in the documentation changes
- Add @ before the tests done in the $(1)-update-config and
$(1)-update-defconfig targets.]
Thanks a lot for your work on this topic!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2015-05-21 21:52 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-28 14:34 [Buildroot] [PATCH v2 1/5] kconfig-package: add support for config fragments Floris Bos
2015-04-28 14:34 ` [Buildroot] [PATCH v2 2/5] linux: add option to specify " Floris Bos
2015-05-02 10:39 ` Arnout Vandecappelle
2015-05-02 12:44 ` Arnout Vandecappelle
2015-05-06 4:16 ` Gergely Imreh
2015-04-28 14:34 ` [Buildroot] [PATCH v2 3/5] busybox: " Floris Bos
2015-05-02 12:47 ` Arnout Vandecappelle
2015-04-28 14:34 ` [Buildroot] [PATCH v2 4/5] uclibc: " Floris Bos
2015-05-02 12:55 ` Arnout Vandecappelle
2015-04-28 14:34 ` [Buildroot] [PATCH v2 5/5] barebox: " Floris Bos
2015-05-02 12:55 ` Arnout Vandecappelle
2015-05-02 10:37 ` [Buildroot] [PATCH v2 1/5] kconfig-package: add support for " Arnout Vandecappelle
2015-05-02 11:30 ` Floris Bos
2015-05-02 12:43 ` Arnout Vandecappelle
2015-05-06 4:14 ` Gergely Imreh
2015-05-21 21:52 ` Thomas Petazzoni
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.