Bug#1068068: bobcat, time_t transition lead to apparent ABI break (was: Need rebootstrapping on armel and armhf).

2024-04-06 Thread tony mancill
On Wed, Apr 03, 2024 at 11:37:20AM +0200, Frank B. Brokken wrote:
> Dear Peter Green, you wrote:
> > > Also, the bootstrapping procedure is only required when icmake isn't
> > > available ...
> 
> Thanks for your bugreport: I'm about to update icmake so that the circular
> dependency between bobcat and icmake is removed. Shortly after icmake's
> update bobcat will also be updated.

icmake 12.0.01-1 [1] has landed in the archive and is being chewed on by
the buildds now [2].  Once it is installed on armhf and armel, I will
trigger givebacks for bobcat.

As noted in the icmake changelog, the icmake bootstrap was accomplished
by vendoring in the bobcat sources.  This interim measure seemed
warranted to get the r-build-deps unstuck.  The long-term approach will
be addressed by a separate bobcat-source package (#1068510 [3]).

Thank you for your help and patience with this one.
tony

[1] 
https://tracker.debian.org/news/1517256/accepted-icmake-120001-1-source-into-unstable/
[2] https://buildd.debian.org/status/package.php?p=icmake
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068510


signature.asc
Description: PGP signature


Bug#1068068: bobcat, time_t transition lead to apparent ABI break (was: Need rebootstrapping on armel and armhf).

2024-04-03 Thread Frank B. Brokken
Dear Peter Green, you wrote:
> > Also, the bootstrapping procedure is only required when icmake isn't
> > available ...

Thanks for your bugreport: I'm about to update icmake so that the circular
dependency between bobcat and icmake is removed. Shortly after icmake's
update bobcat will also be updated.

-- 
Frank B. Brokken
(+31) 6 5353 2509
PGP Key Fingerprint: DF32 13DE B156 7732 E65E  3B4D 7DB2 A8BE EAE4 D8AA


signature.asc
Description: PGP signature


Bug#1068068: bobcat, time_t transition lead to apparent ABI break (was: Need rebootstrapping on armel and armhf).

2024-04-03 Thread Peter Green

Also, the bootstrapping procedure is only required when icmake isn't avaialble
yet. For the construction of the bobcat library icmake 11.01.02-1 is required,
and icmake.01.02-1 needs libbobcat-dev >= 5.07.00, which is available since
bullseye (oldstable).

So maybe you can also provide some info about why the bootstrapping procedure
is needed/used?

When doing the time64 transition, it was decided to change the
package names, but *not* the sonames. This avoids soname
divergence from upstream but also means that the old (pre-time64)
and new (post time64) packages cannot be co-installed, at least
not without hacks.

Note that this only affects architectures that are actually
undergoing the time64 changes (that is 32-bit architectures
other than i386). On other architectures some "provides"
trickery is used to avoid the need for a hard transition.

This is why some form of manual intervention was needed, the
dev packages for readline/openssl depend on the "t64" version
of those libraries while the libbobcat6 package depended
on the "non-t64" version of those libraries. icmake depends on
libbobcat6, which lead to the following when trying to binnmu
bobcat for the time64 transition.

bobcat build-depends on:
-icmake  :armel 
(>= 10.06.00)
icmake    
depends on:
- libbobcat6:armel (>= 6.04.00)
libbobcat6 depends on:
-libssl3  :armel 
(>= 3.0.0)
libssl3t64 conflicts with:
-libssl3  :armel 
(< 3.1.5-1.1)

That said, in such cases it is usually not nessacery to re-bootstrap
from scratch. Usually it is possible to force install the old packages
and they will work "well enough" to build the new packages. I was
able to re-build bobcat against the new readline and libssl with the
following approach.

1. Install all the build-dependencies of bobcat except icmake normally.
2. Forcibly install the old icmake and libbobcat6
3. Build bobcat.

I did so, and uploaded the resulting bobcat packages for armel and
armhf (as +b1). This make bobcat's build-dependencies installable again
and allowed the buildds to attempt to build binnmus of bobcat

Unfortunately, those builds failed with a segmentation fault. It appears
icmake is crashing when run with the new libbobcat6 package.

Presumably this means that, while it was not identified in pre-transition
planning, bobcat's ABI has changed as a result of the time64 transition
and libbobcat6 will need to be renamed to libbobcat6t64.