On Sat, 2 Nov 2013 12:05:12 -0700 Kevin Oberman wrote:
> On Fri, Nov 1, 2013 at 1:57 AM, Tijl Coosemans <[email protected]> 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.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[email protected]"

Reply via email to