new-installer: Use `` instead of wfShellExec() like the old installer
authorÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Sun, 4 Jul 2010 19:44:21 +0000 (19:44 +0000)
committerÆvar Arnfjörð Bjarmason <avar@users.mediawiki.org>
Sun, 4 Jul 2010 19:44:21 +0000 (19:44 +0000)
This avoids runnin into the memory limitation of ulimit.sh when
auto-detecting if programs exist during installation. On my 64 bit
Debian system calling e.g. diff3 --version takes more than the default
10MB memory limit.

Can be reproduced as:

    <?php
    require 'maintenance/commandLine.inc';
    $var = wfShellExec("/usr/bin/diff3 --version 2>&1");
    echo "<$var>\n";
    ?>

Which on my system gives you:

    php test.php
    /home/avar/g/phase3/bin/ulimit4.sh: xmalloc: ../bash/variables.c:3446: cannot allocate 1270 bytes (53248 bytes allocated)
    <>

The old installer just did ``, revert to this behavior until we raise
the default memory limit, or find some workaround for this issue.

includes/installer/Installer.php

index 6319428..24da5cc 100644 (file)
@@ -581,7 +581,9 @@ abstract class Installer {
                                        return $command;
 
                                $file = str_replace( '$1', $command, $versionInfo[0] );
-                               if ( strstr( wfShellExec( $file ), $versionInfo[1]) !== false )
+                               # Should maybe be wfShellExec( $file), but runs into a ulimit, see
+                               # http://www.mediawiki.org/w/index.php?title=New-installer_issues&diff=prev&oldid=335456 
+                               if ( strstr( `$file`, $versionInfo[1]) !== false )
                                        return $command;
                        }
                }