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
wine*: Clean up Portfiles, dependencies and add some patches #374
Conversation
Resolved the upstream conflict with |
Resolved the upstream conflict with @ryandesign @jyrkiwahlstedt if you have any thoughts about getting this merged I would be happy to fix things up. |
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.
Your patches also concern the following tickets (in case you might want to mention that in commit messages):
- https://trac.macports.org/ticket/49800
- https://trac.macports.org/ticket/39085
- https://trac.macports.org/ticket/34745
Thanks a lot for taking so much work and for submitting these extensive patches. I hope that Ryan will have time to review them. They mostly look OK to me, but they should of course be tested on older OSes.
I hope you will also take a look at 64-bit support https://trac.macports.org/ticket/53651 ;)
x11/wine-crossover/Portfile
Outdated
--with-cups \ | ||
--with-curses \ | ||
--with-fontconfig \ | ||
--with-freetype \ |
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 probably understand your concerns, but why is this particular change needed?
MacPorts generally tries to create as reproducible builds as possible. Though that usually means using lots of --without-something
and --disable-somethingelse
to make sure that libraries are not opportunistically linked. I guess the flags above don't make any real difference, but ...
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 guess you're always going to run that risk with either approach but that's where the trace option can help out.
I prefer that we tell the build system everything we do not want then enable optional extras. The rest of the procedure should then let the Wine developers adjust the parameters as they see fit (they should be wiser than us port maintainers ;) ) and we need to be vigilant about enabling/disabling dependencies as required.
x11/wine-crossover/Portfile
Outdated
--x-lib=${prefix}/lib | ||
} | ||
|
||
default_variants +x11 |
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 would be in favour of not making this a default variant (if it works flawlessly). But see also problems reported in https://trac.macports.org/ticket/49800.
I don't know whether we need a +quartz
variant or not.
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 thought it could still be useful to have it be built by the buildbot. The MacDriver is still the preferred way that it launches so you would have to explicitly ask for the X11 one to load. Of course, if you're building from scratch it is nice to not have to pull in all the X11 dependencies.
Not sure if +quartz
would be a necessity, at least, not now. Maybe if in the future macOS gets a third output option then perhaps?
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.
Ah, OK, if +x11
builds both GUIs, then this is even better. I thought that building with X11 excluded the native GUI and vice versa. In that case keeping X11 makes sense.
The port wants Full list of dependencies being asked for (I had
|
In case you missed it, I made the patch for that to work ;) I was waiting until this got merged in before producing a final patch.
Do you mean these are additional direct dependencies that were not in the Porfile? I thought I check that all out but it has been quite a while now so I am not sure! Finally, thank you for finding and linking all the relevant Trac tickets! I've gone and updated the commit messages :) |
No, what I mean is that I already have And sorry for not pay attention about the 64-bitness (I just went through the tickets). |
Oh, I see. Yes, perhaps that extra configurability would be nice but I think it may also complicate things a whole lot. Could be tricky!
Haha, not at all! I'm very grateful you found all those tickets I missed. And cross-linking it here should help some others out too :) |
I would also suggest creating subports rather than having to keep three independent ports fully in sync (I happily volunteer to do that), but it's probably best if this PR gets merged first. |
I'm not a big fan of subports being used in that manner. There are often differences in development versions, and especially in the crossover fork, that are handled well enough as separate ports. |
The only thing that occurs to me is |
I suspect |
A build on 10.7 breaks some time pretty late in the build process:
But manually adding |
Indeed, manually adding I still get random problems, but I don't think it is any worse than it was (there are some tickets on Trac):
Meanwhile wine 2.6 has been released. |
Just a general piece of advise: be careful with removing dependencies. WINE likes to load libraries dynamically, so unless you know the code and what might be used exactly, it's quite difficult to determine the real dependencies. |
@Ionic oh no! Has something broken for you? I read through the autotools code and the current build instructions as well as trying some non-trivial programmes to makes sure everything was working. I assumed that if I had removed too much the issue would be mentioned at the PR stage or very soon after merge and that it would be better to be more strict than loose. |
@mojca Was that broken before this PR? I haven't changed anything directly with that flag… |
No, it wasn't broken before this PR. But that's either a new bug in wget's |
No, that was just a general comment. I haven't tried building and using your branch (also because I don't have a complex wine testing suite or the like...) libflex breakages are probably caused by the updated flex port, since the current release of flex has a bug, but IIRC an important patch was backported so that software using flex shouldn't break any longer. |
Resolved the conflict with FYI, I haven't done a new build for this. |
@casr: In the meantime @ryandesign updated wine-devel to version 2.6, so this PR needs to be fixed. @ryandesign: Any thoughts about these two wine-related PRs? I see that flex was reverted to an older version, so maybe my problem is gone as well, I need to check. |
@mojca resolved the conflict :) |
The only conflicts that are occurring are because of the fact that I bumped the revision number. As this PR seems in it for the long haul, I've just gone ahead and deleted that commit. It will, of course, need to be reintegrated if this ever gets merged. |
I am not particularly involved with GitHub pull requests, but taking a look at this now: I don't know why you are reformatting the portfile comments. I don't know why you are removing the comment that most libraries are dlopen'd. Can you provide a citation that shows this is no longer true? Not using fontconfig seems good, assuming that works. I don't know if anyone will complain or will want a fontconfig variant to be available; if so we can add that later. Removing I guess "removing unnecessary flags" is fine. The whitespace in the x11 variant does not conform to the modeline. Updating the description is fine. Removing the Tiger patch is fine since support for Tiger seems long gone. Fullscreen flickering patch is fine I guess. Removing configure flags that disable pulseaudio and udev: If these options/features are no longer supported then that's fine. I disagree with removing the configure flags that make explicit what options we are enabling or disabling, even if they are the default behavior of the configure script. We want to be explicit, and we need the list of dependencies to match. If upstream decided to turn a feature on or off by default in a new version, we would either have unnecessary dependencies or opportunistically-used dependencies. Adding openal-soft support is fine if that works. The notes are hard wrapped; please allow MacPorts to line wrap to the width of the terminal. Also observe the statements about indentation made by the modeline. The patchfiles should not be renamed. The old "patch-XXX.diff" patchfile naming scheme advocated by Since this PR changes installed files, a revision increase will be needed. I'm not merging pull requests but the ports are openmaintainer so someone else can merge it when it's ready. |
@ryandesign Thank you for reviewing the commits.
Agree on both points; I should not have made those changes. I have undone that.
I have pushed it to 4 spaces.
Okay, so I've reverted that commit but then also added in all the other missing options. I have taken a best guess at the defaults but if there is a better way of establishing what
Oops! Fixed.
Undone. |
Resolved |
@mojca considering the above, perhaps you would be able to merge this in? |
On Darwin, fontconfig has been turned off in favour of using Core Text since Wine 1.5.10. See Wine commit 9cb7a97981 Closes: https://trac.macports.org/ticket/34745
This appears to have been there from the dawn of this Portfile but I have found no mention of it as a dependency in Wine's documentation or when searching the Wine source archives for 'expat' or 'xmlwf' (git log -S).
Wine uses the native Security framework on macOS since 1.3.16 See Wine commit 45db3481f4d
Default build instructions since Wine 1.2 have been just 'make'. Before that it is was 'make depend'. See Wine commit 954514ec92
All of these things are handled by Wine's autoconf script. See Wine commit cd454fdc2ed for CoreServies See Wine commit 11ca05f6aea for zlib See Wine commit cc8eb6b7750 for Xcode broken compiler and Win16 See Wine commit 5ddaf34d69f for -Wl -no_pie
We already raise an error when Wine is fetched on systems less than 10.5 so this patch is unnecessary.
Wine 1.7.51 added support for XAudio2
Can you grant permission for committers to change your branch? |
@mojca Thank you for merging this :) |
Description
After trying to help out with Trac#53244 I noticed that the Portfile had fallen behind with respect to how later versions of Wine were being built. As I got through it, I noticed some unnecessary dependencies and factored out X11 as a variant (there is now a native “Mac Driver”). A couple of patches have been added to fix various behaviour issues on macOS.
There are many small commits below as I thought with this many changes as much documenting would be wise so others can understand the reasoning behind each small change.
Some unresolved things:
git
and that it is not listed as a build dependency. It seems that it is just used by Wine for outputting the version information but it is able to fallback to a predefined variable without Git, therefore, I am just ignoring this./cc relevant maintainers @ryandesign @jyrkiwahlstedt @jeremyhu
Tested on
macOS 10.12.3
Xcode 8.2.1
Verification
Have you
port lint
?sudo port -vst install
?