Discussion:
Accepted firebird4.0 4.0.5.3140.ds6-11 (source) into unstable
(too old to reply)
Rene Engelhard
2025-01-25 21:10:01 UTC
Permalink
Hi,

Hi,
Format: 1.8
Date: Sat, 25 Jan 2025 15:24:35 +0000
Source: firebird4.0
Architecture: source
Version: 4.0.5.3140.ds6-11
Distribution: unstable
Urgency: medium
 firebird4.0 (4.0.5.3140.ds6-11) unstable; urgency=medium
 .
   * Upload to unstable
Which now takes over firebird-dev.


Which now means reverse-dependencies build against 4.0 firebird but do have

Depends: libreoffice-core-nogui | libreoffice-core, firebird3.0-server-core, ucf, libc6 (>= 2.14), libfbclient2 (>= 3.0.12~), libgcc-s1 (>= 3.3.1), libstdc++6 (>= 11), libuno-cppu3t64 (>= 4.4.0~alpha), libuno-cppuhelpergcc3-3t64 (>= 5.3.0~alpha), libuno-sal3t64 (>= 5.3.0~alpha), libuno-salhelpergcc3-3t64 (>= 1.4.0), uno-libs-private

in their Depends:, which might not work, will it?

(see https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/master/rules?ref_type=heads#L1631 ff.)


And there is no firebird3.0-dev or firebird4.0-dev to choose. So I probably need to change this Depends: to firebird4.0-sever-core in the next upload but telling it to reverse-depends like any other transition should have been done here...


Regards,


Rene
Rene Engelhard
2025-01-25 21:20:01 UTC
Permalink
Hi,
Post by Rene Engelhard
 firebird4.0 (4.0.5.3140.ds6-11) unstable; urgency=medium
 .
   * Upload to unstable
Which now takes over firebird-dev.
Which now means reverse-dependencies build against 4.0 firebird but do have
Depends: libreoffice-core-nogui | libreoffice-core, firebird3.0-server-core, ucf, libc6 (>= 2.14), libfbclient2 (>= 3.0.12~), libgcc-s1 (>= 3.3.1), libstdc++6 (>= 11), libuno-cppu3t64 (>= 4.4.0~alpha), libuno-cppuhelpergcc3-3t64 (>= 5.3.0~alpha), libuno-sal3t64 (>= 5.3.0~alpha), libuno-salhelpergcc3-3t64 (>= 1.4.0), uno-libs-private
in their Depends:, which might not work, will it?
(see https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/blob/master/rules?ref_type=heads#L1631 ff.)
libfbclient2 (>= 4.0.5~) is rebuilt against the new firebird-dev looking at .shlibs but that hardcoded 3.0-server-core still holds there...

I'll patch it to read it from fb_config --version, but again, this should have been coordinated...

Regards,

Rene
Damyan Ivanov
2025-01-26 17:30:01 UTC
Permalink
-=| Rene Engelhard, 25.01.2025 22:05:51 +0100 |=-
Post by Rene Engelhard
 firebird4.0 (4.0.5.3140.ds6-11) unstable; urgency=medium
 .
   * Upload to unstable
Which now takes over firebird-dev.
True. As intented.
Post by Rene Engelhard
Which now means reverse-dependencies build against 4.0 firebird but do have
Depends: libreoffice-core-nogui | libreoffice-core, firebird3.0-server-core, ucf, libc6 (>= 2.14), libfbclient2 (>= 3.0.12~), libgcc-s1 (>= 3.3.1), libstdc++6 (>= 11), libuno-cppu3t64 (>= 4.4.0~alpha), libuno-cppuhelpergcc3-3t64 (>= 5.3.0~alpha), libuno-sal3t64 (>= 5.3.0~alpha), libuno-salhelpergcc3-3t64 (>= 1.4.0), uno-libs-private
Which is fine.

Unlike previous major Firebird release, 4.0 in Debian is
co-installable with 3.0, so depending on firebird3.0-server-core and
libfbclient2 from src:firebird4.0 should work.

In fact, firebird3.0-server has dependencies exactly like this (and
works).

Of course, there may be corner cases in LO's usage of firebird. Please
let me know if you encounter some.
Post by Rene Engelhard
And there is no firebird3.0-dev or firebird4.0-dev to choose. So
I probably need to change this Depends: to firebird4.0-sever-core in
the next upload but telling it to reverse-depends like any other
transition should have been done here...
This is not supposed to be a transition, not this time.

Using either of firebird3.0-server-core and firebird4.0-server-core
should work. My plan is to have both in trixie so that users have
a whole stable release cycle to upgrade their databases (that would be
a first!).


-- Damyan
Rene Engelhard
2025-01-26 17:50:01 UTC
Permalink
Hi,
Post by Damyan Ivanov
Of course, there may be corner cases in LO's usage of firebird. Please
let me know if you encounter some.
LO usage is as-follows (quoting from https://gerrit.libreoffice.org/c/core/+/151214):

"Firebird has two primary file types:

Databases - FDB files. These are version-specific, platform-specific, optimized for performance, and thus incompatible between versions. These are what those comments are about. Initially, when FB integration was considered, these files were evaluated for ODBs, but were rejected because of the said incompatibility - even when the version is the same, it will differ on big endian architecture and little endian one. The problem discussed in those comments is when people open stand-alone FDBs that are shipped e.g. with FB installation itself, not when people open ODBs.

Database backups - FBKs. These are what we use inside ODBs. These are designed to be compatible, independent of architecture; and later versions of FB are always able to open FBKs created in older FB versions.

Our embedded FB is used like this:

1. FBK is extracted from ODB;
2. Embedded FB extracts the compatible FBK into an incompatible FDB (specific to this version of embedded FB DLL);
3. FB works with this temporary FDB;
4. When saving ODB, embedded FB backups the FDB into FBK again, and that is stored inside the ODB.

It, indeed, creates additional performance penalty, but makes the ODB readable by all the future LO versions, no matter what future FB version they embed."


And that apparently (not deep into it) needs libEngine12.so from -3.0-server-core (and now appantly -4.0-server-core, so probably libEngine13.so?) if build with 4.0s firebird-dev.


Regards,


Rene
Rene Engelhard
2025-01-26 18:20:01 UTC
Permalink
Hi,
[build CUT] dbaccess_firebird_test
S=/home/rene/LibreOffice/git/libreoffice-25-2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/CppunitTest/ && rm -fr $W/CppunitTest/dbaccess_firebird_test.test.user && cp -r $W/unittest $W/CppunitTest/dbaccess_firebird_test.test.user &&    rm -fr $W/CppunitTest/dbaccess_firebird_test.test.core && mkdir $W/CppunitTest/dbaccess_firebird_test.test.core && cd $W/CppunitTest/dbaccess_firebird_test.test.core &&   ( MAX_CONCURRENCY=4 MOZILLA_CERTIFICATE_FOLDER=dbm: SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION=1 SAL_USE_VCLPLUGIN=svp LIBO_LANG=C LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"$I/program:$I/program":$W/UnpackedTarball/cppunit/src/cppunit/.libs LO_RUNNING_UNIT_TEST=1      $W/LinkTarget/Executable/cppunittester $W/LinkTarget/CppunitTest/libtest_dbaccess_firebird_test.so --headless "-env:BRAND_BASE_DIR=file://$S/instdir" "-env:BRAND_SHARE_SUBDIR=share" "-env:BRAND_SHARE_RESOURCE_SUBDIR=program/resource" "-env:UserInstallation=file://$W/CppunitTest/
dbaccess_firebird_test.test.user" "-env:CONFIGURATION_LAYERS=xcsxcu:file://$I/share/registry xcsxcu:file://$W/unittest/registry-common xcsxcu:file://$W/unittest/registry-user-ui" "-env:UNO_TYPES=file://$I/program/types/offapi.rdb file://$I/program/types/oovbaapi.rdb file://$I/program/types.rdb" "-env:UNO_SERVICES=file://$W/Rdb/ure/services.rdb file://$W/ComponentTarget/basic/util/sb.component file://$W/ComponentTarget/comphelper/util/comphelp.component file://$W/ComponentTarget/configmgr/source/configmgr.component file://$W/ComponentTarget/connectivity/source/drivers/firebird/firebird_sdbc.component file://$W/ComponentTarget/connectivity/source/manager/sdbc2.component file://$W/ComponentTarget/dbaccess/util/dba.component file://$W/ComponentTarget/dbaccess/source/filter/xml/dbaxml.component file://$W/ComponentTarget/dbaccess/util/dbu.component file://$W/ComponentTarget/filter/source/config/cache/filterconfig1.component file://$W/ComponentTarget/framework/util/fwk.component
file://$W/ComponentTarget/i18npool/util/i18npool.component file://$W/ComponentTarget/linguistic/source/lng.component file://$W/ComponentTarget/package/source/xstor/xstor.component file://$W/ComponentTarget/package/util/package2.component file://$W/ComponentTarget/sax/source/expatwrap/expwrap.component file://$W/ComponentTarget/sfx2/util/sfx.component file://$W/ComponentTarget/svl/source/fsstor/fsstorage.component file://$W/ComponentTarget/svl/util/svl.component file://$W/ComponentTarget/toolkit/util/tk.component file://$W/ComponentTarget/ucb/source/core/ucb1.component file://$W/ComponentTarget/ucb/source/ucp/file/ucpfile1.component file://$W/ComponentTarget/unotools/util/utl.component file://$W/ComponentTarget/uui/util/uui.component file://$W/ComponentTarget/xmloff/util/xo.component" -env:URE_BIN_DIR=file://$I/program -env:URE_INTERNAL_LIB_DIR=file://$I/program -env:LO_LIB_DIR=file://$I/program -env:LO_JAVA_DIR=file://$I/program/classes --protector $W/LinkTarget/Library/
unoexceptionprotector.so unoexceptionprotector --protector $W/LinkTarget/Library/unobootstrapprotector.so unobootstrapprotector   --protector $W/LinkTarget/Library/libvclbootstrapprotector.so vclbootstrapprotector "-env:CPPUNITTESTTARGET=$W/CppunitTest/dbaccess_firebird_test.test" )  2>&1
[_RUN_____] FirebirdTest::testEmptyDBConnection
unknown:0:FirebirdTest::testEmptyDBConnection
An uncaught UNO exception
*Unable to complete network request to host "localhost".
*Failed to establish a connection.
caused by
'isc_create_database'
[...]

Tried in a clean sid VM.

LibreOffice not rebuilt from clean sid, but as clean sid libfbclient2 4.0.5 is installed.

(Expectedly) the same when creating a new db when just 3.0-server-core is present. The creation of a database
and zthe "connection" to it only works with 4.0-server-core installed.

So even worse: The new libfbclient2 is forcing 4.0-server-core here. Even when no rebuild happened yet

Regards,

Rene
Rene Engelhard
2025-01-26 18:30:01 UTC
Permalink
Hi,
Post by Rene Engelhard
Tried in a clean sid VM.
LibreOffice not rebuilt from clean sid, but as clean sid libfbclient2 4.0.5 is installed.
(Expectedly) the same when creating a new db when just 3.0-server-core is present. The creation of a database
and zthe "connection" to it only works with 4.0-server-core installed.
So even worse: The new libfbclient2 is forcing 4.0-server-core here. Even when no rebuild happened yet
Filed #1094284: please add Breaks: libreoffice-sdbc-firebird (<< 4:24.8.4-2) to prevent that (even though firebird embedded
in LO is only available with Experimental features enabled).

Regards,

Rene
Rene Engelhard
2025-01-27 18:00:02 UTC
Permalink
Hi,
Post by Rene Engelhard
[build CUT] dbaccess_firebird_test
S=/home/rene/LibreOffice/git/libreoffice-25-2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/CppunitTest/ && rm -fr $W/CppunitTest/dbaccess_firebird_test.test.user && cp -r $W/unittest $W/CppunitTest/dbaccess_firebird_test.test.user &&    rm -fr $W/CppunitTest/dbaccess_firebird_test.test.core && mkdir $W/CppunitTest/dbaccess_firebird_test.test.core && cd $W/CppunitTest/dbaccess_firebird_test.test.core &&   ( MAX_CONCURRENCY=4 MOZILLA_CERTIFICATE_FOLDER=dbm: SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION=1 SAL_USE_VCLPLUGIN=svp LIBO_LANG=C LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"$I/program:$I/program":$W/UnpackedTarball/cppunit/src/cppunit/.libs LO_RUNNING_UNIT_TEST=1      $W/LinkTarget/Executable/cppunittester $W/LinkTarget/CppunitTest/libtest_dbaccess_firebird_test.so --headless "-env:BRAND_BASE_DIR=file://$S/instdir" "-env:BRAND_SHARE_SUBDIR=share" "-env:BRAND_SHARE_RESOURCE_SUBDIR=program/resource" "-env:UserInstallation=file://$W/CppunitTest/
dbaccess_firebird_test.test.user" "-env:CONFIGURATION_LAYERS=xcsxcu:file://$I/share/registry xcsxcu:file://$W/unittest/registry-common xcsxcu:file://$W/unittest/registry-user-ui" "-env:UNO_TYPES=file://$I/program/types/offapi.rdb file://$I/program/types/oovbaapi.rdb file://$I/program/types.rdb" "-env:UNO_SERVICES=file://$W/Rdb/ure/services.rdb file://$W/ComponentTarget/basic/util/sb.component file://$W/ComponentTarget/comphelper/util/comphelp.component file://$W/ComponentTarget/configmgr/source/configmgr.component file://$W/ComponentTarget/connectivity/source/drivers/firebird/firebird_sdbc.component file://$W/ComponentTarget/connectivity/source/manager/sdbc2.component file://$W/ComponentTarget/dbaccess/util/dba.component file://$W/ComponentTarget/dbaccess/source/filter/xml/dbaxml.component file://$W/ComponentTarget/dbaccess/util/dbu.component file://$W/ComponentTarget/filter/source/config/cache/filterconfig1.component file://$W/ComponentTarget/framework/util/fwk.component
file://$W/ComponentTarget/i18npool/util/i18npool.component file://$W/ComponentTarget/linguistic/source/lng.component file://$W/ComponentTarget/package/source/xstor/xstor.component file://$W/ComponentTarget/package/util/package2.component file://$W/ComponentTarget/sax/source/expatwrap/expwrap.component file://$W/ComponentTarget/sfx2/util/sfx.component file://$W/ComponentTarget/svl/source/fsstor/fsstorage.component file://$W/ComponentTarget/svl/util/svl.component file://$W/ComponentTarget/toolkit/util/tk.component file://$W/ComponentTarget/ucb/source/core/ucb1.component file://$W/ComponentTarget/ucb/source/ucp/file/ucpfile1.component file://$W/ComponentTarget/unotools/util/utl.component file://$W/ComponentTarget/uui/util/uui.component file://$W/ComponentTarget/xmloff/util/xo.component" -env:URE_BIN_DIR=file://$I/program -env:URE_INTERNAL_LIB_DIR=file://$I/program -env:LO_LIB_DIR=file://$I/program -env:LO_JAVA_DIR=file://$I/program/classes --protector $W/LinkTarget/Library/
unoexceptionprotector.so unoexceptionprotector --protector $W/LinkTarget/Library/unobootstrapprotector.so unobootstrapprotector   --protector $W/LinkTarget/Library/libvclbootstrapprotector.so vclbootstrapprotector "-env:CPPUNITTESTTARGET=$W/CppunitTest/dbaccess_firebird_test.test" )  2>&1
[_RUN_____] FirebirdTest::testEmptyDBConnection
unknown:0:FirebirdTest::testEmptyDBConnection
An uncaught UNO exception
*Unable to complete network request to host "localhost".
*Failed to establish a connection.
caused by
'isc_create_database'
[...]
Tried in a clean sid VM.
LibreOffice not rebuilt from clean sid, but as clean sid libfbclient2 4.0.5 is installed.
(Expectedly) the same when creating a new db when just 3.0-server-core is present. The creation of a database
and zthe "connection" to it only works with 4.0-server-core installed.
So even worse: The new libfbclient2 is forcing 4.0-server-core here. Even when no rebuild happened yet
so from 24.8.4-2 (in sid already) the runtime dep now forces (<< 5.0~), see
https://salsa.debian.org/libreoffice-team/libreoffice/libreoffice/-/commit/3ccc68ffd44ee48267eff875347ef842c861550f
in addition to hardcoding firebird4.0-server-core :/
(and forcing .shlibs to get a sane dep, too, but that is there already.)

to go sure and prevent this in the future.


Regards,

Rene

Loading...