Re: Problems dealing with ports use of pkgconf
On Fri, Nov 1, 2013 at 1:57 AM, Tijl Coosemans t...@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? -- R. Kevin Oberman, Network Engineer E-mail: rkober...@gmail.com ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Problems dealing with ports use of pkgconf
On Sat, 2 Nov 2013 12:05:12 -0700 Kevin Oberman wrote: On Fri, Nov 1, 2013 at 1:57 AM, Tijl Coosemans t...@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. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Problems dealing with ports use of pkgconf
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) ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Problems dealing with ports use of pkgconf
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. -- R. Kevin Oberman, Network Engineer E-mail: rkober...@gmail.com ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org