Patchwork [1/1] iso9660: Added support for overlay directories

login
register
mail settings
Submitter Martin Bark
Date Feb. 4, 2014, 9:25 p.m.
Message ID <1391549148-31993-1-git-send-email-martin@barkynet.com>
Download mbox | patch
Permalink /patch/316766/
State New
Headers show

Comments

Martin Bark - Feb. 4, 2014, 9:25 p.m.
This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
iso9660 file system.

Signed-off-by: Martin Bark <martin@barkynet.com>
---
 fs/iso9660/Config.in  |   16 +++++++++++++++-
 fs/iso9660/iso9660.mk |    7 +++++++
 2 files changed, 22 insertions(+), 1 deletion(-)
Arnout Vandecappelle - Feb. 17, 2014, 7:06 a.m.
On 04/02/14 22:25, Martin Bark wrote:
> This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
> is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
> iso9660 file system.
> 
> Signed-off-by: Martin Bark <martin@barkynet.com>

Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 I haven't tried it but it looks obviously-correct.

 Jean Sergemoel has a patch in the queue that does a similar thing (in
addition to a few more changes). Jean, could you rebase your patches on
top of this one? And, if possible, also test if this one works for you.
If yes, add your Tested-by to this patch.

 Regards,
 Arnout

> ---
>  fs/iso9660/Config.in  |   16 +++++++++++++++-
>  fs/iso9660/iso9660.mk |    7 +++++++
>  2 files changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
> index 50b4377..f429b4f 100644
> --- a/fs/iso9660/Config.in
> +++ b/fs/iso9660/Config.in
> @@ -8,11 +8,25 @@ config BR2_TARGET_ROOTFS_ISO9660
>  	help
>  	  Build a bootable iso9660 image
>  
> +if BR2_TARGET_ROOTFS_ISO9660
> +
>  config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
>  	string "Boot menu.lst file"
> -	depends on BR2_TARGET_ROOTFS_ISO9660
>  	default "fs/iso9660/menu.lst"
>  
> +config BR2_TARGET_ROOTFS_ISO9660_OVERLAY
> +	string "iso9660 filesystem overlay directories"
> +	default ""
> +	help
> +	  Specify a list of directories that are copied over the root of the
> +	  iso filesystem after the build has finished and before it is
> +	  packed into the iso filesystem image.
> +
> +	  They are copied as-is into the iso image, excluding files ending
> +	  with ~ and .git, .svn and .hg directories.
> +
> +endif
> +
>  comment "iso image needs a Linux kernel to be built"
>  	depends on BR2_i386 || BR2_x86_64
>  	depends on !BR2_LINUX_KERNEL
> diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
> index a6a9c95..1d0e5e0 100644
> --- a/fs/iso9660/iso9660.mk
> +++ b/fs/iso9660/iso9660.mk
> @@ -27,6 +27,13 @@ ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
>  else
>  	cp $(BINARIES_DIR)/rootfs.cpio$(ROOTFS_CPIO_COMPRESS_EXT) $(ISO9660_TARGET_DIR)/initrd
>  endif
> +
> +	@$(foreach d, $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_OVERLAY)), \
> +		$(call MESSAGE,"Copying iso9660 overlay $(d)"); \
> +		rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
> +			--chmod=Du+w --exclude .empty --exclude '*~' \
> +			$(d)/ $(ISO9660_TARGET_DIR)$(sep))
> +
>  	# Use fakeroot to pretend all target binaries are owned by root
>  	rm -f $(FAKEROOT_SCRIPT)
>  	echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(FAKEROOT_SCRIPT)
>
Mike Zick - Feb. 17, 2014, 11:42 a.m.
On Mon, 17 Feb 2014 08:06:17 +0100
Arnout Vandecappelle <arnout@mind.be> wrote:

> On 04/02/14 22:25, Martin Bark wrote:
> > This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
> > is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
> > iso9660 file system.
> > 
>

Since Buildroot only builds root filesystems for the target device,
it would probably be safe to drop the "TARGET_" distinction from
that variable name.

Mike

> > Signed-off-by: Martin Bark <martin@barkynet.com>  
> 
> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> 
>  I haven't tried it but it looks obviously-correct.
Arnout Vandecappelle - Feb. 17, 2014, 12:02 p.m.
On 17/02/14 12:42, Mike Zick wrote:
> On Mon, 17 Feb 2014 08:06:17 +0100
> Arnout Vandecappelle <arnout@mind.be> wrote:
> 
>> On 04/02/14 22:25, Martin Bark wrote:
>>> This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
>>> is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
>>> iso9660 file system.
>>>
>>
> 
> Since Buildroot only builds root filesystems for the target device,
> it would probably be safe to drop the "TARGET_" distinction from
> that variable name.

 Agreed, but that should not be done in this patch. All the rootfs stuff
is currently using the BR2_TARGET_ROOTFS_ prefix, so this patch should
stick with that convention.

 Regards,
 Arnout

> 
> Mike
> 
>>> Signed-off-by: Martin Bark <martin@barkynet.com>  
>>
>> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>>
>>  I haven't tried it but it looks obviously-correct.
> 
> 
>
Martin Bark - Feb. 18, 2014, 6:18 p.m.
On 17/02/14 07:06, Arnout Vandecappelle wrote:
> On 04/02/14 22:25, Martin Bark wrote:
>> This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
>> is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
>> iso9660 file system.
>>
>> Signed-off-by: Martin Bark <martin@barkynet.com>
>
> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>
>   I haven't tried it but it looks obviously-correct.
>
>   Jean Sergemoel has a patch in the queue that does a similar thing (in
> addition to a few more changes). Jean, could you rebase your patches on
> top of this one? And, if possible, also test if this one works for you.
> If yes, add your Tested-by to this patch.

Arnout,

Thanks for the review.  Yes by some strange coincidence both Jean and 
myself sent patches for the iso9660 file system on the same day.  I 
agree it would be best to rebase Jeans patches.


Jean,

Let me know if you want any assistance on producing an updated patch set.

Thanks
jean - Feb. 27, 2014, 6:13 p.m.
>
> On 17/02/14 07:06, Arnout Vandecappelle wrote:
>> On 04/02/14 22:25, Martin Bark wrote:
>>> This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
>>> is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
>>> iso9660 file system.
>>>
>>> Signed-off-by: Martin Bark <martin@barkynet.com>
>>
>> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>>
>>   I haven't tried it but it looks obviously-correct.
>>
>>   Jean Sergemoel has a patch in the queue that does a similar thing (in
>> addition to a few more changes). Jean, could you rebase your patches on
>> top of this one? And, if possible, also test if this one works for you.
>> If yes, add your Tested-by to this patch.
>
> Arnout,
>
> Thanks for the review.  Yes by some strange coincidence both Jean and 
> myself sent patches for the iso9660 file system on the same day.  I 
> agree it would be best to rebase Jeans patches.
>
>
> Jean,
>
> Let me know if you want any assistance on producing an updated patch set.
>
> Thanks
>

Hi All,

Ok, I will include that in my patch.

Regards,
Jean
jean - March 1, 2014, 8:59 p.m.
>>
>> On 17/02/14 07:06, Arnout Vandecappelle wrote:
>>> On 04/02/14 22:25, Martin Bark wrote:
>>>> This patch adds a variable BR2_TARGET_ROOTFS_ISO9660_OVERLAY that
>>>> is similar to BR2_ROOTFS_OVERLAY except the files are placed in the
>>>> iso9660 file system.
>>>>
>>>> Signed-off-by: Martin Bark <martin@barkynet.com>
>>>
>>> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
>>>
>>>   I haven't tried it but it looks obviously-correct.
>>>
>>>   Jean Sergemoel has a patch in the queue that does a similar thing (in
>>> addition to a few more changes). Jean, could you rebase your patches on
>>> top of this one? And, if possible, also test if this one works for you.
>>> If yes, add your Tested-by to this patch.
>>
>> Arnout,
>>
>> Thanks for the review.  Yes by some strange coincidence both Jean and 
>> myself sent patches for the iso9660 file system on the same day.  I 
>> agree it would be best to rebase Jeans patches.
>>
>>
>> Jean,
>>
>> Let me know if you want any assistance on producing an updated patch 
>> set.
>>
>> Thanks
>>
>
> Hi All,
>
> Ok, I will include that in my patch.
>
> Regards,
> Jean

Hi All,

I will send new patch to include your remark.
I use my real name (Jerome Sagnole) :)

Arnout, for your remark on default (option 
BR2_TARGET_ROOTFS_ISO9660_ROCK_RIDGE)
I keep this default for compatibility because this option is activate in 
old code. If you want I can suppress that.

Regards,
Jerome

Patch

diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
index 50b4377..f429b4f 100644
--- a/fs/iso9660/Config.in
+++ b/fs/iso9660/Config.in
@@ -8,11 +8,25 @@  config BR2_TARGET_ROOTFS_ISO9660
 	help
 	  Build a bootable iso9660 image
 
+if BR2_TARGET_ROOTFS_ISO9660
+
 config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
 	string "Boot menu.lst file"
-	depends on BR2_TARGET_ROOTFS_ISO9660
 	default "fs/iso9660/menu.lst"
 
+config BR2_TARGET_ROOTFS_ISO9660_OVERLAY
+	string "iso9660 filesystem overlay directories"
+	default ""
+	help
+	  Specify a list of directories that are copied over the root of the
+	  iso filesystem after the build has finished and before it is
+	  packed into the iso filesystem image.
+
+	  They are copied as-is into the iso image, excluding files ending
+	  with ~ and .git, .svn and .hg directories.
+
+endif
+
 comment "iso image needs a Linux kernel to be built"
 	depends on BR2_i386 || BR2_x86_64
 	depends on !BR2_LINUX_KERNEL
diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
index a6a9c95..1d0e5e0 100644
--- a/fs/iso9660/iso9660.mk
+++ b/fs/iso9660/iso9660.mk
@@ -27,6 +27,13 @@  ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
 else
 	cp $(BINARIES_DIR)/rootfs.cpio$(ROOTFS_CPIO_COMPRESS_EXT) $(ISO9660_TARGET_DIR)/initrd
 endif
+
+	@$(foreach d, $(call qstrip,$(BR2_TARGET_ROOTFS_ISO9660_OVERLAY)), \
+		$(call MESSAGE,"Copying iso9660 overlay $(d)"); \
+		rsync -a --ignore-times $(RSYNC_VCS_EXCLUSIONS) \
+			--chmod=Du+w --exclude .empty --exclude '*~' \
+			$(d)/ $(ISO9660_TARGET_DIR)$(sep))
+
 	# Use fakeroot to pretend all target binaries are owned by root
 	rm -f $(FAKEROOT_SCRIPT)
 	echo "chown -R 0:0 $(ISO9660_TARGET_DIR)" >> $(FAKEROOT_SCRIPT)