From nobody Thu Oct 16 18:26:33 2025 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cnby12DNMz6CwM4; Thu, 16 Oct 2025 18:26:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cnby11fXjz488P; Thu, 16 Oct 2025 18:26:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1760639193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UswZ2I9tuY1a56++mq1QVJpOZYEHkXVN0+aPIix1TAg=; b=AK0IctSoS4jG1NkVV5l6fb6iYTOg+C9z2/ksh8lss51HRIu7eThNfLAVia9AeRYf9cPInf kpeXGrX4GNdBKxn+58TowL2bL0IJzbiXn/GzO8XyvGIRTKD5BtZhQNAgirpwfcapl+1zDm ny5Z9PZqfVHi3x5sQR9e3ANG0mqjSRJjRuFPBLT4getXDvAcMigou3AUtJjiusO4LOcfj3 31ezuNDkQJF4Z713og6d9kmWyy4nTszsh0U1VTpJfnGlczFFgT8isI8zZF6fMpXTCFtGGs HWF+fz/NeD8vG1eBayp/i8gDxPSo5I2R3i4Y5akyUpipxdbH8UnZ2j4Ze9LSiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1760639193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UswZ2I9tuY1a56++mq1QVJpOZYEHkXVN0+aPIix1TAg=; b=ZWl5tHds8/0hQFE9vj/4uSXCzsKSagjsjH6lkkGbZ2qhO8YTast9PwdidokC45jRUrvL9i Lay6M0XxYPXOstlRpWLRuX4KLTcakhZt6BCsb+oS1jzdqheZbWSgbGWbUaXjeGkmPCxnKf QgoOZsionvnYyhj8G6TsA5H4iRGkuR3Jn6AmG3xS/SOPL65gJXQ4X4kFn9DQw5IUgMlSLL CKEN0QNVRhF9eLetgaVGID1XJtZLRJP6WpfJJ4iiS8guwudAkwG2ThEEP+y5mOl/LB3BE8 OfTctK6JXSnvCaUwYhlWld8DqmK90w9fcs6xlFyYc98ECWatk2n+HGuG4+0o2A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1760639193; a=rsa-sha256; cv=none; b=jJL9sHwXkv6cnAT0j0sChiEpMDriY4JSC4WHdc3s4rqJK+2JA6g+V1zkc9kp/8nBxUdBSB By/b/h5Q4gsaalhuJSHPxU6x1E1uCqpXQGjyGZUGfwGs6Um4ivzXAtgRiT3nJoM+ANIChM Z/rTx8HPt/F3TRX66hyc6FMZssa84G4d6A8waxKexGW+VzIXKym58HmdW3XsjtGuhfg/Qf ct5o/AfrWh6GestrlQ8cOt+/phMkUDZgBloxC4nhLlroLEqQgmHR+9LhS2TUmM+GFeptx2 lAjLcVWV3LUTt7PZKvFt3O4PuTDmv/k2RiM8OqlEWA7czhFy5CF80+2wfWjh2Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cnby11Bf0z4S6; Thu, 16 Oct 2025 18:26:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 59GIQXmG027230; Thu, 16 Oct 2025 18:26:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59GIQXcW027227; Thu, 16 Oct 2025 18:26:33 GMT (envelope-from git) Date: Thu, 16 Oct 2025 18:26:33 GMT Message-Id: <202510161826.59GIQXcW027227@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org From: Yuri Victorovich Subject: git: 2a0d392623cd - 2025Q4 - databases/nanodbc: Fix compilation with clang19; Improve pkg-descr List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuri X-Git-Repository: ports X-Git-Refname: refs/heads/2025Q4 X-Git-Reftype: branch X-Git-Commit: 2a0d392623cdc710f9060a98df023b186ecd4624 Auto-Submitted: auto-generated The branch 2025Q4 has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=2a0d392623cdc710f9060a98df023b186ecd4624 commit 2a0d392623cdc710f9060a98df023b186ecd4624 Author: Yuri Victorovich AuthorDate: 2025-10-11 04:10:12 +0000 Commit: Yuri Victorovich CommitDate: 2025-10-16 18:26:27 +0000 databases/nanodbc: Fix compilation with clang19; Improve pkg-descr (cherry picked from commit e432d0424f2fc1a997fc8e1d10800bbecdc6d2c9) --- databases/nanodbc/Makefile | 5 +-- databases/nanodbc/files/patch-nanodbc_nanodbc.cpp | 47 +++++++++++++++++++++++ databases/nanodbc/pkg-descr | 12 +++++- 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/databases/nanodbc/Makefile b/databases/nanodbc/Makefile index 1cc6e298227b..5cb0f7394810 100644 --- a/databases/nanodbc/Makefile +++ b/databases/nanodbc/Makefile @@ -11,16 +11,13 @@ WWW= https://nanodbc.github.io/nanodbc/ \ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE -BROKEN_FreeBSD_13= compilation fails with clang-19, see https://github.com/nanodbc/nanodbc/issues/421 -BROKEN_FreeBSD_15= compilation fails with clang-19, see https://github.com/nanodbc/nanodbc/issues/421 - LIB_DEPENDS= libodbc.so:databases/unixODBC USES= cmake:testing compiler:c++14-lang localbase:ldflags # pkgconfig python:build -USE_LDCONFIG= yes USE_CXXSTD= c++14 # fix build broken by deprecated feature std::char_traits, see https://github.com/nanodbc/nanodbc/issues/387 USE_GITHUB= yes +USE_LDCONFIG= yes CMAKE_ON= BUILD_SHARED_LIBS \ NANODBC_DISABLE_TESTS NANODBC_DISABLE_EXAMPLES diff --git a/databases/nanodbc/files/patch-nanodbc_nanodbc.cpp b/databases/nanodbc/files/patch-nanodbc_nanodbc.cpp new file mode 100644 index 000000000000..f0489859293b --- /dev/null +++ b/databases/nanodbc/files/patch-nanodbc_nanodbc.cpp @@ -0,0 +1,47 @@ +- Fix compilation with unsigned char SQLCHAR type + +--- nanodbc/nanodbc.cpp.orig 2023-01-13 22:42:27 UTC ++++ nanodbc/nanodbc.cpp +@@ -257,10 +257,20 @@ constexpr std::size_t size(const T (&array)[N]) noexc + } + #endif + ++// Helper function to compute string length for SQLCHAR types ++template ++inline std::size_t sqlchar_length(const T* str) noexcept ++{ ++ const T* s = str; ++ while (*s) ++s; ++ return s - str; ++} ++ + template + inline std::size_t size(NANODBC_SQLCHAR const (&array)[N]) noexcept + { +- auto const n = std::char_traits::length(array); ++ // Use custom length function instead of char_traits which doesn't support unsigned char ++ auto const n = sqlchar_length(array); + NANODBC_ASSERT(n < N); + return n < N ? n : N - 1; + } +@@ -3563,9 +3573,9 @@ std::list list_datasources() + "incompatible SQLCHAR and string::value_type"); + + datasource dsn; +- dsn.name = string(&name[0], &name[std::char_traits::length(name)]); ++ dsn.name = string(&name[0], &name[sqlchar_length(name)]); + dsn.driver = +- string(&driver[0], &driver[std::char_traits::length(driver)]); ++ string(&driver[0], &driver[sqlchar_length(driver)]); + + dsns.push_back(std::move(dsn)); + direction = SQL_FETCH_NEXT; +@@ -3616,7 +3626,7 @@ std::list list_drivers() + "incompatible SQLCHAR and string::value_type"); + + driver drv; +- drv.name = string(&descr[0], &descr[std::char_traits::length(descr)]); ++ drv.name = string(&descr[0], &descr[sqlchar_length(descr)]); + + drvs.push_back(std::move(drv)); + direction = SQL_FETCH_NEXT; diff --git a/databases/nanodbc/pkg-descr b/databases/nanodbc/pkg-descr index 263198cfcd6f..0ca544238dab 100644 --- a/databases/nanodbc/pkg-descr +++ b/databases/nanodbc/pkg-descr @@ -1 +1,11 @@ -nanodbc is a small library that makes ODBC API programming easy and fun again. +nanodbc is a small C++ library that simplifies ODBC API programming. + +nanodbc is a small C++ wrapper for the native C ODBC API. It aims to make +common database tasks easy with concise code, incorporating modern C++ +standards. + +Features: +* Portable and robust +* Transaction support +* Bound parameters +* Clean separation of interface and implementation using the pimpl idiom