On Fri, Jan 22, 2016 at 08:18:05AM +0100, Uwe Kleine-König wrote:
> Hello,
> 
> On Fri, Jan 22, 2016 at 01:31:37AM +0100, Ladislav Michl wrote:
> > Now I'm going to be honest. Previous patch 'Add usb-modeswitch-data package'
> > break things - 'ptxdist images' fails as ':' is used as delimiter in perms 
> > file.
> > Patch bellow escapes semicolon on producer side, anyone cares about 
> > consumer?
> > 
> >     ladis
> > 
> > diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh 
> > b/scripts/lib/ptxd_make_xpkg_pkg.sh
> > index 5ba404e..8e6664b 100644
> > --- a/scripts/lib/ptxd_make_xpkg_pkg.sh
> > +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
> > @@ -209,6 +209,7 @@ install directory:
> >  
> >      install -m "${mod_nfs}" -d "${ndirs[@]/%/${dir}}" &&
> >      install -m "${mod}" -o "${usr}" -g "${grp}" -d "${pdirs[@]/%/${dir}}" 
> > &&
> > +    dir="$(echo ${dir} | sed -e 's/[:]/\\:/g')" &&
> 
> why do you need the brackets? Doesn't s/:/\\:/g have the same effect?

Yes, it is the same and I probably shouldn't do anything at late night.

> As this is a bash script I assume you might save a few forks by using:
> 
>       ${dir//:/\\:}
> 
> (untested) instead.

Tested, patch bellow.

> >      echo "f:${dir}:${usr}:${grp}:${mod}" >> "${pkg_xpkg_perms}" ||
> >      ptxd_install_error "install_dir failed!"
> > @@ -343,6 +344,9 @@ Usually, just remove the 6th parameter and everything 
> > works fine.
> >      # now change to requested user and group
> >      chown "${usr}:${grp}" "${pdirs[@]/%/${dst}}" &&
> >  
> > +    # escape semicolon
> 
> semicolon?

Oops, your right. Colon, actually.
So this fixes .perms files and now what about the other side? So far we have 
two concurent
implementations of 'make images'. Fix both, or drop one, fix another?

diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh 
b/scripts/lib/ptxd_make_xpkg_pkg.sh
index 5ba404e..630e085 100644
--- a/scripts/lib/ptxd_make_xpkg_pkg.sh
+++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
@@ -210,7 +210,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 "f:${dir//:/\\:}:${usr}:${grp}:${mod}" >> "${pkg_xpkg_perms}" ||
     ptxd_install_error "install_dir failed!"
 }
 export -f ptxd_install_dir
@@ -343,7 +343,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 "f:${dst//:/\\:}:${usr}:${grp}:${mod}" >> "${pkg_xpkg_perms}"
 }
 export -f ptxd_install_file_impl
 
@@ -413,8 +413,9 @@ install device node:
        mknod -m "${mod}" "${d}" "${type}" ${major} ${minor} || return
     done &&
     chown "${usr}:${grp}" "${pdirs[@]/%/${dst}}" &&
+    dst="$(echo ${dst} | sed -e 's/[:]/\\:/g')" &&
 
-    echo "n:${dst}:${usr}:${grp}:${mod}:${type}:${major}:${minor}" >> 
"${pkg_xpkg_perms}"
+    echo "n:${dst//:/\\:}:${usr}:${grp}:${mod}:${type}:${major}:${minor}" >> 
"${pkg_xpkg_perms}"
 }
 export -f ptxd_install_mknod
 

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to