Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Sep 2011 22:41:54 -0700
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Olli Hauer <ohauer@FreeBSD.org>
Cc:        n dhert <ndhertbsd@gmail.com>, apache@FreeBSD.org
Subject:   Re: upgrade apache-2.2.20 -> 2.2.21
Message-ID:  <20110921054154.GA30759@icarus.home.lan>
In-Reply-To: <4E7974C5.20004@FreeBSD.org>
References:  <CAEFCw4tB8Db1ab=Sj20fktVxqsUjBzMt2dw9jxqYtKoiOgXKgQ@mail.gmail.com> <4E78EF21.3010002@FreeBSD.org> <CAEFCw4tD=8v8qyBiYs49xEFARART_WqVDPPQsj4vH9LnXnTESw@mail.gmail.com> <4E7974C5.20004@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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)

> 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.

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.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                   Mountain View, CA, US |
| Making life hard for others since 1977.               PGP 4BD6C0CB |




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