Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Sep 2011 09:27:19 +0200
From:      olli hauer <ohauer@gmx.de>
To:        Jeremy Chadwick <freebsd@jdc.parodius.com>
Cc:        n dhert <ndhertbsd@gmail.com>, apache@FreeBSD.org
Subject:   Re: upgrade apache-2.2.20 -> 2.2.21
Message-ID:  <4E7991D7.10004@gmx.de>
In-Reply-To: <20110921054154.GA30759@icarus.home.lan>
References:  <CAEFCw4tB8Db1ab=Sj20fktVxqsUjBzMt2dw9jxqYtKoiOgXKgQ@mail.gmail.com> <4E78EF21.3010002@FreeBSD.org> <CAEFCw4tD=8v8qyBiYs49xEFARART_WqVDPPQsj4vH9LnXnTESw@mail.gmail.com> <4E7974C5.20004@FreeBSD.org> <20110921054154.GA30759@icarus.home.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2011-09-21 07:41, Jeremy Chadwick wrote:
> On Wed, Sep 21, 2011 at 07:23:17AM +0200, Olli Hauer wrote:
>> On 2011-09-21 06:43, n dhert wrote:
>>> Hi,
>>>
>>> this is the output:
>>>
>>> ]$  ldd /usr/local/libexec/apache22/libphp5.so
>>> /usr/local/libexec/apache22/libphp5.so:
>>>         libcrypt.so.5 => /lib/libcrypt.so.5 (0x800889000)
>>>         librt.so.1 => /usr/lib/librt.so.1 (0x800fcd000)
>>>         libm.so.5 => /lib/libm.so.5 (0x8010d2000)
>>>         libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x8011f2000)
>>>         libz.so.5 => /lib/libz.so.5 (0x80143e000)
>>>         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x801553000)
>>>         libc.so.7 => /lib/libc.so.7 (0x800647000)
>>> $ ldd /usr/local/bin/php*
>>> /usr/local/bin/php:
>>>         libcrypt.so.5 => /lib/libcrypt.so.5 (0x800855000)
>>>         librt.so.1 => /usr/lib/librt.so.1 (0x80096e000)
>>>         libm.so.5 => /lib/libm.so.5 (0x800a73000)
>>>         libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x800b93000)
>>>         libz.so.5 => /lib/libz.so.5 (0x800ddf000)
>>>         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x800ef4000)
>>>         libc.so.7 => /lib/libc.so.7 (0x8010ee000)
>>> /usr/local/bin/php-cgi:
>>>         libcrypt.so.5 => /lib/libcrypt.so.5 (0x800858000)
>>>         librt.so.1 => /usr/lib/librt.so.1 (0x800971000)
>>>         libm.so.5 => /lib/libm.so.5 (0x800a76000)
>>>         libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x800b96000)
>>>         libz.so.5 => /lib/libz.so.5 (0x800de2000)
>>>         libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x800ef7000)
>>>         libc.so.7 => /lib/libc.so.7 (0x8010f1000)
>>> ldd: /usr/local/bin/php-config: not a dynamic executable
>>> ldd: /usr/local/bin/phpize: not a dynamic executable
>>> I guess this is normal?
>>>
>>
>> I'm missing pcre.
>>
>> If this is lang/php5, then pcre is a default LIB dependency and
>> the output should have a line like this.
>>
>>  libpcre.so.0 => /usr/local/lib/libpcre.so.0
> 
> Incorrect.
> 
> For PHP, PCRE is included within the PHP core **STATICALLY** (but keep
> reading).  This is INTENTIONAL.  You will not see it in ldd output.  You
> can verify this using "objdump -x /usr/local/bin/php | grep -i pcre" if
> you think I'm mouth and trousers.
> 
> For Apache, PCRE is linked DYNAMICALLY within httpd itself.
> Verification:
> 
> # ldd /usr/local/sbin/httpd | grep -i pcre
>         libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0xa07ba000)
> 


Hm, thats strange, since in lang/php5 we can find the following lines

LIB_DEPENDS=    pcre.0:${PORTSDIR}/devel/pcre

CONFIGURE_ARGS= \
...
                --with-pcre-regex=${LOCALBASE} \
...

and on my machine the output looks like this.
/usr/local/bin/php:
        libcrypt.so.4 => /lib/libcrypt.so.4 (0x282fc000)
        libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x28315000)
        libm.so.5 => /lib/libm.so.5 (0x28353000)
        libxml2.so.5 => /usr/local/lib/libxml2.so.5 (0x28369000)
        libz.so.4 => /lib/libz.so.4 (0x28493000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x284a5000)
        libc.so.7 => /lib/libc.so.7 (0x2859b000)




>> If this is php52 make sure to install devel/php52-pcre.
> 
> Mostly incorrect -- is not needed for PCRE functionality within PHP.
> 
> devel/php52-pcre is a "stub" port for lang/php52.
> lang/php52/Makefile.ext has the following code in it:
> 
> 
> .if ${PHP_MODNAME} == "pcre"
> OPTIONS=        BUNDLED_PCRE "Select if you use apache 2.0.x" off
> .endif
> 
> .if ${PHP_MODNAME} == "pcre"
> .       if defined(WITH_BUNDLED_PCRE)
> CONFIGURE_ARGS+=--with-pcre-regex=yes
> 
> PHP_HEADER_DIRS=pcrelib
> .       else
> LIB_DEPENDS+=   pcre.0:${PORTSDIR}/devel/pcre
> 
> CONFIGURE_ARGS+=--with-pcre-regex=${LOCALBASE}
> .       endif
> 
> 
> Do you understand this code?  If you need it explained let us know,
> otherwise the answer should then become obvious.

Jap, haven't read the full lang/php52 port (I confess I've done only a grep)


> I'm of the opinion lang/php52-pcre and the above shim for supporting
> a library-based PCRE should be removed.  PHP has gone to *extreme*
> lengths to force people to use "bundled" versions of software to
> guarantee 100% compatibility with PHP.  Meaning: link PHP to a pcre
> library that's in /usr/local/lib (and thus off the pcre port itself) and
> you might experience crashing problems or other anomalies.  That's why
> they advocate use of bundled crap now.
> 
>> To bring in some more light it will be helpfull know your php version
>> and have the output of the command.
>>
>> $ pkg_info -qoax php pcre
> 
> I have not seen the OP's post yet (greylisting and other crap on the
> mailing list servers are stalling it), so I do not know what the true
> discussion of the problem is.
> 

The OP mailed me directly since he complains drupal is broken since
the last apache22 update. I guess the OP is not subscribed to apache@
so I will include his initial request.

Since the only place where I use php is the tinderbox webfrontend
I added apache@ to CC:

Original request:

> Hi,
> 
> Monday I did a portupgrade
> apache-2.2.20                       <   needs updating (index has 2.2.21)
> There was no problem during the update (and nothing special mentionned in
> /usr/ports/UPDATING)
> 
> Today Tuesday afternoon I did a
> # apachectl graceful
> Since them, several webpages give problems
> this error comes up:
> warning: preg_match()
> 
> [function.preg-match<http://win.ua.ac.be/function.preg-match>]:
> 
> 
> - Tekst uit oorspronkelijke bericht niet weergeven -
> 
> Compilation failed: internal error: previously-checked referenced subpattern
> not found at offset 389 in
> /usr/local/www/apache22/data/drupal-6.22/includes/database.inc on line 347.
> 
> nothing was changed to the website(s).
> In the morning today everything was still OK. The # apachectl grafecul must
> have loaded the new httpd (apache2.2.21) and now gives these errors.
> 
> What can be the reason and how to solve?
> 






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E7991D7.10004>