Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Nov 2013 21:22:52 +0100
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        Kevin Oberman <rkoberman@gmail.com>
Cc:        sbz@freebsd.org, FreeBSD Ports ML <freebsd-ports@freebsd.org>
Subject:   Re: Problems dealing with ports use of pkgconf
Message-ID:  <20131102212252.611e4abc@kalimero.tijl.coosemans.org>
In-Reply-To: <CAN6yY1t6yO-Cwk9tNLqU7Emcin%2BwDODtDgBRPJofGTdfbe3n4g@mail.gmail.com>
References:  <CAN6yY1t0za5GTchFy%2B%2BtNjMmnzF4edBYUFoBmT1kmi4m1=aKFg@mail.gmail.com> <20131101095757.3f1a3913@kalimero.tijl.coosemans.org> <CAN6yY1t6yO-Cwk9tNLqU7Emcin%2BwDODtDgBRPJofGTdfbe3n4g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2 Nov 2013 12:05:12 -0700 Kevin Oberman wrote:
> On Fri, Nov 1, 2013 at 1:57 AM, Tijl Coosemans <tijl@freebsd.org> wrote:
>> On Wed, 30 Oct 2013 11:46:30 -0700 Kevin Oberman wrote:
>>> I have run into a dilemma in regards to the use of pkgconf in ports. Here
>>> is what has bitten me:
>>> To allow sftp to get files, multimedia/vlc uses libssh2. libssh2, in
>>> turn, uses openssl or the GNU crypto library.
>>> If i have installed securith/openssl, all is well, but I don't want of
>>> need the security/openssl port.
>>> If I have not installed openssl from ports, vlc fails! Here is why:
>>>
>>> libssh2 creates a .pc file to allow other packages to know whether it
>>> uses openssl or libgcrypt. this is a nice thing, but it makes the
>>> common assumption that openssl is only there if the package has been
>>> installed.
>>> I believe that is is the case for Linux.  Not so for FreeBSD. vlc uses
>>> pkgconf to check on whether all required libraries are installed for
>>> libssh2. I finds that libssh2 requires libssl:
>>> Requires.private: libssl,libcrypto
>>> It then checks to see if these are installed. Since libssl is not
>>> installed, it bails on the error. (I believe that it shoudl be
>>> "Required: rather than Requires.private:, but that has no impact on
>>> the problem.
>>>
>>> Since FreeBSD ports have already checked the dependencies before
>>> building a port, I think such checks should be removed from ports, but
>>> I'm not familiar enough with the real-world implications of this to
>>> know if it is the right way to go. If it is, I'll can submit a patch
>>> for vlc. I suspect, after reading the developers comments, that
>>> libssh2 developers will not want to remove their recent changes in
>>> this area.
>>
>> This line:
>>
>> Requires.private: libssl,libcrypto
>>
>> Would have to be changed into:
>>
>> Libs.private: -lssl -lcrypto
>>
>> See http://people.freedesktop.org/~dbn/pkg-config-guide.html
>>
>> (Maintainer CCed)
> 
> Tijl,
> 
> Thanks so much. After reading  the documentation at freedesktop.org, I was
> still rather unclear on some details. The "friendly" presentation in that
> link is much clearer, especially the choice between plain and "private"
> forms which was a bit fuzzy to me.
> 
> Now to this specific issue. It appears that this is specific to non-Linux
> ports. With Linux it is "safe" to assume that libssl and libcrypto both
> support .pc files, making  "Requires.private" appropriate. Since the base
> system libssl and libcrypto are not packages on FreeBSD, converting libssh2
> (and other ports that use pkg-config and these libraries, if any), the
> ports should probably be modified to switch the .pc files created to use
> the Libs[.private] form. It is probably not something that will be accepted
> by upstreams, but I guess we could try.
> 
> Does this make sense? Am I actually stating to grasp this stuff?

Yes.  But we also have an openssl port which does provide .pc files.
Libs.private should work for both base system and ports openssl though.



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