[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-debian] [botan-devel] Monotone completely broken in Debian
From: |
Jack Lloyd |
Subject: |
Re: [Monotone-debian] [botan-devel] Monotone completely broken in Debian testing (I think) |
Date: |
Tue, 10 Jul 2012 09:24:53 -0400 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Hi Markus,
Yes, stable branches are supposed to be ABI compatible and this is
definitely an error on my part. I'm not quite sure what I was thinking
when I made that change, tbh. :/
I will be releasing 1.10.3 later today with the change below.
-Jack
On Tue, Jul 10, 2012 at 11:59:40AM +0200, Markus Wanner wrote:
> Jack,
>
> as Francis Russel pointed out on the Debian packaging mailing list for
> monotone, it looks like Botan 1.10.2 broke ABI compatibility compared to
> 1.10.1, see here:
> http://lists.nongnu.org/archive/html/monotone-debian/2012-07/msg00000.html
>
> I could reproduce this and think I identified the cause. The culprit
> seems to be rev 430a859e2a1e7c0ea47beef7d399a45e8ed9ed9a, with
> changelog: "Use initializer list, make destructor virtual". I think this
> adds the destructor to the vtable of the object MemoryRegion and thus
> represents an ABI-incompatible change - of an object that's quite
> heavily used, so mtn breaks even for things as simple as `mtn version`.
>
> The attached patch against the most recent revision in the 1.10 branch
> reverts that virtualization of the destructor and thus fixes the issue
> (i.e. monotone compiled against 1.10.1 runs fine with a recent .so
> library of botan-1.10 with that patch).
>
> Can you please comment on whether or not this is a safe fix? A quick
> `./check --test` seems to run through just fine.
>
> IIRC the stable patch releases of Botan are supposed to be ABI
> compatible. If that's the case, how do you want to deal with this issue?
> Mark 1.10.2 as broken and release a 1.10.3 soon?
>
> Regards
>
> Markus Wanner
> #
> # old_revision [2bf8ad2c501213efb4cf9b219330b87666988e91]
> #
> # patch "src/alloc/secmem.h"
> # from [ea3aff086ed1a1f49ee8a0e877ba755dc575e6b4]
> # to [746a95d28216664a4e6c945ba32663cea6023ae5]
> #
> ============================================================
> --- src/alloc/secmem.h ea3aff086ed1a1f49ee8a0e877ba755dc575e6b4
> +++ src/alloc/secmem.h 746a95d28216664a4e6c945ba32663cea6023ae5
> @@ -164,7 +164,7 @@ class MemoryRegion
> */
> void swap(MemoryRegion<T>& other);
>
> - virtual ~MemoryRegion() { deallocate(buf, allocated); }
> + ~MemoryRegion() { deallocate(buf, allocated); }
> protected:
> MemoryRegion() : buf(0), used(0), allocated(0), alloc(0) {}
>
> _______________________________________________
> botan-devel mailing list
> address@hidden
> http://lists.randombit.net/mailman/listinfo/botan-devel