Skip to content

GH-50697: [C++][FlightRPC] ODBC installer support fixes (previously GH-47877) - #49787

Closed
alinaliBQ wants to merge 1 commit into
apache:mainfrom
Bit-Quill:gh-47877-rpm-installer
Closed

GH-50697: [C++][FlightRPC] ODBC installer support fixes (previously GH-47877)#49787
alinaliBQ wants to merge 1 commit into
apache:mainfrom
Bit-Quill:gh-47877-rpm-installer

Conversation

@alinaliBQ

@alinaliBQ alinaliBQ commented Apr 17, 2026

Copy link
Copy Markdown
Collaborator

Rationale for this change

GH-50697

What changes are included in this PR?

  • Add ODBC installer description to ReadMe
  • Fix Windows ODBC installer to include docs
  • Test RPM ODBC installer on AlmaLinux9 and record any issues found

Are these changes tested?

Yes

Are there any user-facing changes?

No

@github-actions

Copy link
Copy Markdown

⚠️ GitHub issue #47877 has been automatically assigned in GitHub to PR creator.

Comment thread cpp/src/arrow/flight/sql/odbc/CMakeLists.txt Outdated
@github-actions github-actions Bot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Apr 20, 2026
@alinaliBQ
alinaliBQ force-pushed the gh-47877-rpm-installer branch 3 times, most recently from e00ac1b to a5484a2 Compare April 23, 2026 22:03
@alinaliBQ alinaliBQ changed the title GH-47877: [C++][FlightRPC] ODBC Linux rpm installer support GH-47877: [C++][FlightRPC] ODBC Linux rpm installer support with Cpack Apr 24, 2026
@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

cc @justing-bq Please help with code review comments on this PR going forward

@justing-bq
justing-bq force-pushed the gh-47877-rpm-installer branch 3 times, most recently from c42a315 to 847f5d1 Compare May 21, 2026 16:53
@alinaliBQ
alinaliBQ marked this pull request as ready for review May 21, 2026 17:32
@justing-bq
justing-bq force-pushed the gh-47877-rpm-installer branch 2 times, most recently from 9b4d76e to 3987150 Compare May 21, 2026 23:13

@alinaliBQ alinaliBQ left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@justing-bq Please have a look at the comments, thanks

Comment thread cpp/src/arrow/flight/sql/odbc/CMakeLists.txt Outdated
Comment thread cpp/src/arrow/flight/sql/odbc/README.md Outdated
Comment thread .github/workflows/cpp_extra.yml Outdated
@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

@kou @lidavidm Please take a look when you have time, thanks! cc @justing-bq

@justing-bq
justing-bq force-pushed the gh-47877-rpm-installer branch from a94a2c9 to 0aff342 Compare May 25, 2026 21:54
@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

@justing-bq Has addressed all comments and the ODBC CIs are passing, the CI failures not from ODBC related changes.
@lidavidm @kou Would appreciate if you could have another look, thanks!

@kou

kou commented Jun 30, 2026

Copy link
Copy Markdown
Member

I hope that we use dev/tasks/linux-packages/ for deb/RPM packages...

Could you split a fix for #50218 as a separated PR?

@kou

kou commented Jun 30, 2026

Copy link
Copy Markdown
Member

GH-50288

@justing-bq
justing-bq force-pushed the gh-47877-rpm-installer branch from eaf2333 to 1f56e49 Compare June 30, 2026 17:46
@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

@kou Thanks for putting up the PR #50288 for dev/tasks/linux-packages/.

I just want to make sure I understand the ask, are you suggesting that:

  1. We use dev/tasks/linux-packages/ instead of CPack (this case I will close my current PRs for RPM/DEB, and the team's work on the ODBC Linux would be complete),
  2. You'd like us to rework this PR to implement dev/tasks/linux-packages/ after GH-47877: [Packaging][C++][FlightRPC][ODBC] Add arrow-flight-sql-odbc #50288 is merged, or
  3. are you okay with both dev/tasks/linux-packages/ and CPack approach in this PR co-existing?

I think it would be beneficial to include the ODBC Linux driver registration script. My initial thinking was that community could use CPack approach first, and then CPack approach can be phased out by linux-packages once that is complete. Alternatively, after this PR and #49857 are merged, someone with knowledge in linux-packages could merge the 2 approaches together so that linux-packages implementation also does ODBC driver registration.

Previous thread: #49766 (comment).
Our team currently doesn't have capacity to test and verify the implementation with linux-packages. We appreciate your help here.
cc @lidavidm

@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

Could you split a fix for #50218 as a separated PR?

Yes, we will work on that cc @justing-bq

@kou

kou commented Jul 1, 2026

Copy link
Copy Markdown
Member

I'm suggesting 1. or 2.

BTW, https://manpages.ubuntu.com/manpages/focal/man5/odbcinst.ini.5.html says that we should use odbcinst -i -d -f template.ini instead of editing odbc.ini manually. It seems that our install script https://github.com/apache/arrow/blob/main/cpp/src/arrow/flight/sql/odbc/install/unix/install_odbc.sh edit /etc/odbcinst.ini directly.

We can use %post hook in .spec to run odbcinst. We can create odbcinst.ini.template by CMake's https://cmake.org/cmake/help/latest/command/configure_file.html . We don't need to create it dynamically by a shell script like https://github.com/apache/arrow/blob/main/cpp/src/arrow/flight/sql/odbc/install/unix/install_odbc_ini.sh .

I think it would be beneficial to include the ODBC Linux driver registration script. My initial thinking was that community could use CPack approach first, and then CPack approach can be phased out by linux-packages once that is complete. Alternatively, after this PR and #49857 are merged, someone with knowledge in linux-packages could merge the 2 approaches together so that linux-packages implementation also does ODBC driver registration.

We will not make the CPack based packages "offical" packages because it conflicts with existing deb/RPM packages. We should not provide non "official" packages to users. We can provide non "official" packages to only Apache Arrow developers.
See also: https://www.apache.org/legal/release-policy.html#publication

I think that it's not useful for you. So I suggest the dev/tasks/linux-packages approach.

Our team currently doesn't have capacity to test and verify the implementation with linux-packages. We appreciate your help here.

If you can't test, I can't help you because I don't know the expected behavior...

@justing-bq
justing-bq force-pushed the gh-47877-rpm-installer branch 5 times, most recently from 56a1d7e to 5905363 Compare July 3, 2026 20:58
@justing-bq

Copy link
Copy Markdown
Contributor

BTW, https://manpages.ubuntu.com/manpages/focal/man5/odbcinst.ini.5.html says that we should use odbcinst -i -d -f template.ini instead of editing odbc.ini manually. It seems that our install script https://github.com/apache/arrow/blob/main/cpp/src/arrow/flight/sql/odbc/install/unix/install_odbc.sh edit /etc/odbcinst.ini directly.

Now using odbcinst -i -d -f template.ini for Linux. For Mac, we are still editing odbc.ini manually.

@justing-bq
justing-bq force-pushed the gh-47877-rpm-installer branch from 5905363 to 71d45f8 Compare July 7, 2026 17:38
@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

I'm suggesting 1. or 2.

Hi @kou, our team can work on 2. Would it be okay with you if we only test the RPM installer on AlmaLinux 9 (i.e., only 1 Linux distro)?
If that's sufficient, then our team has the capacity to support it. Thank you for your patience while we worked through this.

P.S. I'll be out of the office from July 14 and will be back on July 27.

@kou

kou commented Jul 16, 2026

Copy link
Copy Markdown
Member

OK. Should we disable ODBC driver RPM for other distributions (AlmaLinux 8, CentOS Stream 9, AlmaLinux 10 and AmazonLinux 2023) because we can't test them?

BTW, I've implemented auto driver installation: #50521

@alinaliBQ

alinaliBQ commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator Author

@kou Thank you for implementing the driver registration. Then our team will manually test the Linux RPM installer on AlmaLinux 9 to verify that the ODBC driver works as expected. If we encounter any minor issues, we'll investigate and address them where possible. 🙂

Should we disable ODBC driver RPM for other distributions (AlmaLinux 8, CentOS Stream 9, AlmaLinux 10 and AmazonLinux 2023) because we can't test them?

If you're referring to the CI, for now I don't think we need to disable the ODBC driver RPM for the other distributions, since the CI is passing on all of them. In theory, if the RPM installer works on AlmaLinux 9 out of the box, it should work on the other distributions. If our manual testing uncovers any issues on AlmaLinux 9, we can revisit whether to disable support for other distributions.

@alinaliBQ
alinaliBQ marked this pull request as draft July 28, 2026 20:14
@alinaliBQ alinaliBQ changed the title GH-47877: [C++][FlightRPC] ODBC Linux rpm installer support with Cpack GH-50697: [C++][FlightRPC] ODBC installer support fixes Jul 28, 2026
@github-actions

Copy link
Copy Markdown

⚠️ GitHub issue #50697 has been automatically assigned in GitHub to PR creator.

@alinaliBQ
alinaliBQ force-pushed the gh-47877-rpm-installer branch 2 times, most recently from 5156eb3 to e0e8fa8 Compare July 28, 2026 22:48
- Add installer description to ReadMe
- Fix `docs` on Windows to include docs

Co-authored-by: justing-bq <justin.gossett@improving.com>
@alinaliBQ
alinaliBQ force-pushed the gh-47877-rpm-installer branch from e0e8fa8 to 298c2a8 Compare July 28, 2026 23:13
@kou

kou commented Jul 30, 2026

Copy link
Copy Markdown
Member

Could you close this PR and open a new PR from a new branch instead of reusing a PR for different change?

@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

@kou sure, I will close this PR. I have opened #50748 for the new change instead.

@alinaliBQ alinaliBQ closed this Jul 30, 2026
@alinaliBQ alinaliBQ changed the title GH-50697: [C++][FlightRPC] ODBC installer support fixes GH-50697: [C++][FlightRPC] ODBC installer support fixes (previously GH-47877) Jul 30, 2026
@alinaliBQ

Copy link
Copy Markdown
Collaborator Author

Most of the changes (add ODBC installer description to ReadMe, ODBC installer docs fix for CPack) in #50748 were originally part of the rpm CPack implementation. I've split them into #50748 for review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants