From 47821905e42c6f3b3a3da858a583a4f839ced148 Mon Sep 17 00:00:00 2001 From: Jan-Espen Oversand Date: Sat, 20 Jun 2026 09:06:36 +0200 Subject: [PATCH] dev-db/soci: add 4.1.4 New version 4.1.4. Added new dependency on libfmt. Did not change our FindMysql override according to changes in upstream. The upstream version requires the mysqlclient/mariadb lib, according to my understanding, to be passed as a path rather than -lsomething. The upstream change will be able to take cflags from the mysqlclient in addition to include dirs. In case any issues later surface that could be related to this we might want to take a second look at the change between v4.1.2 and v4.1.3. Signed-off-by: Jan-Espen Oversand Part-of: https://github.com/gentoo/gentoo/pull/46446 Closes: https://github.com/gentoo/gentoo/pull/46446 Signed-off-by: Kenton Groombridge --- dev-db/soci/Manifest | 1 + dev-db/soci/soci-4.1.4.ebuild | 80 +++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 dev-db/soci/soci-4.1.4.ebuild diff --git a/dev-db/soci/Manifest b/dev-db/soci/Manifest index 087f5d1091759..c5f485eca9c1f 100644 --- a/dev-db/soci/Manifest +++ b/dev-db/soci/Manifest @@ -1 +1,2 @@ DIST soci-4.1.2.tar.gz 4380345 BLAKE2B 9c2036fcf8a5021a4906384fceb4b9b0e7284a0daff6392d919a80c9d28d9bacb94346c0d5dffad571c8cb5da60d7e479dd4bc5cadcdd7a88e3918a714a35b45 SHA512 45fe481809abd9c22c609dd9488bf4c2d3fd9df20e5973be7898647061f52dbff260940f218337c351c2d33d1bcd10b811436bae4cbd03bcab827b76e41ac566 +DIST soci-4.1.4.tar.gz 5104924 BLAKE2B 1267294e006a96199b344d285cab50fe3d27ebed58b71e5bd71b66a7094ea6dc8b196acee082ccaa028144e42abbcf0b568a269ca47956ac50e7925b0ee7e456 SHA512 56ec9b3643f34419c2adc0a0ad013426a32bcb42f4a86187c0d22a2cf63a8bebc432e877e6a8993b327b192ec7237e536ccbcfab72f4e6b5a2d8eb55400f74c5 diff --git a/dev-db/soci/soci-4.1.4.ebuild b/dev-db/soci/soci-4.1.4.ebuild new file mode 100644 index 0000000000000..802b8b7b1eabb --- /dev/null +++ b/dev-db/soci/soci-4.1.4.ebuild @@ -0,0 +1,80 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake toolchain-funcs + +DESCRIPTION="SOCI - The C++ Database Access Library" +HOMEPAGE="https://sourceforge.net/projects/soci/" +SRC_URI="https://sourceforge.net/projects/soci/files/soci/${P}/${P}.tar.gz/download -> ${P}.tar.gz" + +LICENSE="Boost-1.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="mariadb mysql odbc oracle postgres sqlite test" +REQUIRED_USE="?? ( mysql mariadb )" +RESTRICT="!test? ( test )" + +CMAKE_SKIP_TESTS=( + soci_odbc_test_mssql + soci_odbc_test_mssql_static + soci_odbc_test_mysql + soci_odbc_test_mysql_static + soci_odbc_test_postgresql + soci_odbc_test_postgresql_static + soci_postgresql_test + soci_postgresql_test_static + soci_mysql_test + soci_mysql_test_static +) + +RDEPEND=" + >=dev-libs/boost-1.85.0-r1:= + >=dev-libs/libfmt-12.1.0:= + mysql? ( dev-db/mysql-connector-c:0= ) + mariadb? ( dev-db/mariadb-connector-c:0= ) + odbc? ( dev-db/unixODBC ) + oracle? ( dev-db/oracle-instantclient:=[sdk] ) + postgres? ( dev-db/postgresql:= ) + sqlite? ( dev-db/sqlite ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig +" + +src_prepare() { + cmake_src_prepare + cp "${FILESDIR}/FindMySQL.cmake" "cmake/find_modules" || die +} + +src_configure() { + local mysql_backend_driver="$(usex mysql 'mysqlclient' "$(usev mariadb 'libmariadb')")" + local mysql_backend_cmake_args=( + ) + if [[ -n "$mysql_backend_driver" ]]; then + local mysql_backend_include="$($(tc-getPKG_CONFIG) --cflags-only-I $mysql_backend_driver)" + local mysql_backend_libs="$($(tc-getPKG_CONFIG) --libs $mysql_backend_driver)" + if [[ -z "$mysql_backend_include" ]] || [[ -z "$mysql_backend_libs" ]]; then + die + fi + mysql_backend_cmake_args=( + -DMySQL_INCLUDE_DIRS="$(echo "$mysql_backend_include" | sed -e 's/-I//')" + -DMySQL_LIBRARIES="$mysql_backend_libs" + ) + fi + local mycmakeargs=( + -DSOCI_STATIC=OFF + -DSOCI_TESTS="$(usex test)" + -DSOCI_DB2=OFF + -DSOCI_FIREBIRD=OFF + -DSOCI_MYSQL="$(usex mysql 'yes' $(usex mariadb))" + -DSOCI_ODBC="$(usex odbc)" + -DSOCI_ORACLE="$(usex oracle)" + -DSOCI_POSTGRESQL="$(usex postgres)" + -DSOCI_SQLITE3="$(usex sqlite)" + "${mysql_backend_cmake_args[@]}" + ) + cmake_src_configure +}