Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build_installer.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc postgresql curl openssl zlib icu4c
brew install cmake unixodbc postgresql curl openssl@3 zlib icu4c
- name: Resolve AWS SDK version
id: aws-sdk-version
shell: bash
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/compatibility_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ jobs:
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc postgresql curl openssl zlib icu4c
brew install cmake unixodbc postgresql curl openssl@3 zlib icu4c
- name: Resolve AWS SDK version
id: aws-sdk-version
shell: bash
Expand Down Expand Up @@ -865,7 +865,7 @@ jobs:
if ($LASTEXITCODE -ne 0) { Write-Error "Failed to initialize local MySQL database."; exit 1 }
- name: Build Compatibility Tests (Unicode)
run: |
cmake -S test/compatibility -B build_test_w -DUNICODE=ON -DTEST_BASE_OUTPUT=ON
cmake -S test/compatibility -B build_test_w -DBUILD_UNICODE=ON -DTEST_BASE_OUTPUT=ON
cmake --build build_test_w --config ${{env.BUILD_CONFIG}}
- name: Install PostgreSQL Unicode DSNs
shell: pwsh
Expand Down Expand Up @@ -960,7 +960,7 @@ jobs:
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc postgresql curl openssl zlib icu4c
brew install cmake unixodbc postgresql curl openssl@3 zlib icu4c
- name: Resolve AWS SDK version
id: aws-sdk-version
shell: bash
Expand Down Expand Up @@ -1039,7 +1039,7 @@ jobs:
- name: Build Compatibility Tests (Unicode)
run: |
cmake -S test/compatibility -B test-compatibility-w \
-D UNICODE=ON \
-D BUILD_UNICODE=ON \
-D TEST_BASE_OUTPUT=ON \
-D TEST_DRIVER_PATH="${{ github.workspace }}/build/driver/aws-advanced-odbc-wrapper-w.dylib" \
-D PG_DRIVER_PATH="${{ steps.psqlodbc-path.outputs.PSQLODBC_UNICODE_DRIVER_PATH }}" \
Expand Down Expand Up @@ -1087,7 +1087,7 @@ jobs:
echo "Using iODBC headers: $IODBC_INCLUDE_DIR"
echo "Using iODBC library: $IODBC_LIBRARY"
cmake -S test/compatibility -B test-compatibility-w-mysql \
-D UNICODE=ON \
-D BUILD_UNICODE=ON \
-D TEST_BASE_OUTPUT=ON \
-D ODBC_INCLUDE_DIR="$IODBC_INCLUDE_DIR" \
-D ODBC_LIBRARY="$IODBC_LIBRARY" \
Expand Down Expand Up @@ -1197,7 +1197,7 @@ jobs:
- name: Build Compatibility Tests (Unicode)
run: |
cmake -S test/compatibility -B test-compatibility-w \
-D UNICODE=ON \
-D BUILD_UNICODE=ON \
-D TEST_BASE_OUTPUT=ON \
-D TEST_DRIVER_PATH="${{ github.workspace }}/build/driver/aws-advanced-odbc-wrapper-w.so" \
-D PG_DRIVER_PATH="${{ github.workspace }}/psqlodbc/.libs/psqlodbcw.so" \
Expand Down
27 changes: 24 additions & 3 deletions .github/workflows/integration_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,14 @@ jobs:
- name: Setup Python virtual environment
shell: bash
run: |
python3 -m venv .venv
# Grab 3.13 rather than 3.14 due to OpenSSL3 requirements
PYTHON=$(command -v python3.13 || echo /opt/homebrew/opt/python@3.13/bin/python3.13)
if [ ! -x "$PYTHON" ]; then
echo "ERROR: python3.13 not found. Install it with: brew install python@3.13" >&2
exit 1
fi
echo "Using $("$PYTHON" -V) at ${PYTHON}"
"$PYTHON" -m venv .venv
source .venv/bin/activate
pip install -r scripts/requirements.txt
pip show botocore | grep Version
Expand Down Expand Up @@ -1624,7 +1631,14 @@ jobs:
- name: Setup Python virtual environment
shell: bash
run: |
python3 -m venv .venv
# Grab 3.13 rather than 3.14 due to OpenSSL3 requirements
PYTHON=$(command -v python3.13 || echo /opt/homebrew/opt/python@3.13/bin/python3.13)
if [ ! -x "$PYTHON" ]; then
echo "ERROR: python3.13 not found. Install it with: brew install python@3.13" >&2
exit 1
fi
echo "Using $("$PYTHON" -V) at ${PYTHON}"
"$PYTHON" -m venv .venv
source .venv/bin/activate
pip install -r scripts/requirements.txt
- name: Create Aurora Limitless Resources
Expand Down Expand Up @@ -2205,7 +2219,14 @@ jobs:
- name: Setup Python virtual environment
shell: bash
run: |
python3 -m venv .venv
# Grab 3.13 rather than 3.14 due to OpenSSL3 requirements
PYTHON=$(command -v python3.13 || echo /opt/homebrew/opt/python@3.13/bin/python3.13)
if [ ! -x "$PYTHON" ]; then
echo "ERROR: python3.13 not found. Install it with: brew install python@3.13" >&2
exit 1
fi
echo "Using $("$PYTHON" -V) at ${PYTHON}"
"$PYTHON" -m venv .venv
source .venv/bin/activate
pip install -r scripts/requirements.txt
- name: Create Aurora Resources with Blue/Green Deployment
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release_draft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc curl openssl zlib icu4c
brew install cmake unixodbc curl openssl@3 zlib icu4c
- name: Resolve AWS SDK version
id: aws-sdk-version
shell: bash
Expand All @@ -109,7 +109,7 @@ jobs:
./scripts/compile_aws_sdk_unix.sh ${{env.BUILD_CONFIG}}
- name: Build aws-advanced-odbc-wrapper
run: |
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIG}} -DUNIT_TEST=OFF
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIG}} -DBUILD_UNIT_TEST=OFF
cmake --build build
ls ./build/driver/
- name: Check Artifacts
Expand Down Expand Up @@ -179,7 +179,7 @@ jobs:
./scripts/compile_aws_sdk_unix.sh ${{env.BUILD_CONFIG}}
- name: Build aws-advanced-odbc-wrapper
run: |
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIG}} -DUNIT_TEST=OFF
cmake -S . -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIG}} -DBUILD_UNIT_TEST=OFF
cmake --build build
ls ./build/driver/
- name: Get Ansi Driver Hash
Expand Down
29 changes: 24 additions & 5 deletions .github/workflows/static_analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ on:
env:
BUILD_CONFIG: Release
CODECHECKER_VERSION: 6.24.4
PYTHON_VERSION: '3.13'

permissions:
contents: read
Expand All @@ -28,12 +29,18 @@ jobs:
steps:
- name: Checkout aws-advanced-odbc-wrapper
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Set up Python
id: setup-python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc curl openssl zlib cppcheck llvm icu4c
python3 -m venv ./venv
brew install cmake unixodbc curl openssl@3 zlib cppcheck llvm icu4c
"${{ steps.setup-python.outputs.python-path }}" -m venv ./venv
source ./venv/bin/activate
python3 -c 'import sys; print("CodeChecker will run on Python", sys.version)'
python3 -m pip install CodeChecker==${{ env.CODECHECKER_VERSION }}
- name: Resolve AWS SDK version
id: aws-sdk-version
Expand Down Expand Up @@ -86,12 +93,18 @@ jobs:
steps:
- name: Checkout aws-advanced-odbc-wrapper
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Set up Python
id: setup-python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc curl openssl zlib cppcheck llvm icu4c
python3 -m venv ./venv
brew install cmake unixodbc curl openssl@3 zlib cppcheck llvm icu4c
"${{ steps.setup-python.outputs.python-path }}" -m venv ./venv
source ./venv/bin/activate
python3 -c 'import sys; print("CodeChecker will run on Python", sys.version)'
python3 -m pip install CodeChecker==${{ env.CODECHECKER_VERSION }}
- name: Resolve AWS SDK version
id: aws-sdk-version
Expand Down Expand Up @@ -145,10 +158,16 @@ jobs:
steps:
- name: Checkout aws-advanced-odbc-wrapper
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- name: Set up Python
id: setup-python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install CodeChecker
run: |
python3 -m venv ./venv
"${{ steps.setup-python.outputs.python-path }}" -m venv ./venv
source ./venv/bin/activate
python3 -c 'import sys; print("CodeChecker will run on Python", sys.version)'
python3 -m pip install CodeChecker==${{ env.CODECHECKER_VERSION }}
- name: Download ANSI reports
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
- name: Install Build Dependencies
run: |
brew update && brew upgrade && brew cleanup
brew install cmake unixodbc postgresql curl openssl zlib icu4c
brew install cmake unixodbc postgresql curl openssl@3 zlib icu4c
- name: Resolve AWS SDK version
id: aws-sdk-version
shell: bash
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
**/build**/
aws_sdk/*
*.def
driver/driver_version.h
**report**

# Test Files
Expand Down
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Fixed

- Debug builds no longer log the generated IAM authentication token [(PR #167)](https://github.com/aws/aws-advanced-odbc-wrapper/pull/167)
- `SQLGetInfo(SQL_DRIVER_VER)` now reports the real wrapper version instead of a hardcoded `1.0.0`
- Discovery of the `odbcinst`/`iodbcinst` library on macOS and Linux, which ignored the configured `ODBC_ROOT`
- The ANSI static library is now compiled with `SQL_NOUNICODEMAP`, matching the ANSI shared library

## [1.3.1] - 2026-09-08

### Fixed
Expand Down
75 changes: 40 additions & 35 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ set(WRAPPER_VERSION "1.3.1")
set(BUILD_ANSI OFF CACHE BOOL "Toggle to build with Ansi Wrapper")
set(BUILD_UNICODE OFF CACHE BOOL "Toggle to build with Unicode Wrapper")
set(BUILD_UNIT_TEST OFF CACHE BOOL "Toggle to build Unit Tests")
set(WITH_IODBC OFF CACHE BOOL "Build with iODBC")
set(USE_ASAN OFF CACHE BOOL "Toggle to use Address Sanitizer")
set(WITH_IODBC OFF CACHE BOOL "Toggle to build with iODBC, else unixODBC")

# External Tools ---------------------------------------------------------------------------------------------
include(FetchContent)
Expand Down Expand Up @@ -70,15 +71,19 @@ else(WIN32)
NAME
iodbcinst
HINTS
ODBC_ROOT
${ODBC_ROOT}
PATH_SUFFIXES
lib
REQUIRED
)
else() # unixODBC
find_library(ODBC_INST_LIB
NAME
odbcinst
HINTS
ODBC_ROOT
${ODBC_ROOT}
PATH_SUFFIXES
lib
REQUIRED
)
endif()
Expand Down Expand Up @@ -129,45 +134,45 @@ if(BUILD_UNIT_TEST)
endif()

# CPACK ------------------------------------------------------------------------------------------------------
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AWS Advanced ODBC Wrapper")
SET(CPACK_PACKAGE_NAME "aws-advanced-odbc-wrapper")
SET(CPACK_PACKAGE_VENDOR "Amazon")
SET(CPACK_PACKAGE_VERSION "${WRAPPER_VERSION}")

SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.txt")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${WRAPPER_VERSION}-src")

IF(APPLE)
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}-${WRAPPER_VERSION}-macos")
SET(CPACK_GENERATOR "productbuild")
SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
SET(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local/${CPACK_PACKAGE_FILE_NAME}")

CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/scripts/macOS/Welcome.html.in ${CMAKE_SOURCE_DIR}/scripts/macOS/Welcome.html @ONLY)
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/scripts/macOS/ReadMe.html.in ${CMAKE_SOURCE_DIR}/scripts/macOS/ReadMe.html @ONLY)
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/scripts/macOS/postflight.sh.in ${CMAKE_SOURCE_DIR}/scripts/macOS/postflight.sh @ONLY)
SET(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_SOURCE_DIR}/scripts/macOS/Welcome.html")
SET(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/scripts/macOS/ReadMe.html")
SET(CPACK_POSTFLIGHT_WRAPPER_SCRIPT "${CMAKE_SOURCE_DIR}/scripts/macOS/postflight.sh")

CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/scripts/macOS/Info.plist.in ${CMAKE_BINARY_DIR}/Info.plist @ONLY)
SET(CPACK_PRODUCTBUILD_IDENTIFIER "com.amazon.AwsAdvancedOdbcWrapper")
ENDIF()
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AWS Advanced ODBC Wrapper")
set(CPACK_PACKAGE_NAME "aws-advanced-odbc-wrapper")
set(CPACK_PACKAGE_VENDOR "Amazon")
set(CPACK_PACKAGE_VERSION "${WRAPPER_VERSION}")

set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.txt")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${WRAPPER_VERSION}-src")

if(APPLE)
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}-${WRAPPER_VERSION}-macos")
set(CPACK_GENERATOR "productbuild")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local/${CPACK_PACKAGE_FILE_NAME}")

configure_file(${CMAKE_SOURCE_DIR}/scripts/macOS/Welcome.html.in ${CMAKE_SOURCE_DIR}/scripts/macOS/Welcome.html @ONLY)
configure_file(${CMAKE_SOURCE_DIR}/scripts/macOS/ReadMe.html.in ${CMAKE_SOURCE_DIR}/scripts/macOS/ReadMe.html @ONLY)
configure_file(${CMAKE_SOURCE_DIR}/scripts/macOS/postflight.sh.in ${CMAKE_SOURCE_DIR}/scripts/macOS/postflight.sh @ONLY)
set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_SOURCE_DIR}/scripts/macOS/Welcome.html")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/scripts/macOS/ReadMe.html")
set(CPACK_POSTFLIGHT_WRAPPER_SCRIPT "${CMAKE_SOURCE_DIR}/scripts/macOS/postflight.sh")

configure_file(${CMAKE_SOURCE_DIR}/scripts/macOS/Info.plist.in ${CMAKE_BINARY_DIR}/Info.plist @ONLY)
set(CPACK_PRODUCTBUILD_IDENTIFIER "com.amazon.AwsAdvancedOdbcWrapper")
endif()

set(CPACK_COMPONENTS_ALL "Wrapper")

INSTALL(FILES LICENSE.txt COMPONENT Wrapper DESTINATION .)
INSTALL(FILES README.txt COMPONENT Wrapper DESTINATION .)
IF(APPLE)
INSTALL(FILES "${CMAKE_BINARY_DIR}/Info.plist" COMPONENT Wrapper DESTINATION .)
ENDIF()
INSTALL(
install(FILES LICENSE.txt COMPONENT Wrapper DESTINATION .)
install(FILES README.txt COMPONENT Wrapper DESTINATION .)
if(APPLE)
install(FILES "${CMAKE_BINARY_DIR}/Info.plist" COMPONENT Wrapper DESTINATION .)
endif()
install(
DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/build/driver/"
DESTINATION "./lib"
COMPONENT Wrapper
FILES_MATCHING PATTERN "*.dylib"
PATTERN "CMakeFiles" EXCLUDE
)

include (CPack)
include(CPack)
Loading
Loading