[PHP-DEV] Re: [PATCH] Re: [PHP-DEV] doing phar.phar on windows
hi Greg, On Thu, Jun 11, 2009 at 6:42 AM, Greg Beaver wrote: > I suppose it would help to see the patch, no? > > Index: win32/build/Makefile > === > RCS file: /repository/php-src/win32/build/Makefile,v > retrieving revision 1.35.2.1.2.6.2.12 > diff -u -r1.35.2.1.2.6.2.12 Makefile > --- win32/build/Makefile 27 May 2009 01:46:48 - > 1.35.2.1.2.6.2.12 > +++ win32/build/Makefile 11 Jun 2009 04:17:08 - > @@ -128,7 +128,7 @@ > -del /f /q > $(BUILD_DIR)\php-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip > -del /f /q > $(BUILD_DIR)\php-debug-pack-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip > -del /f /q > $(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip > - $(BUILD_DIR)\php.exe -d date.timezone=UTC -n win32/build/mkdist.php > "$(BUILD_DIR)" "$(PHPDLL)" "$(SAPI_TARGETS)" "$(EXT_TARGETS) > $(PHP_EXTRA_DIST_FILES)" "$(PECL_TARGETS) $(PECL_EXTRA_DIST_FILES)" > "$(SNAPSHOT_TEMPLATE)" > + $(BUILD_DIR)\php.exe -d date.timezone=UTC -n -dphar.readonly=0 > win32/build/mkdist.php "$(BUILD_DIR)" "$(PHPDLL)" "$(SAPI_TARGETS)" > "$(EXT_TARGETS) $(PHP_EXTRA_DIST_FILES)" "$(PECL_TARGETS) > $(PECL_EXTRA_DIST_FILES)" "$(SNAPSHOT_TEMPLATE)" > cd $(BUILD_DIR)\php-$(PHP_VERSION_STRING) > -$(ZIP) -9 -q -r > ..\php-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip > . > cd ..\.. > Index: win32/build/mkdist.php > === > RCS file: /repository/php-src/win32/build/mkdist.php,v > retrieving revision 1.13.4.1.2.11 > diff -u -r1.13.4.1.2.11 mkdist.php > --- win32/build/mkdist.php 3 Jun 2009 01:14:58 - 1.13.4.1.2.11 > +++ win32/build/mkdist.php 11 Jun 2009 04:31:54 - > @@ -393,6 +393,27 @@ > closedir($directory_list); > } > > +function make_phar_dot_phar($dist_dir) > +{ > + if (!extension_loaded('phar')) return; > + $path_to_php = $dist_dir; > + $path_to_phar = realpath(__DIR__ . '/../../ext/phar'); > + echo "Generating pharcommand.phar\n"; > + $phar = new Phar($path_to_php . '/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($path_to_php . '/phar.phar.bat', "%~dp0php.exe > %~dp0pharcommand.phar %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n"); > +} > + > if (!is_dir($test_dir)) { > mkdir($test_dir); > } > @@ -489,4 +510,5 @@ > echo "WARNING: you don't have a snapshot template, your dist will not > be complete\n"; > } > > +make_phar_dot_phar($dist_dir); > ?> Please commit, it looks good. I will test once it is committed as well. Cheers, -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Re: [PHP-DEV] doing phar.phar on windows
Lester Caine wrote: Greg Beaver wrote: I suppose it would help to see the patch, no? If I'm reading that correctly it replaces the .zip files? OK - white space problem with the line wrap, I can see what it is adding now. I had the -del at the start of the line so it appeared to be deleting those lines. -- Lester Caine - G8HFL - Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk// Firebird - http://www.firebirdsql.org/index.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] [PATCH] Re: [PHP-DEV] doing phar.phar on windows
Greg Beaver wrote: I suppose it would help to see the patch, no? If I'm reading that correctly it replaces the .zip files? -- Lester Caine - G8HFL - Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk// Firebird - http://www.firebirdsql.org/index.php -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] [PATCH] Re: [PHP-DEV] doing phar.phar on windows
I suppose it would help to see the patch, no? Index: win32/build/Makefile === RCS file: /repository/php-src/win32/build/Makefile,v retrieving revision 1.35.2.1.2.6.2.12 diff -u -r1.35.2.1.2.6.2.12 Makefile --- win32/build/Makefile27 May 2009 01:46:48 - 1.35.2.1.2.6.2.12 +++ win32/build/Makefile11 Jun 2009 04:17:08 - @@ -128,7 +128,7 @@ -del /f /q $(BUILD_DIR)\php-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip -del /f /q $(BUILD_DIR)\php-debug-pack-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip -del /f /q $(BUILD_DIR)\pecl-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip - $(BUILD_DIR)\php.exe -d date.timezone=UTC -n win32/build/mkdist.php "$(BUILD_DIR)" "$(PHPDLL)" "$(SAPI_TARGETS)" "$(EXT_TARGETS) $(PHP_EXTRA_DIST_FILES)" "$(PECL_TARGETS) $(PECL_EXTRA_DIST_FILES)" "$(SNAPSHOT_TEMPLATE)" + $(BUILD_DIR)\php.exe -d date.timezone=UTC -n -dphar.readonly=0 win32/build/mkdist.php "$(BUILD_DIR)" "$(PHPDLL)" "$(SAPI_TARGETS)" "$(EXT_TARGETS) $(PHP_EXTRA_DIST_FILES)" "$(PECL_TARGETS) $(PECL_EXTRA_DIST_FILES)" "$(SNAPSHOT_TEMPLATE)" cd $(BUILD_DIR)\php-$(PHP_VERSION_STRING) -$(ZIP) -9 -q -r ..\php-$(PHP_VERSION_STRING)$(PHP_ZTS_ARCHIVE_POSTFIX)-Win32-$(PHP_COMPILER_SHORT)-$(PHP_ARCHITECTURE).zip . cd ..\.. Index: win32/build/mkdist.php === RCS file: /repository/php-src/win32/build/mkdist.php,v retrieving revision 1.13.4.1.2.11 diff -u -r1.13.4.1.2.11 mkdist.php --- win32/build/mkdist.php 3 Jun 2009 01:14:58 - 1.13.4.1.2.11 +++ win32/build/mkdist.php 11 Jun 2009 04:31:54 - @@ -393,6 +393,27 @@ closedir($directory_list); } +function make_phar_dot_phar($dist_dir) +{ + if (!extension_loaded('phar')) return; + $path_to_php = $dist_dir; + $path_to_phar = realpath(__DIR__ . '/../../ext/phar'); + echo "Generating pharcommand.phar\n"; + $phar = new Phar($path_to_php . '/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($path_to_php . '/phar.phar.bat', "%~dp0php.exe %~dp0pharcommand.phar %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n"); +} + if (!is_dir($test_dir)) { mkdir($test_dir); } @@ -489,4 +510,5 @@ echo "WARNING: you don't have a snapshot template, your dist will not be complete\n"; } +make_phar_dot_phar($dist_dir); ?> -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
Hi, I have a working patch against mkdist.php, is it all right to commit? Greg -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
Hi Greg 2009/6/10 Greg Beaver : > Fantastic, in that case, all that needs to be added to mkdist.php is this: > > echo "Generating phar.phar\r\n"; > $phar = new Phar($path_to_php . '/phar.phar', 0, 'pharcommand'); > foreach (new DirectoryIterator($path_to_phar . '/phar') as $file) { > if ($file->isDir() || $file == 'phar.php') continue; > echo 'adding ', $file, "\r\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\r\n"; > file_put_contents($path_to_php . '/phar.phar.bat', 'php phar.phar %1 %2 > %3 %4 %5 %6 %7 %8 %9\r\n"); To use unlimited parameters, then use %* and it will catch all the parameters. > > That should do it. The only problem is that the user will need to > adjust the path of phar.phar at install-time, but I don't see any > obvious way around this outside of the win32 installer. > > Note that $path_to_php should be the equivalent of C:\php5 and > $path_to_phar should be C:\php5\ext\phar > > Greg > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- regrads, Kalle Sommer Nielsen ka...@php.net -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
On Wed, Jun 10, 2009 at 6:44 PM, Greg Beaver wrote: > Pierre Joye wrote: >> On Wed, Jun 10, 2009 at 5:36 PM, Greg Beaver wrote: >> >>> Hi, >>> >>> I don't see an obvious way to build the phar.phar on windows. >>> >>> Can someone with knowledge of how configure.js works (i.e. a Pierre) >>> give me a tip on how to tell it to make phar.phar after building >>> Release_TS/php.exe or Debug_TS/php.exe? >>> >>> Otherwise, it would also be easy to provide a simple script that builds >>> the phar.phar, and have the snapshot builder run the script. >>> >>> Which way would be better? >>> >> >> Can you create it from PHP/using a php script? >> >> If yes, we can add it to mkdist.php easily. > Fantastic, in that case, all that needs to be added to mkdist.php is this: > > echo "Generating phar.phar\r\n"; > $phar = new Phar($path_to_php . '/phar.phar', 0, 'pharcommand'); > foreach (new DirectoryIterator($path_to_phar . '/phar') as $file) { > if ($file->isDir() || $file == 'phar.php') continue; > echo 'adding ', $file, "\r\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\r\n"; > file_put_contents($path_to_php . '/phar.phar.bat', 'php phar.phar %1 %2 > %3 %4 %5 %6 %7 %8 %9\r\n"); > > That should do it. The only problem is that the user will need to > adjust the path of phar.phar at install-time, but I don't see any > obvious way around this outside of the win32 installer. > > Note that $path_to_php should be the equivalent of C:\php5 and > $path_to_phar should be C:\php5\ext\phar We don't know these paths when on unzip the releases in some random directories. Maybe that should be something to add in the installer instead? But reading this little script, why don't you detect magically where phar.bat is in phar.bat and then call phar.phar from there? It is possible to do that in batch files (see http://cvs.php.net/viewvc.cgi/php-internals-win/script/ there are some dirty examples there). Cheers, -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
Pierre Joye wrote: > On Wed, Jun 10, 2009 at 5:36 PM, Greg Beaver wrote: > >> Hi, >> >> I don't see an obvious way to build the phar.phar on windows. >> >> Can someone with knowledge of how configure.js works (i.e. a Pierre) >> give me a tip on how to tell it to make phar.phar after building >> Release_TS/php.exe or Debug_TS/php.exe? >> >> Otherwise, it would also be easy to provide a simple script that builds >> the phar.phar, and have the snapshot builder run the script. >> >> Which way would be better? >> > > Can you create it from PHP/using a php script? > > If yes, we can add it to mkdist.php easily. Fantastic, in that case, all that needs to be added to mkdist.php is this: echo "Generating phar.phar\r\n"; $phar = new Phar($path_to_php . '/phar.phar', 0, 'pharcommand'); foreach (new DirectoryIterator($path_to_phar . '/phar') as $file) { if ($file->isDir() || $file == 'phar.php') continue; echo 'adding ', $file, "\r\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\r\n"; file_put_contents($path_to_php . '/phar.phar.bat', 'php phar.phar %1 %2 %3 %4 %5 %6 %7 %8 %9\r\n"); That should do it. The only problem is that the user will need to adjust the path of phar.phar at install-time, but I don't see any obvious way around this outside of the win32 installer. Note that $path_to_php should be the equivalent of C:\php5 and $path_to_phar should be C:\php5\ext\phar Greg -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
2009/6/10 Johannes Schlüter : > On Wed, 2009-06-10 at 10:36 -0500, Greg Beaver wrote: >> Can someone with knowledge of how configure.js works (i.e. a Pierre) >> give me a tip on how to tell it to make phar.phar after building >> Release_TS/php.exe or Debug_TS/php.exe? > > My guess would be changing the "all" target in win32/build/Makefile > adding a new "phar.phar" target as dependency. I think this file s > copied 1:1 over to he target Makefile ... > > Not sure that's better than Pierre's answer to this thread :-) Note: I have no idea what phar.phar is and how it is generated. I only mentioned a possible way to do it :) -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
On Wed, 2009-06-10 at 10:36 -0500, Greg Beaver wrote: > Can someone with knowledge of how configure.js works (i.e. a Pierre) > give me a tip on how to tell it to make phar.phar after building > Release_TS/php.exe or Debug_TS/php.exe? My guess would be changing the "all" target in win32/build/Makefile adding a new "phar.phar" target as dependency. I think this file s copied 1:1 over to he target Makefile ... Not sure that's better than Pierre's answer to this thread :-) johannes -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] doing phar.phar on windows
On Wed, Jun 10, 2009 at 5:36 PM, Greg Beaver wrote: > Hi, > > I don't see an obvious way to build the phar.phar on windows. > > Can someone with knowledge of how configure.js works (i.e. a Pierre) > give me a tip on how to tell it to make phar.phar after building > Release_TS/php.exe or Debug_TS/php.exe? > > Otherwise, it would also be easy to provide a simple script that builds > the phar.phar, and have the snapshot builder run the script. > > Which way would be better? Can you create it from PHP/using a php script? If yes, we can add it to mkdist.php easily. Cheers, -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-DEV] doing phar.phar on windows
Hi, I don't see an obvious way to build the phar.phar on windows. Can someone with knowledge of how configure.js works (i.e. a Pierre) give me a tip on how to tell it to make phar.phar after building Release_TS/php.exe or Debug_TS/php.exe? Otherwise, it would also be easy to provide a simple script that builds the phar.phar, and have the snapshot builder run the script. Which way would be better? Thanks, Greg -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php