Edit report at https://bugs.php.net/bug.php?id=61482&edit=1

 ID:                 61482
 Updated by:         s...@php.net
 Reported by:        mattfic...@php.net
 Summary:            php-cli crashes during 'nmake snap'
 Status:             Open
 Type:               Bug
 Package:            PHAR related
 Operating System:   Windows
 PHP Version:        5.4.0
 Block user comment: N
 Private report:     N

 New Comment:

git bisect says commit 714f1ff4b37c5101b3c61ea108a3d415f41e50df is to blame. 
Reverting it seems to fix the issue.


Previous Comments:
------------------------------------------------------------------------
[2012-03-23 05:24:11] mattfic...@php.net

With proper quotes:


Release\php.exe -d date.timezone=UTC -n -dphar.readonly=0 
win32/build/mkdist.php 
"Release" "C:\Projects\win32build" "php5.dll" "php-cgi.exe php.exe" 
"php_intl.dll 
php_pdo_mysql.dll " " " "no"

------------------------------------------------------------------------
[2012-03-23 05:23:06] s...@php.net

This commandline reliably reproduces it:


Release\php.exe -d date.timezone=UTC -n -dphar.readonly=0 
win32/build/mkdist.php 
Release C:\Projects\win32build php5.dll php-cgi.exe php.exe php_intl.dll 
php_pdo_mysql.dll    no

------------------------------------------------------------------------
[2012-03-23 00:47:31] s...@php.net

Happens to me with 5.4 branch too. If I remove make_phar_dot_phar(), it does 
not 
happen, so definitely has something to do with phar.

------------------------------------------------------------------------
[2012-03-22 23:03:38] mattfic...@php.net

looks like it fails on the first call to file_get_contents() in 
make_phar_dot_phar().

the first and only arg to file_get_contents() is 
"c:\php-sdk\git\php-src\ext\phar\phar\clicommand.inc".

------------------------------------------------------------------------
[2012-03-22 22:56:48] mattfic...@php.net

Test Script (stripped down win32/build/mkdist.php):
<?php 

// FYI: nmake snap runs mkdist.php with these args
//
// c:\php-sdk\git\php-src>C:\php-sdk\git\obj\Release\php.exe -d 
date.timezone=UTC -n -dphar.readonly=0 win32/build/mkdist.php 
"C:\php-sdk\git\obj\Release" "C:\php-sdk\git\php-src\no" "php5.dll" 
"php-cgi.exe php.exe php-win.exe php5embed.lib" "php_mbstring.dll php_shmop.dll 
php_sockets.dll php_sqlite3.dll php_exif.dll php_pdo_mysql.dll php_pdo_odbc.dll 
php_pdo_sqlite.dll " " " "no"

// php build directory
$build_dir = "C:\php-sdk\git\obj\Release";

$dist_dir = $build_dir . "/php-" . phpversion();
$test_dir = $build_dir . "/php-test-pack-" . phpversion();
$pecl_dir = $build_dir . "/pecl-" . phpversion();

@mkdir($dist_dir);
@mkdir("$dist_dir/ext");
@mkdir("$dist_dir/dev");
@mkdir("$dist_dir/extras");
@mkdir($pecl_dir);


function make_phar_dot_phar($dist_dir)
{
        if (!extension_loaded('phar')) {
                return;
        }

        $path_to_phar = realpath(__DIR__ . '/../../ext/phar');

        echo "Generating pharcommand.phar\n";
        $phar = new Phar($dist_dir . '/pharcommand.phar', 0, 'pharcommand');

        foreach (new DirectoryIterator($path_to_phar . '/phar') as $file) {
                if ($file->isDir() || $file == 'phar.php') {
                        continue;
                }

                echo 'adding ', $file, "\n";
                $phar[(string) $file] = file_get_contents($path_to_phar.  
'/phar/' . $file);
        }

        $phar->setSignatureAlgorithm(Phar::SHA1);
        $stub = file($path_to_phar . '/phar/phar.php');

        unset($stub[0]); // remove hashbang
        $phar->setStub(implode('', $stub));

        echo "Creating phar.phar.bat\n";
        file_put_contents($dist_dir . '/phar.phar.bat', "%~dp0php.exe 
%~dp0pharcommand.phar %*\r\n");
}


make_phar_dot_phar($dist_dir);
?>

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=61482


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=61482&edit=1

Reply via email to