On Mon, Jul 18, 2016 at 01:22:17PM +0200, Ladislav Michl wrote:
> Change separator to allow ':' in filenames.

I like it in general. But I think we should explicitly error out if we come
across an old command file (NF == 1). And tell the user to run "ptxdist
clean root" or something like that.

Michael

> Signed-off-by: Ladislav Michl <[email protected]>
> ---
>  rules/post/image_cpio.make                     | 2 +-
>  rules/post/image_ext2.make                     | 2 +-
>  rules/post/image_jffs2.make                    | 2 +-
>  rules/post/image_squashfs.make                 | 2 +-
>  rules/post/image_tgz.make                      | 6 +++---
>  rules/post/image_ubi.make                      | 2 +-
>  rules/post/ptxd_make_image_common.make         | 2 +-
>  scripts/lib/ptxd_lib_dopermissions.awk         | 2 +-
>  scripts/lib/ptxd_make_image_fix_permissions.sh | 4 ++--
>  scripts/lib/ptxd_make_xpkg_pkg.sh              | 9 ++++++---
>  10 files changed, 18 insertions(+), 15 deletions(-)
> 
> diff --git a/rules/post/image_cpio.make b/rules/post/image_cpio.make
> index 573faee..200b283 100644
> --- a/rules/post/image_cpio.make
> +++ b/rules/post/image_cpio.make
> @@ -15,7 +15,7 @@ $(IMAGEDIR)/root.cpio: $(STATEDIR)/image_working_dir
>       @echo -n "Creating '$(notdir $(@))' from working dir..."
>       @cd $(image/work_dir) && \
>       ( \
> -             awk -F: $(DOPERMISSIONS) $(image/permissions) && \
> +             awk $(DOPERMISSIONS) $(image/permissions) && \
>               echo "find . | cpio --quiet -H newc -o > '$(@)'" \
>       ) | $(FAKEROOT) --
>       @echo "done."
> diff --git a/rules/post/image_ext2.make b/rules/post/image_ext2.make
> index 3e3423b..0dbcafd 100644
> --- a/rules/post/image_ext2.make
> +++ b/rules/post/image_ext2.make
> @@ -15,7 +15,7 @@ ifdef PTXCONF_IMAGE_EXT2
>  $(IMAGEDIR)/root.ext2: $(STATEDIR)/image_working_dir
>       @echo -n "Creating root.ext2 from working dir..."
>       @cd $(image/work_dir);                                          \
> -     (awk -F: $(DOPERMISSIONS) $(image/permissions) &&               \
> +     (awk $(DOPERMISSIONS) $(image/permissions) &&                   \
>       (                                                               \
>               echo -n "$(PTXCONF_SYSROOT_HOST)/bin/genext2fs ";       \
>               echo -n "-b $(PTXCONF_IMAGE_EXT2_SIZE) ";               \
> diff --git a/rules/post/image_jffs2.make b/rules/post/image_jffs2.make
> index 5e448f5..7f12883 100644
> --- a/rules/post/image_jffs2.make
> +++ b/rules/post/image_jffs2.make
> @@ -17,7 +17,7 @@ $(IMAGEDIR)/root.jffs2: $(STATEDIR)/image_working_dir 
> $(STATEDIR)/host-mtd-utils
>       @echo -n "(--eraseblock=$(PTXCONF_IMAGE_JFFS2_BLOCKSIZE) "
>       @echo "$(call remove_quotes,$(PTXCONF_IMAGE_JFFS2_EXTRA_ARGS)))"
>       @cd $(image/work_dir);                                          \
> -     (awk -F: $(DOPERMISSIONS) $(image/permissions) &&               \
> +     (awk $(DOPERMISSIONS) $(image/permissions) &&                   \
>       (                                                               \
>               echo -n "$(PTXCONF_SYSROOT_HOST)/sbin/mkfs.jffs2 ";     \
>               echo -n "-d $(image/work_dir) ";                        \
> diff --git a/rules/post/image_squashfs.make b/rules/post/image_squashfs.make
> index 6d02255..69dc721 100644
> --- a/rules/post/image_squashfs.make
> +++ b/rules/post/image_squashfs.make
> @@ -19,7 +19,7 @@ ifdef PTXCONF_IMAGE_SQUASHFS
>  $(IMAGEDIR)/root.squashfs: $(STATEDIR)/image_working_dir 
> $(STATEDIR)/host-squashfs-tools.install.post
>       @echo -n "Creating root.squashfs from working dir..."
>       @cd $(image/work_dir);                                                  
> \
> -     (awk -F: $(DOPERMISSIONS) $(image/permissions) &&               \
> +     (awk $(DOPERMISSIONS) $(image/permissions) &&                   \
>       (                                                               \
>               echo -n "$(PTXCONF_SYSROOT_HOST)/sbin/mksquashfs ";     \
>               echo -n "$(image/work_dir) ";                                   
> \
> diff --git a/rules/post/image_tgz.make b/rules/post/image_tgz.make
> index 57f69f4..bace4da 100644
> --- a/rules/post/image_tgz.make
> +++ b/rules/post/image_tgz.make
> @@ -18,10 +18,10 @@ endif
>  
>  $(IMAGEDIR)/root.tgz: $(STATEDIR)/image_working_dir
>       @echo -n 'Creating root.tgz from working dir$(if $(IMAGE_TGZ_LABEL), 
> with label "$(IMAGE_TGZ_LABEL)",)... '
> -     @cd $(image/work_dir);                                                  
> \
> -     (awk -F: $(DOPERMISSIONS) $(image/permissions) &&               \
> +     @cd $(image/work_dir);                                  \
> +     (awk $(DOPERMISSIONS) $(image/permissions) &&           \
>       (       echo -n "tar ${IMAGE_TGZ_LABEL_ARGS} -zcf ";    \
> -             echo -n "$@ ." )                                        \
> +             echo -n "$@ ." )                                \
>       ) | $(FAKEROOT) --
>       @echo "done."
>  endif
> diff --git a/rules/post/image_ubi.make b/rules/post/image_ubi.make
> index edfae1d..17321dc 100644
> --- a/rules/post/image_ubi.make
> +++ b/rules/post/image_ubi.make
> @@ -22,7 +22,7 @@ $(IMAGEDIR)/root.ubifs: $(STATEDIR)/image_working_dir 
> $(STATEDIR)/host-mtd-utils
>       @echo -n "-e $(PTXCONF_IMAGE_UBIFS_LEB_SIZE) -c 
> $(PTXCONF_IMAGE_UBIFS_ROOT_MAX_LEB_COUNT) "
>       @echo -n "$(PTXCONF_IMAGE_UBIFS_EXTRA_ARGS))"
>       @cd $(image/work_dir);                                                  
>         \
> -     (awk -F: $(DOPERMISSIONS) $(image/permissions) &&                       
> \
> +     (awk $(DOPERMISSIONS) $(image/permissions) &&                           
> \
>       (                                                                       
> \
>               echo -n "$(PTXCONF_SYSROOT_HOST)/sbin/mkfs.ubifs ";             
> \
>               echo -n "-d $(image/work_dir) ";                                
>         \
> diff --git a/rules/post/ptxd_make_image_common.make 
> b/rules/post/ptxd_make_image_common.make
> index 7ccb501..0f274bf 100644
> --- a/rules/post/ptxd_make_image_common.make
> +++ b/rules/post/ptxd_make_image_common.make
> @@ -8,7 +8,7 @@
>  # see the README file.
>  #
>  
> -DOPERMISSIONS := '{  \
> +DOPERMISSIONS := '{ FS = "\x1F";     \
>       if ($$1 == "f") \
>               printf("chmod %s \".%s\"; chown %s.%s \".%s\";\n", $$5, $$2, 
> $$3, $$4, $$2);    \
>       if ($$1 == "n") \
> diff --git a/scripts/lib/ptxd_lib_dopermissions.awk 
> b/scripts/lib/ptxd_lib_dopermissions.awk
> index 336948c..3596121 100755
> --- a/scripts/lib/ptxd_lib_dopermissions.awk
> +++ b/scripts/lib/ptxd_lib_dopermissions.awk
> @@ -1,7 +1,7 @@
>  #!/usr/bin/awk -f
>  
>  BEGIN {
> -     FS = ":";
> +     FS = "\x1F";
>  }
>  
>  $1 ~ "f" {
> diff --git a/scripts/lib/ptxd_make_image_fix_permissions.sh 
> b/scripts/lib/ptxd_make_image_fix_permissions.sh
> index eae2ab3..bc4b4b9 100644
> --- a/scripts/lib/ptxd_make_image_fix_permissions.sh
> +++ b/scripts/lib/ptxd_make_image_fix_permissions.sh
> @@ -32,10 +32,10 @@ export -f ptxd_make_image_fix_permissions_generate
>  ptxd_make_image_fix_permissions_check() {
>      local workdir="${1}"
>      local ifs_orig="${IFS}"
> -    IFS=":"
> +    IFS="\x1F"
>  
>      # just care about dev-nodes, for now
> -    egrep -h "^[n]:" "${ptxd_reply_perm_files[@]}" |
> +    egrep -h "^[n]${IFS}" "${ptxd_reply_perm_files[@]}" |
>      while read kind file uid_should gid_should prm_should type major_should 
> minor_should; do
>       local fixup=false
>       file="${workdir}/${file#/}"
> diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh 
> b/scripts/lib/ptxd_make_xpkg_pkg.sh
> index ba9094b..b1de2fd 100644
> --- a/scripts/lib/ptxd_make_xpkg_pkg.sh
> +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
> @@ -191,6 +191,7 @@ ptxd_install_setup_src() {
>  export -f ptxd_install_setup_src
>  
>  ptxd_install_dir() {
> +    local sep="\x1F"
>      local dir="$1"
>      local usr="$2"
>      local grp="$3"
> @@ -210,7 +211,7 @@ install directory:
>      install -m "${mod_nfs}" -d "${ndirs[@]/%/${dir}}" &&
>      install -m "${mod}" -o "${usr}" -g "${grp}" -d "${pdirs[@]/%/${dir}}" &&
>  
> -    echo "f:${dir}:${usr}:${grp}:${mod}" >> "${pkg_xpkg_perms}" ||
> +    echo -e "f${sep}${dir}${sep}${usr}${sep}${grp}${sep}${mod}" >> 
> "${pkg_xpkg_perms}" ||
>      ptxd_install_error "install_dir failed!"
>  }
>  export -f ptxd_install_dir
> @@ -285,6 +286,7 @@ export -f ptxd_install_file_strip
>  
>  
>  ptxd_install_file_impl() {
> +    local sep="\x1F"
>      local src="$1"
>      local dst="$2"
>      local usr="$3"
> @@ -350,7 +352,7 @@ Usually, just remove the 6th parameter and everything 
> works fine.
>      # now change to requested user and group
>      chown "${usr}:${grp}" "${pdirs[@]/%/${dst}}" &&
>  
> -    echo "f:${dst}:${usr}:${grp}:${mod}" >> "${pkg_xpkg_perms}"
> +    echo -e "f${sep}${dst}${sep}${usr}${sep}${grp}${sep}${mod}" >> 
> "${pkg_xpkg_perms}"
>  }
>  export -f ptxd_install_file_impl
>  
> @@ -392,6 +394,7 @@ install link:
>  export -f ptxd_install_ln
>  
>  ptxd_install_mknod() {
> +    local sep="\x1F"
>      local dst="$1"
>      local usr="$2"
>      local grp="$3"
> @@ -421,7 +424,7 @@ install device node:
>      done &&
>      chown "${usr}:${grp}" "${pdirs[@]/%/${dst}}" &&
>  
> -    echo "n:${dst}:${usr}:${grp}:${mod}:${type}:${major}:${minor}" >> 
> "${pkg_xpkg_perms}"
> +    echo -e 
> "n${sep}${dst}${sep}${usr}${sep}${grp}${sep}${mod}${sep}${type}${sep}${major}${sep}${minor}"
>  >> "${pkg_xpkg_perms}"
>  }
>  export -f ptxd_install_mknod
>  
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> ptxdist mailing list
> [email protected]

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to