[Android-tools-devel] Bug#1062206: android-libaapt, android-libandroidfw: identified for time_t transition but no ABI in shlibs

Chris Hofstaedtler zeha at debian.org
Mon Aug 26 09:44:54 BST 2024


Roger,

* Roger Shimizu <rogershimizu at gmail.com> [240826 10:30]:
> On Sun, Aug 25, 2024 at 11:34 PM Chris Hofstaedtler <zeha at debian.org> wrote:
> > On Mon, Aug 26, 2024 at 08:26:11AM +0200, Chris Hofstaedtler wrote:
> > > On Sun, Aug 25, 2024 at 09:14:53PM -0700, Roger Shimizu wrote:
> > > > [ copy the email from Hans ]
> > > > Thanks for reporting!  In the Android Tools case, the shared libs and packages
> > > > that use them are packaged together, often from the same source package, so I
> > > > can't see why we'd need special versions of it. And when we need to, we can use
> > > > strictly versioned depends, so it should be fine.
> > >
> > > All of that would be true if the packages involved were using
> > > strictly versioned depends, but they are not:
> > >
> > > Package: aapt
> > > Source: android-platform-frameworks-base (1:14~beta1-2)
> > > Depends: android-libaapt, android-libandroidfw, [...]
> > >
> > > At least I don't see an "(= 1:14~beta1-2)" constraint here.
> 
> Strong relations like : (= 1:14~beta1-2) can only be used within the
> same package.

aapt and android-libaapt and android-libandroidfw are built from the
same source package, I think?

If there are other packages involved, then this is not an option
indeed.

> > Oh, and while you can do that going forward, you also need to
> > break/conflict with all old versions.
> >
> > Maybe you should rethink if this is a good strategy.
> 
> Do you have other ideas? Please let me know if you have better way
> out. Thank you!

Well, the bug is about android-libaapt, android-libandroidfw
changing their ABI when recompiled on time_t-64-transitioned
architectures, like armel and armhf.

Without any package relationship changes, it is assumed that this
will cause (best case) crashes and/or (worst case) data corruption
or loss.

I think there are a few options:

1) Investigate if the ABI really changes. If not, then you can just
close this bug report.

2) If the ABI changes, you need to make sure users cannot run into
the resulting bugs.

2a) Most of the archive dealt with this by renaming the library
packages and changing the corresponding Depends:, etc. Please see
the wiki page about the transition for this.

2b) Some packages intead adopted a dual-ABI strategy. They provide
the old ABI and the new ABI, usually by having two symbols (old and
new).

2c) Find some other way of enforcing strong package relationships.
Hans' mail seems to say that this is what they wanted to do? But
it doesn't look like this has happened.

2d) I *guess* if you can't make this work at all, you could also
remove the packages from all time_t-64-transitioned architectures (=
all 32-bit except i386). Not sure if that would be politically
acceptable.

Best,
Chris



More information about the Android-tools-devel mailing list