-=| Matthias Klose, 07.01.2025 13:20:23 +0100 |=-
> Package: src:firebird3.0
> Version: 3.0.12.ds7-1
> Severity: important
> User: [email protected]
> Usertags: icu76
> 
> The package fails to build with icu 76.1-2 from experimental.  The most
> likely reason is that it's not built for the default C++17 standards, and
> manually specifies an earlier standard.
> 
> The build log shows the package building with -std=gnu++03 -std=gnu++03
> -std=gnu++03, and failing.

Copmiling with -std=c++17 fails because of "dynamic exception 
declaration"s like "void func() throw(Firebird::BadAlloc)".

Dropping the "throw(...)" declarations makes the compilation pass, but 
the build fails later when creating some system databases with "double 
free or corruption (out)" which suggests some deep effects of the -std 
switch.

Given that upstream is currently using firebird 5.0 as "stable", it is 
very unlikely this will be fixed for 3.0. I certainly am out of my 
league here.

I guess I should go on with uploading firebird4.0 to unstable (it is 
in experimental now) and drop src:firebird3.0. firebird4.0 already 
builds with -std=c++17 and should be fine. I wanted to have both 3.0 
and 4.0 in trixie to make it easier for users to migrate, but I guess 
we can have one more of those hard "make backups + upgrade + restore 
and hope" migrations.

Is there a timeline for the ICU transition? Even a vague one would 
help me plan this.


-- Damyan

Reply via email to