Re: [PHP-DEV] CGI and CLI (compromise proposal)
At 22:41 03.01.2003, Jean-Michel Dault wrote: Hello all, Sorry to re-activate this topic, but I stumbled into an issue when packaging PHP 4.3 as an RPM for Mandrake. What happens when a user wants to install *both* php-cli and php-cgi? You cannot have two files with the same name, either in the same RPM, or in two different RPMS... This is not RPM specific, since it will create the same problem with apt, pkgtool, or others. But why would he want to? AFAIK Mandrake uses php as an apache module and CLI can be used on the commandline. If the user still wants to have CGI by a RPM then i would go for naming it to whatever name you like different from that of the executable in the CLI RPM. Since RPM can handle all installation problems everything is fine then. marcus -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
Le sam 04/01/2003 à 08:15, Marcus Börger a écrit : What happens when a user wants to install *both* php-cli and php-cgi? You cannot have two files with the same name, either in the same RPM, or in two different RPMS... This is not RPM specific, since it will create the same problem with apt, pkgtool, or others. But why would he want to? AFAIK Mandrake uses php as an apache module and CLI can be used on the commandline. If the user still wants to have CGI by a RPM then i would go for naming it to whatever name you like different from that of the executable in the CLI RPM. Since RPM can handle all installation problems everything is fine then. Concrete example from our demanding users: If someone wants to have Apache running PHP, but provide secure PHP in a chrooted environment for users home directories, they use cgiwrap, thus php-cgi. But if they use PEAR and php-gtk as well, they'll need the php-cli. What you're suggesting is that, when both cgi and cli are installed, the cli version is called php, and the php-cgi is called something else. This creates these problems: - If someone used the cgi version before, it will no longer work, since the php-cli doesn't write the headers - If someone used the cgi version in command-line mode, and install the new cli version, some scripts will be broken, because of the way it does not change directories before executing the script. So the default behavior is to have php-cgi, and have some additional steps to have the CLI. In the source edition, you have to do make install-cli, in Mandrake, you'll have to do rpm -i php-cli. So what I'll do is the following: - The standard php binary will be the CGI version, will be called php-cgi, and have a priority of 20. - There will be an additional php-cli package, and will have a priority of 10. - I will use the update-alternatives method to provide a symbolic link to /usr/bin/php. If only one package is installed, calling PHP will call the right one. If both are installed, calling php will translate to php-cgi, which has the highest priority. Users who have both packages will still be able to chose if they give the proper binary name. Does this make sense to you? Jean-Michel -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
At 21:57 04.01.2003, Jean-Michel Dault wrote: Le sam 04/01/2003 à 08:15, Marcus Börger a écrit : What happens when a user wants to install *both* php-cli and php-cgi? You cannot have two files with the same name, either in the same RPM, or in two different RPMS... This is not RPM specific, since it will create the same problem with apt, pkgtool, or others. But why would he want to? AFAIK Mandrake uses php as an apache module and CLI can be used on the commandline. If the user still wants to have CGI by a RPM then i would go for naming it to whatever name you like different from that of the executable in the CLI RPM. Since RPM can handle all installation problems everything is fine then. Concrete example from our demanding users: If someone wants to have Apache running PHP, but provide secure PHP in a chrooted environment for users home directories, they use cgiwrap, thus php-cgi. But if they use PEAR and php-gtk as well, they'll need the php-cli. Ok, good point. What you're suggesting is that, when both cgi and cli are installed, the cli version is called php, and the php-cgi is called something else. This creates these problems: - If someone used the cgi version before, it will no longer work, since the php-cli doesn't write the headers - If someone used the cgi version in command-line mode, and install the new cli version, some scripts will be broken, because of the way it does not change directories before executing the script. So the default behavior is to have php-cgi, and have some additional steps to have the CLI. In the source edition, you have to do make install-cli, in Mandrake, you'll have to do rpm -i php-cli. So what I'll do is the following: - The standard php binary will be the CGI version, will be called php-cgi, and have a priority of 20. - There will be an additional php-cli package, and will have a priority of 10. - I will use the update-alternatives method to provide a symbolic link to /usr/bin/php. If only one package is installed, calling PHP will call the right one. If both are installed, calling php will translate to php-cgi, which has the highest priority. Users who have both packages will still be able to chose if they give the proper binary name. Does this make sense to you? Since i favor CLI being called php i would prefer that solution. And IMO security through cgi and suexec and such is only a hack (even though a good one at current time). However i see the main problem and can live with both solutions because i will not install CGI where i need CLI and on those systems where i need CGI i can live without CLI for now. What might happen is that CLI becomes widely accepted and scripts calling php from shebang lines. Id so your above solution is a bad idea and i hope CLI will be... marcus -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
What might happen is that CLI becomes widely accepted and scripts calling php from shebang lines. Id so your above solution is a bad idea and i hope CLI will be... That's a minor problem for me, since the shebang is never standard. Some people put it in /usr/local, some in /opt, some in /usr/bin, so anyways you have to modify it. And with my approach, php will still be called php, with the symbolic links. Jean-Michel -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
Hello all, Sorry to re-activate this topic, but I stumbled into an issue when packaging PHP 4.3 as an RPM for Mandrake. What happens when a user wants to install *both* php-cli and php-cgi? You cannot have two files with the same name, either in the same RPM, or in two different RPMS... This is not RPM specific, since it will create the same problem with apt, pkgtool, or others. For Windows, the php.exe and cli/php.exe is good, but on Unix, it would be bad to have, say, /usr/bin/php and /usr/bin/cli/php! Here is yet another compromise (for Unix) 1) - name the cli version php-cli 2) - name the cgi version php-cgi 3) - use a wrapper script, symbolic link or another tool (such as update-alternatives for Linux), to decide which one to call. 4) - tell everyone to change their scripts for the future, so it points to the right php version. Step #4 is not that bad, since we always have to change the 1st line of the scripts anyways... You never know where php is installed, since DESTDIR is a variable. And with the wrapper script, we keep BC, at the expense of a slowdown of performance. What do you think? PS: please answer to me personnaly, as I don't check this mailing list often. Regards, Jean-Michel Dault Apache/PHP maintainer, Mandrake Linux Le jeu 19/12/2002 à 10:33, Edin Kadribasic a écrit : After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. Edin -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
On Fri, 20 Dec 2002, Marcus Börger wrote: What about uniqid(): http://www.zend.com/zend/week/week116.php#Heading5 I would go for disabling when not available and sending an error when calling from cygwin without more entropy parameter set to true. The rest can be fixed for 4.3.1 as it seems to late for a fix in 4.3.0. Fine with me. -Andrei http://www.gravitonic.com/ The day Microsoft makes something that doesn't suck, is probably the day Microsoft starts making vacuum cleaners. - Ernst Jan Plugge -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP-DEV] CGI and CLI (compromise proposal)
-Original Message- From: Edin Kadribasic [mailto:[EMAIL PROTECTED]] Sent: Thursday, December 19, 2002 3:34 PM To: [EMAIL PROTECTED] Subject: [PHP-DEV] CGI and CLI (compromise proposal) After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. I think this is the best idea so far as it can be implemented (and released ;) fast, would not break BC and gives people who want to use the cli-version to use php. Regards, Sebastian Nohn -- [EMAIL PROTECTED] - http://www.nohn.net/ PGP Key Available - Did I help you? Consider a gift: http://www.amazon.de/exec/obidos/wishlist/3HYH6NR8ZI0WI/ -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
If my vote has enough Karma Power, then I'm +1 for this solution. --Wez. On Thu, 19 Dec 2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
At 15:33 19.12.2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. Edin I am +1 with respect to latest -+ [01] discussion marcus -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
This gets my complete support. Let's go ahead with the changes. On Thu, 19 Dec 2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. -Andrei http://www.gravitonic.com/ * The great thing about standards is that there are so many to choose from. * -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
Here is the patch against PHP_4_3 that implements the Unix side of changes. Edin On Thu, 19 Dec 2002, Andrei Zmievski wrote: This gets my complete support. Let's go ahead with the changes. On Thu, 19 Dec 2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. -Andrei http://www.gravitonic.com/ * The great thing about standards is that there are so many to choose from. * Index: configure.in === RCS file: /repository/php4/configure.in,v retrieving revision 1.396.2.15 diff -u -3 -p -r1.396.2.15 configure.in --- configure.in13 Dec 2002 13:34:37 - 1.396.2.15 +++ configure.in19 Dec 2002 16:45:38 - @@ -1081,7 +1081,11 @@ INLINE_CFLAGS=$INLINE_CFLAGS $standard_ CXXFLAGS=$CXXFLAGS $standard_libtool_flag all_targets='$(OVERALL_TARGET) $(PHP_MODULES) $(PHP_CLI_TARGET)' -install_targets=install-sapi install-modules $PHP_INSTALL_CLI_TARGET $install_pear +install_targets=install-sapi install-modules $install_pear +if test $PHP_SAPI != cgi; then + install_targets=$PHP_INSTALL_CLI_TARGET $install_targets +fi + PHP_SUBST(all_targets) PHP_SUBST(install_targets) Index: sapi/cgi/config9.m4 === RCS file: /repository/php4/sapi/cgi/config9.m4,v retrieving revision 1.1.2.2 diff -u -3 -p -r1.1.2.2 config9.m4 --- sapi/cgi/config9.m4 9 Dec 2002 17:25:01 - 1.1.2.2 +++ sapi/cgi/config9.m4 19 Dec 2002 16:45:38 - @@ -88,10 +88,10 @@ if test $PHP_SAPI = default; then PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/cgi/Makefile.frag) case $host_alias in *cygwin* ) -SAPI_CGI_PATH=sapi/cgi/php-cgi.exe +SAPI_CGI_PATH=sapi/cgi/php.exe ;; * ) -SAPI_CGI_PATH=sapi/cgi/php-cgi +SAPI_CGI_PATH=sapi/cgi/php ;; esac PHP_SUBST(SAPI_CGI_PATH) @@ -147,7 +147,7 @@ if test $PHP_SAPI = default; then AC_DEFINE_UNQUOTED(PHP_FCGI_STATIC, $PHP_FCGI_STATIC, [ ]) AC_MSG_RESULT($PHP_ENABLE_FASTCGI) -INSTALL_IT=\$(INSTALL) -m 0755 \$(SAPI_CGI_PATH) \$(INSTALL_ROOT)\$(bindir)/php-cgi +INSTALL_IT=\$(INSTALL) -m 0755 \$(SAPI_CGI_PATH) \$(INSTALL_ROOT)\$(bindir)/php PHP_SELECT_SAPI(cgi, program, $PHP_FCGI_FILES cgi_main.c getopt.c, -I$PHP_FCGI_INCLUDE,'$(SAPI_CGI_PATH)') case $host_alias in -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
Edin Kadribasic wrote: If this is an acceptable compromise I volunteer to do the changes required. Sounds reasonable to me, +1. -- Sebastian Bergmann http://sebastian-bergmann.de/ http://phpOpenTracker.de/ Did I help you? Consider a gift: http://wishlist.sebastian-bergmann.de/ -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
On Thu, 19 Dec 2002, Edin Kadribasic wrote: Here is the patch against PHP_4_3 that implements the Unix side of changes. Go ahead and apply it. We obviously need RC4 now so commit your critical fixes to other areas ASAP, because I want to release the RC tonight or tomorrow. -Andrei http://www.gravitonic.com/ * Unix is user friendly, it is just chooses its users selectively. * -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
I'm 95% that PEAR works with cgi, but we should check with Stig to make sure it doesn't assume that cli will always be installed. Since pear and cli were both going live with 4.3 they may be coupled. -adam On Thu, 19 Dec 2002, Andrei Zmievski wrote: This gets my complete support. Let's go ahead with the changes. On Thu, 19 Dec 2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. -Andrei http://www.gravitonic.com/ * The great thing about standards is that there are so many to choose from. * -- [EMAIL PROTECTED] author of o'reilly's php cookbook avoid the holiday rush, buy your copy today! -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
Edin, Are you doing the changes on Win32 also _ If not I'll make the changes. - Frank Here is the patch against PHP_4_3 that implements the Unix side of changes. Edin On Thu, 19 Dec 2002, Andrei Zmievski wrote: This gets my complete support. Let's go ahead with the changes. On Thu, 19 Dec 2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. -Andrei http://www.gravitonic.com/ * The great thing about standards is that there are so many to choose from. * -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
Just testing the patch... will be commiting shortly. Thanks anyway, Edin - Original Message - From: Frank M. Kromann [EMAIL PROTECTED] To: Edin Kadribasic [EMAIL PROTECTED] Cc: [EMAIL PROTECTED]; Andrei Zmievski [EMAIL PROTECTED] Sent: Thursday, December 19, 2002 6:44 PM Subject: Re: [PHP-DEV] CGI and CLI (compromise proposal) Edin, Are you doing the changes on Win32 also _ If not I'll make the changes. - Frank Here is the patch against PHP_4_3 that implements the Unix side of changes. Edin On Thu, 19 Dec 2002, Andrei Zmievski wrote: This gets my complete support. Let's go ahead with the changes. On Thu, 19 Dec 2002, Edin Kadribasic wrote: After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. -Andrei http://www.gravitonic.com/ * The great thing about standards is that there are so many to choose from. * -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
After having consulted with Andrei, Derick and others on irc here is a proposal for a compromise: On Unix: 1. Both cgi and cli are built as 'php' in their respective sapi directories (pretty much as it is today except that cgi gets renamed back from php-cgi to just php). 2. Make install will *not* install cli if cgi build was selected (only cgi gets installed). 3. A new install target 'install-cli' is introduced so that make install-cli will overwrite whatever is in $(PREFIX)/bin/php. On Windows: 1. php.exe in the root of distribution is php cgi sapi. 2. New cli directory is included with php.exe (cli) in it. If this is an acceptable compromise I volunteer to do the changes required. This goes to show that good ideas usually win out and our system works. I proposed cli/php.exe on Windows back on December 9th, but there was a fear it would be a support nightmare. I take it those fears have subsided. I'm also glad that limb I went out on didn't break afterall. I'd say that I fully support this proposal but I'm not sure my opinion matters. ;) Leon -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DEV] CGI and CLI (compromise proposal)
At 17:53 19.12.2002, Andrei Zmievski wrote: On Thu, 19 Dec 2002, Edin Kadribasic wrote: Here is the patch against PHP_4_3 that implements the Unix side of changes. Go ahead and apply it. We obviously need RC4 now so commit your critical fixes to other areas ASAP, because I want to release the RC tonight or tomorrow. -Andrei http://www.gravitonic.com/ * Unix is user friendly, it is just chooses its users selectively. * -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php What about uniqid(): http://www.zend.com/zend/week/week116.php#Heading5 I would go for disabling when not available and sending an error when calling from cygwin without more entropy parameter set to true. The rest can be fixed for 4.3.1 as it seems to late for a fix in 4.3.0. marcus -- PHP Development Mailing List http://www.php.net/ To unsubscribe, visit: http://www.php.net/unsub.php