Issue 5184 - pkg-config file for libraries
Summary: pkg-config file for libraries
Status: VERIFIED FIXED
Alias: None
Product: OpenLDAP
Classification: Unclassified
Component: build (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-10-12 15:04 UTC by mccann@jhu.edu
Modified: 2014-08-01 21:05 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description mccann@jhu.edu 2007-10-12 15:04:57 UTC
Full_Name: William Jon McCann
Version: 2.3.34
OS: 
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (128.220.146.19)


It would be really helpful for openldap to ship a pkg-config (.pc) file for
libldap.

http://en.wikipedia.org/wiki/Pkg-config

Comment 1 ando@openldap.org 2007-10-13 08:49:37 UTC
moved from Incoming to Build
Comment 2 ando@openldap.org 2007-10-13 08:50:44 UTC
mccann@jhu.edu wrote:
> Full_Name: William Jon McCann Version: 2.3.34 OS: URL:
> ftp://ftp.openldap.org/incoming/ Submission from: (NULL)
> (128.220.146.19)
> 
> 
> It would be really helpful for openldap to ship a pkg-config (.pc)
> file for libldap.
> 
> http://en.wikipedia.org/wiki/Pkg-config

Quoting from the above link:

> When a library is installed (say from an RPM, deb or other binary
> packaging system)

OpenLDAP only distributes source code

> If one installs from source, often there will be no .pc file
> generated, and one may need to be manually written to reflect the
> install.

No comment.

Having noted this, I think generating a .pc file from "make install"
would probably do no harm and probably bring some benefit to people that
want to use pkg-config to configure software dependent on OpenLDAP.

But I guess most packagers and distributors would still either provide
their alternate means to configure packages, or provide specific .pc
files, thus possibly breaking configurations based on OpenLDAP's .pc file.

p.



Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
---------------------------------------
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Email:   pierangelo.masarati@sys-net.it
---------------------------------------


Comment 3 Gavin Henry 2007-10-13 18:50:43 UTC
ando@sys-net.it wrote:
> mccann@jhu.edu wrote:
>> Full_Name: William Jon McCann Version: 2.3.34 OS: URL:
>> ftp://ftp.openldap.org/incoming/ Submission from: (NULL)
>> (128.220.146.19)
>>
>>
>> It would be really helpful for openldap to ship a pkg-config (.pc)
>> file for libldap.
>>
>> http://en.wikipedia.org/wiki/Pkg-config
> 
> Quoting from the above link:
> 
>> When a library is installed (say from an RPM, deb or other binary
>> packaging system)
> 
> OpenLDAP only distributes source code
> 
>> If one installs from source, often there will be no .pc file
>> generated, and one may need to be manually written to reflect the
>> install.
> 
> No comment.
> 
> Having noted this, I think generating a .pc file from "make install"
> would probably do no harm and probably bring some benefit to people that
> want to use pkg-config to configure software dependent on OpenLDAP.
> 
> But I guess most packagers and distributors would still either provide
> their alternate means to configure packages, or provide specific .pc
> files, thus possibly breaking configurations based on OpenLDAP's .pc file.
> 

And most are still far behind and "do their own thing" anyway. Ours 
would get ignored either way.


-- 
Kind Regards,

Gavin Henry.
OpenLDAP Engineering Team.

E ghenry@OpenLDAP.org

Community developed LDAP software.

http://www.openldap.org/project/

Comment 4 Howard Chu 2007-11-01 14:19:47 UTC
changed notes
changed state Open to Closed
Comment 5 Howard Chu 2009-02-17 07:03:30 UTC
moved from Build to Archive.Build
Comment 6 bj@sernet.de 2014-06-17 12:35:35 UTC
for Samba we really have some pain to get the right compile and linker flags
for different architectures, especially there, where OpenLDAP is not a
first-class citizen like on AIX.

mozldap offers pkg-config files which we will start to use in Samba soon. It
would be great if OpenLDAP would offer a pkg-config file also to not have to
make wild guesses which linker/compile flags and which paths to use.

Comment 7 Howard Chu 2014-06-17 14:04:09 UTC
bj@sernet.de wrote:
> for Samba we really have some pain to get the right compile and linker flags
> for different architectures, especially there, where OpenLDAP is not a
> first-class citizen like on AIX.
>
> mozldap offers pkg-config files which we will start to use in Samba soon. It
> would be great if OpenLDAP would offer a pkg-config file also to not have to
> make wild guesses which linker/compile flags and which paths to use.

I don't see the problem. There are no special compiler or linker flags for 
applications to use libldap.

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

Comment 8 bj@sernet.de 2014-06-17 19:10:01 UTC
On 2014-06-17 at 07:04 -0700 Howard Chu sent off:
> bj@sernet.de wrote:
> >for Samba we really have some pain to get the right compile and linker flags
> >for different architectures, especially there, where OpenLDAP is not a
> >first-class citizen like on AIX.
> >
> >mozldap offers pkg-config files which we will start to use in Samba soon. It
> >would be great if OpenLDAP would offer a pkg-config file also to not have to
> >make wild guesses which linker/compile flags and which paths to use.
> 
> I don't see the problem. There are no special compiler or linker
> flags for applications to use libldap.

if you build on a system where you don't know what LDAP library you have you
exactly have to test for the existing header files, you have to test for the
libs that you find in the library search paths (and maybe also in
library paths that are not in the search path), you have to look for
existing symbols to know which exact flavor of the lib you have, you
have to use the right include paths. All those things that you have to
look up, have to fit together also. If you are LUCKY they will fit together on
an AIX or on a Solaris box. If not, you use the right header files but the
wrong linker flags, there are many things to screw up. It is a huge bunch of
work to get all this information pieces together and puzzle them right for your
build system. In Samba we had have a hard time to do that in the past and with
the new waf base build system we have to fix a lot that was working before. The
LDAP libaries (also OpenLDAP on Unix systems...) have always been a major pain
for the build system and a pkg-config file, which we can just use to get the
right compiler and linker flags would be a great help for that and it
would make the build agains openldap much more predictable and stable.

Comment 9 Howard Chu 2014-06-17 19:36:53 UTC
Björn JACKE wrote:
> On 2014-06-17 at 07:04 -0700 Howard Chu sent off:
>> bj@sernet.de wrote:
>>> for Samba we really have some pain to get the right compile and linker flags
>>> for different architectures, especially there, where OpenLDAP is not a
>>> first-class citizen like on AIX.
>>>
>>> mozldap offers pkg-config files which we will start to use in Samba soon. It
>>> would be great if OpenLDAP would offer a pkg-config file also to not have to
>>> make wild guesses which linker/compile flags and which paths to use.
>>
>> I don't see the problem. There are no special compiler or linker
>> flags for applications to use libldap.
>
> if you build on a system where you don't know what LDAP library you have you
> exactly have to test for the existing header files, you have to test for the
> libs that you find in the library search paths (and maybe also in
> library paths that are not in the search path), you have to look for
> existing symbols to know which exact flavor of the lib you have, you
> have to use the right include paths. All those things that you have to
> look up, have to fit together also. If you are LUCKY they will fit together on
> an AIX or on a Solaris box. If not, you use the right header files but the
> wrong linker flags, there are many things to screw up. It is a huge bunch of
> work to get all this information pieces together and puzzle them right for your
> build system. In Samba we had have a hard time to do that in the past and with
> the new waf base build system we have to fix a lot that was working before. The
> LDAP libaries (also OpenLDAP on Unix systems...) have always been a major pain
> for the build system and a pkg-config file, which we can just use to get the
> right compiler and linker flags would be a great help for that and it
> would make the build agains openldap much more predictable and stable.
>
If you're depending on some unknown OpenLDAP install to provide all of the 
features that your Samba package needs, you need more than luck. You need to 
know that it was built against a compatible Kerberos library, a sane Cyrus 
SASL version, and a working crypto library. The only way to know that is to 
build it yourself against valid packages, in which case, you don't need to go 
grubbing through the system looking for them.

If you're depending on some OpenLDAP that was packaged by someone else, then 
you should be asking them to provide a pkg-config file for their package. 
Installation issues are strictly not our concern, we distribute source code. 
That should have already been clear from 
http://www.openldap.org/its/index.cgi/Archive.Build?id=5184 Followup 1.

Even if we provided a .pc file, you still have to guess where *that* got 
installed - was it in /usr, or in /usr/local, or somewhere else? I've 
certainly never seen pkg-config as a standard component of AIX or Solaris.

Is pkg-config even supported on AIX?

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

Comment 10 bj@sernet.de 2014-06-17 20:46:27 UTC
On 2014-06-17 at 12:36 -0700 Howard Chu sent off:
> If you're depending on some unknown OpenLDAP install to provide all
> of the features that your Samba package needs, you need more than
> luck. You need to know that it was built against a compatible
> Kerberos library, a sane Cyrus SASL version, and a working crypto
> library. The only way to know that is to build it yourself against
> valid packages, in which case, you don't need to go grubbing through
> the system looking for them.

many people are happy with their own installation of openldap or whatever
package. Also I know what we have to check for to have a sufficient ldap
implementation for our Samba builds, believe me :-)


> If you're depending on some OpenLDAP that was packaged by someone
> else, then you should be asking them to provide a pkg-config file
> for their package. Installation issues are strictly not our concern,
> we distribute source code. That should have already been clear from
> http://www.openldap.org/its/index.cgi/Archive.Build?id=5184 Followup

okay, I didn't explicitly write that I disagree. I disgree on that statement by
the way :-)

usually package maintainers don't write .pc files they install the .pc files
that the source code ships. We also ship .pc files for all of our libraries we
ship in Samba. "make install" puts in the right content.


> 1.
> 
> Even if we provided a .pc file, you still have to guess where *that*
> got installed - was it in /usr, or in /usr/local, or somewhere else?

to get the location of the pkg-config file is really the smallest pain.

> I've certainly never seen pkg-config as a standard component of AIX
> or Solaris.

What difference does it make here if pkg-config is a *standard* component or if it
has to be separately installed?

> 
> Is pkg-config even supported on AIX?

it is, google "pkg-config aix" shows you.

To have a pkg-config files is something openldap *benefits* from because it
ensures that people can build agains openldap without big trouble. I'm not sure
if you really see how much benefit openldap gets out of those trivial to
generate .pc files actually. If people are able to build against
mozldap because just because there is a simple .pc file which sets
the compile and link flags right, then mozldap might become their prefered
library in the future. It's up to you if you want to make it easy or hard for
people to use your software.

Cheers
Björn

Comment 11 OpenLDAP project 2014-08-01 21:05:13 UTC
not ours