Bug 268674 - databases/soci: Fails to build after removing firebird25
Summary: databases/soci: Fails to build after removing firebird25
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Neel Chauhan
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-12-31 13:11 UTC by Rainer Hurling
Modified: 2023-01-01 00:50 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (nc)


Attachments
patch to disable default option firebird (477 bytes, patch)
2022-12-31 13:11 UTC, Rainer Hurling
rhurlin: maintainer-approval? (rhurlin)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Hurling freebsd_committer freebsd_triage 2022-12-31 13:11:26 UTC
Created attachment 239157 [details]
patch to disable default option firebird

After removing databases/firebird25-client from the tree [1][2], databases/soci does not built with the new default databases/firebird30-client:

[ 31% 67/211] /usr/bin/c++ -DBOOST_ALL_NO_LIB -DCATCH_CONFIG_CPP11_NO_IS_ENUM -DHAVE_DL=1 -DSOCI_ABI_VERSION=\"4.0\" -Dsoci_firebird_EXPORTS -I/usr/local/include -I/wrkdirs/usr/ports/databases/soci/work/.build -I/wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/include -I/wrkdirs/usr/ports/databases/soci/work/.build/include -I/wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/include/private -I/wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/src/core/../../include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -pedantic -Wno-error=parentheses -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Woverloaded-virtual -Wredundant-decls -Wno-long-long -std=c++11  -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fPIC -fvisibility=hidden -MD -MT src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o -MF src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o.d -o src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o -c /wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/src/backends/firebird/blob.cpp
FAILED: src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o
/usr/bin/c++ -DBOOST_ALL_NO_LIB -DCATCH_CONFIG_CPP11_NO_IS_ENUM -DHAVE_DL=1 -DSOCI_ABI_VERSION=\"4.0\" -Dsoci_firebird_EXPORTS -I/usr/local/include -I/wrkdirs/usr/ports/databases/soci/work/.build -I/wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/include -I/wrkdirs/usr/ports/databases/soci/work/.build/include -I/wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/include/private -I/wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/src/core/../../include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -pedantic -Wno-error=parentheses -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Woverloaded-virtual -Wredundant-decls -Wno-long-long -std=c++11  -O2 -pipe -fstack-protector-strong -fno-strict-aliasing   -DNDEBUG -fPIC -fvisibility=hidden -MD -MT src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o -MF src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o.d -o src/backends/firebird/CMakeFiles/soci_firebird.dir/blob.cpp.o -c /wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/src/backends/firebird/blob.cpp
In file included from /wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/src/backends/firebird/blob.cpp:9:
In file included from /wrkdirs/usr/ports/databases/soci/work/soci-4.0.3/include/soci/firebird/soci-firebird.h:24:
/usr/local/include/ibase.h:6:10: fatal error: '../jrd/ibase.h' file not found
#include "../jrd/ibase.h"
         ^~~~~~~~~~~~~~~~
1 error generated.


It turns out, that the SOCI Firebird backend only supports versions of Firebird from 1.5 to 2.5 [3]. Soci can be used with either the client-server or embedded Firebird libraries. The former is the default, to select the latter set SOCI_FIREBIRD_EMBEDDED CMake option to ON value when building.

I was not able to turn SOCI_FIREBIRD_EMBEDDED to ON and to build with embedded Firebird. So as a workaround I attached a patch which disables the default option for Firebird in the port.


[1] https://cgit.freebsd.org/ports/commit/?id=80c3e9f81d398e9a548879867dfb28bd60f66617
[2] https://cgit.freebsd.org/ports/commit/?id=6229ceb6f2b8da993dae01c7ed46677a042839ba
[3] https://github.com/SOCI/soci/blob/4ae2d90c5f7e4b864e149a63364d68a15c7806b2/docs/backends/firebird.md#prerequisites
Comment 1 Muhammad Moinur Rahman freebsd_committer freebsd_triage 2023-01-01 00:50:22 UTC
This should not be required anymore after:
https://cgit.freebsd.org/ports/commit/?id=54ce503f0ae9a084b169e9ee24347b250db1fc06

This fixes all consumers of firebird30-* except databases/qt5-sqldrivers-ibase which is a different case.