-
-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
migrate sdl
to sdl12-compat
#111081
migrate sdl
to sdl12-compat
#111081
Conversation
|
A couple failures since $ /usr/local/opt/sdl/bin/sdl-config --cflags
-I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE
$ /usr/local/opt/sdl12-compat/bin/sdl-config --cflags
-I/usr/local/Cellar/sdl12-compat/1.2.56/include/SDL -D_THREAD_SAFE EDIT: This may mean |
# we have to do this because most build scripts assume that all sdl modules | ||
# are installed to the same prefix. Consequently SDL stuff cannot be | ||
# keg-only but I doubt that will be needed. | ||
inreplace %w[sdl.pc.in sdl-config.in], "@prefix@", HOMEBREW_PREFIX |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may break some users' usage of sdl
, but changing formula to keg-only means using HOMEBREW_PREFIX
would be broken without a manual brew link --force
. Anyway, formula can be disable
'd right after this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could just fully get rid of sdl
formula and merge it into sdl12-compat
.
That was actually my initial ambition but I was waiting for a release to come out with bug fixes, which it now has.
This would bypass the whole 3 month deprecation period and a scenario where brew install sdl
is a bit broken from being keg-only. Renaming should work nicely given it should be an almost identical install tree. Even the version number is specially crafted to appear like a SDL 1.2 patch update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So delete sdl.rb
and add "sdl": "sdl12-compat"
to renames?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think so, yeah. Might be worth comparing the install trees first and addressing any differences.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ignoring man pages and some libexec
files in sdl
, the main differences are:
- we no longer have static library
libSDL.a
(given thatsdl12-compat
only supports building this on Linux, don't have any choice here) - on Linux, fully versioned dynamic library is different
- sdl uses
libSDL-1.2.so.0.11.4
vs sdl12-compat useslibSDL-1.2.so.1.2.56
- latter is a bit odd since
libSDL-1.2.so.0
is symlinked to it, but this allows drop-in as long as package links to this name. - but could be seen as "upgrade" and users should rebuild with newer library for broken linkage if they didn't link to
lib/libSDL-1.2.so.0
.
- sdl uses
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably need a syntax-only PR due to audit.
May need to look into dependents on whether we can avoid revision bumps.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- but could be seen as "upgrade" and users should rebuild with newer library for broken linkage if they didn't link to
lib/libSDL-1.2.so.0
.
If you are linking to a fully versioned libraries you're signing up for regular rebuilds (no one, for example, should be linking to libstdc++.so.6.0.30
). This isn't anything to be concerned about.
The lack of a static library is odd, but we've shipped bigger breaking changes so should be fine.
Probably need a syntax-only PR due to audit.
For the two disabled formulae? Yeah that's probably fine.
I'd be cautious about everything else. Will require testing out how everything is currently linked to SDL. In theory though, yes it is designed to work as a drop-in replacement without needing a rebuild.
1a021e9
to
b54194c
Compare
May want to ignore Will note that none of patches look like they will apply and |
I'm ok to add this to the allowlist if needed. |
Linux failures. Haven't checked yet if any are from changes here vs GCC/etc migrations
|
Let's find out: https://github.com/carlocab/workflow-test/actions/runs/3089013194 |
They all failed, so probably GCC-11 and other changes rather than |
Are we okay with merging with current failures and fixing those afterward? macOS:
Linux:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok by me to fix forward.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs --no-autosquash
brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingbrew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?Probably need to plan modification of conflicts with between
sdl
andsdl12-compat
to avoid issues when upgrading.