bug in configure script

Subject: bug in configure script

Date: Fri, 01 Jun 2012 11:17:05 -0700

To: Notmuch Mail

Cc:

From: Jameson Graef Rollins


There's a bug in the configure script that is causing auto-reruns of
./configure to not inherit original command line options if there was
more than one.  For instance, if I run:

./configure --with-gmime-version=2.4 --prefix=/home/jrollins/opt/notmuch

Then in Makefile.config I get:

configure_options = --with-gmime-version=2.4--prefix=/home/jrollins/opt/notmuch

This means that auto-reruns of configure will not get the proper
options.

I tracked this down to an issue with IFS and /bin/sh.  The first line of
./configure is:

readonly DEFAULT_IFS=$IFS

DEFAULT_IFS is then used to reset IFS after it is modified within the
script.  The problem is that /bin/sh is setting DEFAULT_IFS to be NULL
(i.e. ''), which leads to no separation between variables when "$@" is
expanded (which is itself problematic since I don't think "@" should use
the IFS when expanded).  So this might be a bug in dash.  I don't know.
In any event we need to fix this somehow.  I see two obvious solutions:

* use /bin/bash.  This a one line diff that fixes the problem
  immediately.

* replace:

    IFS=$DEFAULT_IFS

  with:

    unset IFS

  Unsetting IFS also resets IFS to the default, without going through
  this intermediate step.

I'm ok with either solution, but I'll wait for some feedback since I
imagine someone will have an opinion.

jamie.
part-000.sig (application/pgp-signature)

Thread: