From: Arnout Vandecappelle <arnout@mind.be>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH][RFC] new target: live filesystem
Date: Fri, 30 Nov 2012 00:43:57 +0100 [thread overview]
Message-ID: <50B7F33D.7010309@mind.be> (raw)
In-Reply-To: <1354003953-10875-1-git-send-email-jeremy.rosen@openwide.fr>
On 27/11/12 09:12, J?r?my Rosen wrote:
> add a new target to deploy a live filesystem to be used by NFS
>
> ---
>
> Hello everybody
>
> this patch is not ready for commit, it's a proposal to help me solve the very common use case of
> a developement FS deployed on NFS. I am not very happy of how it's done at this point but I would
> like to discuss it to see if it has a chance to get merged... What I don't like (and would gladly
> have ideas on how to solve this)
> * no dependency on host-sudo, i'm not sure how to add that
That's impossible. The sudo executable must be setuid root, and to make
it setuid root you have to be root, so sudo must already exist...
You could instead add a check in live.mk if sudo actually works. But since
sudo may ask for a password this can get tricky - you should e.g. probably check
if stdin is a terminal as well.
That said, I don't know if Peter will accept running sudo within buildroot.
> * using sudo to break out of fakeroot is not clean
I don't see much of a problem there.
> * I am abusing the fs building framework, but I don't know of a cleaner way
You're not abusing it.
> * filesystem can only be under output/images at this point
That's not good but easy to solve.
>
> so this patch is more to start a discussion than anything, i'll gladly take any comments or plain
> 'ol rejection if the project doesn't want it... but if there is some interest i'll work it into
> something mainline worthy
>
> Regards
>
> J?r?my Rosen
> ---
> fs/Config.in | 1 +
> fs/live/Config.in | 16 ++++++++++++++++
> fs/live/live.mk | 23 +++++++++++++++++++++++
> 3 files changed, 40 insertions(+)
> create mode 100644 fs/live/Config.in
> create mode 100644 fs/live/live.mk
>
> diff --git a/fs/Config.in b/fs/Config.in
> index 94154ea..de2377e 100644
> --- a/fs/Config.in
> +++ b/fs/Config.in
> @@ -11,5 +11,6 @@ source "fs/cpio/Config.in"
> source "fs/iso9660/Config.in"
> source "fs/initramfs/Config.in"
> source "fs/romfs/Config.in"
> +source "fs/live/Config.in"
Sort alphabetically please.
>
> endmenu
> diff --git a/fs/live/Config.in b/fs/live/Config.in
> new file mode 100644
> index 0000000..bf24754
> --- /dev/null
> +++ b/fs/live/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_TARGET_ROOTFS_LIVE
> + bool "live root filesystem"
> + help
> + uses sudo to create a live image of the filesystem
> + this is mainly usefull if you want to use your filesystem
useful
> + over NFS
or as a chroot
> +config BR2_TARGET_ROOTFS_LIVE_DEST
> + string "directory to put the live image"
"live image location"
> + depends on BR2_TARGET_ROOTFS_LIVE
> + default "live"
Use an empty default, and give an error in live.mk if it's
empty.
> + help
> + The directory where the image should be stored.
> + this directory will be emptied and recreated, it is given
> + relative to the buildroot output/images directory
Make it an absolute path instead.
> +
> diff --git a/fs/live/live.mk b/fs/live/live.mk
> new file mode 100644
> index 0000000..73bcd3e
> --- /dev/null
> +++ b/fs/live/live.mk
> @@ -0,0 +1,23 @@
> +#############################################################
> +#
> +# Build the live root filesystem directory
> +#
> +#############################################################
> +
> +LIVE_OPTS :=
This is unneeded.
> +
> +
> +ROOTFS_LIVE_DEPENDENCIES = #host-sudo
This as well.
> +
> +define ROOTFS_LIVE_CMD
> + sudo cp -r $(TARGET_DIR)/* $(BINARIES_DIR)/$(BR2_TARGET_ROOTFS_LIVE_DEST)/
That won't work, because device nodes, symlinks etc. are not
copied correctly. Use cp -a. Or even better, rsync -a --delete-during
(then you don't need to remove it first).
For the target, just use $(BR2_TARGET_ROOTFS_LIVE_DEST).
Regards,
Arnout
> +endef
> +
> +define ROOTFS_LIVE_INIT
> + sudo rm -rf $(BINARIES_DIR)/$(BR2_TARGET_ROOTFS_LIVE_DEST)
> + sudo mkdir $(BINARIES_DIR)/$(BR2_TARGET_ROOTFS_LIVE_DEST)
> +endef
> +
> +ROOTFS_LIVE_PRE_GEN_HOOKS += ROOTFS_LIVE_INIT
> +
> +$(eval $(call ROOTFS_TARGET,live))
--
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
next prev parent reply other threads:[~2012-11-29 23:43 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-27 8:12 [Buildroot] [PATCH] [PATCH][RFC] new target: live filesystem Jérémy Rosen
2012-11-29 23:43 ` Arnout Vandecappelle [this message]
2012-11-30 9:00 ` [Buildroot] " Jeremy Rosen
2012-11-30 0:04 ` [Buildroot] [PATCH] " Steve Calfee
2012-11-30 9:15 ` Arnout Vandecappelle
2012-11-30 21:46 ` Steve Calfee
2012-12-03 8:57 ` Jeremy Rosen
2012-12-03 9:21 ` Samuel Martin
2012-12-03 10:21 ` [Buildroot] [PATCH] reorder fs alphabetically Jérémy Rosen
2012-12-03 10:30 ` Jeremy Rosen
2012-12-03 10:40 ` [Buildroot] [PATCH] [RFC] new target: live filesystem Jérémy Rosen
2012-12-03 13:07 ` Thomas Petazzoni
2012-12-03 13:42 ` Jeremy Rosen
2012-12-05 7:18 ` Arnout Vandecappelle
2012-12-05 7:12 ` Arnout Vandecappelle
2012-12-05 9:28 ` Jeremy Rosen
2012-12-05 17:31 ` Arnout Vandecappelle
2012-12-06 13:22 ` Jeremy Rosen
2012-12-06 13:36 ` Jeremy Rosen
2012-12-06 13:36 ` Jérémy Rosen
2012-12-10 7:11 ` Arnout Vandecappelle
2012-12-10 10:51 ` Jeremy Rosen
2012-12-17 8:58 ` Jeremy Rosen
2012-12-17 12:41 ` Richard Genoud
2012-12-17 16:08 ` Samuel Martin
2012-12-17 16:35 ` Richard Genoud
2013-01-02 17:38 ` Arnout Vandecappelle
2013-01-03 8:54 ` Jeremy Rosen
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=50B7F33D.7010309@mind.be \
--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