+fpm variant in php5 Portfile

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


By the way, here's the current variant description I'm using in the Portfile:

variant fpm conflicts no_web fastcgi description {Add PHP-FPM web
server binary} {
    depends_build-append \
        port:libevent
    configure.args-append \
        --with-fpm \
        --with-libevent=${prefix}
    set fpm_patch_version       0.6
    set fpm_revision            103
    set fpm_patch
php-fpm-${fpm_patch_version}-${fpm_revision}~5.3.patch
    patch_sites-append \
        http://launchpad.net/php-fpm/archive/${fpm_patch_version}-${fpm_revision}/+download/
\
        http://php-fpm.org/downloads/archive/
    patchfiles-append           ${fpm_patch}
    checksums-append \
        ${fpm_patch} \
            md5     361c934eec184a398db6c974994a8870
}

On Thu, Nov 19, 2009 at 11:02 AM, Michael J. I. Jackson
<mjijackson at gmail.com> wrote:
> 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