[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: test-vc-cvs [was: IRIX failures]
From: |
Eric Blake |
Subject: |
Re: test-vc-cvs [was: IRIX failures] |
Date: |
Thu, 02 Sep 2010 08:25:51 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100806 Fedora/3.1.2-1.fc13 Mnenhy/0.8.3 Thunderbird/3.1.2 |
On 09/02/2010 08:02 AM, Tom G. Christensen wrote:
> > zsh -vx ./test-vc-list-files-cvs.sh
> >
Sure, output here:
http://jupiterrise.com/tmp/zsh_vx_test-vc-list-files-cvs.out
Thanks. I definitely see a couple of problems.
First, there's no 'emulate sh' command anywhere in the trace, and zsh
when NOT in POSIX mode does weird things (such as failure to do field
splitting). I guess part of my init.sh patching today will be fixing
init.sh to properly sanitize zsh when bash is skipped would be
appropriate (zsh installed as /bin/sh already behaves in POSIX mode, so
you are probably the first case of someone actually hitting zsh as the
preferred fallback shell).
Next, your trace showed the cause of the first message:
+mktempd_:51> template_length_=+mktempd_:1> wc -c
+mktempd_:51> template_length_=' 16'
+mktempd_:52> nx_=+mktempd_:1> echo gt-init.sh.
+mktempd_:52> nx_=+mktempd_:1> wc -c
+mktempd_:52> nx_=' 12'
+mktempd_:53> nx_=+mktempd_:1> expr ' 16' - ' 12'
non-numeric argument
So wc is outputting space-padded results, and expr doesn't like the
leading spaces. And once expr dies, the rest of the temporary directory
creation goes downhill.
I also noticed (in trying this myself) that directly running the script
doesn't quite work if build-aux is not in PATH (that aspect is
automatically taken care of when run via the Makefile). But at this
point, let's wait until some more gnulib patches are in, and I make
another m4 snapshot, to see if we caught everything on this go-around.
echo $BASH_VERSION
+ echo '3.1.16(1)-release'
3.1.16(1)-release
test $(echo y) = y || exit 1
cho y
++ cho y
bash: line 2: cho: command not found
+ test = y
bash: line 2: test: =: unary operator expected
+ exit 1
Definitely something funny going on there.
Inserting a space so it's $( echo y) and the test passes.
Oh my. Your bash installation is quite broken - no wonder the script
bypasses it. Is this a self-built bash? If so, you may want to upgrade
to 3.1.17 (and/or 3.2, 4.0, or 4.1), and hope that the rebuild fixes
whatever was broken about your 3.1.16. But looking at bash31-017, that
only touches array expansion, so it's not directly related to your weird
command substitution behavior. But at least it's not a bug in gnulib.
If it were a more recent bash version, I'd suggest reporting it to the
bash list; but since it is rather old, it may be that upgrading to a
newer bash is all you need.
--
Eric Blake address@hidden +1-801-349-2682
Libvirt virtualization library http://libvirt.org
minimum perl version [was: IRIX failures], Eric Blake, 2010/09/01
Re: minimum perl version, Bruno Haible, 2010/09/04
Re: minimum perl version, Jim Meyering, 2010/09/04
Re: minimum perl version, Bruno Haible, 2010/09/04
iswblank failure [was: IRIX failures], Eric Blake, 2010/09/01