From owner-freebsd-ports@FreeBSD.ORG Sat Nov 2 20:24:04 2013 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B5AE43AF; Sat, 2 Nov 2013 20:24:04 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay010.isp.belgacom.be (mailrelay010.isp.belgacom.be [195.238.6.177]) by mx1.freebsd.org (Postfix) with ESMTP id 26E132726; Sat, 2 Nov 2013 20:24:03 +0000 (UTC) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlUGAHhedVJR8nUw/2dsb2JhbABYFoJxOMBRgRwXdIIlAQEFOhwjEAsOCgklDyoeBhOIBQEIvRiPWAeELgOMV4sygTCGCYpRgyc7 Received: from 48.117-242-81.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([81.242.117.48]) by relay.skynet.be with ESMTP; 02 Nov 2013 21:22:53 +0100 Received: from kalimero.tijl.coosemans.org (kalimero.tijl.coosemans.org [127.0.0.1]) by kalimero.tijl.coosemans.org (8.14.7/8.14.7) with ESMTP id rA2KMq24038260; Sat, 2 Nov 2013 21:22:52 +0100 (CET) (envelope-from tijl@FreeBSD.org) Date: Sat, 2 Nov 2013 21:22:52 +0100 From: Tijl Coosemans To: Kevin Oberman Subject: Re: Problems dealing with ports use of pkgconf Message-ID: <20131102212252.611e4abc@kalimero.tijl.coosemans.org> In-Reply-To: References: <20131101095757.3f1a3913@kalimero.tijl.coosemans.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: sbz@freebsd.org, FreeBSD Ports ML X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Nov 2013 20:24:04 -0000 On Sat, 2 Nov 2013 12:05:12 -0700 Kevin Oberman wrote: > On Fri, Nov 1, 2013 at 1:57 AM, Tijl Coosemans 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.