FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 02-21-2009, 10:27 PM
Mike Frysinger
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

looks like bash-4.0 has broken semicolon escaping in subshells. this comes up
when using find's -exec like we do in a few places in eclasses:
ls=$(find "$1" -name '*.po' -exec basename {} .po ; shift
you can work around the issue in a couple of ways:
- quote the semicolon:
.... ';')
- use backticks
`find .... ;`

i'll tweak the eclasses to use quoting for now
-mike
 
Old 02-21-2009, 10:38 PM
Ryan Hill
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Sat, 21 Feb 2009 18:27:10 -0500
Mike Frysinger <vapier@gentoo.org> wrote:

> looks like bash-4.0 has broken semicolon escaping in subshells. this
> comes up when using find's -exec like we do in a few places in
> eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po ; shift
> you can work around the issue in a couple of ways:
> - quote the semicolon:
> .... ';')
> - use backticks
> `find .... ;`
>
> i'll tweak the eclasses to use quoting for now
> -mike
>

is this a bug or broken on purpose?

--
gcc-porting, by design, by neglect
treecleaner, for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662
 
Old 02-21-2009, 10:55 PM
Mike Frysinger
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Saturday 21 February 2009 18:38:55 Ryan Hill wrote:
> On Sat, 21 Feb 2009 18:27:10 -0500 Mike Frysinger wrote:
> > looks like bash-4.0 has broken semicolon escaping in subshells. this
> > comes up when using find's -exec like we do in a few places in
> > eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po ; shift
> > you can work around the issue in a couple of ways:
> > - quote the semicolon:
> > .... ';')
> > - use backticks
> > `find .... ;`
> >
> > i'll tweak the eclasses to use quoting for now
>
> is this a bug or broken on purpose?

i say it's a bug, but i'm not the bash maintainer

i imagine it's fall out from attempts to fix support for case statements in
subshells
-mike
 
Old 02-21-2009, 11:29 PM
Mike Frysinger
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Saturday 21 February 2009 19:00:19 Mart Raudsepp wrote:
> On Sat, 2009-02-21 at 18:55 -0500, Mike Frysinger wrote:
> > On Saturday 21 February 2009 18:38:55 Ryan Hill wrote:
> > > On Sat, 21 Feb 2009 18:27:10 -0500 Mike Frysinger wrote:
> > > > looks like bash-4.0 has broken semicolon escaping in subshells. this
> > > > comes up when using find's -exec like we do in a few places in
> > > > eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po ;
> > > > shift you can work around the issue in a couple of ways:
> > > > - quote the semicolon:
> > > > .... ';')
> > > > - use backticks
> > > > `find .... ;`
> > > >
> > > > i'll tweak the eclasses to use quoting for now
> > >
> > > is this a bug or broken on purpose?
> >
> > i say it's a bug, but i'm not the bash maintainer
> >
> > i imagine it's fall out from attempts to fix support for case statements
> > in subshells
>
> Then the bug should be fixed, instead of changing usage to something
> apparently less common, as the conversion could miss some. And more
> importantly users still want to use ; for find -exec ending on their
> command line and their very own scripts.
> And who knows how many shell scripts shipped by packages use the
> escaping method.

i think you missed the entire point of this thread: there's a bug in bash-4.0
that code is likely to hit.
-mike
 
Old 02-21-2009, 11:44 PM
Mike Frysinger
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Saturday 21 February 2009 19:38:33 Mart Raudsepp wrote:
> On Sat, 2009-02-21 at 19:29 -0500, Mike Frysinger wrote:
> > On Saturday 21 February 2009 19:00:19 Mart Raudsepp wrote:
> > > On Sat, 2009-02-21 at 18:55 -0500, Mike Frysinger wrote:
> > > > On Saturday 21 February 2009 18:38:55 Ryan Hill wrote:
> > > > > On Sat, 21 Feb 2009 18:27:10 -0500 Mike Frysinger wrote:
> > > > > > looks like bash-4.0 has broken semicolon escaping in subshells.
> > > > > > this comes up when using find's -exec like we do in a few places
> > > > > > in eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po
> > > > > > ; shift you can work around the issue in a couple of ways: -
> > > > > > quote the semicolon:
> > > > > > .... ';')
> > > > > > - use backticks
> > > > > > `find .... ;`
> > > > > >
> > > > > > i'll tweak the eclasses to use quoting for now
> > > > >
> > > > > is this a bug or broken on purpose?
> > > >
> > > > i say it's a bug, but i'm not the bash maintainer
> > > >
> > > > i imagine it's fall out from attempts to fix support for case
> > > > statements in subshells
> > >
> > > Then the bug should be fixed, instead of changing usage to something
> > > apparently less common, as the conversion could miss some. And more
> > > importantly users still want to use ; for find -exec ending on their
> > > command line and their very own scripts.
> > > And who knows how many shell scripts shipped by packages use the
> > > escaping method.
> >
> > i think you missed the entire point of this thread: there's a bug in
> > bash-4.0 that code is likely to hit.
>
> I think you missed the entire point of my reply.
> That bug should be fixed, not workarounds applied all over the tree, as
> users still want to be able to escape semi-colons.

no one suggested doing any of this crap you're talking about. if you want to
get all retarded, dont install the masked ebuild. i gave a heads up to people
who might want to experiment so they wouldnt have to figure out weird errors.
in the mean time, i tweaked a few common files so people wouldnt hit errors
and could investigate even further.

i guess in the future i simply wont post heads up so i dont have to listen to
people whine about non-existent issues.
-mike
 
Old 02-22-2009, 12:02 AM
Ryan Hill
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Sat, 21 Feb 2009 18:55:37 -0500
Mike Frysinger <vapier@gentoo.org> wrote:

> On Saturday 21 February 2009 18:38:55 Ryan Hill wrote:
> > On Sat, 21 Feb 2009 18:27:10 -0500 Mike Frysinger wrote:
> > > looks like bash-4.0 has broken semicolon escaping in subshells.
> > > this comes up when using find's -exec like we do in a few places
> > > in eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po
> > > ; shift you can work around the issue in a couple of ways:
> > > - quote the semicolon:
> > > .... ';')
> > > - use backticks
> > > `find .... ;`
> > >
> > > i'll tweak the eclasses to use quoting for now
> >
> > is this a bug or broken on purpose?
>
> i say it's a bug, but i'm not the bash maintainer
>
> i imagine it's fall out from attempts to fix support for case
> statements in subshells

thanks for the heads up.

--
gcc-porting, by design, by neglect
treecleaner, for a fact or just for effect
wxwidgets @ gentoo EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662
 
Old 02-22-2009, 12:28 AM
Mike Frysinger
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Saturday 21 February 2009 19:54:51 Mart Raudsepp wrote:
> On Sat, 2009-02-21 at 19:44 -0500, Mike Frysinger wrote:
> > On Saturday 21 February 2009 19:38:33 Mart Raudsepp wrote:
> > > On Sat, 2009-02-21 at 19:29 -0500, Mike Frysinger wrote:
> > > > On Saturday 21 February 2009 19:00:19 Mart Raudsepp wrote:
> > > > > On Sat, 2009-02-21 at 18:55 -0500, Mike Frysinger wrote:
> > > > > > On Saturday 21 February 2009 18:38:55 Ryan Hill wrote:
> > > > > > > On Sat, 21 Feb 2009 18:27:10 -0500 Mike Frysinger wrote:
> > > > > > > > looks like bash-4.0 has broken semicolon escaping in
> > > > > > > > subshells. this comes up when using find's -exec like we do
> > > > > > > > in a few places in eclasses: ls=$(find "$1" -name '*.po'
> > > > > > > > -exec basename {} .po ; shift you can work around the
> > > > > > > > issue in a couple of ways: - quote the semicolon:
> > > > > > > > .... ';')
> > > > > > > > - use backticks
> > > > > > > > `find .... ;`
> > > > > > > >
> > > > > > > > i'll tweak the eclasses to use quoting for now
> > > > > > >
> > > > > > > is this a bug or broken on purpose?
> > > > > >
> > > > > > i say it's a bug, but i'm not the bash maintainer
> > > > > >
> > > > > > i imagine it's fall out from attempts to fix support for case
> > > > > > statements in subshells
> > > > >
> > > > > Then the bug should be fixed, instead of changing usage to
> > > > > something apparently less common, as the conversion could miss
> > > > > some. And more importantly users still want to use ; for find
> > > > > -exec ending on their command line and their very own scripts.
> > > > > And who knows how many shell scripts shipped by packages use the
> > > > > escaping method.
> > > >
> > > > i think you missed the entire point of this thread: there's a bug in
> > > > bash-4.0 that code is likely to hit.
> > >
> > > I think you missed the entire point of my reply.
> > > That bug should be fixed, not workarounds applied all over the tree, as
> > > users still want to be able to escape semi-colons.
> >
> > no one suggested doing any of this crap you're talking about. if you
> > want to get all retarded, dont install the masked ebuild. i gave a heads
> > up to people who might want to experiment so they wouldnt have to figure
> > out weird errors. in the mean time, i tweaked a few common files so
> > people wouldnt hit errors and could investigate even further.
>
> Perhaps you should actually state those intentions at the start instead
> of starting to rant out on people replying.
> Sounds good now that we actually know what the plan is.

i guess i used too many code words like "bash-4.0 is broken" and "workaround".
i'll address this in the future by just mailing base-system@gentoo.org as they
should be familiar with these insider terms.
-mike
 
Old 02-22-2009, 09:30 PM
Dawid Węgliński
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Sunday 22 of February 2009 00:27:10 Mike Frysinger wrote:
> looks like bash-4.0 has broken semicolon escaping in subshells. this comes
> up when using find's -exec like we do in a few places in eclasses:
> ls=$(find "$1" -name '*.po' -exec basename {} .po ;
> shift you can work around the issue in a couple of ways:
> - quote the semicolon:
> .... ';')
> - use backticks
> `find .... ;`
>
> i'll tweak the eclasses to use quoting for now
> -mike

FYI. Not only find's semicolons are affected. It also happens in case ;;
construction.

--
Cheers,
Dawid Węgliński
 
Old 02-22-2009, 09:39 PM
Mike Frysinger
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Sunday 22 February 2009 17:30:09 Dawid Węgliński wrote:
> On Sunday 22 of February 2009 00:27:10 Mike Frysinger wrote:
> > looks like bash-4.0 has broken semicolon escaping in subshells. this
> > comes up when using find's -exec like we do in a few places in eclasses:
> > ls=$(find "$1" -name '*.po' -exec basename {} .po ; shift you can work
> > around the issue in a couple of ways:
> > - quote the semicolon:
> > .... ';')
> > - use backticks
> > `find .... ;`
> >
> > i'll tweak the eclasses to use quoting for now
>
> FYI. Not only find's semicolons are affected. It also happens in case ;;
> construction.

embedded case statements in $(...) subshells have always been broken.
bash-4.0 is supposed to fix that. if you have some code that is broken,
please post it so i can push it upstream.
-mike
 
Old 02-22-2009, 10:03 PM
Dawid Węgliński
 
Default bash-4.0 regression heads up (escaped semicolons in subshells)

On Sunday 22 of February 2009 23:39:11 Mike Frysinger wrote:
> On Sunday 22 February 2009 17:30:09 Dawid Węgliński wrote:
> > On Sunday 22 of February 2009 00:27:10 Mike Frysinger wrote:
> > > looks like bash-4.0 has broken semicolon escaping in subshells. this
> > > comes up when using find's -exec like we do in a few places in
> > > eclasses: ls=$(find "$1" -name '*.po' -exec basename {} .po ; shift
> > > you can work around the issue in a couple of ways:
> > > - quote the semicolon:
> > > .... ';')
> > > - use backticks
> > > `find .... ;`
> > >
> > > i'll tweak the eclasses to use quoting for now
> >
> > FYI. Not only find's semicolons are affected. It also happens in case ;;
> > construction.
>
> embedded case statements in $(...) subshells have always been broken.
> bash-4.0 is supposed to fix that. if you have some code that is broken,
> please post it so i can push it upstream.
> -mike

It wasn't me who experienced that, but a user:

13:50 < diabel-> <<< dir /usr/share/doc/wxGTK-2.8.9.1-r3
13:50 < diabel-> /var/tmp/binpkgs/x11-libs/wxGTK-2.8.9.1-r3/temp/environment:
line 2989: błąd składni przy nieoczekiwanym znaczniku `;;'
13:50 < diabel-> /var/tmp/binpkgs/x11-libs/wxGTK-2.8.9.1-r3/temp/environment:
line 2989: ` ;;' * * ERROR: x11-libs/wxGTK-2.8.9.1-r3 failed.

All it states is syntax error near double semicolons.
 

Thread Tools




All times are GMT. The time now is 12:00 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org