Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSR: depend on version 10 of the fmt library #33

Closed
wants to merge 6 commits into from
Closed

SSR: depend on version 10 of the fmt library #33

wants to merge 6 commits into from

Conversation

mgeier
Copy link
Member

@mgeier mgeier commented Aug 30, 2024

This tries to pin the version of libfmt, but I'm not sure if that's the right syntax (nor if that works at all).

See #32.

@mgeier
Copy link
Member Author

mgeier commented Aug 30, 2024

I'm not sure whether the CI failure has anything to do with my change ...

@mgeier
Copy link
Member Author

mgeier commented Aug 30, 2024

@HaHeho
Copy link

HaHeho commented Aug 30, 2024

To explain this here. The SSR doesn't actually depend on v10, but the bottle links against it since it was the latest version on creation.

The preferred solution would be that the SSR build links a generic libfmt.dylib instead of specifically either libfmt.10.dylib or libfmt.20.dylib.

@mgeier
Copy link
Member Author

mgeier commented Aug 31, 2024

The preferred solution would be that the SSR build links a generic libfmt.dylib instead of specifically either libfmt.10.dylib or libfmt.20.dylib.

That's not possible, though, because "a generic libfmt.dylib" doesn't exist. libfmt.10.dylib and libfmt.20.dylib are ABI incompatible, as shown by the different major versions.

If we cannot depend on a specific version of fmt (and I tried multiple ways in this PR, none seems to work), I think the only alternative is to create new bottles which depend on version 11: #35.

@HaHeho
Copy link

HaHeho commented Sep 1, 2024

That's not possible, though, because "a generic libfmt.dylib" doesn't exist. libfmt.10.dylib and libfmt.20.dylib are ABI incompatible, as shown by the different major versions.

Thanks for explaining.

If we cannot depend on a specific version of fmt (and I tried multiple ways in this PR, none seems to work), I think the only alternative is to create new bottles which depend on version 11: #35.

Yes, I think this is a decent (and maybe only) solution. After that, if someone executes a generic brew upgrade, then fmt and ssr would both be upgraded and ABI compatible.
I'm not sure what happens if libfmt.10.dylib (outdated) is already installed while an upgraded SSR (#35) is installed for the first time. But even if that could create a problem, it is quite unlikely to occur.

@mgeier
Copy link
Member Author

mgeier commented Sep 1, 2024

I'm not sure what happens if libfmt.10.dylib (outdated) is already installed while an upgraded SSR (#35) is installed for the first time.

I cannot try this because the only Mac I have access to has macOS 12 installed.
But even it that scenario doesn't work, I gues a brew upgrade should fix it, as you said.

In any case, if there are problems with libfmt, a re-installation of ssr with --build-from-source should be a reasonable work-around.

@mgeier mgeier closed this Oct 1, 2024
@mgeier mgeier deleted the pin-fmt branch October 1, 2024 17:55
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.

2 participants