[: -le: argument expected

Tom Evans tevans.uk at googlemail.com
Fri Feb 1 03:31:06 PST 2008


On Thu, 2008-01-31 at 18:41 -0800, Chris H. wrote:
> 
> The cause is in the file: lang/php5/files/patch-Zend_zend_list.c
> 
> It accounts for all /3/ errors emitted during the initial portion
> of the make process. The lines are as follows:
> 
> --- Zend/zend_list.c.orig	2007-01-01 10:35:46.000000000 +0100
> +++ Zend/zend_list.c	2008-01-29 11:05:14.000000000 +0100
> @@ -48,7 +48,7 @@
> 	return index;
> }
> 
> -ZEND_API int _zend_list_delete(int id TSRMLS_DC)
> +ZEND_API int _zend_list_delete(ulong id TSRMLS_DC)
> {
> *** 	zend_rsrc_list_entry *le;
> 
> @@ -65,7 +65,7 @@
> }
> 
> 
> -ZEND_API void *_zend_list_find(int id, int *type TSRMLS_DC)
> +ZEND_API void *_zend_list_find(ulong id, int *type TSRMLS_DC)
> {
> *** 	zend_rsrc_list_entry *le;
> 
> @@ -78,7 +78,7 @@
> 	}
> }
> 
> -ZEND_API int _zend_list_addref(int id TSRMLS_DC)
> +ZEND_API int _zend_list_addref(ulong id TSRMLS_DC)
> {
> *** 	zend_rsrc_list_entry *le;
> 
> (highlighted with three asterisks for clarity).
> 
> While it's nice that I found them. I'm not sure what to do to
> make them correct. Any thoughts? Should I simply send-pr -
> php5-apache-module build failure (lang/php5/files/patch-Zend_zend_list.c)?

I doubt that patch is the issue. The error comes from a malformed call
to /bin/test (or /bin/[ ). The -le test tests two numbers to see if the
first is less than the second. 
With correct usage:
    /bin/[ 5 -le 10 ] && echo "first is less"
    first is less
With incorrect usage
    /bin/[ 5 -le ] && echo "first is less"
    [: -le: argument expected

The patch you have shown changes the id of a zend_rsrc_list_entry to be
an unsigned long rather than an int, the fact that the variable name
(which does not get updated, modified or altered) is called 'le' for
'list element' is neither here nor there.

I would thoroughly recommend using apache 2.2 with the prefork MPM if
you wish to run PHP. Your arguments for choosing 2.0 over 2.2 are
spurious, as there are virtually no difference in conf directives,
server layout or security, where as apache 2.2 is well maintained and
secure. Apache 2.2 has many notable improvements, especially in
performance and proxying. See [1].

The real hint is on apache.org [2] - 'We consider Apache 2.2 to be the
best available version at the time of this release. We offer Apache
2.0.63 as the best legacy version of Apache 2.0 available. Users should
first consider upgrading to the current release of Apache 2.2 instead.'

On the other hand, your server, your rules. :)

Tom

[1] http://httpd.apache.org/docs/2.2/new_features_2_2.html
[2] http://www.apache.org/dist/httpd/Announcement2.0.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20080201/0146744c/attachment.pgp


More information about the freebsd-ports mailing list