You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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 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 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
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.
Fixes #12610 - RPM multi-version installation conflicts
Problem
Installing multiple FoundationDB client versions on RPM systems fails with file conflicts:
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:
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.
For Release-Branches
If this PR is made against a release-branch, please also check the following:
release-branchormainif this is the youngest branch)@xis19 @vishesh can you please review this change for the issue