[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Libvir] make syntax-check fails with bzr checkouts



On Wed, Apr 30, 2008 at 12:19:51PM +0200, Jim Meyering wrote:
> Unfortunately, the above no longer applies, due to upstream (gnulib)
> changes to deal with non-srcdir (aka VPATH) builds.  I updated libvirt
> from gnulib just yesterday, and will again, later today.
> 
> Can you adapt your patch to make bzr work with the newer version?

I'll do it when you're done updating gnulib.

> >  	}}'				\
> > -      $(find ${*-*} -name Entries -print) /dev/null;
> > +      $(find ${*:-*} -name Entries -print) /dev/null;
> 
> Thanks for reporting that.
> Note though that POSIX appears to require the behavior that bash exhibits,
> so calling this a bashism doesn't seem right.  

No. POSIX requires that ${*-*} should expand to * if $* is unset (and
not if it's null).  $* is defined to expand to the positional parameters
starting from 1. The spec is not *entirely* clear, I'll give you that,
but considering $* to be unset (instead of just null) messes with my
sanity. At any rate, relying on bash's interpretation of the spec is a
text book example of a bashism, if you ask me.

> but there is no such exemption for the ${parameter-word} syntax.  All
> that to say that this looks more like an infelicity in dash, and since
> Ubuntu relies on it, you may want to investigate further.

Well, if anyone insists on not changing something that only works with
bash to something that works with any shell (${*:-*} vs. ${*-*}) , but
also refuses to put /bin/bash explicitly as the interpreter is just
being pointlessly difficult, IMO.  

> However, back to vc-list-files, that awk-based code is so hard to
> reach for me -- I avoid CVS, and when I do use it, I have cvsu in my
> path -- that it is rarely tested.
> 
> Anyhow the use of "*" there is unnecessary, and in addition,
> there was a subtle (but probably never problematic) quoting bug.
> Here's the patch I've pushed to gnulib:
> 
>   http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=173a9f0c48a16c3507f8

That patch will make the cvs case fail, too. It will prepend a ./ to all
path names which will screw with the comparison, AFAICS. 

> If you care about the CVS-oriented cases, there are two more patches.

Not really. :) It just popped up when I was trying to determine why my
bzr case was failing.

-- 
Soren Hansen               | 
Virtualisation specialist  | Ubuntu Server Team
Canonical Ltd.             | http://www.ubuntu.com/

Attachment: signature.asc
Description: Digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]