Re: [exim] Exim 4.80 RC2 uploaded

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Phil Pennock
日付:  
To: Jeremy Harris
CC: exim-users
題目: Re: [exim] Exim 4.80 RC2 uploaded
On 2012-05-19 at 20:32 +0100, Jeremy Harris wrote:
> Really minor testsuite issue, but it's a new one:
>
> log/0369
> SHELL vs. /bin/sh


I fixed that because the output from the running test is changed when
SHELL=/bin/sh, which it does for my test suite account.

This has always been broken for me, but the code has been in place since
PH did the initial CVS import of the test suite, recorded in git as
151b83f8.

> I'm not sure why this particular use of a shell must
> be translated. It has a well-defined name, coded in the conf.
> Perhaps we could place our own symlink (in the test area)
> to /bin/sh and code the conf with that?


I believe it's because of 0137 which invokes the user's shell, instead
of /bin/sh, only using /bin/sh if SHELL is not in the environment.

> I've a patch with this; can push in fairly short order if it's agreeable.


Because of 0137, I suspect the correct fix is (since the test suite
already assumes '/' as directory separator):

* revert the change to log/0369
* in runtest, before setting $parm_shell:

    # test 0137 testing really needs a different shell to /bin/sh to be
    # meaningful
    if ($ENV{'SHELL'} eq '/bin/sh') {
      print "Finding alternate user-shell for testing ...\n";
      my $new_shell;
      VARIANT_LOOP:
      foreach my $variant ('bash', 'zsh', 'ksh') {
        foreach my $elem (split /:/, $ENV{'PATH'}) {
          if (-x "$elem/$variant") {
            $new_shell = "$elem/$variant";
            last VARIANT_LOOP;
          }
        }
      }
      if (not defined $new_shell) {
        die "Unable to find replacement user shell for /bin/sh\n"
      }
      $ENV{'SHELL'} = $new_shell;
    }


-Phil