GH-47877: [C++][FlightRPC] ODBC Linux rpm installer support#49787
Draft
alinaliBQ wants to merge 2 commits intoapache:mainfrom
Draft
GH-47877: [C++][FlightRPC] ODBC Linux rpm installer support#49787alinaliBQ wants to merge 2 commits intoapache:mainfrom
alinaliBQ wants to merge 2 commits intoapache:mainfrom
Conversation
|
|
alinaliBQ
commented
Apr 20, 2026
Comment on lines
+181
to
+200
| else() | ||
| # Linux | ||
| set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}") | ||
| if(${ODBC_PACKAGE_FORMAT} STREQUAL "DEB") | ||
| # GH-49595 TODO: implement DEB installer | ||
| message(STATUS "ODBC_PACKAGE_FORMAT DEB not implemented, see GH-49595") | ||
| elseif(${ODBC_PACKAGE_FORMAT} STREQUAL "RPM") | ||
| set(CPACK_RPM_PACKAGE_ARCHITECTURE x86_64) | ||
| set(CPACK_GENERATOR RPM) | ||
| set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/install/linux/rpm/postinstall") | ||
| set(CPACK_RPM_FILE_NAME "${ODBC_UNIX_FILE_NAME}.rpm") | ||
| # Disable dependency check as ODBC embeds all third party dependencies | ||
| set(CPACK_RPM_PACKAGE_AUTOREQPROV "no") | ||
| set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1) | ||
| set(CPACK_RPM_COMPONENT_INSTALL ON) | ||
| else() | ||
| message(FATAL_ERROR "ODBC_PACKAGE_FORMAT '${ODBC_PACKAGE_FORMAT}' must be DEB or RPM for Linux installer." | ||
| ) | ||
| endif() |
Collaborator
Author
There was a problem hiding this comment.
The code changes for RPM installer are ready for review. This PR contains code changes that are dependent on #49766
Co-authored-by: vic-tsang <victor.tsang@improving.com> cpp/src/arrow/flight/sql/odbc/install/unix/install_odbc_ini.sh is originally authored by vic-tsang <victor.tsang@improving.com> Co-authored-by: justing-bq <justin.gossett@improving.com> for addressing feedback --------------------------------------- * Initial draft for macOS .pkg installer * in-progress for `install_odbc` * Remove `$HOME` from registration script * Generate .pkg installer and attempts to fix installer * Attempt to fix doc not seen * Attempt to fix ODBC registration script * Fix installer script and doc * Rename `install_odbc_ini.sh` to `postinstall` * Reuse `install_odbc.sh` script inside `postinstall` * Fix to generate macOS installer - Check $(pwd)/build/cpp * Clean up PR and todos * Update format to re-use code * Use `install_odbc_ini.sh` script to install DSN Keep a lightweight `postinstall` file for macOS * Update install_odbc_ini.sh execution access * Address Justin's comment Add timeout limit for macOS Address feedback
cc44bab to
e00ac1b
Compare
* Implement RPM installer fix formatting Remove todos ODBC rpm Installer wrap up * installing `rpm` package fixed the `cpack` command issue * Fix cpack command on CI (merge into last commit when ready) Change to use `awk` so script works on both platforms Comment out `find` and `tree` steps Change build path to be under /arrow Since docker is mounted, changing build path to be in `/arrow` will allow host machine to access docker build contents TEMP - Disable non-ODBC items Add commands to find build folder Attempt to build RPM installer * not sure if `/build/cpp` can be accessed outside of docker. Hopefully it should. * add `rpm` dependency install Indicate RPM in workflow run Add rpm `postinstall` (not tested) Remove merge conflict code * Enable ODBC installer build in CI instead of `compose.yaml` Update workflow matrix Update cpp_extra.yml Fix package name
e00ac1b to
a5484a2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale for this change
GH-47877
What changes are included in this PR?
This PR is dependent on #49766 to undraft and merge.
Add support for Linux ODBC
.rpminstaller.In
install_odbc.sh, changed to useawkon unix platforms asseddoesn't work well on Linux.Add installer readme section.
Add
ARROW_FLIGHT_SQL_ODBC_INSTALLERoption.The
.rpminstaller installs:Are these changes tested?
Yes
Are there any user-facing changes?
Users can download RPM installer from the CI.