Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 01 Jun 2013 01:39:35 +0100
From:      Matthew Seaman <matthew@FreeBSD.org>
To:        "bsd@todoo.biz" <bsd@todoo.biz>
Cc:        Liste FreeBSD <freebsd-questions@freebsd.org>
Subject:   Re: pkgng dependencies change / update
Message-ID:  <51A942C7.8080704@FreeBSD.org>
In-Reply-To: <71B55EBD-A768-42D3-839A-E89098A1AD81@todoo.biz>
References:  <71B55EBD-A768-42D3-839A-E89098A1AD81@todoo.biz>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
------enig2UKGHMMBLLVTMAWBQIOMR
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 31/05/2013 16:26, bsd@todoo.biz wrote:
> Hi,=20
>=20
> I am trying to figure out how to change / update the dependencies on a =
package.=20
>=20
> I have a postfix package which comes from a server where mysql-client i=
s in version 5.1=20
> And I would like to install the same package on a server where mysql-cl=
ient is in version 5.6=20
>=20
> I am not sure if this is feasible.=20
>=20
> Of course when I try to install this package on the server, it tells me=
 :=20
>=20
>=20
>> jail: ns3 15:03:57 /home/gregober # pkg add postfix-2.10.0,1.txz=20
>> Installing postfix-2.10.0,1...missing dependency mysql-client-5.1.68
>> Failed to install the following 1 package(s): postfix-2.10.0,1.txz
>=20
>=20
> I have tried to set the dependency to an updated version of the port : =

>=20
>> jail: ns3 15:04:16 /home/gregober # pkg set -o databases/mysql51-clien=
t:databases/mysql56-client
>> Change origin from databases/mysql51-client to databases/mysql56-clien=
t for all dependencies? [y/N]: y
>=20
>=20
> But no luck !!=20
>=20
>=20
> Any idea how to do that ?=20

Well, the best way is generally to use a package compiled against the
correct set of dependencies in the first place.

postfix will be linking against the MySQL client shared libraries.
Those have different ABI versions between mysql51 and mysql56.  Meaning
you can't simply swap one for the other and expect things to still work.

'pkg set -o' looks like it does what you want, but really, it doesn't.
What it does is allow smoothly replacing one complete dependency tree
with another.   So, running:

# pkg set -o databases/mysql51-client:databases/mysql56-client

is fine and dandy, and a necessary prerequisite to then running an
upgrade against a package repo where everything that links against mysql
client has been linked against mysql56-client specifically.

In fact, you're doing things the wrong way round.  'pkg set -o' works on
what has already been installed.  You could in principle use 'pkg set
-o' to switch your mysql56-client machine to using mysql51-client --
which means running 'pkg set -o ...' and then *reinstalling all the
packages that depend on mysql56-client with equivalent packages linked
against mysql51-client*.  After that, your postfix package should
install OK.

Ultimate plans are that the need to use 'pkg set -o' should disappear
entirely, as the package dependency solver should be clever enough to
work out all this stuff for itself.  There's also ideas about making
more finely grained binary packages -- several packages from one port
essentially.   So out of each mysqlXX-client port there'd be several
packages created, one of which contains just the shared libraries.  The
good thing about that is it will be possible to install shared libraries
for several different mysqlXX versions simultaneously, which would make
your postfix problem fairly trivial to solve.

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.
PGP: http://www.infracaninophile.co.uk/pgpkey



------enig2UKGHMMBLLVTMAWBQIOMR
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.16 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlGpQs8ACgkQ8Mjk52CukIz3lwCgjO2b0BlT7Sjs+RQrxYvEcvOa
ALoAnjI7V6vFH+VyiQAV1tljQgPQO8+I
=rgpU
-----END PGP SIGNATURE-----

------enig2UKGHMMBLLVTMAWBQIOMR--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51A942C7.8080704>