-
-
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
Import formulae from homebrew/games (take two). #9753
Import formulae from homebrew/games (take two). #9753
Conversation
|
As mentioned in the previous PR, I've been at a conference and haven't had a chance to look before now - mind making it a week today (18th AEST)? |
Raine itself isn't failing; what's failing is |
openmsx fails due to clang crashing, which is an Apple/clang bug rather than an openmsx bug:
Submitted as rdar://30475877. |
The arx-libertatis bug appears to have already been fixed upstream: arx/ArxLibertatis@39fb9a0 |
@mistydemeo right ... but still would need an old CMake to build (or more patch(es) from HEAD), and even then once it built, it failed to launch in my 10.12 vm (could be because it's a vm, but I didn't investigate further given the CMake trouble). |
|
Neat! I wonder if they'd be willing to make a new tag. |
That's a show stopper since we're removing all 32-bit and universal options, except the ones used by wine, and those will also be removed as soon as they've all been vendored into the wine formula. |
My understanding is that key portions of Raine are written in 32-bit ASM, and it can't be built as 64-bit at all. |
@mistydemeo We can always remove and re-add these so would rather if we stuck to a week here so the tap migration process can continue. Sounds like there's at least a few (if not all remaining) that we're not going to be able to realistically get fixed by next week so delete and re-add is probably their best bet. |
it compiles with ENV.O0 |
Sounds like a good workaround. @MikeMcQuaid Do you want me to add commits to this branch, or submit a PR against the branch?
A week is fine, I'd just rather it's a week from when I started looking at it! |
Pushed a few changes:
|
Formula/arx-libertatis.rb
Outdated
|
||
# Version parsing is broken in the current stable; fixed upstream. | ||
# This hardcodes the current version based on data from VERSION. | ||
inreplace "src/core/Version.cpp.in" do |s| |
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.
These version issues are what using the old CMake addressed, but hard-coding them temporarily instead of vendoring the "correct" CMake seems fine to me.
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.
Yeah, given that this will be fixed in the next stable version, I think some minimal hardcoding is probably best.
Formula/arx-libertatis.rb
Outdated
@@ -25,6 +25,23 @@ class ArxLibertatis < Formula | |||
def install | |||
args = std_cmake_args | |||
|
|||
# The patches for these aren't straightforward to backport because of | |||
# other changes; these minimal inreplaces get it building. | |||
# HEAD is fine, and the next stable release will contain these changes. |
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.
The last stable release was in 2013. It would be good to get some kind of commitment out of upstream to at least create a new tag at some point soon.
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.
Agreed. Development is clearly very active, but with four years between releases I would really like to see another.
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.
Mind creating "Can haz tag plz?" issue so we can at least track where they stand on this?
Formula/openmsx.rb
Outdated
@@ -21,6 +21,10 @@ class Openmsx < Formula | |||
end | |||
|
|||
def install | |||
# Fixes a clang crash; this is an LLVM/Apple bug, not an openmsx bug | |||
# https://github.com/Homebrew/homebrew-core/pull/9753 |
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.
maybe also add the rdar://30475877 reference?
simutrans is failing because of QTKit:
|
Indeed. So the best we could is an or_later bottle, but I think it's probably best to nix the formula. |
The two files using QTKit are very small - I'll see if I can work up a patch to port to AVFoundation. |
👍 |
@mistydemeo note it's also the same situation for magnetix:
|
I guess this means I have to install Xcode. :( |
Simutrans patch finished, and posted here: http://forum.simutrans.com/index.php?topic=16675.new#new |
Nice work! |
Ported magnetiX - branch here: https://github.com/mistydemeo/magnetiX/tree/avfoundation I've emailed the developer with the patch. |
Nice! So looks like |
With Raine, if we're not willing to accept a version with vendored dependencies, I'll migrate it into my own tap with those changes. |
The analytics show only 13 installs of |
It's a nice bit of emulation history. Raine was a big deal in the late 90s! I'm willing to put in the effort for a little nostalgia. |
Formula/magnetix.rb
Outdated
# Port audio code from QTKit to AVFoundation | ||
# Required since 10.12 SDK no longer includes QTKit. | ||
# Submitted by email to the developer. | ||
patch do |
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 should scope this to if DevelopmentTools.clang_build_version >= 800
, no?
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.
Given it's a major patch, I'd rather not end up shipping two different versions of the audio code - would make support easier if we're only supporting one version.
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.
@mistydemeo as you may have guessed, I'm just anticipating what @MikeMcQuaid will/would/may say here hehe
Formula/simutrans.rb
Outdated
# Port Mac audio code from QTKit to AVFoundation | ||
# Required since 10.12 SDK no longer includes QTKit. | ||
# Submitted upstream: http://forum.simutrans.com/index.php?topic=16675.0 | ||
patch do |
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.
ditto
Wow, great work @mistydemeo and @ilovezfs 💖
@mistydemeo I'd be happy to accept the version with vendored dependencies 👍 . I don't have a problem with formulae using universal internally if they need it, just the proliferation of universal options/builds. |
Pushed an update. The vendored dependencies all work at this point, but raine itself is having a little trouble finding them. |
Formula/raine.rb
Outdated
end | ||
|
||
args = configure_args(r.name) | ||
args << "--prefix=#{libexec}" |
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.
can they not be built statically instead and installed only in the buildpath?
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 gave it a shot, but SDL_image isn't building: https://gist.github.com/fc4f62f12ad00ae68333b4e8c5db6fb0
Formula/raine.rb
Outdated
ENV.prepend "PATH", "#{libexec}/bin", File::PATH_SEPARATOR | ||
ENV.append_to_cflags "-I#{libexec}/include" | ||
ENV.append "LDFLAGS", "-L#{libexec}/lib" | ||
ENV.prepend "PKG_CONFIG_PATH", "#{libexec}/lib/pkgconfig", File::PATH_SEPARATOR |
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 seems highly unusual. Do we have a brew bug?
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.
ENV.prepend_path
and ENV.append_path
silently do nothing if the passed directory doesn't exist, which it won't yet in this circumstance. I could also have used prepend_create_path
instead of forcing the prepend
.
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.
Yes, please either use ENV.prepend_create_path
or defer calling ENV.prepend_path
until the directory actually exists.
This has rolled by and given it's still not building and wouldn't pass our notability requirements for a new formula I think it's worth punting on this. Still pretty good that all but one of the homebrew/games formulae has made it in, though. |
Sorry for not commenting. I've pushed a working build for a dynamically-built Raine, and I'm 95% to a statically-built one. I'm testing a build now. |
Pushed a static formula. |
The only thing broken is linking against the system libbIp2. |
Build works. I'll update the audit warnings. Wrt notability, Raine has been around since the 90s; the move to GitHub is a recent one. |
Merged! |
🎊 |
Nice work both of you 🎉! |
Try to import the formulae that failed to build on Sierra in #9685.
@mistydemeo @tomyun I'll leave this open for about a week after which things that still can't build with Clang on Sierra will be deleted from homebrew/games rather than imported.
@tomyun I'll give you write access to my fork and @mistydemeo should already have it.