| Submitter | Khem Raj |
|---|---|
| Date | July 29, 2012, 9:27 p.m. |
| Message ID | <1343597225-9805-1-git-send-email-raj.khem@gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/33267/ |
| State | Accepted |
| Commit | 4029ce1a15e1dbd374444ee77ccf2a915e463b7b |
| Headers | show |
Comments
On Sunday 29 July 2012 14:27:05 Khem Raj wrote: > we were assigning local variable to an array coming through > positional arguments. local is a non posix contruct thats > also supported by dash luckily but operates differently in this > case it exapnds the array before assignment. so > > local pkgs="$@" > > turns into pkgs=locale-base-en-us locale-base-en-gb > > ant we see errors > > run.do_rootfs.25593: 932: local: locale-base-en-gb: bad variable name > > So lets not use defining and assigning local in one go > first define a local and then the assignment Oops, sorry about that. However, in the other thread you said package_rpm.bbclass was "full of bashisms" - is there only this one? Cheers, Paul
-Khem On Jul 30, 2012, at 2:26 AM, Paul Eggleton <paul.eggleton@linux.intel.com> wrote: > On Sunday 29 July 2012 14:27:05 Khem Raj wrote: >> we were assigning local variable to an array coming through >> positional arguments. local is a non posix contruct thats >> also supported by dash luckily but operates differently in this >> case it exapnds the array before assignment. so >> >> local pkgs="$@" >> >> turns into pkgs=locale-base-en-us locale-base-en-gb >> >> ant we see errors >> >> run.do_rootfs.25593: 932: local: locale-base-en-gb: bad variable name >> >> So lets not use defining and assigning local in one go >> first define a local and then the assignment > > Oops, sorry about that. > > However, in the other thread you said package_rpm.bbclass was "full of > bashisms" - is there only this one? I was referring to use of local since that is not posix but it seems it's so prevalent that even dash has extension for it so we are ok with dash and bash there > > Cheers, > Paul > > -- > > Paul Eggleton > Intel Open Source Technology Centre
On Sun, 2012-07-29 at 14:27 -0700, Khem Raj wrote: > we were assigning local variable to an array coming through > positional arguments. local is a non posix contruct thats > also supported by dash luckily but operates differently in this > case it exapnds the array before assignment. so > > local pkgs="$@" > > turns into pkgs=locale-base-en-us locale-base-en-gb > > ant we see errors > > run.do_rootfs.25593: 932: local: locale-base-en-gb: bad variable name > > So lets not use defining and assigning local in one go > first define a local and then the assignment > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta/classes/package_rpm.bbclass | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) Merged to master, thanks. Richard
Patch
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index b4bc52e..50e9b31 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -200,7 +200,12 @@ rpm_update_pkg () { process_pkg_list_rpm() { local insttype=$1 shift - local pkgs="$@" + # $@ is special POSIX linear array can not be assigned + # to a local variable directly in dash since its separated by + # space and dash expands it before assignment + # and local x=1 2 3 and not x="1 2 3" + local pkgs + pkgs="$@" local confbase=${INSTALL_CONFBASE_RPM} echo -n > ${target_rootfs}/install/base_archs.pkglist
we were assigning local variable to an array coming through positional arguments. local is a non posix contruct thats also supported by dash luckily but operates differently in this case it exapnds the array before assignment. so local pkgs="$@" turns into pkgs=locale-base-en-us locale-base-en-gb ant we see errors run.do_rootfs.25593: 932: local: locale-base-en-gb: bad variable name So lets not use defining and assigning local in one go first define a local and then the assignment Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/classes/package_rpm.bbclass | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)