Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 May 2013 19:38:52 +0100
From:      Chris Rees <crees@FreeBSD.org>
To:        Scot Hetzel <swhetzel@gmail.com>
Cc:        "pgsql@freebsd.org" <pgsql@freebsd.org>, FreeBSD Ports <freebsd-ports@freebsd.org>, Palle Girgensohn <girgen@pingpong.net>, Florent Peterschmitt <florent@peterschmitt.fr>
Subject:   Re: poudriere - postgresql90-client, LDAP, requires ldap.h
Message-ID:  <CADLo83-DDBedD2wpdHZVKP0oqMsW2HynAr36a8LxNqRXKR95wg@mail.gmail.com>
In-Reply-To: <CADLo83-_s-L=r%2BSHPGzNkbEWOeEEYsvRg4JrZVVq2gp-w1JjUw@mail.gmail.com>
References:  <517C1DCE.2050603@peterschmitt.fr> <517C3F8F.2080602@FreeBSD.org> <517C43E6.4080907@peterschmitt.fr> <CACdU%2Bf_to4bJa0KUe7LUv-%2Bha9CFuqtFFf_97qydORx42yvOSg@mail.gmail.com> <CADLo83-3VswgRKjwWWst-qoToKsE=SGkyvrRkZphN0Yn7BZHww@mail.gmail.com> <B35C6528-05E8-4CA2-ADA0-B209FF431CE5@pingpong.net> <CACdU%2Bf-q%2BzssqvExvfp3Gg%2B224UJOF2fKsW5fdtyVKYPyOLrGg@mail.gmail.com> <CADLo839_c8t0B6Y-xxSaG-_Ffxjy4thWEG6-RZKp11PeewJ0RA@mail.gmail.com> <CACdU%2Bf9hc5ZabW1xjBqVDVKL8V3FWmeur-QVZUCi6%2BFap-WDeQ@mail.gmail.com> <CADLo83-_s-L=r%2BSHPGzNkbEWOeEEYsvRg4JrZVVq2gp-w1JjUw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 28 April 2013 15:37, Chris Rees <crees@freebsd.org> wrote:
> On 28 April 2013 15:36, Scot Hetzel <swhetzel@gmail.com> wrote:
>> On Sun, Apr 28, 2013 at 9:16 AM, Chris Rees <crees@freebsd.org> wrote:
>>>
>>> On 28 April 2013 15:07, Scot Hetzel <swhetzel@gmail.com> wrote:
>>> > On Sun, Apr 28, 2013 at 6:25 AM, Palle Girgensohn <girgen@pingpong.ne=
t>
>>> > wrote:
>>> >> 28 apr 2013 kl. 10:37 skrev Chris Rees <crees@FreeBSD.org>:
>>> >>
>>> >> > Please CC maintainers when you're asking about specific ports!
>>> >> > On 28 April 2013 07:05, Scot Hetzel <swhetzel@gmail.com> wrote:
>>> >> >> On Sat, Apr 27, 2013 at 4:32 PM, Florent Peterschmitt <
>>> >> >> florent@peterschmitt.fr> wrote:
>>> >> >>
>>> >> >>> Le 27/04/2013 23:13, Matthew Seaman a =E9crit :
>>> >> >>>> On 27/04/2013 19:49, Florent Peterschmitt wrote:
>>> >> >>>>> Hello,
>>> >> >>>>>
>>> >> >>>>> I use the latest poudriere-devel to make my own pkg repository=
,
>>> >> >>>>> and
>>> >> >>>>> would like to build postgresql with LDAP support.
>>> >> >>>>>
>>> >> >>>>> Since it's in a virgin jail, and because the log said =AB hey =
I
>>> >> >>>>> need
>>> >> >>>>> ldap.h =BB, I understand that openldap should be installed but=
, is
>>> >> >>>>> it
>>> >> >>>>> the
>>> >> >>>>> good way to do ? For each package requirement, it is needed to
>>> >> >>>>> install
>>> >> >>>>> it by hand ? (or with previously built packages :) )
>>> >> >>>>>
>>> >> >>>>
>>> >> >>>> You should use the 'poudriere options' command to enable LDAP
>>> >> >>>> support
>>> >> >>>> in
>>> >> >>>> the postgresql server.
>>> >> >>>
>>> >> >>> Yep, I did that. Sorry, I missed to say I already have done this=
.
>>> >> >>> The
>>> >> >>> problem is that when building the package, the configure step fa=
il
>>> >> >>> saying ldap.h is missing.
>>> >> >>>
>>> >> >>>> Now, when you use poudriere to build the postgresql package, it
>>> >> >>>> will
>>> >> >>>> have LDAP client added as a requirement -- so poudriere will al=
so
>>> >> >>>> build
>>> >> >>>> you an LDAP package -- and when you go to install postgresql, l=
dap
>>> >> >>>> will
>>> >> >>>> be installed as well as a dependency.
>>> >> >>>>
>>> >> >>>>      Cheers,
>>> >> >>>>
>>> >> >>>>      Matthew
>>> >> >>>>
>>> >> >>> Yep. But how does work poudriere ? Because I have built postfix =
and
>>> >> >>> dovecot2 with LDAP support and there was no problem. I think it'=
s a
>>> >> >>> problem from the port itself and not from poudriere, I should tr=
y
>>> >> >>> in a
>>> >> >>> new system (perhaps, a jail, without poudriere).
>>> >> >>>
>>> >> >>
>>> >> >> The problem seems to be caused by the following from
>>> >> >> databases/postgresql91-server/Makefile:
>>> >> >>
>>> >> >> 66     .if !defined(CLIENT_ONLY) && !defined(SLAVE_ONLY)
>>> >> >> 67     SERVER_ONLY=3D yes
>>> >> >> 68     USE_RC_SUBR=3D postgresql
>>> >> >> 69     USE_PGSQL=3D yes
>>> >> >> 70     WANT_PGSQL_VER=3D
>>> >> >> ${DISTVERSION:C/([0-9][0-9]*)\.([0-9][0-9]*).*/\1\2/g}
>>> >> >> 71     USERS=3D ${PG_USER}
>>> >> >> 72     GROUPS=3D ${PG_GROUP}
>>> >> >> 73     SUB_FILES+=3D 502.pgsql
>>> >> >> 74     .endif
>>> >> >>
>>> >> >> 81     .if !defined(SLAVE_ONLY)
>>> >> >> 82     OPTIONS_DEFINE+=3D NLS DTRACE PAM LDAP GSSAPI OPTIMIZED_CF=
LAGS
>>> >> >> XML
>>> >> >> TZDATA DEBUG KRB5
>>> >> >> 83     OPTIONS_SINGLE=3D KRB5
>>> >> >> 84     OPTIONS_SINGLE_KRB5=3D MIT_KRB5 HEIMDAL_KRB5
>>> >> >> :
>>> >> >> 112     OPTIONS_DEFAULT=3D NLS XML TZDATA INTDATE SSL
>>> >> >> 113     .endif # !SLAVE_ONLY
>>> >> >>
>>> >> >> 159     . if ${PORT_OPTIONS:MLDAP}
>>> >> >> 160     CONFIGURE_ARGS+=3D--with-ldap
>>> >> >> 161     . if defined (SERVER_ONLY)
>>> >> >> 162     USE_OPENLDAP=3D yes
>>> >> >> 163     . endif
>>> >> >> 164     . endif
>>> >> >>
>>> >> >> NOTE: postgresql90-client/Makefile includes
>>> >> >> postgresql90-server/Makefile
>>> >> >> which then includes postgresql91-server/Makefile
>>> >> >>
>>> >> >> Unfortunately, you can't set USE_OPENLDAP as a build depends.  Tr=
y
>>> >> >> commenting out lines 161 and 163 in the
>>> >> >> postgresql91-server/Makefile.
>>> >> >> This
>>> >> >> will add OpenLDAP as a LIB_DEPENDS to the postgresql*-client port=
s.
>>> >> >>
>>> >> >
>>> >> > Actually,
>>> >> >
>>> >> > [crees@medusa]~% psql
>>> >> > Shared object "libldap_r-2.4.so.8" not found, required by
>>> >> > "libpq.so.5"
>>> >> > [crees@medusa]~%
>>> >> >
>>> >> > LDAP is indeed a LIB_DEPENDS.
>>> >> >
>>> >> > Palle, Jason, if you don't object I'm going to add || defined
>>> >> > (CLIENT_ONLY) to line 161 above.
>>> >> >
>>> >> > Chris
>>> >>
>>> >> It seems strange to me that psql should require libldap? That seems
>>> >> like a
>>> >> bug, or am I missing something? Why would the client side of the
>>> >> connection
>>> >> need to use ldap?
>>> >
>>> >
>>> > Since the postgresql*-client ports install the below files:
>>> >
>>> > bin/clusterdb
>>> > bin/createdb
>>> > bin/createlang
>>> > bin/createuser
>>> > bin/dropdb
>>> > bin/droplang
>>> > bin/dropuser
>>> > bin/ecpg
>>> > bin/pg_config
>>> > bin/pg_dump
>>> > bin/pg_dumpall
>>> > bin/pg_restore
>>> > bin/psql
>>> > bin/reindexdb
>>> > bin/vacuumdb
>>> > lib/libecpg.so.6
>>> > lib/libecpg_compat.so.3
>>> > lib/libpgtypes.so.3
>>> > lib/libpq.so.5
>>> >
>>> > We'll need someone to check with ldd to see if they require any of th=
e
>>> > ldap
>>> > libraries after commenting out lines 161 and 163. If they don't requi=
re
>>> > LDAP, then we just need to remove LDAP from line 82, and add the belo=
w
>>> > between line 82 and 83:
>>> >
>>> > .if defined (SERVER_ONLY)
>>> > OPTIONS_DEFINE+=3D LDAP
>>> > .endif
>>> >
>>> > Then move line 161 to before line 159.
>>>
>>> Ohononono, you can't just set different OPTIONS for each port, that
>>> makes them stomp over the saved ones for each variant-- I got bitten
>>> by that before.  The simpler solution would be to ignore the setting
>>> for LDAP for anything !server.
>>>
>> It shouldn't be a problem unless both the postgresql*-server and
>> postgresql*-client are using the same OPTIONSFILE.
>>
>> What does make -V OPTIONSFILE display in databases/postgresql*-client an=
d
>> databases/postgresql*-server?
>
> It does use the same OPTIONSFILE.

This was fixed in r317540.  Thanks for the comments and review.

Chris



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