From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] use ^_ as separator in perms files
Date: Wed, 27 Jul 2016 12:59:39 +0200 [thread overview]
Message-ID: <20160727105939.GD31919@pengutronix.de> (raw)
In-Reply-To: <20160718112217.GA6594@localhost.localdomain>
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 <ladis@linux-mips.org>
> ---
> 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
> ptxdist@pengutronix.de
--
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
ptxdist@pengutronix.de
next prev parent reply other threads:[~2016-07-27 10:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-18 11:22 Ladislav Michl
2016-07-27 10:59 ` Michael Olbrich [this message]
2016-07-28 23:12 ` Ladislav Michl
2016-07-29 7:39 ` Michael Olbrich
2016-07-31 21:10 ` [ptxdist] [PATCH v2] " Ladislav Michl
2016-08-03 10:23 ` Ladislav Michl
2016-08-04 6:51 ` Michael Olbrich
2016-08-15 14:10 ` Ladislav Michl
2016-08-15 14:54 ` Michael Olbrich
2016-08-15 16:21 ` Ladislav Michl
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=20160727105939.GD31919@pengutronix.de \
--to=m.olbrich@pengutronix.de \
--cc=ptxdist@pengutronix.de \
/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