-=| 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

