All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration
@ 2012-10-24  7:16 Arnout Vandecappelle
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 01/10] manual: add section about storing " Arnout Vandecappelle
                   ` (9 more replies)
  0 siblings, 10 replies; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:16 UTC (permalink / raw)
  To: buildroot

 This series makes various improvements of how the configuration is saved.
The main improvement is documenting the standard way of doing things,
which is based on Thomas Petazzoni's presentation at last year's ELC-E.
The second patch adds the filesystem overlay as an configure option.
Subsequent patches iron out various inconsistencies in the saving of
the configuration. The final patch makes it possible to save the
buildroot configuration itself to a different file than 'defconfig'.

 All patches are more or less independent, except they all depend on the
first one because they update documentation.  I therefore also hope they
will be committed individually.

 As I mentioned before, I'm giving a presentation about buildroot
coming week-end, and I will make use of the features added by this
series in that presentation.  So if there are major critiques, please
let me know before the week-end.

 Regards,
 Arnout

Arnout Vandecappelle (Essensium/Mind) (10):
      manual: add section about storing the configuration.
      target/generic: add filesystem overlay option
      ctng: add ctng-update-config target
      busybox: busybox-update-config should depend on busybox-configure
      at91bootstrap3: add -update-config target
      Add update-all-config target
      busybox: update-all-config shouldn't update default busybox config
      crosstool-ng: update-all-config shouldn't update default crosstool-ng config
      uClibc: update-all-config shouldn't update default uClibc config
      Make savedefconfig save to a configured file.

 Config.in                                        |   12 ++
 Makefile                                         |   32 ++-
 boot/at91bootstrap3/at91bootstrap3.mk            |    8 +
 docs/manual/adding-packages-directory.txt        |    1 +
 docs/manual/board-support.txt                    |   35 ----
 docs/manual/customize-rootfs.txt                 |   21 +-
 docs/manual/customize-store.txt                  |  231 ++++++++++++++++++++++
 docs/manual/customize.txt                        |    2 +
 linux/linux.mk                                   |    2 +
 package/busybox/Config.in                        |    7 +-
 package/busybox/busybox.mk                       |   13 +-
 target/generic/Config.in                         |   11 ++
 toolchain/toolchain-crosstool-ng/Config.in       |    6 +-
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |   21 +-
 toolchain/uClibc/Config.in                       |    7 +-
 toolchain/uClibc/uclibc.mk                       |   25 +--
 16 files changed, 348 insertions(+), 86 deletions(-)
 delete mode 100644 docs/manual/board-support.txt
 create mode 100644 docs/manual/customize-store.txt

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 01/10] manual: add section about storing the configuration.
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
@ 2012-10-24  7:16 ` Arnout Vandecappelle
  2012-11-04 13:10   ` Luca Ceresoli
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option Arnout Vandecappelle
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:16 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Reuse part of board-support.txt, and remove that one because it
was unused.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
v2: mention LINUX_KERNEL_PATCH also in in-tree documentation
    (Samuel Martin)

I would like it if this patch of the series could be committed soon.
It will certainly not make things worse, and if amendments are needed
they can be added in later patches.  Committing it soon will make it
simpler to synchronize with other patches e.g. Maxime's barebox config.
Actually, I think documentation-only patches should be committed more
easily in general - especially because we have too few documentation
patches as it is.
---
 docs/manual/adding-packages-directory.txt |    1 +
 docs/manual/board-support.txt             |   35 ----
 docs/manual/customize-store.txt           |  249 +++++++++++++++++++++++++++++
 docs/manual/customize.txt                 |    2 +
 4 files changed, 252 insertions(+), 35 deletions(-)
 delete mode 100644 docs/manual/board-support.txt
 create mode 100644 docs/manual/customize-store.txt

diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt
index 4a96415..ce9c5ce 100644
--- a/docs/manual/adding-packages-directory.txt
+++ b/docs/manual/adding-packages-directory.txt
@@ -147,6 +147,7 @@ package.
 
 The +.mk+ file
 ~~~~~~~~~~~~~~
+[[adding-packages-mk]]
 
 Finally, here's the hardest part. Create a file named +libfoo.mk+. It
 describes how the package should be downloaded, configured, built,
diff --git a/docs/manual/board-support.txt b/docs/manual/board-support.txt
deleted file mode 100644
index d1d9d63..0000000
--- a/docs/manual/board-support.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Creating your own board support
-===============================
-
-Creating your own board support in Buildroot allows users of a
-particular hardware platform to easily build a system that is known to
-work.
-
-To do so, you need to create a normal Buildroot configuration that
-builds a basic system for the hardware: toolchain, kernel, bootloader,
-filesystem and a simple Busybox-only userspace. No specific package
-should be selected: the configuration should be as minimal as
-possible, and should only build a working basic Busybox system for the
-target platform. You can of course use more complicated configurations
-for your internal projects, but the Buildroot project will only
-integrate basic board configurations. This is because package
-selections are highly application-specific.
-
-Once you have a known working configuration, run +make
-savedefconfig+. This will generate a minimal +defconfig+ file at the
-root of the Buildroot source tree. Move this file into the +configs/+
-directory, and rename it +MYBOARD_defconfig+.
-
-It is recommended to use as much as possible upstream versions of the
-Linux kernel and bootloaders, and to use as much as possible default
-kernel and bootloader configurations. If they are incorrect for your
-platform, we encourage you to send fixes to the corresponding upstream
-projects.
-
-However, in the mean time, you may want to store kernel or bootloader
-configuration or patches specific to your target platform. To do so,
-create a directory +board/MANUFACTURER+ and a subdirectory
-+board/MANUFACTURER/BOARDNAME+ (after replacing, of course,
-MANUFACTURER and BOARDNAME with the appropriate values, in lower case
-letters). You can then store your patches and configurations in these
-directories, and reference them from the main Buildroot configuration.
diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
new file mode 100644
index 0000000..44de356
--- /dev/null
+++ b/docs/manual/customize-store.txt
@@ -0,0 +1,249 @@
+Storing the configuration
+-------------------------
+[[customize-store]]
+
+When you have a buildroot configuration that you are satisfied with
+and you want to move to share it with others, put it under revision
+control or move on to a different buildroot project, you need to store
+the configuration so it can be rebuilt later. The configuration that
+needs to be stored consists of the buildroot configuration, the
+configuration files for packages that you use (kernel, busybox,
+uClibc, ...), and your rootfs modifications.
+
+Basics for storing the configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[[customize-store-basics]]
+
+Buildroot configuration
+^^^^^^^^^^^^^^^^^^^^^^^
+
+For storing the buildroot configuration itself, buildroot offers the
+following command: +make savedefconfig+
+
+This strips the buildroot configuration down by removing configuration
+options that are at their default value. The result is stored in a file
+called +defconfig+. Copy this file to +foo_defconfig+ in the +configs+
+directory. The configuration can then be rebuilt by running
++make foo_defconfig+
+
+Alternatively, you can copy the file to any other place and rebuild with
++make BR2_DEFCONFIG=<path-to-defconfig> defconfig+
+
+
+Other package configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The configuration files for busybox, the linux kernel, uClibc and
+crosstool-NG should be stored as well. For each of these, a
+buildroot configuration option exists to point to an input configuration
+file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+.  To save their
+configuration, set those configuration options to a path outside
+your output directory.  Then, copy the configuration files
+to that path.
+
+Make sure that you create a configuration file 'before' changing
+the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options.  Otherwise,
+buildroot will try to access this config file, which doesn't exist
+yet, and will fail.
+
+Buildroot provides a few helper targets to make the saving of
+configuration files easier.
+
+* +make linux-update-defconfig+ saves the linux configuration to the
+  path specified by +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+.  It
+  simplifies the config file by removing default values.  However,
+  this only works with kernels starting from 2.6.33.  For earlier
+  kernels, use +make linux-update-config+.
+* +make busybox-update-config+ saves the busybox configuration to the
+  path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+.
+* +make uclibc-update-config+ saves the uClibc configuration to the
+  path specified by +BR2_UCLIBC_CONFIG+.
+* For crosstool-NG, no helper exists so you have to copy the config
+  file manually to +BR2_TOOLCHAIN_CTNG_CONFIG+.
+
+
+Creating your own board support
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Creating your own board support in Buildroot allows users of a
+particular hardware platform to easily build a system that is known to
+work.
+
+To do so, you need to create a normal Buildroot configuration that
+builds a basic system for the hardware: toolchain, kernel, bootloader,
+filesystem and a simple Busybox-only userspace. No specific package
+should be selected: the configuration should be as minimal as
+possible, and should only build a working basic Busybox system for the
+target platform. You can of course use more complicated configurations
+for your internal projects, but the Buildroot project will only
+integrate basic board configurations. This is because package
+selections are highly application-specific.
+
+Once you have a known working configuration, run +make
+savedefconfig+. This will generate a minimal +defconfig+ file at the
+root of the Buildroot source tree. Move this file into the +configs/+
+directory, and rename it +<boardname>_defconfig+.
+
+It is recommended to use as much as possible upstream versions of the
+Linux kernel and bootloaders, and to use as much as possible default
+kernel and bootloader configurations. If they are incorrect for your
+platform, we encourage you to send fixes to the corresponding upstream
+projects.
+
+However, in the mean time, you may want to store kernel or bootloader
+configuration or patches specific to your target platform. To do so,
+create a directory +board/<manufacturer>+ and a subdirectory
++board/<manufacturer>/<boardname>+. You can then store your patches
+and configurations in these directories, and reference them from the main
+Buildroot configuration.
+
+
+Step-by-step instructions for storing configuration inside the buildroot tree
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To store the configuration for a specific product, device or
+application, it is advisable to use the same conventions as for the
+board support: put the buildroot defconfig in the +configs+ directory,
+and any other files in a subdirectory of the +boards+ directory.  This
+section gives step-by-step instructions about how to do that. Of course,
+you can skip the steps that are not relevant for your use case.
+
+1. +make menuconfig+ to configure toolchain, packages and kernel.
+1. +make linux-menuconfig+ to update the kernel config, similar for
+   other configuration.
+1. +mkdir -p board/<manufacturer>/<boardname>+
+1. Set the following options to +board/<manufacturer>/<boardname>/<package>.config+
+   (as far as they are relevant):
+   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
+   * +BR2_PACKAGE_BUSYBOX_CONFIG+
+   * +BR2_TOOLCHAIN_CTNG_CONFIG+
+   * +BR2_UCLIBC_CONFIG+
+   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
+1. Write the configuration files:
+   * +make linux-update-defconfig+
+   * +make busybox-update-config+
+   * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
+   * +make uclibc-update-config+
+   * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
+1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
+   with additional files you need on your rootfs, e.g.
+   +board/<manufacturer>/<boardname>/etc/inittab+.
+1. Create a post-build script
+   +board/<manufacturer>/<boardname>/post-build.sh+.  It should contain
+   the following command:
++
+------------
+rsync -a --exclude .empty --exclude '*~' ${0%/*}/fs-overlay $1
+------------
++
+1. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +board/<manufacturer>/<boardname>/post-build.sh+
+1. If additional setuid permissions have to be set or device nodes have
+   to be created, create +board/<manufacturer>/<boardname>/device_table.txt+
+   and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
+1. +make savedefconfig+ to save the buildroot configuration.
+1. +cp defconfig configs/<boardname>_defconfig+
+1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to
+   +board/<manufacturer>/<boardname>/patches/linux+ and add your
+   patches in that directory. Each patch should be called
+   +linux-<num>-<description>.patch+. Similar for U-Boot, barebox,
+   at91bootstrap and at91bootstrap3.
+1. If you need modifications to other packages, or if you need to add
+   packages, do that directly in the +packages/+ directory.
+
+
+Step-by-step instructions for storing configuration outside the buildroot tree
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you use buildroot in different projects, you may want to keep
+each project separate from buildroot itself. This requires an extra
+script or Makefile, but is otherwise easy to do with buildroot.
+Take the following steps (very similar to storing configuration inside
+the buildroot tree).
+
+1. +make menuconfig+ to configure toolchain, packages and kernel.
+1. +make linux-menuconfig+ to update the kernel config, similar for
+   other configuration.
+1. +mkdir -p <path-to-board-directory>+
+1. Set the following options to +$(BOARDDIR)/<package>.config+
+   (as far as they are relevant):
+   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
+   * +BR2_PACKAGE_BUSYBOX_CONFIG+
+   * +BR2_TOOLCHAIN_CTNG_CONFIG+
+   * +BR2_UCLIBC_CONFIG+
+   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
+1. Write the configuration files:
+   * +make linux-update-defconfig+
+   * +make busybox-update-config+
+   * +cp <output>/build/build-toolchain/.config <path-to-board-directory>/ctng.config+
+   * +make uclibc-update-config+
+   * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
+1. Create +<path-to-board-directory>/fs-overlay+ and fill it
+   with additional files you need on your rootfs, e.g.
+   +<path-to-board-directory>/etc/inittab+.
+1. Create a post-build script
+   +<path-to-board-directory>/post-build.sh+.  It should contain
+   the following command:
++
+------------
+rsync -a --exclude .empty --exclude '*~' ${0%/*}/fs-overlay $1
+------------
++
+1. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +$(BOARDDIR)/post-build.sh+
+1. If additional setuid permissions have to be set or device nodes have
+   to be created, create +<path-to-board-directory>/device_table.txt+
+   and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
+1. +make savedefconfig+ to save the buildroot configuration.
+1. +cp defconfig <path-to-board-directory>/buildroot.config+
+1. Create a script or Makefile in the board directory that calls
+   buildroot:
++
+------------
+make -C <path-to-buildroot> O=<path-to-board-directory>/output BR2_DEFCONFIG=<path-to-board-directory>/buildroot.config defconfig
+make -C <path-to-buildroot> O=<path-to-board-directory>/output BOARDDIR=<path-to-board-directory>
+------------
++
+1. If you have additional proprietary binaries that are compiled
+   outside of buildroot, you can copy them into the rootfs as
+   part of +post-build.sh+
+1. If you need additional packages that are not available in buildroot
+   and that you don't want to make available (e.g. proprietary
+   applications), set +BR2_PACKAGE_OVERRIDE_FILE+ to
+   +$(BOARDDIR)/local.mk+. Add the following to +local.mk+ to
+   add package 'foo': +include foo/foo.mk+.  Add the following in
+   +foo.mk+ (see xref:adding-packages-mk[Adding packages to buildroot]):
++
+------------
+BR2_PACKAGE_FOO     = y
+FOO_OVERRIDE_SRCDIR = $(BOARDDIR)/foo
+
+define FOO_BUILD_CMDS
+        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
+endef
+
+define FOO_INSTALL_TARGET_CMDS
+        $(INSTALL) -D -m 0755 $(@D)/foo $(TARGET_DIR)/usr/bin/foo
+endef
+
+$(eval $(generic-package))
+------------
++
+The +BR2_PACKAGE_FOO=y+ makes sure the package is always selected,
+so there is no need for a +Config.in+ file. The +FOO_OVERRIDE_SRCDIR+
+tells buildroot to fetch the sources from the +foo+ directory, and
+also makes sure that they are re-synchronized when you call +make
+foo-rebuild+
++
+1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to
+   +$(BOARDDIR)/patches/linux+ and add your patches in that directory.
+   Each patch should be called +linux-<num>-<description>.patch+.
+   Similar for U-Boot, barebox, at91bootstrap and at91bootstrap3.
+1. To add patches for some other package 'foo', put them in the
+   +patches/foo+ directory and add the following to +local.mk+:
++
+------------
+define FOO_LOCAL_PATCHES
+support/scripts/apply-patches.sh $(@D) $(BOARDDIR)/patches/foo foo-\*.patch
+endef
+
+FOO_POST_PATCH_HOOKS += FOO_LOCAL_PATCHES
+------------
diff --git a/docs/manual/customize.txt b/docs/manual/customize.txt
index e8235de..6bd5811 100644
--- a/docs/manual/customize.txt
+++ b/docs/manual/customize.txt
@@ -10,3 +10,5 @@ include::customize-uclibc-config.txt[]
 include::customize-kernel-config.txt[]
 
 include::customize-toolchain.txt[]
+
+include::customize-store.txt[]
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 01/10] manual: add section about storing " Arnout Vandecappelle
@ 2012-10-24  7:16 ` Arnout Vandecappelle
  2012-11-04 18:19   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target Arnout Vandecappelle
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:16 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

The filesystem overlay is a tree that is copied over the target fs
after building everything - which is currently usually done in the
post-build script.

Also replace the documentation for a custom skeleton with the
filesystem overlay and deprecate the custom skeleton.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 Makefile                         |    9 +++++++++
 docs/manual/customize-rootfs.txt |   21 +++++++++------------
 docs/manual/customize-store.txt  |   27 +++++++++------------------
 target/generic/Config.in         |   11 +++++++++++
 4 files changed, 38 insertions(+), 30 deletions(-)

diff --git a/Makefile b/Makefile
index 0128839..2122d45 100644
--- a/Makefile
+++ b/Makefile
@@ -463,6 +463,15 @@ endif
 		echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \
 	) >  $(TARGET_DIR)/etc/os-release
 
+	@for dir in $(call qstrip,$(BR2_ROOTFS_OVERLAY)); do \
+		if [ -d $${dir} ]; then \
+			$(call MESSAGE,"Copying overlay $${dir}"); \
+			rsync -a \
+				--exclude .svn --exclude .git --exclude .hg --exclude '*~' \
+				$${dir}/ $(TARGET_DIR); \
+		fi \
+	done
+
 ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
 	@$(call MESSAGE,"Executing post-build script")
 	$(BR2_ROOTFS_POST_BUILD_SCRIPT) $(TARGET_DIR)
diff --git a/docs/manual/customize-rootfs.txt b/docs/manual/customize-rootfs.txt
index 8c3ea82..b3c160b 100644
--- a/docs/manual/customize-rootfs.txt
+++ b/docs/manual/customize-rootfs.txt
@@ -1,5 +1,6 @@
 Customizing the generated target filesystem
 -------------------------------------------
+[customize-rootfs]
 
 There are a few ways to customize the resulting target filesystem:
 
@@ -10,24 +11,20 @@ There are a few ways to customize the resulting target filesystem:
   anything to the target filesystem, but if you decide to completely
   rebuild your toolchain and tools, these changes will be lost.
 
-* Create your own 'target skeleton'. You can start with the default
-  skeleton available under +fs/skeleton+ and then customize it to suit
-  your needs. The +BR2_ROOTFS_SKELETON_CUSTOM+ and
-  +BR2_ROOTFS_SKELETON_CUSTOM_PATH+ will allow you to specify the
-  location of your custom skeleton. At build time, the contents of the
-  skeleton are copied to output/target before any package
-  installation.
+* Create a filesystem overlay: a tree of files that are copied directly
+  over the target filesystem after it has been built.  Set
+  +BR2_ROOTFS_OVERLAY+ to the top of the tree.  +.git+, +.svn+,
+  +.hg+ directories and files ending with +~+ are excluded.
 
 * In the Buildroot configuration, you can specify the path to a
   post-build script, that gets called 'after' Buildroot builds all the
   selected software, but 'before' the rootfs packages are
   assembled. The destination root filesystem folder is given as the
   first argument to this script, and this script can then be used to
-  copy programs, static data or any other needed file to your target
-  filesystem. You should, however, use this feature with care.
-  Whenever you find that a certain package generates wrong or unneeded
-  files, you should fix that package rather than work around it with a
-  post-build cleanup script.
+  remove or modify any file in your target filesystem. You should,
+  however, use this feature with care. Whenever you find that a certain
+  package generates wrong or unneeded files, you should fix that
+  package rather than work around it with a post-build cleanup script.
 
 * A special package, 'customize', stored in +package/customize+ can be
   used. You can put all the files that you want to see in the final
diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
index 44de356..7ca0db3 100644
--- a/docs/manual/customize-store.txt
+++ b/docs/manual/customize-store.txt
@@ -127,16 +127,12 @@ you can skip the steps that are not relevant for your use case.
    * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
-   +board/<manufacturer>/<boardname>/etc/inittab+.
+   +board/<manufacturer>/<boardname>/etc/inittab+.  Set +BR2_ROOTFS_OVERLAY+
+   to +board/<manufacturer>/<boardname>/fs-overlay+.
 1. Create a post-build script
-   +board/<manufacturer>/<boardname>/post-build.sh+.  It should contain
-   the following command:
-+
-------------
-rsync -a --exclude .empty --exclude '*~' ${0%/*}/fs-overlay $1
-------------
-+
-1. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +board/<manufacturer>/<boardname>/post-build.sh+
+   +board/<manufacturer>/<boardname>/post-build.sh+.  Set
+   +BR2_ROOTFS_POST_BUILD_SCRIPT+ to
+   +board/<manufacturer>/<boardname>/post-build.sh+
 1. If additional setuid permissions have to be set or device nodes have
    to be created, create +board/<manufacturer>/<boardname>/device_table.txt+
    and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
@@ -179,16 +175,11 @@ the buildroot tree).
    * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
-   +<path-to-board-directory>/etc/inittab+.
+   +<path-to-board-directory>/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+
+   to +<path-to-board-directory>/fs-overlay+.
 1. Create a post-build script
-   +<path-to-board-directory>/post-build.sh+.  It should contain
-   the following command:
-+
-------------
-rsync -a --exclude .empty --exclude '*~' ${0%/*}/fs-overlay $1
-------------
-+
-1. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +$(BOARDDIR)/post-build.sh+
+   +<path-to-board-directory>/post-build.sh+. Set
+   +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +$(BOARDDIR)/post-build.sh+
 1. If additional setuid permissions have to be set or device nodes have
    to be created, create +<path-to-board-directory>/device_table.txt+
    and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
diff --git a/target/generic/Config.in b/target/generic/Config.in
index b8472f4..7f53a7c 100644
--- a/target/generic/Config.in
+++ b/target/generic/Config.in
@@ -166,6 +166,17 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
 
 endif # BR2_ROOTFS_SKELETON_DEFAULT
 
+config BR2_ROOTFS_OVERLAY
+	string "Root filesystem overlay"
+	default ""
+	help
+	  Specify a list of directories that are copied over the target
+	  root filesystem after the build has finished and before it is
+	  packed into the selected filesystem images.
+
+	  It is copied as-is into the rootfs, excluding files ending with
+	  ~ and .git, .svn and .hg directories.
+
 config BR2_ROOTFS_POST_BUILD_SCRIPT
 	string "Custom script to run before creating filesystem images"
 	default ""
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 01/10] manual: add section about storing " Arnout Vandecappelle
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:12   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 04/10] busybox: busybox-update-config should depend on busybox-configure Arnout Vandecappelle
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Analogous to linux-update-config and friends.

Also update documentation.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 docs/manual/customize-store.txt                  |    8 ++++----
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    3 +++
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
index 7ca0db3..e8e1d9b 100644
--- a/docs/manual/customize-store.txt
+++ b/docs/manual/customize-store.txt
@@ -58,8 +58,8 @@ configuration files easier.
   path specified by +BR2_PACKAGE_BUSYBOX_CONFIG+.
 * +make uclibc-update-config+ saves the uClibc configuration to the
   path specified by +BR2_UCLIBC_CONFIG+.
-* For crosstool-NG, no helper exists so you have to copy the config
-  file manually to +BR2_TOOLCHAIN_CTNG_CONFIG+.
+* +make ctng-update-config+ saves the crosstool-NG configuration to the
+  patch specified by +BR2_TOOLCHAIN_CTNG_CONFIG+.
 
 
 Creating your own board support
@@ -122,7 +122,7 @@ you can skip the steps that are not relevant for your use case.
 1. Write the configuration files:
    * +make linux-update-defconfig+
    * +make busybox-update-config+
-   * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
+   * +make ctng-update-config+
    * +make uclibc-update-config+
    * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
@@ -170,7 +170,7 @@ the buildroot tree).
 1. Write the configuration files:
    * +make linux-update-defconfig+
    * +make busybox-update-config+
-   * +cp <output>/build/build-toolchain/.config <path-to-board-directory>/ctng.config+
+   * +make ctng-update-config+
    * +make uclibc-update-config+
    * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
index e46bb20..fb6da0f 100644
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
@@ -397,3 +397,6 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 	$(call ctng-oldconfig,$<)
 	$(call ctng-check-config-changed,$<,$<.timestamp)
 	$(Q)rm -f $<.timestamp
+
+ctng-update-config: $(CTNG_DIR)/.config
+	cp -f $< $(CTNG_CONFIG_FILE)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 04/10] busybox: busybox-update-config should depend on busybox-configure
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (2 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:12   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 05/10] at91bootstrap3: add -update-config target Arnout Vandecappelle
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Before the config file can be copied, it has to exist.  The
other xxx-update-config targets do this as well.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
v2: small spelling mistake in commit message
---
 package/busybox/busybox.mk |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index 33f8633..e95364c 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -215,5 +215,5 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
 	rm -f $(BUSYBOX_DIR)/.stamp_built
 	rm -f $(BUSYBOX_DIR)/.stamp_target_installed
 
-busybox-update-config:
+busybox-update-config: busybox-configure
 	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 05/10] at91bootstrap3: add -update-config target
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (3 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 04/10] busybox: busybox-update-config should depend on busybox-configure Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:12   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 06/10] Add update-all-config target Arnout Vandecappelle
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 boot/at91bootstrap3/at91bootstrap3.mk |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/boot/at91bootstrap3/at91bootstrap3.mk b/boot/at91bootstrap3/at91bootstrap3.mk
index 74f08e8..bb6ef09 100644
--- a/boot/at91bootstrap3/at91bootstrap3.mk
+++ b/boot/at91bootstrap3/at91bootstrap3.mk
@@ -65,3 +65,10 @@ $(error No at91bootstrap3 configuration file specified, check your BR2_TARGET_AT
 endif
 endif
 endif
+
+ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
+at91bootstrap3-update-config: at91bootstrap3-configure
+	cp -f $(AT91BOOTSTRAP3_DIR)/.config $(AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)
+else
+at91bootstrap3-update-config: ;
+endif
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 06/10] Add update-all-config target
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (4 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 05/10] at91bootstrap3: add -update-config target Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:12   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config Arnout Vandecappelle
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

The update-all-config target updates all the external configuration
file with their current values.  This includes:
- buildroot
- busybox
- linux
- crosstool-ng
- uClibc
- at91bootstrap3

Linux and buildroot are saved as defconfigs.  For Linux, this means
that it will fail on kernels before 2.6.33 (when the savedefconfig
was added to Linux Kconfig).

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
Barebox is missing because there is no BR2_TARGET_BAREBOX_CONFIG option.
Can be added once Maxime's patch has been accepted.
---
 Makefile                                         |    6 ++++++
 boot/at91bootstrap3/at91bootstrap3.mk            |    1 +
 docs/manual/customize-store.txt                  |   18 ++++--------------
 linux/linux.mk                                   |    2 ++
 package/busybox/busybox.mk                       |    4 ++++
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    4 ++++
 toolchain/uClibc/uclibc.mk                       |    4 ++++
 7 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/Makefile b/Makefile
index 2122d45..e257c61 100644
--- a/Makefile
+++ b/Makefile
@@ -548,6 +548,10 @@ legal-info: dirs legal-info-clean legal-info-prepare $(REDIST_SOURCES_DIR) \
 show-targets:
 	@echo $(TARGETS)
 
+# UPDATE_ALL_CONFIG_TARGETS is set by the individual packages that have a
+# save*config target.
+update-all-config: savedefconfig $(UPDATE_ALL_CONFIG_TARGETS)
+
 else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
 
 all: menuconfig
@@ -700,6 +704,8 @@ help:
 	@echo '  defconfig              - New config with default answer to all options'
 	@echo '                             BR2_DEFCONFIG, if set, is used as input'
 	@echo '  savedefconfig          - Save current config as ./defconfig (minimal config)'
+	@echo '  update-all-config      - Update all configuration targets that have an input:'
+	@echo '                           buildroot, busybox, linux, crosstool-ng, uClibc'
 	@echo '  allyesconfig           - New config where all options are accepted with yes'
 	@echo '  allnoconfig            - New config where all options are answered with no'
 	@echo '  randpackageconfig      - New config with random answer to package options'
diff --git a/boot/at91bootstrap3/at91bootstrap3.mk b/boot/at91bootstrap3/at91bootstrap3.mk
index bb6ef09..1451ad8 100644
--- a/boot/at91bootstrap3/at91bootstrap3.mk
+++ b/boot/at91bootstrap3/at91bootstrap3.mk
@@ -69,6 +69,7 @@ endif
 ifeq ($(BR2_TARGET_AT91BOOTSTRAP3_USE_CUSTOM_CONFIG),y)
 at91bootstrap3-update-config: at91bootstrap3-configure
 	cp -f $(AT91BOOTSTRAP3_DIR)/.config $(AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE)
+UPDATE_ALL_CONFIG_TARGETS += at91bootstrap3-update-defconfig
 else
 at91bootstrap3-update-config: ;
 endif
diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
index e8e1d9b..05d1061 100644
--- a/docs/manual/customize-store.txt
+++ b/docs/manual/customize-store.txt
@@ -60,6 +60,8 @@ configuration files easier.
   path specified by +BR2_UCLIBC_CONFIG+.
 * +make ctng-update-config+ saves the crosstool-NG configuration to the
   patch specified by +BR2_TOOLCHAIN_CTNG_CONFIG+.
+* +make update-all-config+ updates all of the above configuration files
+  for which you have defined the corresponding +_CONFIG+ option.
 
 
 Creating your own board support
@@ -119,12 +121,6 @@ you can skip the steps that are not relevant for your use case.
    * +BR2_TOOLCHAIN_CTNG_CONFIG+
    * +BR2_UCLIBC_CONFIG+
    * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
-1. Write the configuration files:
-   * +make linux-update-defconfig+
-   * +make busybox-update-config+
-   * +make ctng-update-config+
-   * +make uclibc-update-config+
-   * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
 1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
    +board/<manufacturer>/<boardname>/etc/inittab+.  Set +BR2_ROOTFS_OVERLAY+
@@ -136,7 +132,7 @@ you can skip the steps that are not relevant for your use case.
 1. If additional setuid permissions have to be set or device nodes have
    to be created, create +board/<manufacturer>/<boardname>/device_table.txt+
    and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
-1. +make savedefconfig+ to save the buildroot configuration.
+1. Write the configuration files: +make update-all-config+
 1. +cp defconfig configs/<boardname>_defconfig+
 1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to
    +board/<manufacturer>/<boardname>/patches/linux+ and add your
@@ -167,12 +163,6 @@ the buildroot tree).
    * +BR2_TOOLCHAIN_CTNG_CONFIG+
    * +BR2_UCLIBC_CONFIG+
    * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
-1. Write the configuration files:
-   * +make linux-update-defconfig+
-   * +make busybox-update-config+
-   * +make ctng-update-config+
-   * +make uclibc-update-config+
-   * +cp <output>/build/at91bootstrap3-*/.config <path-to-board-directory>/at91bootstrap3.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
    +<path-to-board-directory>/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+
@@ -183,7 +173,7 @@ the buildroot tree).
 1. If additional setuid permissions have to be set or device nodes have
    to be created, create +<path-to-board-directory>/device_table.txt+
    and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
-1. +make savedefconfig+ to save the buildroot configuration.
+1. Write the configuration files: +make update-all-config+
 1. +cp defconfig <path-to-board-directory>/buildroot.config+
 1. Create a script or Makefile in the board directory that calls
    buildroot:
diff --git a/linux/linux.mk b/linux/linux.mk
index c4bdf90..98ffe44 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -151,6 +151,8 @@ ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
 else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
 KERNEL_SOURCE_CONFIG = $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
+# savedefconfig requires a kernel >= 2.6.33
+UPDATE_ALL_CONFIG_TARGETS += linux-update-defconfig
 endif
 
 define LINUX_CONFIGURE_CMDS
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index e95364c..c73d0d0 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -217,3 +217,7 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
 
 busybox-update-config: busybox-configure
 	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
+
+ifneq ($(BUSYBOX_CONFIG_FILE),)
+UPDATE_ALL_CONFIG_TARGETS += busybox-update-config
+endif
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
index fb6da0f..37398bd 100644
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
@@ -400,3 +400,7 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 
 ctng-update-config: $(CTNG_DIR)/.config
 	cp -f $< $(CTNG_CONFIG_FILE)
+
+ifneq ($(CTNG_CONFIG_FILE),)
+UPDATE_ALL_CONFIG_TARGETS += ctng-update-config
+endif
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index d1cd718..0faaf18 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -508,6 +508,10 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
 uclibc-update-config: uclibc-config
 	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
 
+ifneq ($(UCLIBC_CONFIG_FILE),)
+UPDATE_ALL_CONFIG_TARGETS += uclibc-update-config
+endif
+
 uclibc-configured: gcc_initial kernel-headers $(UCLIBC_DIR)/.configured
 
 uclibc-configured-source: uclibc-source
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (5 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 06/10] Add update-all-config target Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:13   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 08/10] crosstool-ng: update-all-config shouldn't update default crosstool-ng config Arnout Vandecappelle
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

The new update-all-config target will update the busybox config file
if BR2_PACKAGE_BUSYBOX_CONFIG is set, even if it is set to the
default value in package/busybox/busybox-xxx.config.

To avoid this, set the default BR2_PACKAGE_BUSYBOX_CONFIG to empty,
and select a default to use in the .mk file.

Note that busybox-update-config will still overwrite the default
file in package/busybox/busybox-xxx.config - presumably it's
intentional.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 package/busybox/Config.in  |    7 ++-----
 package/busybox/busybox.mk |    9 +++++----
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/package/busybox/Config.in b/package/busybox/Config.in
index dedcf18..0b77872 100644
--- a/package/busybox/Config.in
+++ b/package/busybox/Config.in
@@ -40,15 +40,12 @@ config BR2_BUSYBOX_VERSION
 
 config BR2_PACKAGE_BUSYBOX_CONFIG
 	string "BusyBox configuration file to use?"
-	default "package/busybox/busybox-1.20.x.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
-	default "package/busybox/busybox-1.18.x.config" if BR2_BUSYBOX_VERSION_1_18_X
-	default "package/busybox/busybox-1.19.x.config" if BR2_BUSYBOX_VERSION_1_19_X
-	default "package/busybox/busybox-1.20.x.config" if BR2_BUSYBOX_VERSION_1_20_X
+	default ""
 	help
 	  Some people may wish to use their own modified BusyBox configuration
 	  file, and will specify their config file location with this option.
 
-	  Most people will just use the default BusyBox configuration file.
+	  If left empty, a default configuration file is used.
 
 config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 	bool "Show packages that are also provided by busybox"
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index c73d0d0..5c54319 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -6,9 +6,11 @@
 
 ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
 BUSYBOX_VERSION = snapshot
+BUSYBOX_CONFIG_VERSION = 1.20
 BUSYBOX_SITE = http://www.busybox.net/downloads/snapshots
 else
 BUSYBOX_VERSION = $(call qstrip,$(BR2_BUSYBOX_VERSION))
+BUSYBOX_CONFIG_VERSION = $(subst $(space),.,$(wordlist 1,2,$(subst .,$(space),$(BUSYBOX_VERSION))))
 BUSYBOX_SITE = http://www.busybox.net/downloads
 endif
 BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2
@@ -27,9 +29,8 @@ BUSYBOX_MAKE_OPTS = \
 	CONFIG_PREFIX="$(TARGET_DIR)" \
 	SKIP_STRIP=y
 
-ifndef BUSYBOX_CONFIG_FILE
-	BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
-endif
+BUSYBOX_CONFIG = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
+BUSYBOX_CONFIG_FILE = $(or $(wildcard $(BUSYBOX_CONFIG)),package/busybox/busybox-$(BUSYBOX_CONFIG_VERSION).x.config)
 
 define BUSYBOX_PERMISSIONS
 /bin/busybox			 f 4755	0 0 - - - - -
@@ -218,6 +219,6 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
 busybox-update-config: busybox-configure
 	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
 
-ifneq ($(BUSYBOX_CONFIG_FILE),)
+ifneq ($(BUSYBOX_CONFIG),)
 UPDATE_ALL_CONFIG_TARGETS += busybox-update-config
 endif
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 08/10] crosstool-ng: update-all-config shouldn't update default crosstool-ng config
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (6 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:13   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 09/10] uClibc: update-all-config shouldn't update default uClibc config Arnout Vandecappelle
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file Arnout Vandecappelle
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

The new update-all-config target will update the ctng config file
if BR2_TOOLCHAIN_CTNG_CONFIG is set, even if it is set to the
default value in toolchain/toolchain-crosstool-ng/crosstool-ng.config-xxx

To avoid this, set the default BR2_TOOLCHAIN_CTNG_CONFIG to empty,
and select a default to use in the .mk file.

Note that ctng-update-config will still overwrite the default
file in toolchain/toolchain-crosstool-ng/crosstool-ng.config-xxx -
presumably it's intentional.

Also factored out the often-qstripped BR2_TOOLCHAIN_CTNG_LIBC (thereby
adding a few missing qstrips).

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
v2: fix copy-paste error in commit message (Samuel Martin)
---
 toolchain/toolchain-crosstool-ng/Config.in       |    6 ++----
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |   16 +++++++++-------
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/toolchain/toolchain-crosstool-ng/Config.in b/toolchain/toolchain-crosstool-ng/Config.in
index 35ea2b1..e5d373e 100644
--- a/toolchain/toolchain-crosstool-ng/Config.in
+++ b/toolchain/toolchain-crosstool-ng/Config.in
@@ -36,15 +36,13 @@ config BR2_TOOLCHAIN_CTNG_LIBC
 
 config BR2_TOOLCHAIN_CTNG_CONFIG
 	string "crosstool-NG configuration file to use"
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc" if BR2_TOOLCHAIN_CTNG_uClibc
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc" if BR2_TOOLCHAIN_CTNG_eglibc
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc"  if BR2_TOOLCHAIN_CTNG_glibc
+	default ""
 	help
 	  Enter here the crosstool-NG's .config file to use.
 	  To fine-tune your toolchain, you can also call:
 	    make ctng-menuconfig
 
-	  If unsure, keep the default value.
+	  If left empty, a default configuration file is used.
 
 if BR2_TOOLCHAIN_CTNG_uClibc
 
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
index 37398bd..c99c8d8 100644
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
@@ -9,9 +9,11 @@
 # Internal variables
 
 CTNG_DIR := $(BUILD_DIR)/build-toolchain
+CTNG_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_CTNG_LIBC))
 
 CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/toolchain/uClibc/uClibc-0.9.33.config
-CTNG_CONFIG_FILE:=$(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
+CTNG_CONFIG = $(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
+CTNG_CONFIG_FILE = $(or $(wildcard $(CTNG_CONFIG)),toolchain/toolchain-crosstool-ng/crosstool-ng.config-$(CTNG_LIBC))
 
 # Hack! ct-ng is in fact a Makefile script. As such, it accepts all
 # make options, such as -C, which makes it uneeded to chdir prior
@@ -50,7 +52,7 @@ CTNG_LIBS_eglibc := $(CTNG_LIBS_glibc)
 
 #--------------
 # All that we need in /lib
-CTNG_LIBS_LIB += $(CTNG_LIBS_$(call qstrip,$(BR2_TOOLCHAIN_CTNG_LIBC)))
+CTNG_LIBS_LIB += $(CTNG_LIBS_$(CTNG_LIBC))
 
 #--------------
 # All that we need in /usr/lib
@@ -348,7 +350,7 @@ define ctng-oldconfig
 	$(call ctng,CT_IS_A_BACKEND=y                           \
 	            CT_BACKEND_ARCH=$(CTNG_ARCH)                \
 	            CT_BACKEND_KERNEL=linux                     \
-	            CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
+	            CT_BACKEND_LIBC=$(CTNG_LIBC)                \
 	            oldconfig                                   )
 	$(call ctng-fix-dot-config,$(1),$(CTNG_FIX_DOT_CONFIG_PATHS_SED))
 endef
@@ -372,9 +374,9 @@ $(CTNG_DIR)/.config: $(CTNG_CONFIG_FILE) $(CONFIG_DIR)/.config
 	$(Q)if [ ! -f $@ ]; then                                                        \
 	        mkdir -p "$(CTNG_DIR)";                                                 \
 	        libc="$$(awk -F '"' '$$1=="CT_LIBC=" { print $$2; }' "$<")";            \
-	        if [ "$${libc}" != "$(BR2_TOOLCHAIN_CTNG_LIBC)" ]; then                 \
+	        if [ "$${libc}" != "$(CTNG_LIBC)" ]; then                               \
 	            echo "* Inconsistency in crosstool-NG config file '$<'";            \
-	            echo "* - buildroot configured for '$(BR2_TOOLCHAIN_CTNG_LIBC)'";   \
+	            echo "* - buildroot configured for '$(CTNG_LIBC)'";                 \
 	            echo "* - given config file for '$${libc}'";                        \
 	            exit 1;                                                             \
 	        fi;                                                                     \
@@ -392,7 +394,7 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 	$(Q)$(call ctng,CT_IS_A_BACKEND=y                           \
 	                CT_BACKEND_ARCH=$(CTNG_ARCH)                \
 	                CT_BACKEND_KERNEL=linux                     \
-	                CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
+	                CT_BACKEND_LIBC=$(CTNG_LIBC)                \
 	                menuconfig                                  )
 	$(call ctng-oldconfig,$<)
 	$(call ctng-check-config-changed,$<,$<.timestamp)
@@ -401,6 +403,6 @@ ctng-menuconfig: $(CTNG_DIR)/.config
 ctng-update-config: $(CTNG_DIR)/.config
 	cp -f $< $(CTNG_CONFIG_FILE)
 
-ifneq ($(CTNG_CONFIG_FILE),)
+ifneq ($(CTNG_CONFIG),)
 UPDATE_ALL_CONFIG_TARGETS += ctng-update-config
 endif
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 09/10] uClibc: update-all-config shouldn't update default uClibc config
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (7 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 08/10] crosstool-ng: update-all-config shouldn't update default crosstool-ng config Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:13   ` Luca Ceresoli
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file Arnout Vandecappelle
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

The new update-all-config target will update the uClibc config file
if BR2_UCLIBC_CONFIG is set, even if it is set to the default value
in toolchain/uClibc/uClibc-xxx.config.

To avoid this, set the default BR2_UCLIBC_CONFIG to empty, and select
a default to use in the .mk file.

Note that uclibc-update-config will still overwrite the default file
in toolchain/uClibc/uClibc-xxx.config - presumably it's intentional.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 toolchain/uClibc/Config.in |    7 ++-----
 toolchain/uClibc/uclibc.mk |   23 +++++++++++------------
 2 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
index f46a415..9cce05d 100644
--- a/toolchain/uClibc/Config.in
+++ b/toolchain/uClibc/Config.in
@@ -42,15 +42,12 @@ config BR2_UCLIBC_VERSION_STRING
 
 config BR2_UCLIBC_CONFIG
 	string "uClibc configuration file to use?"
-	default "toolchain/uClibc/uClibc-0.9.31.config" if BR2_UCLIBC_VERSION_0_9_31
-	default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
-	default "toolchain/uClibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
-	default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
+	default ""
 	help
 	  Some people may wish to use their own modified uClibc configuration
 	  file and will specify their config file location with this option.
 	  See also docs/README in this package.
-	  If unsure, use the default.
+	  If left empty, a default configuration will be used.
 
 config BR2_PTHREAD_DEBUG
 	bool "Thread library debugging"
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index 0faaf18..d032684 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -6,22 +6,21 @@
 
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 
-# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
-# setting.
-ifndef UCLIBC_CONFIG_FILE
-UCLIBC_CONFIG_FILE=$(call qstrip,$(BR2_UCLIBC_CONFIG))
-endif
-
-UCLIBC_VERSION:=$(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
+UCLIBC_VERSION = $(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
 
 ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
-UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc
+UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots
+UCLIBC_DIR  = $(TOOLCHAIN_DIR)/uClibc
+UCLIBC_CONFIG_VERSION = snapshot
 else
-UCLIBC_SITE:=http://www.uclibc.org/downloads
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
+UCLIBC_SITE = http://www.uclibc.org/downloads
+UCLIBC_DIR  = $(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
+UCLIBC_CONFIG_VERSION = $(subst $(space),.,$(wordlist 1,3,$(subst .,$(space),$(UCLIBC_VERSION))))
 endif
 
+UCLIBC_CONFIG = $(call qstrip,$(BR2_UCLIBC_CONFIG))
+UCLIBC_CONFIG_FILE = $(or $(wildcard $(UCLIBC_CONFIG)),toolchain/uClibc/uClibc-$(UCLIBC_CONFIG_VERSION).config)
+
 UCLIBC_PATCH_DIR:=toolchain/uClibc/
 UCLIBC_SOURCE:=uClibc-$(UCLIBC_VERSION).tar.bz2
 
@@ -508,7 +507,7 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
 uclibc-update-config: uclibc-config
 	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
 
-ifneq ($(UCLIBC_CONFIG_FILE),)
+ifneq ($(UCLIBC_CONFIG),)
 UPDATE_ALL_CONFIG_TARGETS += uclibc-update-config
 endif
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file.
  2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
                   ` (8 preceding siblings ...)
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 09/10] uClibc: update-all-config shouldn't update default uClibc config Arnout Vandecappelle
@ 2012-10-24  7:17 ` Arnout Vandecappelle
  2012-11-07  8:14   ` Luca Ceresoli
  9 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-10-24  7:17 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Store BR2_DEFCONFIG in .config, and use it to update the original input
defconfig file after updating the configuration.  When a config is
created by using the BR2_DEFCONFIG=... option, this is saved in the
.config file; later runs of savedefconfig will update that same location.
It is also possible to configure this place in the interactive
configuration.

The BR2_DEFCONFIG value itself is not saved into the generated
defconfig, since Kconfig considers it at its default. This is
intentional, to avoid hard-coding an absolute path in the defconfig.
It will anyway be set again when the defconfig is used with the
'make BR2_DEFCONFIG=... defconfig' command.

As a side-effect of this change, the *config options have been moved out
of the BR2_HAVE_DOT_CONFIG condition.  This doesn't make any functional
difference, because the .config is still not read for the *config targets.
However, the defconfig and savedefconfig targets do need to include
.config now, which makes them slightly slower.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 Config.in                       |   12 ++++++++++++
 Makefile                        |   17 +++++++++++++----
 docs/manual/customize-store.txt |    1 +
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/Config.in b/Config.in
index dab7787..670ce84 100644
--- a/Config.in
+++ b/Config.in
@@ -16,6 +16,18 @@ config BR2_HOSTARCH
 
 source "target/Config.in.arch"
 
+config BR2_DEFCONFIG_FROM_ENV
+	string
+	option env="BR2_DEFCONFIG"
+
+config BR2_DEFCONFIG
+	string "Location to save buildroot config"
+	default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
+	default "$(CONFIG_DIR)/defconfig"
+	help
+	  When running 'make savedefconfig', the defconfig file will be saved
+	  in this location.
+
 menu "Build options"
 
 menu "Commands"
diff --git a/Makefile b/Makefile
index e257c61..f6b8ef8 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,7 @@ DATE:=$(shell date +%Y%m%d)
 export BR2_VERSION_FULL:=$(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)
 
 noconfig_targets:=menuconfig nconfig gconfig xconfig config oldconfig randconfig \
-	defconfig %_defconfig savedefconfig allyesconfig allnoconfig silentoldconfig release \
+	%_defconfig allyesconfig allnoconfig silentoldconfig release \
 	randpackageconfig allyespackageconfig allnopackageconfig \
 	source-check print-version
 
@@ -556,6 +556,8 @@ else # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
 
 all: menuconfig
 
+endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+
 # configuration
 # ---------------------------------------------------------------------------
 
@@ -566,7 +568,12 @@ $(BUILD_DIR)/buildroot-config/%onf:
 	mkdir -p $(@D)/lxdialog
 	$(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
 
+DEFCONFIG = $(call qstrip,$(BR2_DEFCONFIG))
+
+# We don't want to fully expand BR2_DEFCONFIG here, so Kconfig will
+# recognize that if it's still at its default $(CONFIG_DIR)/defconfig
 COMMON_CONFIG_ENV = \
+	BR2_DEFCONFIG='$(call qstrip,$(value BR2_DEFCONFIG))' \
 	KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \
 	KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \
 	KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
@@ -638,7 +645,7 @@ silentoldconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 
 defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 	@mkdir -p $(BUILD_DIR)/buildroot-config
-	@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(BR2_DEFCONFIG),=$(BR2_DEFCONFIG)) $(CONFIG_CONFIG_IN)
+	@$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)
 
 %_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig outputmakefile
 	@mkdir -p $(BUILD_DIR)/buildroot-config
@@ -646,13 +653,15 @@ defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 
 savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile
 	@mkdir -p $(BUILD_DIR)/buildroot-config
-	@$(COMMON_CONFIG_ENV) $< --savedefconfig=$(CONFIG_DIR)/defconfig $(CONFIG_CONFIG_IN)
+	@$(COMMON_CONFIG_ENV) $< \
+		--savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \
+		$(CONFIG_CONFIG_IN)
 
 # check if download URLs are outdated
 source-check:
 	$(MAKE) DL_MODE=SOURCE_CHECK $(EXTRAMAKEARGS) source
 
-endif # ifeq ($(BR2_HAVE_DOT_CONFIG),y)
+.PHONY: defconfig savedefconfig
 
 #############################################################
 #
diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
index 05d1061..77b079c 100644
--- a/docs/manual/customize-store.txt
+++ b/docs/manual/customize-store.txt
@@ -163,6 +163,7 @@ the buildroot tree).
    * +BR2_TOOLCHAIN_CTNG_CONFIG+
    * +BR2_UCLIBC_CONFIG+
    * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
+1. Set +BR2_DEFCONFIG+ to +<path-to-board-directory>/buildroot.config+
 1. Create +<path-to-board-directory>/fs-overlay+ and fill it
    with additional files you need on your rootfs, e.g.
    +<path-to-board-directory>/etc/inittab+. Set +BR2_ROOTFS_OVERLAY+
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 01/10] manual: add section about storing the configuration.
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 01/10] manual: add section about storing " Arnout Vandecappelle
@ 2012-11-04 13:10   ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-04 13:10 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> Reuse part of board-support.txt, and remove that one because it
> was unused.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

A few nitpicking notes below, but I like it globally. Thanks for
working for improving the docs!

Note also I have no comments about the last section ("Step-by-step
instructions for storing configuration outside the buildroot tree") as
I always work inside the tree.

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

> diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
> new file mode 100644
> index 0000000..44de356
> --- /dev/null
> +++ b/docs/manual/customize-store.txt
> @@ -0,0 +1,249 @@
> +Storing the configuration
> +-------------------------
> +[[customize-store]]
> +
> +When you have a buildroot configuration that you are satisfied with
> +and you want to move to share it with others, put it under revision

s/to move //

> +control or move on to a different buildroot project, you need to store
> +the configuration so it can be rebuilt later. The configuration that
> +needs to be stored consists of the buildroot configuration, the
> +configuration files for packages that you use (kernel, busybox,
> +uClibc, ...), and your rootfs modifications.
> +
> +Basics for storing the configuration
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +[[customize-store-basics]]
> +
> +Buildroot configuration
> +^^^^^^^^^^^^^^^^^^^^^^^
> +
> +For storing the buildroot configuration itself, buildroot offers the
> +following command: +make savedefconfig+
> +
> +This strips the buildroot configuration down by removing configuration
> +options that are at their default value. The result is stored in a file
> +called +defconfig+. Copy this file to +foo_defconfig+ in the +configs+
> +directory. The configuration can then be rebuilt by running
> ++make foo_defconfig+
> +
> +Alternatively, you can copy the file to any other place and rebuild with
> ++make BR2_DEFCONFIG=<path-to-defconfig> defconfig+

The space before defconfig is wrong. Either:
+make BR2_DEFCONFIG=<path-to-defconfig>/defconfig+
or
+make BR2_DEFCONFIG=<path-to-defconfig-file>+
(I prefer the latter)

> +
> +
> +Other package configuration
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +The configuration files for busybox, the linux kernel, uClibc and
> +crosstool-NG should be stored as well. For each of these, a
> +buildroot configuration option exists to point to an input configuration
> +file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+.  To save their
> +configuration, set those configuration options to a path outside
> +your output directory.  Then, copy the configuration files
> +to that path.

You may add an example dir, such as
board/<mycompany>/<myboard>/linux.config.

PS: I see this exmaple is present later in "Creating you board
support". I would still add an example here to clarify.

> +
> +Make sure that you create a configuration file 'before' changing
> +the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options.  Otherwise,
> +buildroot will try to access this config file, which doesn't exist
> +yet, and will fail.

It's not very clear what "create a config file" means. You might
clarify by appending " by building the package at least once".
You actyally only need to run make <foo>-configure, but I don't know
how to explain it clearly.

...snip...

> +
> +Step-by-step instructions for storing configuration inside the buildroot tree
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +To store the configuration for a specific product, device or
> +application, it is advisable to use the same conventions as for the
> +board support: put the buildroot defconfig in the +configs+ directory,
> +and any other files in a subdirectory of the +boards+ directory.  This
> +section gives step-by-step instructions about how to do that. Of course,
> +you can skip the steps that are not relevant for your use case.
> +
> +1. +make menuconfig+ to configure toolchain, packages and kernel.
> +1. +make linux-menuconfig+ to update the kernel config, similar for
> +   other configuration.
> +1. +mkdir -p board/<manufacturer>/<boardname>+
> +1. Set the following options to +board/<manufacturer>/<boardname>/<package>.config+
> +   (as far as they are relevant):
> +   * +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
> +   * +BR2_PACKAGE_BUSYBOX_CONFIG+
> +   * +BR2_TOOLCHAIN_CTNG_CONFIG+
> +   * +BR2_UCLIBC_CONFIG+
> +   * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
> +1. Write the configuration files:
> +   * +make linux-update-defconfig+
> +   * +make busybox-update-config+
> +   * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
> +   * +make uclibc-update-config+
> +   * +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+

Same as above: before *-update-*config, you have to build the relevant
packages (or at least configure them successfully).

> +1. Create +board/<manufacturer>/<boardname>/fs-overlay+ and fill it

I would clarify that fs-overlay is a directory, not a file. Just adding
a trailing '/' would be fine.

> +   with additional files you need on your rootfs, e.g.
> +   +board/<manufacturer>/<boardname>/etc/inittab+.
> +1. Create a post-build script
> +   +board/<manufacturer>/<boardname>/post-build.sh+.  It should contain
> +   the following command:
> ++
> +------------
> +rsync -a --exclude .empty --exclude '*~' ${0%/*}/fs-overlay $1
> +------------

Unnecessarily complex for docs IMHO, I'd rather use cp here.
But I don't care that much as this line is being removed in the next
patch, which I hope to see committed.

> ++
> +1. Set +BR2_ROOTFS_POST_BUILD_SCRIPT+ to +board/<manufacturer>/<boardname>/post-build.sh+
> +1. If additional setuid permissions have to be set or device nodes have
> +   to be created, create +board/<manufacturer>/<boardname>/device_table.txt+
> +   and add that path to +BR2_ROOTFS_DEVICE_TABLE+.
> +1. +make savedefconfig+ to save the buildroot configuration.
> +1. +cp defconfig configs/<boardname>_defconfig+
> +1. To add patches to the linux build, set +BR2_LINUX_KERNEL_PATCH+ to
> +   +board/<manufacturer>/<boardname>/patches/linux+ and add your

Same as above: I would clarify that fs-overlay is a directory, not a file.
Just adding a trailing '/' would be fine.

> +   patches in that directory. Each patch should be called
> +   +linux-<num>-<description>.patch+. Similar for U-Boot, barebox,
> +   at91bootstrap and at91bootstrap3.
> +1. If you need modifications to other packages, or if you need to add
> +   packages, do that directly in the +packages/+ directory.

Append ", following the instructions in xref:adding-packages[]".

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option
  2012-10-24  7:16 ` [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option Arnout Vandecappelle
@ 2012-11-04 18:19   ` Luca Ceresoli
  2012-11-06  9:01     ` Luca Ceresoli
  0 siblings, 1 reply; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-04 18:19 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> The filesystem overlay is a tree that is copied over the target fs
> after building everything - which is currently usually done in the
> post-build script.
>
> Also replace the documentation for a custom skeleton with the
> filesystem overlay and deprecate the custom skeleton.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

This is definitely something we should have in Buildroot!

With the fixes below,
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

> --- a/target/generic/Config.in
> +++ b/target/generic/Config.in
> @@ -166,6 +166,17 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
>
>   endif # BR2_ROOTFS_SKELETON_DEFAULT
>
> +config BR2_ROOTFS_OVERLAY
> +	string "Root filesystem overlay"

s/overlay/overlays/
or, even better: string "Root filesystem overlay directories"


> +	default ""
> +	help
> +	  Specify a list of directories that are copied over the target
> +	  root filesystem after the build has finished and before it is
> +	  packed into the selected filesystem images.
> +
> +	  It is copied as-is into the rootfs, excluding files ending with

s/It is/They are/

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option
  2012-11-04 18:19   ` Luca Ceresoli
@ 2012-11-06  9:01     ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-06  9:01 UTC (permalink / raw)
  To: buildroot

Il 04/11/2012 19:19, Luca Ceresoli wrote:
> Arnout Vandecappelle (Essensium/Mind) wrote:
>> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>>
>> The filesystem overlay is a tree that is copied over the target fs
>> after building everything - which is currently usually done in the
>> post-build script.
>>
>> Also replace the documentation for a custom skeleton with the
>> filesystem overlay and deprecate the custom skeleton.

Ah, the last 5 comment words are not true anymore.

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target Arnout Vandecappelle
@ 2012-11-07  8:12   ` Luca Ceresoli
  2012-11-07  8:17     ` Arnout Vandecappelle
  0 siblings, 1 reply; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:12 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> Analogous to linux-update-config and friends.
>
> Also update documentation.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 04/10] busybox: busybox-update-config should depend on busybox-configure
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 04/10] busybox: busybox-update-config should depend on busybox-configure Arnout Vandecappelle
@ 2012-11-07  8:12   ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:12 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> Before the config file can be copied, it has to exist.  The
> other xxx-update-config targets do this as well.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 05/10] at91bootstrap3: add -update-config target
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 05/10] at91bootstrap3: add -update-config target Arnout Vandecappelle
@ 2012-11-07  8:12   ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:12 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 06/10] Add update-all-config target
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 06/10] Add update-all-config target Arnout Vandecappelle
@ 2012-11-07  8:12   ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:12 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> The update-all-config target updates all the external configuration
> file with their current values.  This includes:
> - buildroot
> - busybox
> - linux
> - crosstool-ng
> - uClibc
> - at91bootstrap3
>
> Linux and buildroot are saved as defconfigs.  For Linux, this means
> that it will fail on kernels before 2.6.33 (when the savedefconfig
> was added to Linux Kconfig).
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

I think this target should be renamed update-all-configs (plural), but
that's just cosmetics, so:

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config Arnout Vandecappelle
@ 2012-11-07  8:13   ` Luca Ceresoli
  2012-11-07 19:20     ` Arnout Vandecappelle
  0 siblings, 1 reply; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:13 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> The new update-all-config target will update the busybox config file
> if BR2_PACKAGE_BUSYBOX_CONFIG is set, even if it is set to the
> default value in package/busybox/busybox-xxx.config.
>
> To avoid this, set the default BR2_PACKAGE_BUSYBOX_CONFIG to empty,
> and select a default to use in the .mk file.
>
> Note that busybox-update-config will still overwrite the default
> file in package/busybox/busybox-xxx.config - presumably it's
> intentional.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> ---
>   package/busybox/Config.in  |    7 ++-----
>   package/busybox/busybox.mk |    9 +++++----
>   2 files changed, 7 insertions(+), 9 deletions(-)
>
> diff --git a/package/busybox/Config.in b/package/busybox/Config.in
> index dedcf18..0b77872 100644
> --- a/package/busybox/Config.in
> +++ b/package/busybox/Config.in
> @@ -40,15 +40,12 @@ config BR2_BUSYBOX_VERSION
>
>   config BR2_PACKAGE_BUSYBOX_CONFIG
>   	string "BusyBox configuration file to use?"
> -	default "package/busybox/busybox-1.20.x.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
> -	default "package/busybox/busybox-1.18.x.config" if BR2_BUSYBOX_VERSION_1_18_X
> -	default "package/busybox/busybox-1.19.x.config" if BR2_BUSYBOX_VERSION_1_19_X
> -	default "package/busybox/busybox-1.20.x.config" if BR2_BUSYBOX_VERSION_1_20_X
> +	default ""
>   	help
>   	  Some people may wish to use their own modified BusyBox configuration
>   	  file, and will specify their config file location with this option.
>
> -	  Most people will just use the default BusyBox configuration file.
> +	  If left empty, a default configuration file is used.
>
>   config BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>   	bool "Show packages that are also provided by busybox"
> diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
> index c73d0d0..5c54319 100644
> --- a/package/busybox/busybox.mk
> +++ b/package/busybox/busybox.mk
> @@ -6,9 +6,11 @@
>
>   ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT),y)
>   BUSYBOX_VERSION = snapshot
> +BUSYBOX_CONFIG_VERSION = 1.20
>   BUSYBOX_SITE = http://www.busybox.net/downloads/snapshots
>   else
>   BUSYBOX_VERSION = $(call qstrip,$(BR2_BUSYBOX_VERSION))
> +BUSYBOX_CONFIG_VERSION = $(subst $(space),.,$(wordlist 1,2,$(subst .,$(space),$(BUSYBOX_VERSION))))

Smart! But maybe not obvious at first sight, so I'd add a brief
explanatory comment such as:
# strip bugfix number, e.g.: 1.20.3 -> 1.20

Up to here you're automating the config filename handling, not doing
anything related to update-config. It may be worth splitting the patch,
although the changed lines are very few.

>   BUSYBOX_SITE = http://www.busybox.net/downloads
>   endif
>   BUSYBOX_SOURCE = busybox-$(BUSYBOX_VERSION).tar.bz2
> @@ -27,9 +29,8 @@ BUSYBOX_MAKE_OPTS = \
>   	CONFIG_PREFIX="$(TARGET_DIR)" \
>   	SKIP_STRIP=y
>
> -ifndef BUSYBOX_CONFIG_FILE
> -	BUSYBOX_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
> -endif
> +BUSYBOX_CONFIG = $(call qstrip,$(BR2_PACKAGE_BUSYBOX_CONFIG))
> +BUSYBOX_CONFIG_FILE = $(or $(wildcard $(BUSYBOX_CONFIG)),package/busybox/busybox-$(BUSYBOX_CONFIG_VERSION).x.config)
>
>   define BUSYBOX_PERMISSIONS
>   /bin/busybox			 f 4755	0 0 - - - - -
> @@ -218,6 +219,6 @@ busybox-menuconfig busybox-xconfig busybox-gconfig: busybox-patch
>   busybox-update-config: busybox-configure
>   	cp -f $(BUSYBOX_BUILD_CONFIG) $(BUSYBOX_CONFIG_FILE)
>
> -ifneq ($(BUSYBOX_CONFIG_FILE),)
> +ifneq ($(BUSYBOX_CONFIG),)
>   UPDATE_ALL_CONFIG_TARGETS += busybox-update-config
>   endif
>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 08/10] crosstool-ng: update-all-config shouldn't update default crosstool-ng config
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 08/10] crosstool-ng: update-all-config shouldn't update default crosstool-ng config Arnout Vandecappelle
@ 2012-11-07  8:13   ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:13 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> The new update-all-config target will update the ctng config file
> if BR2_TOOLCHAIN_CTNG_CONFIG is set, even if it is set to the
> default value in toolchain/toolchain-crosstool-ng/crosstool-ng.config-xxx
>
> To avoid this, set the default BR2_TOOLCHAIN_CTNG_CONFIG to empty,
> and select a default to use in the .mk file.
>
> Note that ctng-update-config will still overwrite the default
> file in toolchain/toolchain-crosstool-ng/crosstool-ng.config-xxx -
> presumably it's intentional.
>
> Also factored out the often-qstripped BR2_TOOLCHAIN_CTNG_LIBC (thereby
> adding a few missing qstrips).
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Acked-by: Luca Ceresoli

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 09/10] uClibc: update-all-config shouldn't update default uClibc config
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 09/10] uClibc: update-all-config shouldn't update default uClibc config Arnout Vandecappelle
@ 2012-11-07  8:13   ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:13 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> The new update-all-config target will update the uClibc config file
> if BR2_UCLIBC_CONFIG is set, even if it is set to the default value
> in toolchain/uClibc/uClibc-xxx.config.
>
> To avoid this, set the default BR2_UCLIBC_CONFIG to empty, and select
> a default to use in the .mk file.
>
> Note that uclibc-update-config will still overwrite the default file
> in toolchain/uClibc/uClibc-xxx.config - presumably it's intentional.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file.
  2012-10-24  7:17 ` [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file Arnout Vandecappelle
@ 2012-11-07  8:14   ` Luca Ceresoli
  2012-11-07 19:24     ` Arnout Vandecappelle
  0 siblings, 1 reply; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:14 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle (Essensium/Mind) wrote:
> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>
> Store BR2_DEFCONFIG in .config, and use it to update the original input
> defconfig file after updating the configuration.  When a config is
> created by using the BR2_DEFCONFIG=... option, this is saved in the
> .config file; later runs of savedefconfig will update that same location.
> It is also possible to configure this place in the interactive
> configuration.
>
> The BR2_DEFCONFIG value itself is not saved into the generated
> defconfig, since Kconfig considers it at its default. This is
> intentional, to avoid hard-coding an absolute path in the defconfig.
> It will anyway be set again when the defconfig is used with the
> 'make BR2_DEFCONFIG=... defconfig' command.
>
> As a side-effect of this change, the *config options have been moved out
> of the BR2_HAVE_DOT_CONFIG condition.  This doesn't make any functional
> difference, because the .config is still not read for the *config targets.
> However, the defconfig and savedefconfig targets do need to include
> .config now, which makes them slightly slower.
>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

...snip...

> diff --git a/docs/manual/customize-store.txt b/docs/manual/customize-store.txt
> index 05d1061..77b079c 100644
> --- a/docs/manual/customize-store.txt
> +++ b/docs/manual/customize-store.txt
> @@ -163,6 +163,7 @@ the buildroot tree).
>      * +BR2_TOOLCHAIN_CTNG_CONFIG+
>      * +BR2_UCLIBC_CONFIG+
>      * +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
> +1. Set +BR2_DEFCONFIG+ to +<path-to-board-directory>/buildroot.config+

I've always been saving my Buildroot board config in configs/, to allow
me to startup from a clean working copy with a simple:
   make myboard_defconfig

The location you suggest requires a bit more typing, but it is probably
cleaner, and it does not prevent me to continue my way... so:

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target
  2012-11-07  8:12   ` Luca Ceresoli
@ 2012-11-07  8:17     ` Arnout Vandecappelle
  2012-11-07  8:28       ` Luca Ceresoli
  0 siblings, 1 reply; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-11-07  8:17 UTC (permalink / raw)
  To: buildroot

On 07/11/12 09:12, Luca Ceresoli wrote:
> Arnout Vandecappelle (Essensium/Mind) wrote:
>> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>>
>> Analogous to linux-update-config and friends.
>>
>> Also update documentation.
>>
>> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>

  I guess you mean Acked-by?

  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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] 26+ messages in thread

* [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target
  2012-11-07  8:17     ` Arnout Vandecappelle
@ 2012-11-07  8:28       ` Luca Ceresoli
  0 siblings, 0 replies; 26+ messages in thread
From: Luca Ceresoli @ 2012-11-07  8:28 UTC (permalink / raw)
  To: buildroot

Arnout Vandecappelle wrote:
> On 07/11/12 09:12, Luca Ceresoli wrote:
>> Arnout Vandecappelle (Essensium/Mind) wrote:
>>> From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
>>>
>>> Analogous to linux-update-config and friends.
>>>
>>> Also update documentation.
>>>
>>> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>>
>> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
>
>   I guess you mean Acked-by?

Oops, of course.

Sorry,
Luca

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config
  2012-11-07  8:13   ` Luca Ceresoli
@ 2012-11-07 19:20     ` Arnout Vandecappelle
  0 siblings, 0 replies; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-11-07 19:20 UTC (permalink / raw)
  To: buildroot

On 11/07/12 09:13, Luca Ceresoli wrote:
> Up to here you're automating the config filename handling, not doing
> anything related to update-config. It may be worth splitting the patch,
> although the changed lines are very few.

  Since there's no reason for automating the config filename handling except
to enable the update-config, I don't think it's worth to split it.

  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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] 26+ messages in thread

* [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file.
  2012-11-07  8:14   ` Luca Ceresoli
@ 2012-11-07 19:24     ` Arnout Vandecappelle
  0 siblings, 0 replies; 26+ messages in thread
From: Arnout Vandecappelle @ 2012-11-07 19:24 UTC (permalink / raw)
  To: buildroot

On 11/07/12 09:14, Luca Ceresoli wrote:
>> +1. Set +BR2_DEFCONFIG+ to +<path-to-board-directory>/buildroot.config+
>
> I've always been saving my Buildroot board config in configs/, to allow
> me to startup from a clean working copy with a simple:
>    make myboard_defconfig

  This was actually in the out-of-buildroot-tree section.  And I removed that
section completely, so it's irrelevant.

>
> The location you suggest requires a bit more typing, but it is probably
> cleaner, and it does not prevent me to continue my way... so:
>
> Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

  Thanks for all your acks.  I've refreshed the patches, made some additional
fixes, and will repost right away.

  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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] 26+ messages in thread

end of thread, other threads:[~2012-11-07 19:24 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-24  7:16 [Buildroot] [PATCH v2 00/10] Improvements for saving the configuration Arnout Vandecappelle
2012-10-24  7:16 ` [Buildroot] [PATCHv2 01/10] manual: add section about storing " Arnout Vandecappelle
2012-11-04 13:10   ` Luca Ceresoli
2012-10-24  7:16 ` [Buildroot] [PATCHv2 02/10] target/generic: add filesystem overlay option Arnout Vandecappelle
2012-11-04 18:19   ` Luca Ceresoli
2012-11-06  9:01     ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 03/10] ctng: add ctng-update-config target Arnout Vandecappelle
2012-11-07  8:12   ` Luca Ceresoli
2012-11-07  8:17     ` Arnout Vandecappelle
2012-11-07  8:28       ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 04/10] busybox: busybox-update-config should depend on busybox-configure Arnout Vandecappelle
2012-11-07  8:12   ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 05/10] at91bootstrap3: add -update-config target Arnout Vandecappelle
2012-11-07  8:12   ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 06/10] Add update-all-config target Arnout Vandecappelle
2012-11-07  8:12   ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 07/10] busybox: update-all-config shouldn't update default busybox config Arnout Vandecappelle
2012-11-07  8:13   ` Luca Ceresoli
2012-11-07 19:20     ` Arnout Vandecappelle
2012-10-24  7:17 ` [Buildroot] [PATCHv2 08/10] crosstool-ng: update-all-config shouldn't update default crosstool-ng config Arnout Vandecappelle
2012-11-07  8:13   ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 09/10] uClibc: update-all-config shouldn't update default uClibc config Arnout Vandecappelle
2012-11-07  8:13   ` Luca Ceresoli
2012-10-24  7:17 ` [Buildroot] [PATCHv2 10/10] Make savedefconfig save to a configured file Arnout Vandecappelle
2012-11-07  8:14   ` Luca Ceresoli
2012-11-07 19:24     ` Arnout Vandecappelle

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.