+fpm variant in php5 Portfile

Michael J. I. Jackson mjijackson at gmail.com
Thu Nov 19 10:02:01 PST 2009


Apparently MacPorts does distinguish between lib and build
dependencies (see http://guide.macports.org/#reference.dependencies).
So I modified the variant description to use depends_build instead of
depends_lib as you suggested. I also added the alternate download
location. I plan on adding a startupitem as well, as soon as I can get
the build to work.

As far as I can tell, MacPorts does install libevent to /opt/local/lib.

$ ls -al /opt/local/lib/libevent.a
-rw-r--r--  2 root  admin  157536 Nov 19 10:45 /opt/local/lib/libevent.a

However, simply passing --with-libevent=/opt/local to configure does
not help the build script find libevent.

While we're at it, a quick question about php-fpm: should
--disable-cgi be used in configure when patching with fpm? I'm not
sure exactly how the patch works, so I don't know if that's even
necessary. From what I read on the web site, it seems like php-fpm
will be generated and php-cgi will not.

Thanks for all your help on this.

Michael


On Thu, Nov 19, 2009 at 10:48 AM, dreamcat four <dreamcat4 at gmail.com> wrote:
> Hi,
> Well, libevent *should* be installed to /opt/local/lib.
> Maybe there's something different about libevent on macports, which
> might cause the libcheck to fail.
>
> janitors-Mac-mini:site-cookbooks id$ ls -lsa /opt/local/lib/libevent*
> 192 -rwxr-xr-x  2 root  admin   97316 19 Nov 17:43
> /opt/local/lib/libevent-1.4.2.1.3.dylib*
>  8 lrwxr-xr-x  1 root  admin      24 19 Nov 17:43
> /opt/local/lib/libevent-1.4.2.dylib@ -> libevent-1.4.2.1.3.dylib
> 240 -rw-r--r--  2 root  admin  120176 19 Nov 17:43 /opt/local/lib/libevent.a
>  8 lrwxr-xr-x  1 root  admin      24 19 Nov 17:43
> /opt/local/lib/libevent.dylib@ -> libevent-1.4.2.1.3.dylib
>  8 -rwxr-xr-x  2 root  admin     849 19 Nov 17:43 /opt/local/lib/libevent.la*
>  72 -rwxr-xr-x  2 root  admin   35752 19 Nov 17:43
> /opt/local/lib/libevent_core-1.4.2.1.3.dylib*
>  8 lrwxr-xr-x  1 root  admin      29 19 Nov 17:43
> /opt/local/lib/libevent_core-1.4.2.dylib@ ->
> libevent_core-1.4.2.1.3.dylib
>  80 -rw-r--r--  2 root  admin   39424 19 Nov 17:43
> /opt/local/lib/libevent_core.a
>  8 lrwxr-xr-x  1 root  admin      29 19 Nov 17:43
> /opt/local/lib/libevent_core.dylib@ -> libevent_core-1.4.2.1.3.dylib
>  8 -rwxr-xr-x  2 root  admin     884 19 Nov 17:43
> /opt/local/lib/libevent_core.la*
> 168 -rwxr-xr-x  2 root  admin   82064 19 Nov 17:43
> /opt/local/lib/libevent_extra-1.4.2.1.3.dylib*
>  8 lrwxr-xr-x  1 root  admin      30 19 Nov 17:43
> /opt/local/lib/libevent_extra-1.4.2.dylib@ ->
> libevent_extra-1.4.2.1.3.dylib
> 192 -rw-r--r--  2 root  admin   95736 19 Nov 17:43
> /opt/local/lib/libevent_extra.a
>  8 lrwxr-xr-x  1 root  admin      30 19 Nov 17:43
> /opt/local/lib/libevent_extra.dylib@ -> libevent_extra-1.4.2.1.3.dylib
>  8 -rwxr-xr-x  2 root  admin     891 19 Nov 17:43
> /opt/local/lib/libevent_extra.la*
>
> To get the version we normally load a small program in autoconf, which
> will link to libevent.so and query event_get_version() for a numeric
> string. It seems max os-x uses ".dylib" extension instead of ".so".
> But it should still work! `cc -levent`
>
> I'm utterly bamboozled, to be honest.
>
> On Thu, Nov 19, 2009 at 5:08 PM, dreamcat four <dreamcat4 at gmail.com> wrote:
>> Yeah you might want to check where libevent got installed.
>>>        --with-libevent=${prefix}
>>
>> It seems to look in /opt/local/lib for /opt/local/lib/libevent.a ?
>> Maybe macports differentiates between build dependancies and runtime
>> (executable) dependancies?
>> (libevent is a build-time dependancy). Use spotlight search
>> "libevent.a" to find it.
>>
>> Here are some other recommendations / tips:
>> You will probably also want to include an appropriate startupitem or
>> launchd plist. ie that runs 'php-fpm' and not 'php-cgi'. I don't if
>> the original portfile already handles that for you.
>>
>> Another thing: those files will change with each new patch release.
>> If you want to do checksums you must download from archives the fixed
>> revision eg:
>> http://launchpad.net/php-fpm/archive/0.6-103/+download/php-fpm-0.6-103~5.3.patch
>>
>> # so maybe
>> set fpm_revision 103
>> php-fpm-${fpm_patch_version}-{fpm_revision}~5.3.patch # ?
>>
>> You can specify alternate download location here:
>> http://php-fpm.org/downloads/archive/
>> in case launchpad is unavailable or blocked.
>>
>> On Thu, Nov 19, 2009 at 4:33 PM, Michael J. I. Jackson
>> <mjijackson at gmail.com> wrote:
>>> variant fpm description {Add FPM patch} {
>>>    depends_lib-append \
>>>        port:libevent
>>>    configure.args-append \
>>>        --with-fpm \
>>>        --with-libevent=${prefix}
>>>    set fpm_patch_version       0.6
>>>    set fpm_patch               php-fpm-${fpm_patch_version}~5.3.patch
>>>    patch_sites-append
>>> http://launchpad.net/php-fpm/master/${fpm_patch_version}/+download/
>>>    patchfiles-append           ${fpm_patch}
>>>    checksums-append \
>>>        ${fpm_patch} \
>>>            md5     361c934eec184a398db6c974994a8870
>>> }
>>>
>>>
>>> However, when I try and use the +fpm variant, the compile fails
>>> complaining that libevent can't be found. Here's the output I get:
>>>
>>>
>>> $ sudo port install php5 +fpm
>>> Configuring fpm
>>> checking dynamic linker characteristics... darwin10.2.0 dyld
>>> checking for libevent >= 1.4.11... no
>>> configure: warning: libevent.a could not be found. We looked in:
>>> configure: warning: " /lib/i686-apple-darwin10/4.2.1/x86_64/
>>> /lib/x86_64/ /usr/lib/i686-apple-darwin10/4.2.1/x86_64/
>>> /usr/lib/x86_64/ /usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/lib/i686-apple-darwin10/4.2.1/x86_64/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/lib/x86_64/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1/x86_64/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../x86_64/
>>> /lib/i686-apple-darwin10/4.2.1/ /lib/
>>> /usr/lib/i686-apple-darwin10/4.2.1/ /usr/lib/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/lib/i686-apple-darwin10/4.2.1/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/lib/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1/
>>> /usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../  /lib /usr/lib
>>> /usr/local/lib"
>>> configure: warning: Install libevent system-wide (make install)
>>> configure: warning: Syntax:
>>> configure: warning: --with-libevent=yes|path - link to libevent.a
>>> (static library)
>>> configure: warning: --with-libevent=shared,path - link to libevent.so
>>> (shared library)
>>> configure: error: libevent.a could not be found. Stop.
>>
>> dreamcat4
>> dreamcat4 at gmail.com
>>
>


More information about the macports-users mailing list