Bug#370387: Correct dependencies on libgnutls-dev? (#370387)

2006-06-20 Thread Goswin von Brederlow
Loïc Minier [EMAIL PROTECTED] writes:

 Hi,

 On Mon, Jun 19, 2006, Goswin von Brederlow wrote:
   I received #370387 claiming that I should version my libgnutls-dev dep
   because libgnutls11-dev provides libgnutls-dev and this can cause
   multiple versions of libgnutls to be linked to a binary (e.g. the
   version pulled by libsoup, and the version pulled by -lgnutls when the
   binary is built).
 Provided package can never be versioned since dpkg does not support
 that. Also, if 2 or more packages provide a virtual package then you
 may not Build-Depend on that virtual package but must use real |
 virt. But I don't think this is the case for libgnutls-dev.

  (Please note there is a real libgnutls-dev package, only
  libgnutls11-dev Provides libgnutls-dev, there's no libgnutls12- or
  13-dev packages; that's why I don't need real | virt, I use real.)

  Thanks for your comments, I'll close this bug as I think this is
  regular practice.

Ahh, sorry, I missed that libgnutls-dev itself exists too. If you use
a versioned Build-Depends on it that will prevent libgnutls11-dev to
be taken instead accidentaly. So I guess that is a good idea.

MfG
Goswin



Bug#370387: Correct dependencies on libgnutls-dev? (#370387)

2006-06-18 Thread Loïc Minier
Hi,

 I received #370387 claiming that I should version my libgnutls-dev dep
 because libgnutls11-dev provides libgnutls-dev and this can cause
 multiple versions of libgnutls to be linked to a binary (e.g. the
 version pulled by libsoup, and the version pulled by -lgnutls when the
 binary is built).

 I consider all of this is normal even if it indeed allows binaries to
 end up linked with multiple versions of gnutls.

 If we were to force all binaries to link to one and only one gnutls,
 then we wouldn't allow two or three gnutls versions in the archive at
 the same time.

 Is this correct?  Am I missing something?

   Thanks for comments,
-- 
Loïc Minier [EMAIL PROTECTED]



Bug#370387: Correct dependencies on libgnutls-dev? (#370387)

2006-06-18 Thread Goswin von Brederlow
Loïc Minier [EMAIL PROTECTED] writes:

 Hi,

  I received #370387 claiming that I should version my libgnutls-dev dep
  because libgnutls11-dev provides libgnutls-dev and this can cause
  multiple versions of libgnutls to be linked to a binary (e.g. the
  version pulled by libsoup, and the version pulled by -lgnutls when the
  binary is built).

Provided package can never be versioned since dpkg does not support
that. Also, if 2 or more packages provide a virtual package then you
may not Build-Depend on that virtual package but must use real |
virt. But I don't think this is the case for libgnutls-dev.

I think you are correct to depend on the virtual libgnutls-dev. If
libsoup needs a specific version of libgnutls to be used when linking
then libsoup-dev should depend on the stricter libgnutls11-dev package
to force linking against the correct one. I don't think it is the
packages job to guess what sub libraries their libraries need.

If you Build-Depend on libgnutls11-dev and libsoup updates to
libgnutls12 your package will become instantly FTBFS while with
libgnutls-dev it will just need a binNMU to transition.

  I consider all of this is normal even if it indeed allows binaries to
  end up linked with multiple versions of gnutls.

Happens all the time, at least with different versions with the same
abi/soname of a library. Mixing libfoo1 and libfoo2 is usualy bad.

  If we were to force all binaries to link to one and only one gnutls,
  then we wouldn't allow two or three gnutls versions in the archive at
  the same time.

If the symbols in libgnutls are properly versioned you could even mix
libraries linked against different versions of libgnutls. But not
every library is that clean, most require a combined transition of all
libs in a binary at once.

  Is this correct?  Am I missing something?

Don't think so.

Thanks for comments,

MfG
Goswin