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]"
