Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 12/13] target/generic: add filesystem overlay option
Date: Sun, 14 Oct 2012 01:14:48 +0200	[thread overview]
Message-ID: <20121013231448.17317.37653.stgit@localhost> (raw)
In-Reply-To: <20121013231344.17317.92930.stgit@localhost>

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 +++++++++------------
 target/generic/Config.in         |   13 +++++++++++++
 3 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/Makefile b/Makefile
index a3b88f7..31770ce 100644
--- a/Makefile
+++ b/Makefile
@@ -466,6 +466,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/target/generic/Config.in b/target/generic/Config.in
index 76137b7..35cadfb 100644
--- a/target/generic/Config.in
+++ b/target/generic/Config.in
@@ -105,6 +105,7 @@ config BR2_ROOTFS_SKELETON_DEFAULT
 
 config BR2_ROOTFS_SKELETON_CUSTOM
 	bool "custom target skeleton"
+	depends on BR2_DEPRECATED
 	help
 	  Use custom target skeleton.
 
@@ -168,6 +169,18 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
 
 endif # BR2_ROOTFS_SKELETON_DEFAULT
 
+config BR2_ROOTFS_OVERLAY
+	string "Root filesystem overlay"
+	default "$(PROJECT_DIR)/rootfs-overlay" if BR2_PROJECT_DIR != ""
+	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 "$(PROJECT_DIR)/post-build.sh" if BR2_PROJECT_DIR != ""

  parent reply	other threads:[~2012-10-13 23:14 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-13 23:13 [Buildroot] [PATCH 00/13] Add support for a project directory Arnout Vandecappelle
2012-10-13 23:13 ` [Buildroot] [PATCH 01/13] Add BR2_PROJECT_DIR config option Arnout Vandecappelle
2012-10-13 23:13 ` [Buildroot] [PATCH 02/13] Set default BR2_PACKAGE_OVERRIDE_FILE based on BR2_PROJECT_DIR Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 03/13] linux: get default paths from BR2_PROJECT_DIR Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 04/13] busybox: " Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 05/13] target/generic: " Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 06/13] toolchain-crosstool-ng: " Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 07/13] uClibc: " Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 08/13] Store BR2_DEFCONFIG in .config, and use it to update the original input Arnout Vandecappelle
2012-10-14 18:37   ` Thomas De Schampheleire
2012-10-13 23:14 ` [Buildroot] [PATCH 09/13] Skip menuconfig if BR2_DEFCONFIG or BR2_PROJECT_DIR is given Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 10/13] Add update-all-config target Arnout Vandecappelle
2012-10-14 18:45   ` Thomas De Schampheleire
2012-10-20 16:47     ` Arnout Vandecappelle
2012-10-20 16:52       ` Arnout Vandecappelle
2012-12-03 14:18     ` Stephan Hoffmann
2012-12-03 16:41       ` Thomas Petazzoni
2012-10-13 23:14 ` [Buildroot] [PATCH 11/13] Add target to create a project directory Arnout Vandecappelle
2012-10-13 23:21   ` [Buildroot] [PATCH v2] " Arnout Vandecappelle
2012-10-13 23:35     ` Valentine Barshak
2012-10-14 12:50       ` Arnout Vandecappelle
2012-10-16 17:36         ` Valentine Barshak
2012-10-13 23:14 ` Arnout Vandecappelle [this message]
2012-10-14  0:39   ` [Buildroot] [PATCH 12/13] target/generic: add filesystem overlay option Danomi Manchego
2012-10-14 12:53     ` Arnout Vandecappelle
2012-10-14 16:12       ` Danomi Manchego
2012-10-14 18:50   ` Thomas De Schampheleire
2012-10-20 16:15     ` Arnout Vandecappelle
2012-10-13 23:14 ` [Buildroot] [PATCH 13/13] Document BR2_PROJECT_DIR in the manual Arnout Vandecappelle
2012-10-14  8:35 ` [Buildroot] [PATCH 00/13] Add support for a project directory Thomas Petazzoni
2012-10-14  8:46   ` Thomas Petazzoni
2012-10-14 10:43     ` Arnout Vandecappelle
2012-10-14 12:55       ` Thomas Petazzoni
2012-10-14 13:57         ` Arnout Vandecappelle
2012-10-16 20:03   ` Arnout Vandecappelle
2012-10-17 17:26     ` Thomas Petazzoni
2012-10-17 18:42       ` Sagaert Johan
2012-10-14 18:56 ` Thomas De Schampheleire

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121013231448.17317.37653.stgit@localhost \
    --to=arnout@mind.be \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox