From b6d8bf563981aed577ced3b36eadaa235b95dc41 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 6 Feb 2026 14:20:41 +0800 Subject: [PATCH] Add unixodbc --- config/pkg/lib/unixodbc.yml | 13 ++++++++++ src/Package/Library/unixodbc.php | 43 ++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 config/pkg/lib/unixodbc.yml create mode 100644 src/Package/Library/unixodbc.php diff --git a/config/pkg/lib/unixodbc.yml b/config/pkg/lib/unixodbc.yml new file mode 100644 index 00000000..af98916a --- /dev/null +++ b/config/pkg/lib/unixodbc.yml @@ -0,0 +1,13 @@ +unixodbc: + type: library + artifact: + source: 'https://www.unixodbc.org/unixODBC-2.3.12.tar.gz' + metadata: + license-files: [COPYING] + license: LGPL-2.1-only + depends: + - libiconv + static-libs@unix: + - libodbc.a + - libodbccr.a + - libodbcinst.a diff --git a/src/Package/Library/unixodbc.php b/src/Package/Library/unixodbc.php new file mode 100644 index 00000000..e482e68b --- /dev/null +++ b/src/Package/Library/unixodbc.php @@ -0,0 +1,43 @@ + match (SystemTarget::getTargetArch()) { + 'x86_64' => '/usr/local/etc', + 'aarch64' => '/opt/homebrew/etc', + default => throw new WrongUsageException('Unsupported architecture: ' . GNU_ARCH), + }, + 'Linux' => '/etc', + default => throw new WrongUsageException("Unsupported OS: {$os}"), + }; + UnixAutoconfExecutor::create($this) + ->configure( + '--disable-debug', + '--disable-dependency-tracking', + "--with-libiconv-prefix={$this->getBuildRootPath()}", + '--with-included-ltdl', + "--sysconfdir={$sysconf_selector}", + '--enable-gui=no', + ) + ->make(); + $this->patchPkgconfPrefix(['odbc.pc', 'odbccr.pc', 'odbcinst.pc']); + $this->patchLaDependencyPrefix(); + } +}