From owner-freebsd-stable@FreeBSD.ORG Thu Sep 4 06:04:30 2014 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5626F8EF for ; Thu, 4 Sep 2014 06:04:30 +0000 (UTC) Received: from smtp.infracaninophile.co.uk (smtp6.infracaninophile.co.uk [IPv6:2001:8b0:151:1:3cd3:cd67:fafa:3d78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "smtp.infracaninophile.co.uk", Issuer "ca.infracaninophile.co.uk" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id B149010A2 for ; Thu, 4 Sep 2014 06:04:29 +0000 (UTC) Received: from seedling.black-earth.co.uk (seedling.black-earth.co.uk [81.2.117.99]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.9/8.14.9) with ESMTP id s8464H95086812 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Thu, 4 Sep 2014 07:04:19 +0100 (BST) (envelope-from matthew@FreeBSD.org) Authentication-Results: smtp.infracaninophile.co.uk; dmarc=none header.from=FreeBSD.org DKIM-Filter: OpenDKIM Filter v2.9.2 smtp.infracaninophile.co.uk s8464H95086812 Authentication-Results: smtp.infracaninophile.co.uk/s8464H95086812; dkim=none reason="no signature"; dkim-adsp=none; dkim-atps=neutral Message-ID: <540800D6.8030309@FreeBSD.org> Date: Thu, 04 Sep 2014 07:04:06 +0100 From: Matthew Seaman User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: freebsd-stable@freebsd.org Subject: Re: pkg question - Difference pkg vs port References: <20140904003623.GA10423@in-addr.com> In-Reply-To: <20140904003623.GA10423@in-addr.com> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Xgwid2cNjWXVkPNj2dcBKAhqpOm3DoTqC" X-Virus-Scanned: clamav-milter 0.98.4 at lucid-nonsense.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lucid-nonsense.infracaninophile.co.uk X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Sep 2014 06:04:30 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Xgwid2cNjWXVkPNj2dcBKAhqpOm3DoTqC Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 04/09/2014 01:36, Gary Palmer wrote: > On Wed, Sep 03, 2014 at 07:32:48PM -0400, Brandon Allbery wrote: >> On Wed, Sep 3, 2014 at 7:24 PM, Michael Ross wrote: >> >>> "Anything that provides" I think is the key to where I started thinki= ng >>> wrong: >>> >>> The dependency is not "Shared libs required" libmysqlclient.so.18, >>> but one specific port that provides libmysqlclient.so.18 - mysql55-cl= ient. >>> >> >> Ports can do "provides library" dependencies. Packages can only depend= on >> packages. You can try to force it but you could also confuse your pack= age >> database rather badly. >=20 > Why can't packages check to see if the library exists and use it if it > does? RPM does something like that, although I think they go much > further with that process. >=20 > In this case, AFAIK the mysql client library API is stable - the 5.5 an= d > 5.6 library versions should have the same API so the requirement to > install the 5.5 package is a bit silly. >=20 > (I'm dreading this e-mail taking us down the RPM path of dozens of > different packages that make up one program, foo-devel, foo-libs, > foo-client, etc) The problem here is that pkg(8) at the moment respects both the shared library dependencies discovered by analysing what all the binaries actually need to link against, and all the RUN_DEPENDS inherited from ports. It's the latter which effectively 'bakes in' a dependency on a specific version of another port. However, change is coming. There's a GSoC project to allow dependency ranges for pkg(8) -- not a complete solution, but it will help. Sub-packages and flavours are imminently due to appear, now that pkg_tools are dead; again not a complete solution in itself. There's also the 'Provides/Requires/Conflicts' idea about dependency tracking, which I think is the long-term answer, but needs (yet another set of) ports tree-wide sweeping changes. At the moment, if you want to use other than the default version of eg. MySQL, the recommendation is that you build your own package sets. It is possible to build your own packages for just the things that depend on MySQL and use the regular FreeBSD pkg repositories for everything else. poudriere is the best tool for doing this. Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. PGP: http://www.infracaninophile.co.uk/pgpkey --Xgwid2cNjWXVkPNj2dcBKAhqpOm3DoTqC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) iQJ8BAEBCgBmBQJUCADgXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2NTNBNjhCOTEzQTRFNkNGM0UxRTEzMjZC QjIzQUY1MThFMUE0MDEzAAoJELsjr1GOGkATgtMQAIfHg/k+ShS0brqQxrhPOoc0 oMUlW+S32qKjkTQGYbPeku6o0DZABnJ4HqiK9KUzlc5BsxsMbSux2JkXWVxz0ohU gZ18oGjZy5hsISN2WiowAPhEzGfOh8i86y2i72+kBRRArcNXjgsbn/idwVeTtN9u fYqh29pvu6NDHgh5wT0M/rAj/eBddXx1IOL3cuK2XTB8ADOQG0QxdLyWgghVuF8W gq8YYwRgdSgwmqR8yhfX46sUaRXrie5NB3NXF816NQZhaE3otxA8NMqEwxuVcWwg IhDCwq7XUPwx5BxlK5wGtTAatRa2mJmiLqQwEfsiiepZK9lk1h3SnWOGt19lNHIU XQ4kajZKh6tHI08ZMUdoqnYfwUElJOdOwpwxG1rbI0lSt8Y4MGPJ4/MLp4DDLtB/ ChPE/dQm3C26SNHWPs0MPmmUVxlB5ZHqz+uIgY0hn9bTt1ulqw/0FwNc2gaCLMTl M/cqe5dLJpxC7MX1ApHIDMNYMgjxhc8bwg8lRw6498eCjspq1LjcLBbU3Jec/A6m n8tS2NhS9OPitWWGAtFt8nj3uCN7JsUzIo81MqpfRry5MTULyQ/9MUelt/SS7VOK /eGDIj/V5PdUIFO8sn5JI4w1ytyyxty0j0kIDtSIhHZZoi9V4fojZY7p+Lq4L1P6 eQF0AB1MbiOsQdcC7w6B =CnQ/ -----END PGP SIGNATURE----- --Xgwid2cNjWXVkPNj2dcBKAhqpOm3DoTqC--