daniel That sounds like a similar issue. Mine was with the UNIXEPOCH function that was added in SQLite 3.38. Yours seems to be with the CONCAT function that looks to have been added in SQLite 3.44. RHEL 9.5 uses SQLite 3.34 so neither of these functions are valid. Grommunio looks to have updated their code to rely on a version of SQLite not supported by RHEL and derivative distros.
Unfortunately, because SQLite is being called by Python, manually installing a later version of SQLite itself isn't sufficient; because the libraries Python uses are independent to the system version of SQLite and are compiled as part of Python itself. Messing with the system version of Python doesn't seem like a good idea given the number of things that depend on it, so the the workaround I used is as follows.
Download and build the latest version of SQLite from source:
curl https://www.sqlite.org/2024/sqlite-autoconf-3470200.tar.gz -o sqlite-autoconf-3470200.tar.gz
tar xvfz sqlite-autoconf-3470200.tar.gz
cd sqlite-autoconf-3470200
./configure
make
Copy the compiled libraries from the .libs
subdirectory to one where they can be accessed by Grommunio:
mkdir /opt/libsqlite3
cp -P .libs/* /opt/libsqlite3
cp --remove-destination libsqlite3.la /opt/libsqlite3
You could also just cp .libs/* /opt/libsqlite3
but there are a few symlinks included that would result in duplicate files that way. I'm not sure if all of these files are required, but I copied them all to be on the safe side.
Create a file /opt/libsqlite3/env
with content LD_LIBRARY_PATH=/opt/libsqlite3
Create an override for the gromox-http service with systemctl edit gromox-http.service
and add the following between the start and end comments to have the service reference the newly created environment file.
[Service]
EnvironmentFile=/opt/libsqlite3/env
Save the override and restart gromox-http systemctl restart gromox-http
. The service should now use the updated SQLite libraries created in /opt/libsqlite3.
This seems to work and I haven't yet encountered any issues within my use case (Outlook MAPI/HTTP, ActiveSync, Grommunio Web), but it does mean that any time an update is released for SQLite I'll have to go through the process to compile the new version all over again to keep it patched. I definitely put it into the category of a kludge, but it keeps my system stable for now. Hopefully Grommunio can work out a more permanent solution for the EL distros.