Skip to content

Conversation

@Ronitsabhaya75
Copy link

@Ronitsabhaya75 Ronitsabhaya75 commented Jan 10, 2026

Fixes #12610 - RPM multi-version installation conflicts

Problem

Installing multiple FoundationDB client versions on RPM systems fails with file conflicts:

 file /usr/bin/fdbcli from install of foundationdb-clients-7.1.65 
conflicts with file from package foundationdb-clients-6.3.23

Both versions try to install to the same paths, preventing multi-version client API usage.

Solution
Modified RPM packaging to use versioned directories and update-alternatives for symlink management:

buildrpms.sh: Install to /usr/lib/foundationdb-{VERSION}/ instead of /usr/bin/, /usr/lib64/
foundationdb.spec.in: Use update-alternatives to manage symlinks from standard paths to versioned binaries
Example:

# Version 6.3.23 installs to: /usr/lib/foundationdb-6.3.23/
# Version 7.1.65 installs to: /usr/lib/foundationdb-7.1.65/
# Symlink managed: /usr/bin/fdbcli -> /usr/lib/foundationdb-7.1.65/bin/fdbcli

Multiple versions now coexist. Users can switch with update-alternatives --config fdbcli.

Backwards Compatibility
Standard paths (/usr/bin/fdbcli, /usr/lib64/libfdb_c.so) maintained via symlinks. Existing scripts continue to work.

Code-Reviewer Section

The general pull request guidelines can be found here.

Please check each of the following things and check all boxes before accepting a PR.

  • The PR has a description, explaining both the problem and the solution.
  • The description mentions which forms of testing were done and the testing seems reasonable.
  • Every function/class/actor that was touched is reasonably well documented.

For Release-Branches

If this PR is made against a release-branch, please also check the following:

  • This change/bugfix is a cherry-pick from the next younger branch (younger release-branch or main if this is the youngest branch)
  • There is a good reason why this PR needs to go into a release branch and this reason is documented (either in the description above or in a linked GitHub issue)

@xis19 @vishesh can you please review this change for the issue

@jzhou77 jzhou77 requested review from vishesh and xis19 January 13, 2026 17:47
@jzhou77 jzhou77 closed this Jan 13, 2026
@jzhou77 jzhou77 reopened this Jan 13, 2026
@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang-ide on Linux RHEL 9

  • Commit ID: e7e7876
  • Duration 0:36:46
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang-arm on Linux CentOS 7

  • Commit ID: e7e7876
  • Duration 0:42:56
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang on Linux RHEL 9

  • Commit ID: e7e7876
  • Duration 1:17:24
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: e7e7876
  • Duration 1:21:08
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-cluster-tests on Linux RHEL 9

  • Commit ID: e7e7876
  • Duration 2:07:16
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)
  • Cluster Test Logs zip file of the test logs (available for 30 days)

@Ronitsabhaya75
Copy link
Author

@jzhou77 can we merge this its been approved by both reviewers and CI

@jzhou77
Copy link
Contributor

jzhou77 commented Jan 16, 2026

@jzhou77 can we merge this its been approved by both reviewers and CI

@Ronitsabhaya75 thanks for the fix! Can you describe if you have tested the fix? Ideally, we want to port the PR to 7.3 or 7.4, create RPMs and do an upgrade test to verify it works as intended. I am also aware that building RPMs takes a lot of machine time, especially if you don't have big machines.

So if you have done the test, I'd be happy to merge this PR. Otherwise, it's better we wait until someone in the team has test it before merging.

@Ronitsabhaya75
Copy link
Author

@jzhou77 can we merge this its been approved by both reviewers and CI

@Ronitsabhaya75 thanks for the fix! Can you describe if you have tested the fix? Ideally, we want to port the PR to 7.3 or 7.4, create RPMs and do an upgrade test to verify it works as intended. I am also aware that building RPMs takes a lot of machine time, especially if you don't have big machines.

So if you have done the test, I'd be happy to merge this PR. Otherwise, it's better we wait until someone in the team has test it before merging.

@jzhou77 I agree I havent tested the fix but im pretty sure it will be good. I'd wait for until someone test it before release. Looking for feedback. thank you so much

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RPM conflict error when following multi-version client installation guide (6.3.23 to 7.1.65)

5 participants