severity 544588 important
thanks

Hi Simon,

This is a known issue, yeah.  But I don't really think it's a bug in the
plugin per-se.  Dovecot itself really needs a saner way to indicate when
its plugin ABI has actually changed than just enforcing they are used
with the 'current version'.  I've talked to Jaldhar about this previously
and he seemed to indicate that this would get sorted out, but I'm still
not exactly sure when or how.

If you have some time to spend on this, you might like to engage the
Dovecot upstream about it (they are generally very responsive).  I'd much
rather get this sorted out cleanly than create a snarl of overly tight
deps that may mean nothing will ever migrate without pain to several parties.

But I agree the current situation is far from optimal, and this is an
important issue to resolve as soon as we can.


Re the patch you attached:

> +++ b/debian/get-dovecot-version.sh
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +exec sed -n -e 's/#define PACKAGE_VERSION  *"\(.*\)"/\1/p' \
> +    /usr/include/dovecot/config.h
> diff --git a/debian/rules b/debian/rules
> index 0ac5356..cbc9d17 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -1,5 +1,13 @@
>  #!/usr/bin/make -f
>  
> +EPOCH := 1:
> +DOVECOT_VERSION := $(shell sh $(CURDIR)/debian/get-dovecot-version.sh)

Uh, are you sure you really need this many subshells to do this ;?

> +# if we were compiled against (for instance) dovecot 1.2.7, depend on 
> versions
> +# "1.2.7" <= v < "1.2.7.", so a hypothetical upstream point release 1.2.7.1
> +# would not be considered suitable,

... when in reality, it actually most probably would be perfectly ok.
and hypothetically it may not have even had the PACKAGE_VERSION macro
that you check incremented -- in which case this would make it impossible
for the package to work with that version at all.  Even if it was rebuilt.

Which is hardly an improvement on the current situation.  And keeps getting
worse if Jaldhar ever has to release a .dfsg upstream version or so, since
again the package version and what you grep out of dovecot source here won't
actually match at all ...

> +DOVECOT_DEPENDENCY := dovecot-imapd (>= $(EPOCH)$(DOVECOT_VERSION)), 
> dovecot-imapd (<< $(EPOCH)$(DOVECOT_VERSION).)
> +
>  build: build-stamp
>  
>  build-stamp:
> @@ -36,7 +44,7 @@ binary-arch: build install
>       dh_fixperms
>       dh_installdeb
>       dh_shlibdeps
> -     dh_gencontrol
> +     dh_gencontrol -- -Vdovecot:Depends="$(DOVECOT_DEPENDENCY)"
>       dh_md5sums
>       dh_builddeb

... so this is really something that the dovecot(-dev) package should be
providing us, with the version(s) that _it_ thinks we should be using.
Not something we should be hacking up on a per-plugin basis, based on
hypothetical speculation about what may or may not be compatible in
the future, in a package we don't directly control.

If dovecot-dev provides something like that and it's sane, then I'll be
happy to use it here, but I'm a bit uncomfortable about the fix proposed
above.  It doesn't seem any less prone to horrible failures on the whole,
it just changes the flavour of them a little and adds some new failure
modes that we don't currently suffer from.

We need to bite the bullet and fix this properly in dovecot, anything
else will mostly just be a recurring waste of people's time until we do.

Cheers,
Ron





-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to